From baac20edf4135aa26b6bc51837cdacb448550bfa Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Mon, 14 Oct 2024 15:35:01 +0200 Subject: [PATCH 01/52] portation de la page AuthorizationManagementView en componentAPI --- ui/src/locales/fr.json | 1 + .../AuthorizationManagementView.vue | 355 +++++++++--------- .../DataTypeAuthorizationsView.vue | 1 + 3 files changed, 189 insertions(+), 168 deletions(-) diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json index 1bf61bda9..cf6a5366e 100644 --- a/ui/src/locales/fr.json +++ b/ui/src/locales/fr.json @@ -958,6 +958,7 @@ "application-update": "Mise à jour de l'application {name}", "applications-page": "Mes applications", "authorizations-management": "Gestion des autorisations sur les applications", + "authorization-application-creator-management": "Gestion des droits de création des applications", "data-type-authorizations": "Gestion des autorisations de {dataType} par {type}", "data-type-new-authorization": "Nouvelle autorisation", "data-type-request-authorization": "Demande d'autorisations", diff --git a/ui/src/views/authorizations/AuthorizationManagementView.vue b/ui/src/views/authorizations/AuthorizationManagementView.vue index ac13aa1fa..fcba2bd2a 100644 --- a/ui/src/views/authorizations/AuthorizationManagementView.vue +++ b/ui/src/views/authorizations/AuthorizationManagementView.vue @@ -1,13 +1,13 @@ <template> <PageView class="with-submenu"> <SubMenu - :paths="subMenuPaths" - :root="$t('titles.applications-page')" - role="navigation" - :aria-label="$t('menu.aria-sub-menu')" + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="$t('titles.applications-page')" + role="navigation" /> <h1 class="title main-title"> - {{ $t("titles.authorizations-management") }} + {{ $t("titles.authorization-application-creator-management") }} </h1> <b-notification aria-close-label="Close notification"> {{ $t("dataTypesManagement.delegate-rights") }} @@ -15,42 +15,42 @@ <div class="rows"> <LoadingAnimate v-if="isLoading" :size="'is-large'"></LoadingAnimate> <b-table - class="row" - :data="authorizations" - paginated - :current-page="currentPage" - per-page="15" + :current-page="currentPage" + :data="listUsersAuth" + class="row" + paginated + per-page="15" > <template #pagination> <b-pagination - v-model="currentPage" - :current-page.sync="currentPage" - per-page="15" - :total="authorizations.length" - role="navigation" - :aria-label="$t('menu.aria-pagination')" - :aria-current-label="$t('menu.aria-curent-page')" - :aria-next-label="$t('menu.aria-next-page')" - :aria-previous-label="$t('menu.aria-previous-page')" - order="is-centered" - range-after="3" - range-before="3" - :rounded="true" + v-model="currentPage" + :aria-current-label="$t('menu.aria-curent-page')" + :aria-label="$t('menu.aria-pagination')" + :aria-next-label="$t('menu.aria-next-page')" + :aria-previous-label="$t('menu.aria-previous-page')" + :current-page.sync="currentPage" + :rounded="true" + :total="listUsersAuth.length" + order="is-centered" + per-page="15" + range-after="3" + range-before="3" + role="navigation" /> </template> <b-table-column - searchable - field="admin" - :label="$t('dataTypeAuthorizations.users')" - sortable - :custom-search="search" + :custom-search="search" + :label="$t('dataTypeAuthorizations.users')" + field="admin" + searchable + sortable > <template #searchable="props"> <b-input - v-model="props.filters[props.column.field]" - :placeholder="$t('dataTypeAuthorizations.search')" - icon="search" - size="is-normal" + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" + size="is-normal" /> </template> <template v-slot="props"> @@ -58,35 +58,35 @@ </template> </b-table-column> <b-table-column - v-if="currentUser.openAdomAdmin" - field="administrator" - :label="$t('referencesManagement.admin')" - sortable - v-slot="props" + v-if="currentUser.openAdomAdmin" + v-slot="props" + :label="$t('referencesManagement.admin')" + field="administrator" + sortable > <template> - <b-checkbox v-model="props.row.openAdomAdmin" @input="selectAdmin($event, props.row)" /> + <b-checkbox v-model="props.row.openAdomAdmin" @input="selectAdmin($event, props.row)"/> </template> </b-table-column> <b-table-column - v-if="currentUser.authorizedForApplicationCreation" - field="applications" - :label="$t('menu.applications')" - sortable - v-slot="props" + v-if="currentUser.authorizedForApplicationCreation" + v-slot="props" + :label="$t('menu.applications')" + field="applications" + sortable > <template> <b-taginput - class="inputAuth" - :before-adding="beforeAdding" - v-model="props.row.authorizations" - @add="addApplication($event, props.row)" - @remove="removeApplication($event, props.row)" - ellipsis - type="is-dark" - icon="file" - :placeholder="$t('dataTypeAuthorizations.add-application-name')" - aria-close-label="Supprimer l'application" + v-model="props.row.authorizations" + :before-adding="beforeAdding" + :placeholder="$t('dataTypeAuthorizations.add-application-name')" + aria-close-label="Supprimer l'application" + class="inputAuth" + ellipsis + icon="file" + type="is-dark" + @add="addApplication($event, props.row)" + @remove="removeApplication($event, props.row)" > </b-taginput> </template> @@ -95,10 +95,10 @@ <div class="row"> <div class="column is-offset-10 is-2"> <b-button - icon-left="floppy-disk" - icon-pack="far" - type="is-primary is-right" - @click="registerChanges" + icon-left="floppy-disk" + icon-pack="far" + type="is-primary is-right" + @click="registerChanges" > {{ $t("dataTypeAuthorizations.save") }} </b-button> @@ -110,138 +110,156 @@ <script> import SubMenu from "@/components/common/SubMenu.vue"; - -import { Component, Vue } from "vue-property-decorator"; import PageView from "../common/PageView.vue"; -import { SubMenuPath } from "@/components/common/SubMenu"; -import { AuthorizationService } from "@/services/rest/AuthorizationService"; +import {SubMenuPath} from "@/components/common/SubMenu"; import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; +import {onMounted, ref} from "vue"; +import useArray from "@/composable/components/array"; +import useObject from "@/composable/components/object"; +import app, {i18n} from "@/main"; +import services from "@/composable/services"; -@Component({ - components: { LoadingAnimate, PageView, SubMenu }, -}) -export default class AuthorizationManagementView extends Vue { - subMenuPaths = []; - authorizationService = AuthorizationService.INSTANCE; - authorizations = []; - totalRows = -1; - currentPage = 1; - isLoading = false; - - search(user, search) { - return user.login.match(search); - } - - columns = [{ field: "login", label: "login" }, "administrateur", "applications"]; - changes = { - administrator: { add: [], remove: [] }, - applications: {}, - }; - currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); +export default { + name: "AuthorizationManagementView", + components: { + LoadingAnimate, + PageView, + SubMenu + }, + setup() { + const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); + const { shallowRefArray: listUsersAuth, doChangeArray: changeListUsersAuth } = useArray(); + const { reactiveObject: changes, doChangeObject: changeChanges } = useObject({ + administrator: {add: [], remove: []}, + applications: {}, + }); + let totalRows = -1; + let currentPage = 1; + const isLoading = ref(false); + const currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); + onMounted(async () => { + await init(); + changeSubMenuPaths([ + new SubMenuPath( + i18n.t("titles.authorization-application-creator-management").toLowerCase(), + () => app.$router.push(`/authorizationsManagement`), + () => app.$router.push("/applications") + ), + ]); + }) - async init() { - this.isLoading = true; - this.changes = { - administrator: { add: [], remove: [] }, - applications: {}, - }; - this.authorizations = await this.authorizationService.getAuthorizations(); - this.isLoading = false; - } + function search(user, search) { + return user.login.match(search); + } - async created() { - this.subMenuPaths = [ - new SubMenuPath( - this.$t("titles.authorizations-management"), - () => { - this.$router.push(`/authorizationsManagement`); - }, - () => this.$router.push(`/applications`) - ), - ]; - await this.init(); - } + async function init() { + isLoading.value = true; + changeChanges({ + administrator: {add: [], remove: []}, + applications: {}, + }); + changeListUsersAuth(await services.authorizationService.getAuthorizations()); + isLoading.value = false; + } - async registerChanges() { - await this.makeChanges(); - await this.init(); - } + async function registerChanges() { + await this.makeChanges(); + await this.init(); + } - async makeChanges() { - this.changes.administrator.add.forEach((userId) => { - this.authorizationService.createAuthorizedRole("openAdomAdmin", userId); - }); - this.changes.administrator.remove.forEach((userId) => { - this.authorizationService.revokeAuthorizedRole("openAdomAdmin", userId); - }); - for (const userId in this.changes.applications) { - if (this.changes.applications[userId].add) { - this.changes.applications[userId].add.forEach((applicationPattern) => { - this.authorizationService.createAuthorizedRole( - "applicationCreator", - userId, - applicationPattern - ); - }); + async function makeChanges() { + changes.administrator.add.forEach((userId) => { + services.authorizationService.createAuthorizedRole("openAdomAdmin", userId); + }); + changes.administrator.remove.forEach((userId) => { + services.authorizationService.revokeAuthorizedRole("openAdomAdmin", userId); + }); + for (const userId in changes.applications) { + if (changes.applications[userId].add) { + changes.applications[userId].add.forEach((applicationPattern) => { + services.authorizationService.createAuthorizedRole( + "applicationCreator", + userId, + applicationPattern + ); + }); + } + } + for (const userId in changes.applications) { + if (changes.applications[userId].remove) { + changes.applications[userId].remove.forEach((applicationPattern) => { + services.authorizationService.revokeAuthorizedRole( + "applicationCreator", + userId, + applicationPattern + ); + }); + } } } - for (const userId in this.changes.applications) { - if (this.changes.applications[userId].remove) { - this.changes.applications[userId].remove.forEach((applicationPattern) => { - this.authorizationService.revokeAuthorizedRole( - "applicationCreator", - userId, - applicationPattern + + function selectAdmin(isAdmin, user) { + if (isAdmin) { + if (changes.administrator.remove.find((v) => v === user.id)) { + changes.administrator.remove = changes.administrator.remove.filter( + (v) => v === v.id ); - }); + } else if (!changes.administrator.add.find((v) => v === user.id)) { + changes.administrator.add.push(user.id); + } + } else { + if (changes.administrator.add.find((v) => v === user.id)) { + changes.administrator.add = changes.administrator.add.filter((v) => v === v.id); + } else if (!changes.administrator.remove.find((v) => v === user.id)) { + changes.administrator.remove.push(user.id); + } } } - } - selectAdmin(isAdmin, user) { - if (isAdmin) { - if (this.changes.administrator.remove.find((v) => v === user.id)) { - this.changes.administrator.remove = this.changes.administrator.remove.filter( - (v) => v === v.id + function addApplication(value, user) { + if (changes.applications[user.id]?.remove?.find((v) => v === value)) { + changes.applications[user.id].remove = changes.applications[user.id].remove.filter( + (v) => v !== value ); - } else if (!this.changes.administrator.add.find((v) => v === user.id)) { - this.changes.administrator.add.push(user.id); - } - } else { - if (this.changes.administrator.add.find((v) => v === user.id)) { - this.changes.administrator.add = this.changes.administrator.add.filter((v) => v === v.id); - } else if (!this.changes.administrator.remove.find((v) => v === user.id)) { - this.changes.administrator.remove.push(user.id); + } else { + changes.applications[user.id] = changes.applications[user.id] || {}; + changes.applications[user.id].add = changes.applications[user.id].add || []; + changes.applications[user.id].add.push(value); } } - } - addApplication(value, user) { - if (this.changes.applications[user.id]?.remove?.find((v) => v === value)) { - this.changes.applications[user.id].remove = this.changes.applications[user.id].remove.filter( - (v) => v !== value - ); - } else { - this.changes.applications[user.id] = this.changes.applications[user.id] || {}; - this.changes.applications[user.id].add = this.changes.applications[user.id].add || []; - this.changes.applications[user.id].add.push(value); + function removeApplication(value, user) { + if (changes.applications[user.id]?.add?.find((v) => v === value)) { + changes.applications[user.id].add = changes.applications[user.id].add.filter( + (v) => v !== value + ); + } else { + changes.applications[user.id] = changes.applications[user.id] || {}; + changes.applications[user.id].remove = changes.applications[user.id].remove || []; + changes.applications[user.id].remove.push(value); + } } - } - removeApplication(value, user) { - if (this.changes.applications[user.id]?.add?.find((v) => v === value)) { - this.changes.applications[user.id].add = this.changes.applications[user.id].add.filter( - (v) => v !== value - ); - } else { - this.changes.applications[user.id] = this.changes.applications[user.id] || {}; - this.changes.applications[user.id].remove = this.changes.applications[user.id].remove || []; - this.changes.applications[user.id].remove.push(value); + function beforeAdding(value) { + return value; } - } - beforeAdding(value) { - return value; + return { + subMenuPaths, + listUsersAuth, + totalRows, + currentPage, + isLoading, + search, + changes, + currentUser, + registerChanges, + makeChanges, + selectAdmin, + addApplication, + removeApplication, + beforeAdding, + } } } </script> @@ -249,6 +267,7 @@ export default class AuthorizationManagementView extends Vue { .icon { font-size: 0.5rem; } + .control.has-icons-left .icon { top: 5px; } diff --git a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue index d56c15941..b1a4cb2c6 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue @@ -561,6 +561,7 @@ export default { }, applicationName: { type: String, + required: true }, }, setup(props) { -- GitLab From 1fb6acdd6b08a0dc3fa0f5cbdd6941c05349b5fb Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 16 Oct 2024 09:24:52 +0200 Subject: [PATCH 02/52] =?UTF-8?q?r=C3=A9paration=20du=20service=20de=20mod?= =?UTF-8?q?ification=20de=20cssation=20de=20droit=20de=20cr=C3=A9ation=20d?= =?UTF-8?q?'application?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../authorization/role/OreSiRole.java | 15 +++- .../fr/inra/oresing/rest/OreSiResources.java | 7 +- .../fr/inra/oresing/rest/OreSiService.java | 7 ++ .../rest/exceptions/OreExceptionHandler.java | 4 + .../application/createAppWithoutRigth.http | 27 ++++++ ui/src/locales/en.json | 4 + ui/src/locales/fr.json | 3 + ui/src/main.js | 3 +- .../application/ApplicationCreationView.vue | 5 +- .../AuthorizationManagementView.vue | 82 ++++++++++--------- 10 files changed, 114 insertions(+), 43 deletions(-) create mode 100644 src/test/resources/http/application/createAppWithoutRigth.http diff --git a/src/main/java/fr/inra/oresing/domain/repository/authorization/role/OreSiRole.java b/src/main/java/fr/inra/oresing/domain/repository/authorization/role/OreSiRole.java index c16cf4529..35d496b1e 100644 --- a/src/main/java/fr/inra/oresing/domain/repository/authorization/role/OreSiRole.java +++ b/src/main/java/fr/inra/oresing/domain/repository/authorization/role/OreSiRole.java @@ -3,6 +3,8 @@ package fr.inra.oresing.domain.repository.authorization.role; import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.persistence.WithSqlIdentifier; +import java.util.List; + @FunctionalInterface public interface OreSiRole extends WithSqlIdentifier { @@ -44,11 +46,18 @@ OreSiRole extends WithSqlIdentifier { } default String addUserInRoleSql(final OreSiRoleWeCanGrantOtherRolesTo roleToModify, final boolean withAdminOption) { - final String withAdminOptionClause = withAdminOption ? " WITH GRANT OPTION" : ""; - return """ + if(getAsSqlRole().equals(roleToModify.getAsSqlRole())){ + return "select 1;"; + } + final String withAdminOptionClause = withAdminOption ? " WITH ADMIN OPTION" : ""; + return(OreSiRole.openAdomAdmin().getAsSqlRole().equals(getAsSqlRole()) ? + """ GRANT %1$s TO %2$s%3$s; - GRANT %1$s TO "openAdomAdmin" WITH ADMIN OPTION; + """ : """ + GRANT %1$s TO %2$s%3$s; + GRANT %1$s TO "openAdomAdmin" WITH ADMIN OPTION; + """) .formatted( getSqlIdentifier(), roleToModify.getSqlIdentifier(), diff --git a/src/main/java/fr/inra/oresing/rest/OreSiResources.java b/src/main/java/fr/inra/oresing/rest/OreSiResources.java index 23cd0d014..e46c6bd7b 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiResources.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiResources.java @@ -20,6 +20,7 @@ import fr.inra.oresing.domain.data.RefsLinkedToValue; import fr.inra.oresing.domain.data.deposit.validation.CsvRowValidationCheckResult; import fr.inra.oresing.domain.data.read.ouput.KeepAliveZipOutputStream; import fr.inra.oresing.domain.data.read.query.DownloadDatasetQueryOnlyMetadata; +import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; import fr.inra.oresing.domain.exceptions.SiOreIllegalArgumentException; import fr.inra.oresing.domain.exceptions.application.BadLabelNameException; import fr.inra.oresing.domain.exceptions.authentication.authentication.NotApplicationCanDeleteRightsException; @@ -276,7 +277,11 @@ public class OreSiResources { } return buildFluxRequestJDJson(fluxSink -> { final ReactiveProgression.CreateApplicationProgression progression = new ReactiveProgression.CreateApplicationProgression(0L, fluxSink); - service.createApplication(progression, name, file, comment); + try{ + service.createApplication(progression, name, file, comment); + } catch (Exception technicalException){ + fluxSink.error(technicalException); + } }); } diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index 1e6113767..55d61d7c9 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -64,6 +64,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resource; import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.jdbc.BadSqlGrammarException; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; @@ -166,6 +168,11 @@ public class OreSiService { } }); } catch (final OreSiTechnicalException | IOException e) { + if("fr.inra.oresing.domain.authorization.privilegeassessor.exception" + .equals(e.getClass().getPackage().getName())){ + progression.fluxSink().error(e); + throw (OreSiTechnicalException) e; + } progression.fluxSink().error(e); progression.fluxSink().complete(); return null; diff --git a/src/main/java/fr/inra/oresing/rest/exceptions/OreExceptionHandler.java b/src/main/java/fr/inra/oresing/rest/exceptions/OreExceptionHandler.java index ab9f6cb32..9bf8a3abe 100644 --- a/src/main/java/fr/inra/oresing/rest/exceptions/OreExceptionHandler.java +++ b/src/main/java/fr/inra/oresing/rest/exceptions/OreExceptionHandler.java @@ -102,6 +102,10 @@ public class OreExceptionHandler { @ExceptionHandler(OreSiTechnicalException.class) public ResponseEntity<OreSiTechnicalException> handle(final OreSiTechnicalException oreSiTechnicalException) { + if("fr.inra.oresing.domain.authorization.privilegeassessor.exception" + .equals(oreSiTechnicalException.getClass().getPackage().getName())){ + return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(oreSiTechnicalException); + } log.error("Technical Exception not resolved", oreSiTechnicalException); return ResponseEntity.badRequest().body(oreSiTechnicalException); } diff --git a/src/test/resources/http/application/createAppWithoutRigth.http b/src/test/resources/http/application/createAppWithoutRigth.http new file mode 100644 index 000000000..d97ea296e --- /dev/null +++ b/src/test/resources/http/application/createAppWithoutRigth.http @@ -0,0 +1,27 @@ + +### login + +POST localhost:8081/api/v1/login?login=lulu&password=xxxx +Content-Type: application/json + +{} + +### Load Application +POST localhost:8081/api/v1/applications/olacondprelevgroovy +Content-Type: multipart/form-data; boundary=WebAppBoundary + +--WebAppBoundary +Content-Disposition: form-data; name="element-name" +Content-Type: text/plain + +L'application monsoere +--WebAppBoundary +Content-Disposition: form-data; name="file"; filename="olacondprelevgroovy.yaml" +Content-Type: application/json + +< ../../data/monsore/monsore-with-repository.yaml +--WebAppBoundary-- + + + referentielFiles.put("variables", "/data/monsore/refdatas/variables.csv"); + referentielFiles.put("variables_et_unites_par_types_de_donnees", "/data/monsore/refdatas/variables_et_unites_par_types_de_donnees.csv"); \ No newline at end of file diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json index 227caf914..502df07ee 100644 --- a/ui/src/locales/en.json +++ b/ui/src/locales/en.json @@ -198,6 +198,9 @@ "close": "Requests validated", "open": "Requests not processed" }, + "pattern-application-name": "Allowed naming patterns for application creation", + "status-auth-application-creator": "Administration of application creation", + "authorization-user-creator-management": "You are the administrator of the creation of the application", "interval": "Search for interval", "from": "from", "from-date": "From date : ", @@ -948,6 +951,7 @@ "application-update": "Application update {name}", "applications-page": "My applications", "authorizations-management": "Authorizations management of applications", + "authorization-application-creator-management": "Management of application creation rights", "data-type-authorizations": "Managing {dataType} permissions by {type}", "data-type-new-authorization": "New authorization", "data-type-request-authorization": "Request authorizations", diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json index cf6a5366e..b29d46576 100644 --- a/ui/src/locales/fr.json +++ b/ui/src/locales/fr.json @@ -199,6 +199,9 @@ "close": "Requêtes validées", "open": "Requêtes non traîtées" }, + "pattern-application-name": "Pattern de nommage autorisés pour la création d'applications", + "status-auth-application-creator": "Administration de la création d'applications", + "authorization-user-creator-management": "Vous êtes administrateur de la création de l'application", "interval": "Recherche par intervalle", "from": "de", "from-date": "À partir du", diff --git a/ui/src/main.js b/ui/src/main.js index e3fa67b0e..bf9342e8f 100644 --- a/ui/src/main.js +++ b/ui/src/main.js @@ -80,7 +80,7 @@ import { faToolbox, faCog, faArrowRight, - faExchangeAlt, + faExchangeAlt, faUserShield, } from "@fortawesome/free-solid-svg-icons"; import { faCalendar as farCalendar, @@ -116,6 +116,7 @@ library.add( ); library.add( faUsersCog, + faUserShield, faLink, faCircle, faEye, diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue index 117adfa24..88666b1bf 100644 --- a/ui/src/views/application/ApplicationCreationView.vue +++ b/ui/src/views/application/ApplicationCreationView.vue @@ -215,7 +215,10 @@ export default { let method; switch (status) { case "create": - method = (chunk) => parseChunck(chunk, "create", canBeShowAndReturnErrorsMessage); + method = (chunk) => { + console.log(chunk) + return parseChunck(chunk, "create", canBeShowAndReturnErrorsMessage); + } await services.applicationService.createApplication( method, applicationConfig, diff --git a/ui/src/views/authorizations/AuthorizationManagementView.vue b/ui/src/views/authorizations/AuthorizationManagementView.vue index fcba2bd2a..2d4a22449 100644 --- a/ui/src/views/authorizations/AuthorizationManagementView.vue +++ b/ui/src/views/authorizations/AuthorizationManagementView.vue @@ -60,7 +60,7 @@ <b-table-column v-if="currentUser.openAdomAdmin" v-slot="props" - :label="$t('referencesManagement.admin')" + :label="$t('dataTypeAuthorizations.status-auth-application-creator')" field="administrator" sortable > @@ -71,7 +71,7 @@ <b-table-column v-if="currentUser.authorizedForApplicationCreation" v-slot="props" - :label="$t('menu.applications')" + :label="$t('dataTypeAuthorizations.pattern-application-name')" field="applications" sortable > @@ -79,13 +79,17 @@ <b-taginput v-model="props.row.authorizations" :before-adding="beforeAdding" - :placeholder="$t('dataTypeAuthorizations.add-application-name')" + :disabled="props.row.openAdomAdmin" + :placeholder="props.row.openAdomAdmin ? $t('dataTypeAuthorizations.authorization-user-creator-management') : $t('dataTypeAuthorizations.add-application-name')" aria-close-label="Supprimer l'application" class="inputAuth" + closable + :close-type="props.row.openAdomAdmin ? 'is-light' :'is-danger'" ellipsis - icon="file" - type="is-dark" + :icon="props.row.openAdomAdmin ? 'user-shield' : 'file'" + :type="props.row.openAdomAdmin ? 'is-light' : 'is-dark'" @add="addApplication($event, props.row)" + @close="removeApplication($event, props.row)" @remove="removeApplication($event, props.row)" > </b-taginput> @@ -127,11 +131,11 @@ export default { SubMenu }, setup() { - const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); - const { shallowRefArray: listUsersAuth, doChangeArray: changeListUsersAuth } = useArray(); - const { reactiveObject: changes, doChangeObject: changeChanges } = useObject({ - administrator: {add: [], remove: []}, - applications: {}, + const {shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths} = useArray(); + const {shallowRefArray: listUsersAuth, doChangeArray: changeListUsersAuth} = useArray(); + const {reactiveObject: changes, doChangeObject: changeChanges} = useObject({ + administrator: {add: [], remove: []}, + applications: {}, }); let totalRows = -1; let currentPage = 1; @@ -163,38 +167,42 @@ export default { } async function registerChanges() { - await this.makeChanges(); - await this.init(); + await makeChanges(); + await init(); + //window.location.reload(); } async function makeChanges() { - changes.administrator.add.forEach((userId) => { - services.authorizationService.createAuthorizedRole("openAdomAdmin", userId); - }); - changes.administrator.remove.forEach((userId) => { - services.authorizationService.revokeAuthorizedRole("openAdomAdmin", userId); - }); - for (const userId in changes.applications) { - if (changes.applications[userId].add) { - changes.applications[userId].add.forEach((applicationPattern) => { - services.authorizationService.createAuthorizedRole( - "applicationCreator", - userId, - applicationPattern - ); - }); + if (Object.keys(changes.applications).length !== 0) { + for (const userId in changes.applications) { + if (changes.applications[userId].add) { + changes.applications[userId].add.forEach((applicationPattern) => { + services.authorizationService.createAuthorizedRole( + "applicationCreator", + userId, + applicationPattern + ); + }); + } } - } - for (const userId in changes.applications) { - if (changes.applications[userId].remove) { - changes.applications[userId].remove.forEach((applicationPattern) => { - services.authorizationService.revokeAuthorizedRole( - "applicationCreator", - userId, - applicationPattern - ); - }); + for (const userId in changes.applications) { + if (changes.applications[userId].remove) { + changes.applications[userId].remove.forEach((applicationPattern) => { + services.authorizationService.revokeAuthorizedRole( + "applicationCreator", + userId, + applicationPattern + ); + }); + } } + } else { + changes.administrator.add.forEach((userId) => { + services.authorizationService.createAuthorizedRole("openAdomAdmin", userId, ".*"); + }); + changes.administrator.remove.forEach((userId) => { + services.authorizationService.revokeAuthorizedRole("openAdomAdmin", userId, ".*"); + }); } } -- GitLab From 08f57ca5ae651be0f8c40bc9a35f9fb1d0ed72d2 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 16 Oct 2024 11:26:50 +0200 Subject: [PATCH 03/52] =?UTF-8?q?mise=20=C3=A0=20jours=20de=20l'IHM=20lors?= =?UTF-8?q?=20de=20l'enregistrement=20des=20modifications?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthorizationManagementView.vue | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/ui/src/views/authorizations/AuthorizationManagementView.vue b/ui/src/views/authorizations/AuthorizationManagementView.vue index 2d4a22449..a2083ef30 100644 --- a/ui/src/views/authorizations/AuthorizationManagementView.vue +++ b/ui/src/views/authorizations/AuthorizationManagementView.vue @@ -79,15 +79,15 @@ <b-taginput v-model="props.row.authorizations" :before-adding="beforeAdding" + :close-type="props.row.openAdomAdmin ? 'is-light' :'is-danger'" :disabled="props.row.openAdomAdmin" + :icon="props.row.openAdomAdmin ? 'user-shield' : 'file'" :placeholder="props.row.openAdomAdmin ? $t('dataTypeAuthorizations.authorization-user-creator-management') : $t('dataTypeAuthorizations.add-application-name')" + :type="props.row.openAdomAdmin ? 'is-light' : 'is-dark'" aria-close-label="Supprimer l'application" class="inputAuth" closable - :close-type="props.row.openAdomAdmin ? 'is-light' :'is-danger'" ellipsis - :icon="props.row.openAdomAdmin ? 'user-shield' : 'file'" - :type="props.row.openAdomAdmin ? 'is-light' : 'is-dark'" @add="addApplication($event, props.row)" @close="removeApplication($event, props.row)" @remove="removeApplication($event, props.row)" @@ -162,7 +162,9 @@ export default { administrator: {add: [], remove: []}, applications: {}, }); - changeListUsersAuth(await services.authorizationService.getAuthorizations()); + if (Object.keys(listUsersAuth.value).length === 0) { + changeListUsersAuth(await services.authorizationService.getAuthorizations()); + } isLoading.value = false; } @@ -173,7 +175,9 @@ export default { } async function makeChanges() { + let localeListUsersAuth = listUsersAuth.value; if (Object.keys(changes.applications).length !== 0) { + console.log("makeChanges changes", changes) for (const userId in changes.applications) { if (changes.applications[userId].add) { changes.applications[userId].add.forEach((applicationPattern) => { @@ -182,7 +186,11 @@ export default { userId, applicationPattern ); + if (!localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.includes(applicationPattern)) { + localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.push(applicationPattern); + } }); + } } for (const userId in changes.applications) { @@ -193,14 +201,24 @@ export default { userId, applicationPattern ); + if (localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.includes(applicationPattern)) { + localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.filter(pattern => pattern !== applicationPattern); + } }); } } - } else { + changeListUsersAuth(localeListUsersAuth); + } else if(changes.administrator.add.length !== 0) { changes.administrator.add.forEach((userId) => { + localeListUsersAuth.filter(user => user.id === userId)[0].openAdomAdmin = true; + localeListUsersAuth.filter(user => user.id === userId)[0].authorizations = []; + localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.push(".*"); services.authorizationService.createAuthorizedRole("openAdomAdmin", userId, ".*"); }); + } else if(changes.administrator.remove.length !== 0) { changes.administrator.remove.forEach((userId) => { + localeListUsersAuth.filter(user => user.id === userId)[0].openAdomAdmin = false; + localeListUsersAuth.filter(user => user.id === userId)[0].authorizations = []; services.authorizationService.revokeAuthorizedRole("openAdomAdmin", userId, ".*"); }); } @@ -234,6 +252,7 @@ export default { changes.applications[user.id].add = changes.applications[user.id].add || []; changes.applications[user.id].add.push(value); } + console.log("addApplication ", changes) } function removeApplication(value, user) { -- GitLab From 13697037c83dd7831002c5bba7f7798195490e3f Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 16 Oct 2024 15:57:32 +0200 Subject: [PATCH 04/52] Fichier non valide a cause de son nom trop long ? #293 --- ui/src/locales/en.json | 38 ++- ui/src/locales/fr.json | 11 +- .../application/ApplicationCreationView.vue | 73 +++-- ...ionManagementForApplicationCreatorView.vue | 282 ------------------ ...nsManagementForApplicationCreatorView.vue} | 215 ++++++------- 5 files changed, 195 insertions(+), 424 deletions(-) delete mode 100644 ui/src/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue rename ui/src/views/authorizations/{AuthorizationManagementView.vue => AuthorizationsManagementForApplicationCreatorView.vue} (53%) diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json index 502df07ee..1e1ea7c45 100644 --- a/ui/src/locales/en.json +++ b/ui/src/locales/en.json @@ -518,21 +518,17 @@ }, "unexpectedTokenCount": { "message": "Token count is unexpected. Expected count: <code>{expectedTokenCount}</code><br/>Current header: <code>{actualHeader}</code> includes <code>{actualTokenCount}</code> tokens" - }, - "invalidFileName": { - "message": "The file name is invalid; it must be of the form ${fileNameFormat}", - "title": "Invalid file name." - }, - "badFileNameStartdata": { - "message": "The start date {startDate} has an invalid format. The date must be in the format {format}. The file name is of the form ${fileNameFormat}", - "title": "Invalid file name." - }, - "badFileNameEnddata": { - "message": "The end date {endtDate} has an invalid format. The date must be in the format {format}. The file name is of the form ${fileNameFormat}", - "title": "Invalid file name." } }, "errors-yaml": { + "badNameWithRight" : { + "title": "Erreur d'autorisation", + "message": "You do not have the right to create an application with the name <code>{name}</code>.<br/> Contact the administrator to request permissions." + }, + "invalidLengthName" : { + "title": "Erreur dans le fichier de configuration", + "message": "The maximum length for the application name is 47 characters." + }, "duplicateKey": { "title": "Configuration File Error", "message": "One or more duplicate keys were detected in your configuration file at line {lineNumber}. The keys in question are: {duplicateKeys}. Please check and correct the duplicate keys." @@ -764,7 +760,20 @@ "invalidConfigurationFile": { "message": "The configuration file is invalid.", "title": "Invalid configuration file." - },"badGroovyExpression": { + }, + "invalidFileName": { + "message": "The file name is invalid; it must be of the form ${fileNameFormat}", + "title": "Invalid file name." + }, + "badFileNameStartdata": { + "message": "The start date {startDate} has an invalid format. The date must be in the format {format}. The file name is of the form ${fileNameFormat}", + "title": "Invalid file name." + }, + "badFileNameEnddata": { + "message": "The end date {endtDate} has an invalid format. The date must be in the format {format}. The file name is of the form ${fileNameFormat}", + "title": "Invalid file name." + }, + "badGroovyExpression": { "message": "The groovy expression {expression} is invalid. The compiler returns the message {message}.", "title": "Invalid expression." } @@ -950,14 +959,13 @@ "application-creation": "Application creation", "application-update": "Application update {name}", "applications-page": "My applications", - "authorizations-management": "Authorizations management of applications", "authorization-application-creator-management": "Management of application creation rights", "data-type-authorizations": "Managing {dataType} permissions by {type}", "data-type-new-authorization": "New authorization", "data-type-request-authorization": "Request authorizations", "data-types-page": "{applicationName} data types", "data-types-repository": "Management of data sets {applicationName}", - "login-page": "Welcome to Open ADOM", + "login-page": "Welcome to OpenADOM", "profile": "Profile", "references-authorizations": "References authorizations", "references-data": "{refName} data", diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json index b29d46576..b8c60bc60 100644 --- a/ui/src/locales/fr.json +++ b/ui/src/locales/fr.json @@ -521,6 +521,14 @@ } }, "errors-yaml": { + "badNameWithRight" : { + "title": "Erreur d'autorisation", + "message": "Vous n'avez pas le droit de créer une application avec le nom <code>{name}</code>.<br/> Contacter l'administrateur pour demander les droits." + }, + "invalidLengthName" : { + "title": "Erreur dans le fichier de configuration", + "message": "La longueur maximum de caractère pour le nom de l'application est de 47 caractères" + }, "duplicateKey": { "title": "Erreur dans le fichier de configuration", "message": "Une ou plusieurs clés dupliquées ont été détectées dans votre fichier de configuration à la ligne {lineNumber}. Les clés en question sont : {duplicateKeys}. Veuillez vérifier et corriger les clés dupliquées." @@ -960,14 +968,13 @@ "application-creation": "Créer une application", "application-update": "Mise à jour de l'application {name}", "applications-page": "Mes applications", - "authorizations-management": "Gestion des autorisations sur les applications", "authorization-application-creator-management": "Gestion des droits de création des applications", "data-type-authorizations": "Gestion des autorisations de {dataType} par {type}", "data-type-new-authorization": "Nouvelle autorisation", "data-type-request-authorization": "Demande d'autorisations", "data-types-page": "Type de données de {applicationName}", "data-types-repository": "Gestion des jeux de données de {applicationName}", - "login-page": "Bienvenue sur Open ADOM", + "login-page": "Bienvenue sur OpenADOM", "profile": "Profil", "references-authorizations": "Autorisations des référentiels", "references-data": "Données de {refName}", diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue index 88666b1bf..580ffbdd7 100644 --- a/ui/src/views/application/ApplicationCreationView.vue +++ b/ui/src/views/application/ApplicationCreationView.vue @@ -111,6 +111,7 @@ <b-input v-model="applicationConfig.name" :placeholder="$t('applications.name-placeholder')" + maxlength="43" > </b-input> </b-field> @@ -175,7 +176,7 @@ import useNumber from "@/composable/components/number"; import services from "@/composable/services"; import { i18n } from "@/main"; import app from "@/main"; -import { computed, watch } from "vue"; +import {computed, watch} from "vue"; export default { name: "ApplicationCreationView", @@ -202,6 +203,7 @@ export default { const { shallowRefArray: errorsMessages, doChangeArray: changeErrorsMessages } = useArray(); const { shallowRefArray: infos } = useArray(); const { shallowRefArray: errors } = useArray(); + const currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); let disabled = useBoolean().refBoolean; let counter = useNumber(1).refNumber; let isLoading = computed(() => counter.value === 0); @@ -216,9 +218,9 @@ export default { switch (status) { case "create": method = (chunk) => { - console.log(chunk) + console.log(chunk); return parseChunck(chunk, "create", canBeShowAndReturnErrorsMessage); - } + }; await services.applicationService.createApplication( method, applicationConfig, @@ -268,28 +270,50 @@ export default { function parseResultChunck(chunk, caller) { const response = chunk.result; if ("validate" === caller && response.name) { - applicationConfig.name = response.configuration.applicationDescription.name.toLowerCase(); - applicationConfig.version = response.configuration.applicationDescription.version.version; - applicationConfig.comment = response.configuration.applicationDescription.comment; - if ( - applicationConfig.version.toString() !== props.applicationVersion && - applicationConfig.name === props.applicationName - ) { - changeBtnUpdateConfig(true); - } - if ( - applicationConfig.version.toString() === props.applicationVersion && - applicationConfig.name === props.applicationName - ) { - disabled.value = true; - services.alertService.toastError( - i18n.t("alert.server-error-appli-exist", { - name: props.applicationName, - version: props.applicationVersion, - }) - ); + if (response.configuration.applicationDescription.name.length < 44 && + currentUser.authorizations.includes(response.configuration.applicationDescription.name.toLowerCase())) + { + applicationConfig.name = response.configuration.applicationDescription.name.toLowerCase(); + applicationConfig.version = response.configuration.applicationDescription.version.version; + applicationConfig.comment = response.configuration.applicationDescription.comment; + if ( + applicationConfig.version.toString() !== props.applicationVersion && + applicationConfig.name === props.applicationName + ) { + changeBtnUpdateConfig(true); + } + if ( + applicationConfig.version.toString() === props.applicationVersion && + applicationConfig.name === props.applicationName + ) { + disabled.value = true; + services.alertService.toastError( + i18n.t("alert.server-error-appli-exist", { + name: props.applicationName, + version: props.applicationVersion, + }) + ); + } else { + services.alertService.toastSuccess(i18n.t("alert.application-validate-success")); + } } else { - services.alertService.toastSuccess(i18n.t("alert.application-validate-success")); + disabled.value = true; + let message = (response.configuration.applicationDescription.name.toString().length < 48) ? + "badNameWithRight": + "invalidLengthName"; + let params = (message === "invalidLengthName") ? + {} : + {name: response.configuration.applicationDescription.name}; + errorsMessages.value.push({ + type: message, + message: services.errorsService.getErrorsMessages( + message, + params, + "errors-yaml." + ), + title: i18n.t("errors-yaml." + message + ".title"), + params: params, + }); } } else if ("create" === caller) { services.alertService.toastSuccess(i18n.t("alert.application-creation-success")); @@ -369,6 +393,7 @@ export default { counter, errors, disabled, + currentUser }; }, }; diff --git a/ui/src/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue b/ui/src/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue deleted file mode 100644 index 3a27b02b3..000000000 --- a/ui/src/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue +++ /dev/null @@ -1,282 +0,0 @@ -<template> - <PageView class="with-submenu"> - <SubMenu - :paths="subMenuPaths" - :root="$t('titles.applications-page')" - role="navigation" - :aria-label="$t('menu.aria-sub-menu')" - /> - <h1 class="title main-title"> - {{ $t("titles.authorizations-management") }} - </h1> - <div class="rows"> - <b-table - class="row" - :data="authorizations" - paginated - :current-page="currentPage" - per-page="15" - > - <template #pagination> - <b-pagination - v-model="currentPage" - :current-page.sync="currentPage" - per-page="15" - :total="authorizations.length" - role="navigation" - :aria-label="$t('menu.aria-pagination')" - :aria-current-label="$t('menu.aria-curent-page')" - :aria-next-label="$t('menu.aria-next-page')" - :aria-previous-label="$t('menu.aria-previous-page')" - order="is-centered" - range-after="3" - range-before="3" - :rounded="true" - /> - </template> - <b-table-column - searchable - field="admin" - :label="'login'" - width="300" - sortable - v-slot="props" - :custom-search="search" - > - <template> - {{ props.row.login }} - </template> - </b-table-column> - <b-table-column - v-if="currentUser.authorizedForApplicationCreation" - field="applications" - :label="'Applications'" - width="300" - sortable - v-slot="props" - > - <template> - <div class="columns"> - <b-field class="column is-2" v-for="auth in props.row.authorizations" :key="auth"> - <p style="margin-top: 8px">{{ auth }} {{ $t("ponctuation.colon") }}</p> - <b-button - v-if=" - props.row.authorizations.find((a) => - currentUserApplicationPattern.find((aa) => new RegExp(aa).test(a)) - ) - " - icon-left="times-circle" - size="is-small" - type="is-danger is-light" - @click="removeApplication(props.row.login, auth)" - style="height: 1.5em; background-color: transparent; font-size: 1.45rem" - > - </b-button> - <b-button - v-else - size="is-small" - type="is-danger is-light" - style="height: 1.5em; background-color: transparent; font-size: 1.45rem" - > - </b-button> - </b-field> - <b-field - class="column is-2" - v-for="auth in currentUserApplicationPattern.filter( - (a) => !props.row.authorizations.find((aa) => aa === a) - )" - :key="auth" - > - <p style="margin-top: 8px" class="has-text-grey-light"> - {{ auth }} {{ $t("ponctuation.colon") }} - </p> - <b-button - icon-left="pen-square" - size="is-small" - type="primary is-light" - style="height: 1.5em; background-color: transparent; font-size: 1.45rem" - @click="addApplication(props.row.login, auth)" - > - </b-button> - </b-field> - </div> - </template> - </b-table-column> - </b-table> - <div class="row"> - <div class="column is-offset-10 is-2"> - <b-button - icon-left="floppy-disk" - icon-pack="far" - type="is-primary is-right" - @click="registerChanges" - > - {{ $t("dataTypeAuthorizations.save") }} - </b-button> - </div> - </div> - </div> - </PageView> -</template> - -<script> -import SubMenu from "@/components/common/SubMenu.vue"; - -import { Component, Vue } from "vue-property-decorator"; -import PageView from "../common/PageView.vue"; -import { SubMenuPath } from "@/components/common/SubMenu"; -import { AuthorizationService } from "@/services/rest/AuthorizationService"; -import DataTypeAuthorizationInfoView from "@/views/authorizations/DataTypeAuthorizationInfoView"; - -@Component({ - components: { DataTypeAuthorizationInfoView, PageView, SubMenu }, -}) -export default class AuthorizationManagementForApplicationCreatorView extends Vue { - subMenuPaths = []; - authorizationService = AuthorizationService.INSTANCE; - authorizations = []; - currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); - currentUserApplicationPattern = localStorage.getItem("authenticatedUser"); - totalRows = -1; - currentPage = 1; - - search(user, search) { - return user.login.match(search); - } - - columns = [{ field: "login", label: "login" }, "administrateur", "applications"]; - changes = { - administrator: { add: [], remove: [] }, - applications: {}, - }; - - async init() { - this.currentUserApplicationPattern = this.currentUser.authorizations; - this.changes = { - administrator: { add: [], remove: [] }, - applications: {}, - }; - let authorizations = await this.authorizationService.getAuthorizations(); - authorizations = authorizations.map((authorization) => { - authorization.authorizations = authorization.authorizations.filter(this.filterAuthorization); - return authorization; - }); - this.authorizations = authorizations; - } - - filterAuthorization(authorization) { - return this.currentUserApplicationPattern.find( - (auth) => auth === authorization || new RegExp(authorization).test(auth) - ); - } - - async created() { - this.subMenuPaths = [ - new SubMenuPath( - this.$t("titles.authorizations-management"), - () => { - this.$router.push(`/authorizationsManagementForApplicationCreator`); - }, - () => this.$router.push(`/applications`) - ), - ]; - await this.init(); - } - - async registerChanges() { - await this.makeChanges(); - await this.init(); - } - - async makeChanges() { - for (const userId of this.changes.administrator.add) { - await this.authorizationService.createAuthorizedRole( - "authorizedForApplicationCreation", - userId - ); - } - for (const userId of this.changes.administrator.remove) { - await this.authorizationService.revokeAuthorizedRole( - "authorizedForApplicationCreation", - userId - ); - } - for (const userId in this.changes.applications) { - if (this.changes.applications[userId].add) { - for (const applicationPattern of this.changes.applications[userId].add) { - await this.authorizationService.createAuthorizedRole( - "applicationCreator", - userId, - applicationPattern - ); - } - } - if (this.changes.applications[userId].remove) { - for (const applicationPattern of this.changes.applications[userId].remove) { - await this.authorizationService.revokeAuthorizedRole( - "applicationCreator", - userId, - applicationPattern - ); - } - } - } - } - - changed(user, value) { - let style = ""; - let changes = this.changes.applications[user]; - if (changes) { - let add = changes.add; - add = add && add.filter((v) => v === value).length; - let remove = changes.remove; - remove = remove && remove.filter((v) => v === value).length; - style = add || remove ? "hasBorder " : ""; - } - return style; - } - - addApplication(user, value) { - this.authorizations = this.authorizations.map((authorization) => { - if (authorization.login === user) { - authorization.authorizations.push(value); - } - return authorization; - }); - - if (this.changes.applications[user]?.remove?.find((v) => v === value)) { - this.changes.applications[user].remove = this.changes.applications[user].remove.filter( - (v) => v !== value - ); - } else { - this.changes.applications[user] = this.changes.applications[user] || {}; - this.changes.applications[user].add = this.changes.applications[user].add || []; - this.changes.applications[user].add.push(value); - } - } - - removeApplication(user, value) { - this.authorizations = this.authorizations.map((authorization) => { - if (authorization.login === user) { - let a = authorization.authorizations.filter((aa) => aa !== value); - authorization.authorizations = a; - } - return authorization; - }); - if (this.changes.applications[user]?.add?.find((v) => v === value)) { - this.changes.applications[user].add = this.changes.applications[user].add.filter( - (v) => v !== value - ); - } else { - this.changes.applications[user] = this.changes.applications[user] || {}; - this.changes.applications[user].remove = this.changes.applications[user].remove || []; - this.changes.applications[user].remove.push(value); - } - } -} -</script> -<style lang="scss" scoped> -.hasBorder { - border: solid #fb0738 6px; -} -</style> diff --git a/ui/src/views/authorizations/AuthorizationManagementView.vue b/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue similarity index 53% rename from ui/src/views/authorizations/AuthorizationManagementView.vue rename to ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue index a2083ef30..ef9ad68a9 100644 --- a/ui/src/views/authorizations/AuthorizationManagementView.vue +++ b/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue @@ -1,10 +1,10 @@ <template> <PageView class="with-submenu"> <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="$t('titles.applications-page')" - role="navigation" + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="$t('titles.applications-page')" + role="navigation" /> <h1 class="title main-title"> {{ $t("titles.authorization-application-creator-management") }} @@ -15,42 +15,42 @@ <div class="rows"> <LoadingAnimate v-if="isLoading" :size="'is-large'"></LoadingAnimate> <b-table - :current-page="currentPage" - :data="listUsersAuth" - class="row" - paginated - per-page="15" + :current-page="currentPage" + :data="listUsersAuth" + class="row" + paginated + per-page="15" > <template #pagination> <b-pagination - v-model="currentPage" - :aria-current-label="$t('menu.aria-curent-page')" - :aria-label="$t('menu.aria-pagination')" - :aria-next-label="$t('menu.aria-next-page')" - :aria-previous-label="$t('menu.aria-previous-page')" - :current-page.sync="currentPage" - :rounded="true" - :total="listUsersAuth.length" - order="is-centered" - per-page="15" - range-after="3" - range-before="3" - role="navigation" + v-model="currentPage" + :aria-current-label="$t('menu.aria-curent-page')" + :aria-label="$t('menu.aria-pagination')" + :aria-next-label="$t('menu.aria-next-page')" + :aria-previous-label="$t('menu.aria-previous-page')" + :current-page.sync="currentPage" + :rounded="true" + :total="listUsersAuth.length" + order="is-centered" + per-page="15" + range-after="3" + range-before="3" + role="navigation" /> </template> <b-table-column - :custom-search="search" - :label="$t('dataTypeAuthorizations.users')" - field="admin" - searchable - sortable + :custom-search="search" + :label="$t('dataTypeAuthorizations.users')" + field="admin" + searchable + sortable > <template #searchable="props"> <b-input - v-model="props.filters[props.column.field]" - :placeholder="$t('dataTypeAuthorizations.search')" - icon="search" - size="is-normal" + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" + size="is-normal" /> </template> <template v-slot="props"> @@ -58,39 +58,43 @@ </template> </b-table-column> <b-table-column - v-if="currentUser.openAdomAdmin" - v-slot="props" - :label="$t('dataTypeAuthorizations.status-auth-application-creator')" - field="administrator" - sortable + v-if="currentUser.openAdomAdmin" + v-slot="props" + :label="$t('dataTypeAuthorizations.status-auth-application-creator')" + field="administrator" + sortable > <template> - <b-checkbox v-model="props.row.openAdomAdmin" @input="selectAdmin($event, props.row)"/> + <b-checkbox v-model="props.row.openAdomAdmin" @input="selectAdmin($event, props.row)" /> </template> </b-table-column> <b-table-column - v-if="currentUser.authorizedForApplicationCreation" - v-slot="props" - :label="$t('dataTypeAuthorizations.pattern-application-name')" - field="applications" - sortable + v-if="currentUser.authorizedForApplicationCreation" + v-slot="props" + :label="$t('dataTypeAuthorizations.pattern-application-name')" + field="applications" + sortable > <template> <b-taginput - v-model="props.row.authorizations" - :before-adding="beforeAdding" - :close-type="props.row.openAdomAdmin ? 'is-light' :'is-danger'" - :disabled="props.row.openAdomAdmin" - :icon="props.row.openAdomAdmin ? 'user-shield' : 'file'" - :placeholder="props.row.openAdomAdmin ? $t('dataTypeAuthorizations.authorization-user-creator-management') : $t('dataTypeAuthorizations.add-application-name')" - :type="props.row.openAdomAdmin ? 'is-light' : 'is-dark'" - aria-close-label="Supprimer l'application" - class="inputAuth" - closable - ellipsis - @add="addApplication($event, props.row)" - @close="removeApplication($event, props.row)" - @remove="removeApplication($event, props.row)" + v-model="props.row.authorizations" + :before-adding="beforeAdding" + :close-type="props.row.openAdomAdmin ? 'is-light' : 'is-danger'" + :disabled="props.row.openAdomAdmin" + :icon="props.row.openAdomAdmin ? 'user-shield' : 'file'" + :placeholder=" + props.row.openAdomAdmin + ? $t('dataTypeAuthorizations.authorization-user-creator-management') + : $t('dataTypeAuthorizations.add-application-name') + " + :type="props.row.openAdomAdmin ? 'is-light' : 'is-dark'" + aria-close-label="Supprimer l'application" + class="inputAuth" + closable + ellipsis + @add="addApplication($event, props.row)" + @close="removeApplication($event, props.row)" + @remove="removeApplication($event, props.row)" > </b-taginput> </template> @@ -99,10 +103,10 @@ <div class="row"> <div class="column is-offset-10 is-2"> <b-button - icon-left="floppy-disk" - icon-pack="far" - type="is-primary is-right" - @click="registerChanges" + icon-left="floppy-disk" + icon-pack="far" + type="is-primary is-right" + @click="registerChanges" > {{ $t("dataTypeAuthorizations.save") }} </b-button> @@ -115,12 +119,12 @@ <script> import SubMenu from "@/components/common/SubMenu.vue"; import PageView from "../common/PageView.vue"; -import {SubMenuPath} from "@/components/common/SubMenu"; +import { SubMenuPath } from "@/components/common/SubMenu"; import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; -import {onMounted, ref} from "vue"; +import { onMounted, ref } from "vue"; import useArray from "@/composable/components/array"; import useObject from "@/composable/components/object"; -import app, {i18n} from "@/main"; +import app, { i18n } from "@/main"; import services from "@/composable/services"; export default { @@ -128,13 +132,13 @@ export default { components: { LoadingAnimate, PageView, - SubMenu + SubMenu, }, setup() { - const {shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths} = useArray(); - const {shallowRefArray: listUsersAuth, doChangeArray: changeListUsersAuth} = useArray(); - const {reactiveObject: changes, doChangeObject: changeChanges} = useObject({ - administrator: {add: [], remove: []}, + const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); + const { shallowRefArray: listUsersAuth, doChangeArray: changeListUsersAuth } = useArray(); + const { reactiveObject: changes, doChangeObject: changeChanges } = useObject({ + administrator: { add: [], remove: [] }, applications: {}, }); let totalRows = -1; @@ -145,12 +149,12 @@ export default { await init(); changeSubMenuPaths([ new SubMenuPath( - i18n.t("titles.authorization-application-creator-management").toLowerCase(), - () => app.$router.push(`/authorizationsManagement`), - () => app.$router.push("/applications") + i18n.t("titles.authorization-application-creator-management").toLowerCase(), + () => app.$router.push(`/authorizationsManagement`), + () => app.$router.push("/applications") ), ]); - }) + }); function search(user, search) { return user.login.match(search); @@ -159,7 +163,7 @@ export default { async function init() { isLoading.value = true; changeChanges({ - administrator: {add: [], remove: []}, + administrator: { add: [], remove: [] }, applications: {}, }); if (Object.keys(listUsersAuth.value).length === 0) { @@ -177,48 +181,59 @@ export default { async function makeChanges() { let localeListUsersAuth = listUsersAuth.value; if (Object.keys(changes.applications).length !== 0) { - console.log("makeChanges changes", changes) + console.log("makeChanges changes", changes); for (const userId in changes.applications) { if (changes.applications[userId].add) { changes.applications[userId].add.forEach((applicationPattern) => { services.authorizationService.createAuthorizedRole( - "applicationCreator", - userId, - applicationPattern + "applicationCreator", + userId, + applicationPattern ); - if (!localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.includes(applicationPattern)) { - localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.push(applicationPattern); + if ( + !localeListUsersAuth + .filter((user) => user.id === userId)[0] + .authorizations.includes(applicationPattern) + ) { + localeListUsersAuth + .filter((user) => user.id === userId)[0] + .authorizations.push(applicationPattern); } }); - } } for (const userId in changes.applications) { if (changes.applications[userId].remove) { changes.applications[userId].remove.forEach((applicationPattern) => { services.authorizationService.revokeAuthorizedRole( - "applicationCreator", - userId, - applicationPattern + "applicationCreator", + userId, + applicationPattern ); - if (localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.includes(applicationPattern)) { - localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.filter(pattern => pattern !== applicationPattern); + if ( + localeListUsersAuth + .filter((user) => user.id === userId)[0] + .authorizations.includes(applicationPattern) + ) { + localeListUsersAuth + .filter((user) => user.id === userId)[0] + .authorizations.filter((pattern) => pattern !== applicationPattern); } }); } } changeListUsersAuth(localeListUsersAuth); - } else if(changes.administrator.add.length !== 0) { + } else if (changes.administrator.add.length !== 0) { changes.administrator.add.forEach((userId) => { - localeListUsersAuth.filter(user => user.id === userId)[0].openAdomAdmin = true; - localeListUsersAuth.filter(user => user.id === userId)[0].authorizations = []; - localeListUsersAuth.filter(user => user.id === userId)[0].authorizations.push(".*"); + localeListUsersAuth.filter((user) => user.id === userId)[0].openAdomAdmin = true; + localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations = []; + localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations.push(".*"); services.authorizationService.createAuthorizedRole("openAdomAdmin", userId, ".*"); }); - } else if(changes.administrator.remove.length !== 0) { + } else if (changes.administrator.remove.length !== 0) { changes.administrator.remove.forEach((userId) => { - localeListUsersAuth.filter(user => user.id === userId)[0].openAdomAdmin = false; - localeListUsersAuth.filter(user => user.id === userId)[0].authorizations = []; + localeListUsersAuth.filter((user) => user.id === userId)[0].openAdomAdmin = false; + localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations = []; services.authorizationService.revokeAuthorizedRole("openAdomAdmin", userId, ".*"); }); } @@ -227,9 +242,7 @@ export default { function selectAdmin(isAdmin, user) { if (isAdmin) { if (changes.administrator.remove.find((v) => v === user.id)) { - changes.administrator.remove = changes.administrator.remove.filter( - (v) => v === v.id - ); + changes.administrator.remove = changes.administrator.remove.filter((v) => v === v.id); } else if (!changes.administrator.add.find((v) => v === user.id)) { changes.administrator.add.push(user.id); } @@ -245,20 +258,20 @@ export default { function addApplication(value, user) { if (changes.applications[user.id]?.remove?.find((v) => v === value)) { changes.applications[user.id].remove = changes.applications[user.id].remove.filter( - (v) => v !== value + (v) => v !== value ); } else { changes.applications[user.id] = changes.applications[user.id] || {}; changes.applications[user.id].add = changes.applications[user.id].add || []; changes.applications[user.id].add.push(value); } - console.log("addApplication ", changes) + console.log("addApplication ", changes); } function removeApplication(value, user) { if (changes.applications[user.id]?.add?.find((v) => v === value)) { changes.applications[user.id].add = changes.applications[user.id].add.filter( - (v) => v !== value + (v) => v !== value ); } else { changes.applications[user.id] = changes.applications[user.id] || {}; @@ -286,9 +299,9 @@ export default { addApplication, removeApplication, beforeAdding, - } - } -} + }; + }, +}; </script> <style lang="scss" scoped> .icon { -- GitLab From 9c9f34cf17991b8419bfe8c475b1f4c8b67a274e Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 16 Oct 2024 15:58:37 +0200 Subject: [PATCH 05/52] renomage de fichier --- .../authorization/DetailAuthorizationModalCard.vue | 2 +- ui/src/main.js | 3 ++- ui/src/router/index.js | 10 ++-------- ...izationsManagementForApplicationCreatorView.vue | 4 ++-- .../authorizations/DataTypeAuthorizationsView.vue | 2 +- ui/src/views/common/MenuView.vue | 14 -------------- 6 files changed, 8 insertions(+), 27 deletions(-) diff --git a/ui/src/components/common/authorization/DetailAuthorizationModalCard.vue b/ui/src/components/common/authorization/DetailAuthorizationModalCard.vue index 0949e8680..a82ac1645 100644 --- a/ui/src/components/common/authorization/DetailAuthorizationModalCard.vue +++ b/ui/src/components/common/authorization/DetailAuthorizationModalCard.vue @@ -6,7 +6,7 @@ import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; export default { name: "DetailAuthorizationModalCard", - components: {LoadingAnimate, SummaryTableOfAuthorizationByData }, + components: { LoadingAnimate, SummaryTableOfAuthorizationByData }, emits: ["setValidatedCharte"], props: { open: { diff --git a/ui/src/main.js b/ui/src/main.js index bf9342e8f..bb98eaf60 100644 --- a/ui/src/main.js +++ b/ui/src/main.js @@ -80,7 +80,8 @@ import { faToolbox, faCog, faArrowRight, - faExchangeAlt, faUserShield, + faExchangeAlt, + faUserShield, } from "@fortawesome/free-solid-svg-icons"; import { faCalendar as farCalendar, diff --git a/ui/src/router/index.js b/ui/src/router/index.js index 49f509e83..7eee90eb6 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -15,10 +15,9 @@ import AdditionalFileInfosView from "@/views/additionalfiles/AdditionalFileInfos import AdditionalFilesAuthorizationInfoView from "@/views/authorizations/AdditionalFilesAuthorizationInfoView.vue"; import DataTypeAuthorizationsView from "@/views/authorizations/DataTypeAuthorizationsView.vue"; import DataTypeAuthorizationInfoView from "@/views/authorizations/DataTypeAuthorizationInfoView.vue"; -import AuthorizationManagementView from "@/views/authorizations/AuthorizationManagementView.vue"; +import AuthorizationsManagementForApplicationCreatorView from "@/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue"; import DataTypeAuthorizationsRightsRequestView from "@/views/authorizations/DataTypeAuthorizationsRightsRequestView.vue"; import RequestAuthorizationManagementView from "@/views/authorizations/RequestAuthorizationManagementView.vue"; -import AuthorizationManagementForApplicationCreatorView from "@/views/authorizations/AuthorizationManagementForApplicationCreatorView.vue"; import DatasManagementView from "@/views/data/DatasManagementView.vue"; import DataTableView from "@/views/data/DataTableView.vue"; import DataVersioningView from "@/views/data/DataVersioningView.vue"; @@ -93,13 +92,8 @@ const routes = [ }, { path: "/authorizationsManagementForApplicationCreator", - name: "Authorizations application creation", - component: AuthorizationManagementForApplicationCreatorView, - }, - { - path: "/authorizationsManagement", name: "Authorizations management view", - component: AuthorizationManagementView, + component: AuthorizationsManagementForApplicationCreatorView, }, { path: "/applicationCreation/:applicationName/:applicationVersion", diff --git a/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue b/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue index ef9ad68a9..56a909640 100644 --- a/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue +++ b/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue @@ -128,7 +128,7 @@ import app, { i18n } from "@/main"; import services from "@/composable/services"; export default { - name: "AuthorizationManagementView", + name: "AuthorizationsManagementForApplicationCreatorView", components: { LoadingAnimate, PageView, @@ -150,7 +150,7 @@ export default { changeSubMenuPaths([ new SubMenuPath( i18n.t("titles.authorization-application-creator-management").toLowerCase(), - () => app.$router.push(`/authorizationsManagement`), + () => app.$router.push(`/authorizationsManagementForApplicationCreator`), () => app.$router.push("/applications") ), ]); diff --git a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue index b1a4cb2c6..b46cf9ca1 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue @@ -561,7 +561,7 @@ export default { }, applicationName: { type: String, - required: true + required: true, }, }, setup(props) { diff --git a/ui/src/views/common/MenuView.vue b/ui/src/views/common/MenuView.vue index df6960e6d..b48056462 100644 --- a/ui/src/views/common/MenuView.vue +++ b/ui/src/views/common/MenuView.vue @@ -82,16 +82,6 @@ <b-icon icon="wrench" /> {{ $t("menu.authorizations") }} </b-dropdown-item> - <b-dropdown-item - v-if="!currentUser.openAdomAdmin && currentUser.authorizedForApplicationCreation" - @click="showApplicationRightManagementForApplicationCreator()" - @keyup.enter="showApplicationRightManagementForApplicationCreator()" - tabindex="0" - aria-role="menuitem" - > - <b-icon icon="wrench" /> - {{ $t("menu.authorizations") }} - </b-dropdown-item> <b-dropdown-item @click="editUser()" @keyup.enter="editUser()" @@ -160,9 +150,6 @@ export default { this.$router.push(`/users/${userLoginOrId}`); } function showApplicationRightManagement() { - this.$router.push("/authorizationsManagement"); - } - function showApplicationRightManagementForApplicationCreator() { this.$router.push("/authorizationsManagementForApplicationCreator"); } return { @@ -176,7 +163,6 @@ export default { logout, editUser, showApplicationRightManagement, - showApplicationRightManagementForApplicationCreator, }; }, }; -- GitLab From 9a01f61022f2d5dace8a288e703215be5fde61b7 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 16 Oct 2024 16:06:01 +0200 Subject: [PATCH 06/52] =?UTF-8?q?Mise=20=C3=A0=20jour=20appli=20:=20Traduc?= =?UTF-8?q?tion=20en=20anglais=20de=20"Modifier"=20#281?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/locales/en.json | 2 +- ui/src/locales/fr.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json index 1e1ea7c45..6d0800100 100644 --- a/ui/src/locales/en.json +++ b/ui/src/locales/en.json @@ -118,7 +118,7 @@ "advancedFilter": "Advanced search", "app_version": "Current version of {name} is: {version}", "app_update_version": "Version of {name} proposed is: {version}", - "change": "Edit app", + "change": "Update", "charte_message": "I have read and accept the conditions of use of the data.", "charte_header": "To access the {localName} application, you must accept the conditions of use.", "chose-config": "Chose a configuration", diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json index b8c60bc60..c7a3038f9 100644 --- a/ui/src/locales/fr.json +++ b/ui/src/locales/fr.json @@ -118,7 +118,7 @@ "advancedFilter": "Recherche avancée", "app_version": "Version actuelle de {name} est : {version}", "app_update_version": "Version de {name} proposée est : {version}", - "change": "Modifier l'application", + "change": "Mise à jour", "charte_message": "J'ai lu et j'accepte les conditions d'utilisation des données.", "charte_header": "Pour accéder à l'application {localName}, vous devez accepter les conditions d'utilisation.", "chose-config": "Choisir une configuration", -- GitLab From 1896e54ef4ee38e290bacb9150b11a0974fa171c Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 16 Oct 2024 16:12:54 +0200 Subject: [PATCH 07/52] =?UTF-8?q?Passage=20fran=C3=A7ais/=20anglais=20et?= =?UTF-8?q?=20inverse=20se=20fait=20en=202=20temps=20#278?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/composable/locales/locales.js | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/src/composable/locales/locales.js b/ui/src/composable/locales/locales.js index b2fafc33f..977b3b918 100644 --- a/ui/src/composable/locales/locales.js +++ b/ui/src/composable/locales/locales.js @@ -6,6 +6,7 @@ const chosenLocale = useText().refText; const locales = Locales; const setUserPrefLocale = function () { + window.location.reload(); services.userPreferencesService.setUserPrefLocale(chosenLocale.value); }; export { chosenLocale as chosenLocale, locales as locales, setUserPrefLocale as setUserPrefLocale }; -- GitLab From 0eb14c84cc5c8e95b3e930bb15f3f8ac34dfd16d Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Wed, 16 Oct 2024 21:53:17 +0200 Subject: [PATCH 08/52] =?UTF-8?q?Int=C3=A9gration=20des=20=C3=A9volution?= =?UTF-8?q?=20pour=20OA=5Ftitle=20et=20OA=5Fdescription=20d=C3=A9cid=C3=A9?= =?UTF-8?q?es=20collectivement=20le=209/10=20dans=20la=20doc=20de=20l'inte?= =?UTF-8?q?rnationalisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internationnalisation_i18n.md | 269 +++++++++++++----- 1 file changed, 191 insertions(+), 78 deletions(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md index 4c03a1e75..5bacd94b9 100644 --- a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md +++ b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md @@ -25,96 +25,194 @@ Illustration du contenu du fichier configuration pour le noeud i18n : ### 2.1. éléments indépendants des référentiels et types de données d'un SI -Certains éléments indépendants des référentiels et types de données d'un SI peuvent être traduits comme : -* le nom de l'application et sa description -* les formulaires des fichiers additionnels -* les tags -* la page d'accueil +Certains éléments indépendants des référentiels et des types de données peuvent être concernés par un titre et ou une decription qui peuvent être internationalisés. -La section OA_i18n est utilisée pour déclarer les traductions sauf pour les tags qui s'appuient directement sur le code des langues comme dans l'extrait de yaml ci-dessous : +**le titre de l'application et sa description** ````yaml OA_version: 2.0.1 #obligatoire, version de l'application OpenADOM OA_application: #obligatoire OA_name: optmix1 #obligatoire, nom du schéma OA_defaultLanguage: fr - OA_i18n: # nom de l'application affichée dans l'ihm - fr: "Système d'information du dispositif OPTmix - version 1.0.2" - en: "Information system of OPTmix platform - version 1.0.2" + OA_i18n: # internationalisation du titre et de la description de l'application (du SI) + OA_title: + fr: "Système d'information du dispositif OPTmix - version 1.0.2" + en: "Information system of OPTmix platform - version 1.0.2" + OA_description: + fr: "Ce système d'information est dédié à la gestion des données du dispositif OPTmix. Il permet également d'effectuer des visualisations et extractions de données." + en: "This information system is dedicated to OPTmix data management. It can also be used to visualize and extract data." OA_version: 1.0.2 #obligatoire, version de l'application créée avec OpenADOM - OA_comment: "Le système d'information du dispositif OPTmix est basée sur la solution OpenADOM développée par INRAE" # description à internationaliser +```` + +**les tags** + +````yaml OA_tags: - metadata: - en: metadata + metadata: #identificateur du tag + OA_i18n: + OA_title: + en: "metadata" + fr: "métadonnées" location: - en : location - fr: localisation + OA_i18n: + OA_title: + en : "location" + fr: "localisation" method: - en: methodology - fr: méthodologie - soil: - en: soil - fr: sol - physicochimie: - fr: physico-chimique - en: physico chemical + OA_i18n: + OA_title: + en: "methodology" + fr: "méthodologie" ```` -**Note:** la description de l'application s'appelle aujourd'hui `OA_comment` et n'est pas internationalisée. Elle le sera prochainement avec l'ajout d'une section `OA_i18n`. A voir ensemble si on remplace `OA_comment` par `OA_description` tel que ci-dessous. On pourrait avoir un `OA_title` pour être complètement explicite. +**les formulaires des fichiers additionnels** -Exemple de l'évolution proposée pour la section `OA_application` : +Cette fonctionalité n'est pas encore implémentée, à revoir si besoin lorsque le dev démarrera. +Un titre et une description sont possibles d'une part pour le formulaire lui même et d'autre part pour chaque champ qui le compose. ````yaml -OA_version: 2.0.1 #obligatoire, version de l'application OpenADOM -OA_application: #obligatoire - OA_name: optmix1 #obligatoire, nom du schéma - OA_defaultLanguage: fr - OA_title: - OA_i18n: # nom de l'application affichée dans l'ihm - fr: "Système d'information du dispositif OPTmix - version 1.0.2" - en: "Information system of OPTmix platform - version 1.0.2" - OA_description: - OA_i18n: # description de l'application utilisée dans l'ihm - fr: "Le système d'information du dispositif OPTmix est basée sur la solution OpenADOM développée par INRAE" - en: "The Information System of OPTmix platform is based on the OpenADOM software developped by INRAE" - OA_version: 1.0.2 #obligatoire, version de l'application créée avec OpenADOM +OA_additionalFiles: + site_info: # identificateur du formulaire de fichier additionnel + OA_i18n: + OA_title: # titre du formulaire + fr: "Information relatives aux sites" + en: "Site informations" + OA_description: # description du formulaire + fr: "Ces fichiers additionnels sont dédiés à la description des sites pour compléter les informations déjà fournies dans la base de données." + en: "These additional files are dedicated to site descriptions, to complement the information already provided in the database." + OA_format: # ce mot réservé est-il bien choisi ? Est ce que OA_inputFields serait plus explicite apr ex ? + site: # construira une liste déroulante contenant les différents sites enregistrés dans le référentiel des sites. + OA_i18n: + OA_title: # titre de ce champ du formulaire + fr: "Choisir un site" + en: "Select a site" + OA_description: # description de ce champ du formulaire + fr: "Choisissez le site parmi la liste des sites existants pour lequel vous souhaitez ajouter ce fichier d'informations additionelles" + en: "Choose the site from the list of existing sites for which you wish to add this additional information file" + OA_required: true + OA_checker: + OA_name: OA_reference + OA_params: + OA_reference: + OA_name: sites ```` + +**le formulaire de demande droits** + +Cette fonctionalité n'est pas encore implémentée, à revoir si besoin lorsque le dev démarrera. +Un titre et une description sont possibles d'une part pour le formulaire lui même et d'autre part pour chaque champ qui le compose. + + +````yaml +OA_rightsRequest: + OA_i18n: + OA_title: + fr: "Formulaire de demande d’accès à des données non publiques" + en: "Request form for access to non-public data" + OA_description: + fr: "Si vous êtes intéressé par des données non publiques, vous pouvez remplir ce formulaire afin de demandes des accès. Le gestionnaire sera averti par mail. Veuillez à bien compléter les champs pour faciliter le traitement de votre demande." + en: "If you are interested in non-public data, please fill in this form to request access. The administrator will be notified by e-mail. Please complete all fields to facilitate the processing of your request." + OA_format: # ce mot réservé est-il bien choisi ? Est ce que OA_inputFields serait plus explicite apr ex ? + organization: # champ texte du formulaire + OA_i18n: + OA_title: # titre de ce champ du formulaire + fr: "Nom de votre organisation" + en: "Name of your organization" + OA_required: false + OA_name: OA_reference + OA_params: + OA_reference: + OA_name: sites + ```` + + + ### 2.2. éléments dépendants des référentiels et types de données d'un SI -#### 2.2.1 éléments décrivant la structure du modèle de données +#### 2.2.1 stratégie de dépôt/versionnement + +**sans versionnement** + +Il n'y a pas dinternationalisation dans le fichier de configuration. Dans ce cas, seul un bouton, éventuellement avec un texte générique (pour tous les SI) existent. L'internationalisation du texte est en dur, en dehors du fichier de configuration. + +**avec versionnement** + +Il n'y a pas nécessité de définir un titre et une description à cette fonctionnalité. Le message peut être générique pour tous les SI et internationalisable (ex:"Veuillez sélectionner les éléments attendus pour identifier le jeu de données correspondant à votre fichier et afficher les éventuelles différentes versions existantes") + +En revanche, quand il n'y a pas de file pattern et que les éléments identifiant ce que l'on a appelé un "jeu de données" dans la documentation dédiée à cette question peuvent bénéficier d'un titre et d'une description personalisée et internatonalisée dans le fichier de configuration. A noter que les sections OA_exportHeader optionelles dans cette section sont identiques à celles présentées plus haut et peuvent donc aussi contenir un titre et une description internationalisés. + +```yaml + + OA_submission: + OA_strategy: OA_VERSIONING + OA_submissionScope: + OA_referenceScopes: + - OA_component: projet + OA_reference: projet + OA_i18n: + OA_title: + fr: "projet" + en: "project" + OA_description: + fr: "Choisir un projet..." + en: "Choose a project..." + OA_exportHeader: #si doit être stocké en base + OA_i18n: + OA_title: + fr: "projet" + en: "project" + OA_description: + fr: "Nom codique du projet" + en: "Project code name" + OA_description: + - OA_component: chemin + OA_reference: sites + OA_i18n: + OA_title: + fr: "site" + en: "site" + OA_description: + fr: "Choisir un site..." + en: "Choose a site..." + OA_exportHeader: + OA_i18n: + OA_title: + fr: "site" + en: "site" + OA_description: + fr: "Nom codique du site" + en: "Site code name" + OA_timeScope: + OA_component: date +```` + +#### 2.2.2 éléments décrivant la structure du modèle de données Certains éléments décrivant la structure du modèle de données dans le fichier de configuration peuvent être traduits tels que les types de données et leurs composants. -Le nom d'une donnée au sens large, référentiel (`__REFERENCE__`) ou autre (`__DATA__`), correspond implicitement à son identificateur dans le yaml. C'est par défaut cet identificateur qui est utilisé dans l'interface là où le référentiel est nommé. Cet identificateur devrait suivre la convention de nommage définie pour OpenADOM (ex : `tr_variable_var`). Cette convention n'est pas forcément ce que l'on veut voir dans l'ihm, car peu explicite pour l'utilisateur final. Une internationalisation est donc possible avec *OA\_i18n* comme suit: +Le nom d'une donnée au sens large, référentiel (`__REFERENCE__`) ou autre (`__DATA__`), correspond implicitement à son identificateur dans le yaml. C'est par défaut cet identificateur qui est utilisé dans l'interface là où le référentiel est nommé. Cet identificateur devrait suivre la convention de nommage définie pour OpenADOM (ex : `tr_variable_var`). Cette convention n'est pas forcément ce que l'on veut voir dans l'ihm, car peu explicite pour l'utilisateur final. Une internationalisation est donc possible avec *OA\_i18n* pour à la fois un titre et une description comme suit: ```yaml OA_data: tr_mode_peche_mpe: OA_tags: [ référence, espèces ] OA_i18n: - fr: "Mode de pêche" - en: "Fishing mode" + OA_title: + fr: "Mode de pêche" + en: "Fishing mode" + OA_description: + fr: "Mode de pêche (casier, filet, hameçon, ...)" + en: "Fishing method (trap, net, hook, etc.)" ``` -Voici un exemple du nom des référentiels ainsi affichés dans l'ihm : - +Dans l'IHM, le titre d'un référentiel ou d'un type de données est affiché d'emblée. Sa description est affichée au clic sous le titre sur un lien "voir descrition"/"see description" ou un icône correspondant. +Voici un exemple d'afichage dans l'ihm [METTRE A JOUR la copie d'écran quand développé et déployé]: -**Note:** une section dédiée à la description d'une donnée sera bientôt créée et sera elle aussi internationalisable. L'ajout des sections `OA_title` et `OA_description`, comme précédemment pour la section `OA_aplication` a été acté et est traduit dans le yaml comme illustré dans l'extrait de yaml ci-dessous : + -```yaml - tr_plot_type_pty: #plot_type.csv (= type de placette) - OA_title: - OA_i18n: - fr: "Liste des types de parcelles expérimentales" - en: "List of experimental plot types" - OA_description: - OA_i18n: - fr: "Ce référentiel décrit les différents types de parcelles exéprimentales du dispositif OPTmix (placette, bloc, ...)" - en: "This repository describes the different types of OPTmix experimental plots (plot, block, etc.)." -``` -D'autres élements peuvent contenir des sections d'internationalisation s'appuyant sur le modèle de données su SI tels que : +D'autres élements peuvent contenir des sections d'internationalisation s'appuyant sur le modèle de données du SI tels que : * les formulaires de demande d'accès aux données * les éléments de choix de contexte dans le cas de dépôt versionnés **à compléter et détailler** @@ -126,22 +224,28 @@ Les noms des composants définis pour les données peuvent être fournis dans l' * OA_dynamicComponents **(à vérifier)** * OA_patternComponents -Voici un exemple pour quelques types de composants : +Afin de reprendre les sections OA_title et OA_description déjà utilisée par d'autres élements, celles-ci sont utilisables pour les composants. Nénamoins la déclaration OA_exportHeader n'est pas suivie de OA_i18n ; OA_exportHeader est considéré comme équivalement à une section OA_i18n dans le code java, comme illustré ci-dessous : ```yaml OA_basicComponents: tel_hour: OA_importHeader: "Heure" - OA_exportHeader: - OA_i18n: + OA_exportHeader: #équivalement à OA_i18n mais déclaré OA_exportHeader plutôt que OA_i18n (même fonctionnement dans le cede java) + OA_title: fr: "Heure" - en: "Hour" + en: "Hour" + OA_description: + fr: "Heure de prise de la mesure" + en: "Hour of data acquisition" OA_constantComponents: tel_site: OA_exportHeader: - OA_i18n: - fr: "plateforme (site)" - en: "platform (site)" + OA_title: + fr: "plateforme" + en: "platform" + OA_description: + fr: "Nom codique de la plateforme" + en: "Codename of the platform" OA_importHeaderTarget: OA_rowNumber: 2 OA_columnNumber: 2 @@ -151,25 +255,33 @@ Voici un exemple pour quelques types de composants : OA_expression: > return datum.tel_pixel_count_10m; OA_exportHeader: - OA_i18n: + OA_title: fr: "nombre de pixels" en: "pixel count" + OA_description: + fr: "nombre de pixels retenus pour la zone à la résolution utilisée" + en: "number of pixels selected for the area at the resolution used" OA_patternComponents: tel_value: OA_patternForComponents: "(.*)" OA_exportHeader: - OA_i18n: + OA_title: fr: "valeur" en: "value" + OA_description: + fr: "valeur de la variable" + en: "value of the variable" OA_components: - tel_variable: OA_exportHeader: - OA_i18n: + OA_title: fr: "index de télédétection" en: "remote sensing index" + # OA_description: optionnel + ``` -#### 2.2.2 l'internationalisation de valeurs de données de référentiels et types de données +#### 2.2.3 l'internationalisation de valeurs de données de référentiels et types de données Cette section couvre deux besoins: @@ -191,15 +303,17 @@ Exemple dans cet extrait d'un yaml : OA_importHeader: plot_type_label_fr OA_tags: [__ORDER_2__] OA_exportHeader: - fr: "libellé" - en: "label" + OA_title: + fr: "libellé" + en: "label" OA_langRestriction: [fr,it] pty_label_en: OA_importHeader: plot_type_label_en OA_tags: [__ORDER_3__] OA_exportHeader: - fr: "libellé" - en: "label" + OA_title: + fr: "libellé" + en: "label" OA_langRestriction: [en,es] ```` @@ -215,12 +329,11 @@ Lorsqu'un affichage de données, référentiels ou data, ou une extraction conti ````yaml tr_site_sit: #site.csv (= dispositif dans OPTmix) - OA_title: - OA_i18n: + OA_i18n: + OA_title: fr: "Liste des sites" en: "List of sites" - OA_description: - OA_i18n: + OA_description: fr: "Liste des sites d'OPTmix et leurs caractéristiques principales" en: "List of OPTmix sites and their main characteristics" OA_tags: @@ -255,8 +368,8 @@ Pour illustrer le résultat de l'utilisation de la surcharge de la clé naturell ````yaml t_plot_management_plom: #travaux.csv - OA_title: - OA_i18n: + OA_i18n: + OA_title: fr: "Travaux effectués sur les parcelles expérimentales" en: "Management actions carried out on the experimental plots" OA_tags: @@ -295,7 +408,7 @@ Aperçu du résultat pour l'affichage et l'extraction des données des travaux : **Note:** la surcharge de la clé naturelle d'un référentiel ou d'un type de données n'est pas appliquée pour l'affichage ou l'extraction directe du dit référentiel ou type de données. C'est bien la valeur de la clé naturelle non surchargée qui est alors fournie. -## 3. Résolution de la langue à afficher dans l'ihm. +**3. Résolution de la langue à afficher dans l'ihm.** On distingue dans l'ordre: -- GitLab From 80bbf8a9a20b79a99d93a8317c3e0b834028bd66 Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Wed, 16 Oct 2024 21:56:29 +0200 Subject: [PATCH 09/52] corrections mineures --- .../internationnalisation_i18n.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md index 5bacd94b9..4fca27f5e 100644 --- a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md +++ b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md @@ -212,11 +212,6 @@ Voici un exemple d'afichage dans l'ihm [METTRE A JOUR la copie d'écran quand d  -D'autres élements peuvent contenir des sections d'internationalisation s'appuyant sur le modèle de données du SI tels que : -* les formulaires de demande d'accès aux données -* les éléments de choix de contexte dans le cas de dépôt versionnés -**à compléter et détailler** - Les noms des composants définis pour les données peuvent être fournis dans l'affichage et l'extraction dans plusieurs langues _via_ la section `OA_exportHeader`. Cela correspond aux en-têtes de colonnes en sortie. Tous les types de composants sont concernés : * OA_basicComponents * OA_computedComponents @@ -224,7 +219,7 @@ Les noms des composants définis pour les données peuvent être fournis dans l' * OA_dynamicComponents **(à vérifier)** * OA_patternComponents -Afin de reprendre les sections OA_title et OA_description déjà utilisée par d'autres élements, celles-ci sont utilisables pour les composants. Nénamoins la déclaration OA_exportHeader n'est pas suivie de OA_i18n ; OA_exportHeader est considéré comme équivalement à une section OA_i18n dans le code java, comme illustré ci-dessous : +Afin de reprendre les sections OA_title et OA_description déjà utilisée par d'autres élements, celles-ci sont utilisables pour les composants. Néanmoins la déclaration OA_exportHeader n'est pas suivie de OA_i18n ; OA_exportHeader est considéré comme équivalent à une section OA_i18n dans le code java, comme illustré ci-dessous : ```yaml OA_basicComponents: -- GitLab From 5643fa1b1a6804cd501c1afbc86ce5474227624c Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Wed, 16 Oct 2024 22:01:00 +0200 Subject: [PATCH 10/52] =?UTF-8?q?T=C3=A9l=C3=A9verser=20un=20nouveau=20fic?= =?UTF-8?q?hier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../img/see_details_OA_data.jpg | Bin 0 -> 890214 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.jpg diff --git a/documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.jpg b/documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41d70e9bb3a4a5d3599f5479bb3ec44298a29321 GIT binary patch literal 890214 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	KC>y?g!5p)*{NEOpy+0%Gqi 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≠i>)wH+I>DQP9k-f8#&`hkx)E<N;>PCOLKPyO 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 literal 0 HcmV?d00001 -- GitLab From bdf72595b4a9c8663e180062e88a2afb7a3cce2c Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Wed, 16 Oct 2024 22:03:03 +0200 Subject: [PATCH 11/52] =?UTF-8?q?m=C3=A0j=20image=20de=20rendu=20du=20d?= =?UTF-8?q?=C3=A9tail=20de=20la=20description=20d'une=20ddr=20ou=20data=20?= =?UTF-8?q?type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internationnalisation_i18n.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md index 4fca27f5e..17aa6d112 100644 --- a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md +++ b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md @@ -207,9 +207,9 @@ OA_data: ``` Dans l'IHM, le titre d'un référentiel ou d'un type de données est affiché d'emblée. Sa description est affichée au clic sous le titre sur un lien "voir descrition"/"see description" ou un icône correspondant. -Voici un exemple d'afichage dans l'ihm [METTRE A JOUR la copie d'écran quand développé et déployé]: +Voici une maquette d'un exemple de rendu attendu [METTRE A JOUR la copie d'écran quand développé et déployé]: - + Les noms des composants définis pour les données peuvent être fournis dans l'affichage et l'extraction dans plusieurs langues _via_ la section `OA_exportHeader`. Cela correspond aux en-têtes de colonnes en sortie. Tous les types de composants sont concernés : -- GitLab From b53f025c57c8c5d8389e5b7ddf75cce5d95547d9 Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Wed, 16 Oct 2024 22:06:00 +0200 Subject: [PATCH 12/52] Remplacer see_details_OA_data.jpg --- .../img/see_details_OA_data.jpg | Bin 890214 -> 227509 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.jpg b/documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.jpg index 41d70e9bb3a4a5d3599f5479bb3ec44298a29321..1401a1bcd1397d9cba146459223dc10388271c65 100644 GIT binary patch literal 227509 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%0DmBQ*swIcL2S6+5<&~{2jknd#LSi` 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[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 D^UrN$ literal 890214 zcmeFZ2{_bk`!_z4ge3dkkgcrAR>GvRC5g(;R1y-BJ(?*(_AL}e*>|#L$z)fQEo9#- z`;27_vv{x3eRu2rJ@@n6|Mz(QzvFn1<DN{-<U8NFuJby#>vMk2YwOF_I3!BV!}cZw zqN4*5g+L&CAv6>a$Zqfo{Il1eg5vkr`}R}pf>3V%|6cG*rr%zJt0=f2R6nkV+@s+B z`Pzr#@Nd`bf<SitxPBJ|{Mp6)$7jLk$PZ2M1b6!J@74n3_(dB>7e{9s$2)v7l1CxO zPiyJyCXWd`wqFZvzdZ1nH>5utQnY*K0nO8S+-bztI|$?6ef#(NQ&Jp)>|&&#WTe<? zfIz{$sVKG|+aCjeQS74JO|^%5FAXgnxS;d^WETY`<*wb7R8-`zp|}rz582H~#l$bI zx`$cs8ucM3mSYbiU+on*{koP_zY{GebN#Ll4J{ix2Pc=1u*l&fqOx-G3dc_<o;j<g zuA!-Q?$YHe28Kq)CYCp>Zd%*e-g0(vb#wRdyyyGK&p+UCU{F-_lbG1Jr_bV(Q&Q8? zGcvQXi;7E1%gWzWRMyouG&VK2y#LVE{kf;N?@Rx{_{8MY^w)3SXJ#?WE30eRb=<}# zd0rF{${*7LfB%@-pXS8~=Cy10Zpz)%<atr-awkumaW@se^d2TvJ?d*t%!iIW+{<!0 z^405F8UY!7H0$-dowRI%vg1M+^3=9x_V*^{^M5t7pA-9IUW1S`Kt;$8O7OFrk`k=c zZt$R@rXoM6_fl^^_Wt&u-G0!KAM`&TTi_-X<U3GO?g2maG}JUdfA_avYz+g|58N7n z?4zUr%0$TsfkB90l7qzR6?X+4e!2auSlW+lemhD;v~NLP8J;m)4}eXMERj&wTab<% zO#;J|NJU4d8tc=#-#)Pa9&&?o0X5g9OWX@CU)_Q%%M2p>Qj<0h<olOo6|FMS9!@Ui z&{Jc97%EQ`Y(UJBgD@h!-K%`BM))$Matl(1+~n$gQX@Aj^7@xM@7f+pX&(`x`^QiQ z=13?J@=(;!(#oIwgAV65vFNEm$WQ04El5kJ;}*o?F7o^JO0I8dTad`)QBw63xW3Uv zE){FxV}APgPq4Oo<d9A&z>KyatJnL$JcCeEl+J76TM%^#TkT1UWG`NN7CqyT!^uGq z@>47k-AC{oLiP=9K{i=k<k~&#NJ@*axkV(Awj}%=>GZ6Nte)D<qsc*sA>c`w7)Mfn z44eB1ZZB<4|6^>_L{AjSU+h($sLLwTEEw~T%kz<qu;pD9n~htL6t+s*Z-h%*5I(V_ zT==H6-8mS~eKm<^9eO)N4g^DwY<@Djwgw~lfqRc|Z9&41pyp=(Vkk+-4X*23kOKBC zNT(0D|0qfQDQXUU+v?SPpOUQZ4(-gJx35@Y0a9dgT%Q0J2a|7pWD61@IJ&ewxRNx? zEA5-VOcavuRS#Qch$hwC1Y-V37K}AXbs5>$HoD1~CxC`URKEB{klzwW>ZxEfd$vcz z^{2O88M>;Huhdu!EP>iQ0J6{nvam&t29wvtg|!`*LOKQ38O2TtG3knHdW2Q{sb1SE z1{*KfphgkBb%4sme-}#vi{?8@su3oS%@+EQ;P?4ESk1O;YAhEiz>``9Iduz;r%obr ziM`DC22=lx!ZN@%WertLbTeK??34?#g?|e&mkZnE+Ey3X)PXI?S}zpn@;Nvc^Ox^7 zJMK$iw(gId;y}(-11aSDS1j!Vw?4WB>GMRb%9u2dA*DW>Um$C*|4;25U6E(NQ$xW( zfN79!)^0(rP6CBcbCFBCkm#fOhe)b{Iq;=yLCjzM(Cc=OB$BEIsp<@vauAS-A5fQ_ z77Em5AF@S?H26a%c8Ta_g3lIYp@h6Z?C(hM%s;OX>Z{!r<PDP4Lmv4?{1#*px&<k< z`=Pf#<qgakxk0rB8T3GItM~}8%Lq8JJYWlQhBXfwN;6MZlpDWW1W=SZ;2db+n{x^z zf3p4We5;0r#m#CDZ`<6HpE8*wse_4L#Q-_zfW;5r;0h=DHj_f-It*eI@6k~GZlGdG z7zKi_A*rgKECaCYJKt`LB+Tb`!zbSy7(bkJ3f#6&3%M#!o+TYvpM$W?87Y!~PcjbL zy2gI#6>yBwek^*Yz}KAO*(B=*Snx5_=FvV?vtQqu^vrxe3@$a^_rq0?zkU+v_|xAc z1Jp0V8@aZ^0IdICDa#hbZwoR-$ADknf_!hv_o>)|kO#yDU7rS45^B<nbL>GR&$@uI z|CA?XqV5J4*^pSlCH}zOMU&LCU~`Sg)oWzO+ufnJbEV)oOaQ6oCD520Ao&IqW|Dz; zUlmBp;7N__|8%@`$d>&K>uKaKC;I?4Fn%8Bk~UZet`a!q26-%CZFhLPaFY5n<lK80 z`O7Q5gUQ&&k*cGC(Q<vaJNH7F>cCH7I*$kfcXb?iP6i?^7<RSR7UbX^;8&rWtibV} zj%_~kQ`fg$K(!dqcW%dA)TT6f>~*MRin7ht--fdGQ+u~M{t0FOgtC7^**~FdN7nZ3 zpHTKsDEogely&|S%Kiyu|AexCLfJo|?4MoPAIRMQi@UNe5Xvf+a2gU@kZ-f=B!DA8 z(P5@rkoKM>;uho<X5-q>$Pxhl%+?74v0IRpHLooQav*%?2Y3n>+3$z>2Yo}0^OSEv zl5$4zq|eB@69DRi8KTySnbQGxs^-balQT(q5nwb}0EGQ=2TPlHL4~73GG^w&ty!0* zo@VmvUYgZ)Hc^+Jz8CH8T>0-t*dELK0o+~IP<acocN#??T5Lf^u>~rafY2Id0_^kZ zTlVII@<ko4yti(Ycjw8`8=UkC&Jwf_Iu!avW><scsU}U%uknv8+R?0|mR~Xfw!_$p z+}L~zK&%Bb`+U?G-4f5Jw@e8}Kxg8Ge4T{;(mCxShik<z$^`S@j2jm!t6z?w++`^4 zMWS&3GM@o3&BQ^{Td;@j@N<!?(@s8JxypvJsT}BC#D_F{@IQE`lGrm{LyId$uQ#LE zy*<&UXWsPsqtF-^Y>(gz9}{h23VVE#^_}@eOAcd&<ZI!rZ*GK&>@6w%F4(_n&)U9I zuv?HvcSlKx0^}0jz`Jnq%Bbb5e<!LF*M=nVyZ|o{1$Y5fAF&t=viH}8@CZ2T->32B zg{0*3^!8Y-;3KV>Q|>t#9L{-X2g{mW)jYQ#L8<6=pK7^m4^$&p>8GSrn=)tksJZr? zTK@9#)5|9&MQ9l)qda)}K8+S>EKs~e^dcyFRrqY;FBFf@Da)8wbf$zYub%It+jp_8 zc#qn}v?$l1B>AS6ef9AcpXA@x&EtjtQj@YhuMN5XZB@%h%`N|HO*12F+TgR_G;Pr< zzLaD6tyWdVu-?B>a}Dv6G423H{6#}Fc3MT4kvm-tfJdB1cbX7vhgICIe`AiNK~C8K zJ1IB;Bja-3uO{0=ljy4{FiY=HyIj5AUO+N=%#KWG%avJ0+UxVphu@v<={gZFqKVC! zelm5Kvmj-Mo%N(na*GvRvi>(;+LQEm2mTAl{)-!E!t4*E&yQ4^adMe<^Da7Xe8F5p z0JB3c{&LDaz&o7$8$wa!5=-2n&Hz^a!<bWIdFy}=>Qf#sz^%Lik^}hLs^|{6_5{EB z9x*g{e!<Bl!9nP}V52InQ#4rCPIaYli@K_sX7|5d6S8>1{wp4i2|$9Kzt<4**>so~ z3mWaP!FhSN+N(aDT;|wk-91o-{6ibS+VRSLKX?1zsZ{ZFz}<Xcvwvy#dae7%fmYfj zVRQ)(@)56*-x~qw_=j6icr2@F@AB-Mc5sHM<;IPtMb9h4G$u{-Lp*!mYDK$QyZ(F0 z{C6~75x|IY07kro>;o9>ChIS{HLk>-g@ZLJaE(MKd-#YgoH<ovr>x)mVM8$X!_AFI zNrBTQ3Rd6tQ5;tZ;5ytKIrqiTUHR@`x`-SVBX{1v=Li3TObvl6PnX)nAc-8H_Q1NT zxd+8tFd$i$pniYEX*6QY5;$_;LH|(GoadJ5Z)tR1{Pkj8zFS{m`1kx*2I*8Za=VPO zQ_n*u=$W|9MU8tWW<Hcy-i~IoFxSv+%8v?HEEd-3f6?=oQ~JB#{HHLQvLhG*|K|q; z`)fVvmz8YlDA9DdJ)-`m^0Y|IooH657~}JMn?0F77VXR8ufg>f*9lC#`M=^^LD?!2 z!0fdsP(1U0W6%j|LXRFwAUa)31~?Twn-T60Lq`%vN`G0nJQ0qWg46#kCki4YY>HkA zkNLAH%A=Cc*rjV78!|t^z|jEK&TM~DsJYNV*PFt_Whb-$+W&zB%4rz;H$3Fu$kKr8 zq(`=ZTxo8?k+`pGM>dheeY%ssqS%vbVrFmrmAdnny>m5m;U+(Q=zs7Of7ge873!45 zSsYGBRfK-K9w}xPapP)QP^R*Q9udkyky20t`@^7sQfxsWRr8?48JUHgKZsnl$@h74 zDH+s7Xm$+{ljj`2v?WweqExPO49_ggS@4aru)zij5g)q-%pO~z4`7~~WY*mMs+w6E zY$|*5D7(!F)ZIeb<Q$`0->W0Vv+;i|@m!Gh=KQUw^{tv*0R=U+{6bJ0vin7;UzZYr zwaTTN250b3a(D(yNmA=h8)|91Fb*uY51ai<AC?UgwZD_*{7qxs2U{BfYu&k1w7K@w zXZ^o6eCT7>^zJvLk=9#&&8vLhPBU{^*^71&&->S&gq&#pR|0w=vh53Oo`<}s{%>^W zHId_o*ph522eAUeOUIYmpM^NAV%PEtcJ4IH$N^LEKX`YLg>46b8jg-Fh+Vr+q98Hj z1~IneWS+x{#bb+8u9{Pq(qE|82`7I22uG|4>ZL5%C!EPT|1BQRy~Ew<bO#NSc2$u> z*DnR#Up-!535c#MqQInA1i%XKH`<?A6XTMy-!(IJ_}RZrC#_rePn-YQs10kO=!@-v zD$+PLbikQT61$z@J?r3VuL)BI`kD1a&(T}ai=I}Oe0`S%y&edieP(g$P|Ag4Zs!f} zhj#{vO%!~Io7i8DDaIl?31=pQTk9u=xn|evNBD`@E?3@Tm$*+-L8zkyc)}nM86Kyg z&F&rZJ$Et4?KU$APQR3+e+fP>zefz)lI+aP`B!e32{vkcXmD9u%hn4Q=qsNUtNLGv zK3BIO&k9K6TM)cKCD%CeHQBib%x^1=l#Kgx_it@Y3irJ3^|tTK%1g*$d3VD9*dp$X zZN|&>Z-CbSb>#j%%}T_;wu|%CuuYDgH!vE&2GW;4h;fj7zVTY};Pv{iR~7GV8a#R8 z+4D5P?catzkmCLKy!&>cTnIUr3&;b%j&DyOeed(4(#9_6G1W&;v(XJMB-i8+&x3DK z`ljw0|G~NcchW!>WXosZ#$l_rz>VuA140B1O(|Zjcl0$4IW&9MNmq3b_WsWl`9E1a zfB^np@?f?F2}DhCq1HyA#C`g|#6I&*zOvU$d5zskibC~mM&51Iy6|&dPb@#>zK?eM zcftAZhl;-rH-Bt!kQ<cEfI1=scILl=ES5H0g6t;O&jW|8-6GA?Xc!=nW}-KB4@*=7 zq2mAlSaQvfqz=H10;+8`1MRqaAOk^=p1i$DZqp)fZ_Ix9>!h9j+E!n>+u~6=;DP-W zHbhR>MgQLJt73^6*`fm5+yKG$49lMukH4%~i)~`&ef*Eb+v7Ah^S>Ktkz}?ERRD1V zxoY{VW}WKftL&P1kuMohthv2#*SgVpOusqJdH2h|0#`eY_V0S7{{%_AOInr#EDj4m z)JUNRpj3V!4Th4OKiQNRlMPQh66D0c?q%{s)fMeJp7j4);O}3Cuz$UCpZJ5|lDTtx zDqod+#@?12*j==ecEHoZjRel-f;8K6(%%fO+y8I6%|8e=zou~2u;eqYX=*1y(7PEu z9d<qY==^c0-~XoNUERsud2_jwUy%??1{5W(tZ%Pf$flRUuK_RXzqy@R4}?vAV%Ws{ zZb44(R8FITuYpvhC6eXrx|I`xz-2-{hCG}-$yIqyX}0Z|g5|#jZ9$IqH?96JJ;xuY zvLWe|{HQUoyI)i<*OB3Sgt_g33&3L<y<cvYzQW<g!%$a3PFJ#t{|W5-q1v#m?*CNj zT?)`->$`!bnj+&GWCr7-bw$wvcX!)sc5-Wk&OuXC^{$Vyp9I2=cQ{zPUEh`cKud6p z7R|tj=s`i0<j_&@F!n_0!lb%g#tV5%5>G#@$GI(HN=r+O7{nVp9=x=)8PN>?R#1;T zNN^@*!p1U?2ZV6iXh+?odgy-pY4x|EsW-~C?~e*Ky>@vJVCmC2&>YjUVW577?@sb` z&EpFiJ;;&*0?VjDpVE01YEomo9j>@hF(kdk!-w11^}y39#*9;{%rR35fz%N%+2{^= zPj(=!;5ZS!4kcBFX2*dlz365nQ+~SkYDx7QyH*{=u>&pLnhnJK38j73>x_|)7)mW_ za)>cVOSm7jD9*pJz|Y=4Yr?DLiX5DAxCwQ;Qi&~$Kb8%P_cst!8e_M<R$22VJLYnn z#8K@WT0$r>oS?5{y9J@5C1#Z71gr>`c(^=%x@J_86J8i|aP)g?k`p}t3SkSf1*w&( z)*+_h-MsIr-ya>6AHb$WAu!>l0c#CYomyT+SJyQb!F50B%>}It{p?rph6EN3Y+||F zMymW5>aH%UfYl+fHI*Ht=t<rAw^^aoB-$!W`>6{16yxqv`A}VhCuT-w1*FrGxBBXc zu#2;ZLBQGkaM7?esm!_=5bgTAv2GaM2I9U`1H;*-{WC}IR!!Os_D8W?f5!dj+{Ytk zV~?6k?`yz=wjgK|Bv%51ACdvVTQ4lwCpY)vN~f;G!8pgM2dCyuRu7zv!R8%qj<=Q8 z>W98cdW~wbcLe0b`QfqAphOY2Nt2$dl>vHeS<?*;xAW6WZ_-4Uw=q(`JI?*)-Ma!W zj3MEHBx)gv<X^fGyan0qfq`NB=8H4G>#N*A11Mr?Ax5T)`>{m+Wg=ZG-=;78CaD+B z<pO^Iqo~%w2pAp_>~#|4vd?*bzgX{C-C&*cd#W1iW-+cRx18xxJIM)DCE^kgy#?$R zO7bMK-?7#(Nj6bEWupJOLvTY`EcHQ@L_<pVhi|d0n~dP=zvJAuAheTM6*SfJPEYrH z3#p0x6~}9xvs=3BG_hqih9pY(hd|$^EeIz`#Mo@k`Q!Zw=wrnRzN)8I`HphjuNdzf z|FDsN*?vQnN@JK0=`gS-@Y;AD-39d57-)=Dnu)5_?WAG<VK!NK?Pc2D>dSmD{dmnk z-a4H8rWNoh0VBEk1OOWQ;A<Pdk*|3Go6)XdlaK`b7ogKNtSfT;PI$k3x0QuaX{EB6 z=a%{K<11J6qO_DC)R*)PKfubN4M$Ws5bsBs2$vkCqFpw{<IQt?1B}<KO<8ViL2UQo zo70C@Stj!5_YqWxNi|1q!Ai;rtQu;#Xu)uy&`$+9+UYsg2W(9o65Pt{!pDV=ca$C7 z7uK95M^xxrkp_}_jt((|l|HS$Or@ke=2=Q9sj|8m-hYaENNDiz8V$T#+2wj}YSjE$ zc`&Vt;NRwUg-o?f%0&X^IRN4SL7$>x6Xc62Y=HS)pr;Iqa61V1fJOTU2cFF2Btx+7 z(6x0S854~$B)_X7*D^dfi5J1>P2DkpVQ)mS7<=6PG#+Fc?6YiUc5L#F&j@RjXONGA zr_JD9nULPTM#n%4Zk#fDvH`|iZGI$J3q2iDUcAt>LAy_b$=X-2i#3#DcAg5MPHKSD zIKXbBI6V@ut;7sjJd#P(-AgiNT$%b}h}n!=EcV;6W2P<p?y6BZ3iEwXjnEeG<=?+o zRd!n9VNC!asMf&-wjkKsxS8xw>TzVa?1JePtDE7vF(QT4PxypFE?TJVF0zM2zc!_e zZoDr7e}F<?Zhr`;M^N+=lyJjnjk6_ag~us<1H+?dLX7LW)Sv@-UyTGB^xo4o+|e_< z<Cx&K2j-;0h0DdQjJNxF-)Rw0In*h;a5<USgSW4C9`mAKomCY~<9#a9`J$A}9RAU+ zz_7W3B<>?OQlOS)0S;vWikyJaOy<z;t|T*zw;K`w!TBc|zs(jVllE!9&26*d!<(Uc zfTRz&!hi5{r=Ww;lM74pOL%2FggAO-vXQGg(#C@KV$~@A9R7|m>m7GlM)ByweEv6R z)#<%KeRg*VS~3gWH-TKB9}B&;X|AE)mG3QdFvVGBBU~~Wee0Nov~$!b$_)~w1!2<q znnBDjwZz1cXz9^(Soe@;C8&MpYmW4Q4Rq|?3yD_aVS1zXrH`9SruOT&CZR9bYkDM1 zDlF(sawOcZNt?_Ze^|wlm;U*zH=txIn9QB~Y_deU0Uv=G0#f~yIGI#Ue*W6IP_YhR zyPp91pL;62Ku^W)1R@UgTXzR?ibi1@GR-^UZKL1+qbFenO!Tp#TN0~myT1X6wJ(4C zZC6^4q_+ldQ7BW3K#_){L~G?@MdXu-!#&R~=P;H;DT@Xjc>p>M9*C{jVc!yq<xu@> zE8~HsowwJ_nHwv6v*YKZH`2e-(NUK&U{8f*3tLr)(*?kz9YzxbR%1~~x;XLDcchOv z<y(pgNo+01J>3veX?H+SOgE|g(1qqzDl0GB%>LR;qjS-N=4YeNh+E&);(2haC~^GZ zZs@sUxHPG8<WNE*yeOdVg~h}faTGdu1{*dtRczEGp(RowEUD`ZzhI~o^8#3Orpeb~ z5pBa5Hrp%D1jH$e(iIN8)#T(9NLS+%-fmHG+~A5PRdWNDHtl!2#9!Y14}H@hJOp%b zgcOmZw8IcK5xzmGO(JY}sBAYsfaUqwR6$|31@T8s9RzH744LZxG9OtFUuHmV;u65l zN-h;az07{;<qtx*fk>e1oD`jh^A(Irs*`Q1u^D`bvFT7*Xd05>ssjO@!vlxO^9HpN zpG0q2^!^wp5rP1Wo?x6Yb0GEh*}J#&kG&=2g-=rH)G(+$n&eJ^p;!rth=zMH-x^Q@ z>*HZ*S+JzsSqnJ~`{T7;Dl5>!w680p2XEY+R9;zv_wu?-Tu=UNc%5%4t37FhD~?qA z4M-yhCxvyqiEG81ds`7x7Eqq!!+YqE{)yagc+$FT7t6VxKOW|Sm5M&GYPtF?aX+F0 zmo&b_;!&>AN01uJyW?SJ)>930vbM^3s#E(q%DVrX__ax)4yKEX+@{peuYM;$aaYFS zK5%*$2EP%yM~!JVY{8D)@=EWg1*^M1s8ht+8mHbpKGe*?!OCQ-@u?o@+~M4Fzj<ho zgZ_aAlezhaL9HDi9eqZ~RXMV5>w+5nj>ZKl=MheD#WesRuOPqQB)e%DaEp2X0(=D^ zz(+ffQlj*Lr#_rqwB4lzl$)Y`2XqQLKoY2lzTu=$){frot_u&Tg)<oAn!Tj<nv=LB z%3Sw&$w=wKo3(nGW|5B85%<DNS`TVCS**dMk!Yg=4((TnwtKq%5<@w-ghsYI=PR1# z?2cPkIOYp$+N2${O{MRL9`&ZixjUlgCK={0T`PIv*idO0RBf4ScA{-vW-eArQ7M(s z7&|NwE|L_T=nU`RMVzePrx;FPr5@LKxH^A7Y22_LR;<mnGTkZ>+UC89m|cdz7)*$d zbMhCvSx$qEJ#ddePJK2zI#qxm^8tYS{d#g-Q^4;nGbj$&SauB`UZGL9zxcGlhDKn% z98FyL;$lfd$QER>%W$5EghA1Up||@H9jHAWW$Zey@$TJ-mld#$J>~T|ADJb>t5H`s z*mW^|3)15!k+Hq?6C<y^SS%Ma1~C!TS9kLvSU1JsaY*z9iOU{2P0*60Fo{pVD^Iw+ z#I}EFDv-&T=E;I*#>mx3H(v#{Fz7NJXp!swZRtQ@=R@J`fmPW`fpxq1=QfO;_~lOS zGr1o`^QVoPtp|b*4fZXF{Wwqo&>FYhLWIPUQ7eNI#Bco|5p~<lqxPOsdok5+$<nuX zm+4`;ul*J!^A}T%uKI8^eT&lK@l(4<BNzcGXx0sZqm8Bf5eG2ZHZYoMe&@+xI%7Ap z**<nuzd^VCamS)pKAya~){&Oqk|TW$Y40Z0JsL1gDt0CJ;-~`X!2BjzADy6-HPRlJ zCYS1lsVAC!+Je*V3T1sb(IRDuA~xwh7gIwq=R#6_{hP)kRP#r7v=H6O{mga0Z&svo zTa^$0j2X>@Pz_QoNO;xB{b0~#IVhewoXBPOayw!GtNN`u5jNqtv8RCOPDX!N$u4fk z+cc?AT2o%o2lPunAd2u1+%`W7D3Lwc5`jP?l#pv(a3VcuPXzr;k{Q3WvYc2W*O@?N ztd`uP<5ThL+tQpLEjvG~5HwdgZcu~N3x1TWqhzxMr7J!h`1DuuD(&dn$*~yepDA;m zReaPrXfn{SqAQ!rbUZnP&E4%dZT8D3UC5Pq!XWUUS>9%qI7__fEt7*WCw%oV!>b2* z4bB9ZYO#K+hAmc0bC?d8WNO5pJLJ%^{80cKP0UB$PU4!wjuugVAK8O*9M4IAts>R8 zfaq39yHlNX=*XcLdoBksdK#Y<wTd+Ep_tf$geIXcBKuik<D$69l<zPO73kU8QeMmY z&ii1SqWkzcd!&FrYp90)M+eO6p3A~DUx^Vl97Y5_Vmt}zA>2#l<58k*I(&wbYK?A{ zUEzFl7I8J?W#Z`viV*5fL;2pmvabG-v(dGRvigmp0a}broW>W<h*A15>^8_xy;NjE z+Z^M~h?_)z!#+aOCp9?wn?#_xCAETVhCJQn-49bljeHf4=E-_<<3`RdPHh3PgDX2g zHNy$ie55^e9;^zLD6Rmnh|`LfqMmb$vZ&3-VP-8!-YX|&pVGD0!Rmp#sJhl6)G3&4 z`+%Vq5wO;*b4DM_h#Q(rw?)m2KntH>oHN@#T`b(q%p%HVd`JC?n-6Df{^j}ja8ty~ zB<E5b25;icKzzXkoP%)L$NXCmZeD6_zk*WJh~`@{<>8BB2Tqsd1~nW=jSO0b?nc(C zAs`+pjlCAs81sxk63?xH6j9rmNqfN=J@euNEP^@WoiDH7*_Ru1Vb9%DN{;iac$s0G zWBn+)3&pi=H_EQUpV^ZyN3V7^dM4KJ78ke28HS-24C}E4y4RYIAX&csU;}o}n}583 z1<{;%@@-%4SmL+SK7;z*4uTi0N-MQ9FS+Q1WJPkO+`d13o&I#liHco|eJbeWnhQif zf@7}t8DbQI6PE#hw&*z3`SD5j2W_n*-PW=1&A%+S%|XPQqqIb#;YPj34D4Az8(u24 z(yw@7y9gmvAK3>~<a@n2z3rupm&req*I#<oKw7*Wh@5PKZf^RLcU%85+U@LBBbyB% z9`YTBjl=;5AZJrUy-Za5{M}|pwnD88C4?RW!66Ds{(9$55G%T+h@K*(5V`GuN6Y`S zAMKZBHL}}`CMk^p(E1H*RrE)j;h#51Kd~e7*!_@Gl=f@Ck7V|@uv^Tz_4&^z5K3ta zavL>(8egAZLpwHF@K*OIcuY26P4Z%W(@hSnJGHuU*TqGJgp2MqTO9f#c{zIz-((Q6 z0ydU%kd^qteo2ML`<R#G0dGwg=?^qa{Wb{!46eR`l1J~xj$zhQ-whOOXrnE$Lbyh} z9!|FzTGH2KZa^A%UlM9~xjUnBqm<WOFQ`|G?}i~q(8n8eEA|u}y8}-XX8P3Q^}Z%H zXwAKvM7<85e+_JYkfF)C_887@wSXF@DS=I2l8(~$Sb|fD+dqw2$=_#WdzA6C|NVwT z3Tu|=a3HMu_J=ili*WbR?V16aUE=<386V{u8Xzk}=Mc6xz3D$SD?{oYP_IOTEeHZr zKoCHc%8mL>M<2iy)VpH?Igisj*<dULykdelH9F!+FEblIm<_$%MRy7$JrRWkUoA;A zX;~_fc%(<bg{KSm)w>&d&ogk^EVA8&E$>0nlAg_NXyR-qm-dl9!qED8?v02ORf>)Q zB@7(6vVqMpHNi%E2ZPPMPc@jTL!$+6@5)jZ%h_MRDRoGwgOrv59QaT6C4v#>dkMA= zHC7_ux2zCnJz*LwW_FMgkXpan-b&em>_Th2Y4magdBa#Cib8hjKxz#Q8WmWr$sahe za`3n~e?)A{VGCoSCTh&tbd)H{Hhf^Eehb0{+{zwOrv-gSfj121KiQc$(KTx{?Oxp_ zb>odOlO~$B<fh!zF51K|dA40~SGwx#p?wmpzT-$1oMTfZRa}s_K-PdAmwL*9_%7@R zt3;ZJb;Hw_$IzbOCvSF4mX^RzEJz8ML=jl##@TD{pzOM<r4BxmOuLP+60*>-z!<qP zSn-@%ZytwN_2ACnDIIWlyf?vyn36;k(e6U@?@y5a=7@c?1-bc}4{wVtIsyQ7$1@jf z-OjeYE(WXSpEy~2P!TtSK6B}=q^!h+p2^V4rPqmzAHGMf8L4?=fPa<1wda$%kR@(@ zcxl2h=lj>jLseb6BIU1FV(2>=KP{>wv}INFuEX5woY!>>h{+@Y+#r^fSfL`0Yp*ll zbbMR`t%%c%*Nqj7HaU8JJwcOyU|^G`5Y?c*pOR}8juT#*N0T_wuwa-yLr_O6K0&Mu zjW?hA&>;-SyZS;K!fN#U9CQUfits<_yL`QZm@{|%V6RfuSaUrCgE?@9=LrJn=z2ag z5BG5ap`ec?R{2UNZmtXs9p|A=GCroMfqr&W(QvgM-VP%$F=&5Q;Uje<vDPTq*?k>O zPt><%5LiI)y;ZpIE)iGal%%dw3U>7JLipZ!vu&{D!*8kl-vp8@tTFIO_IlliB<6&s zQI@qib4snp^Tr}VsflJxhkRJ*#k&sB&~O!BWe(Y8x3bwsqSc-#fL51}LSWV?UJv}~ z!2UhCA6)RBv^-FWl=A8`-F}kL9@U9_fQ9HY+YogMK0tBehL2ObU{)`r)cw$|qwKcW zE~(t3rshM@I4u_B3oqR|hQaQ7l@mDMbiyHA#+WXPw=gEL#8|dUipfOQt$g`#dmL4( z`1wy7!^2EDOsq!5R4@T#t(~I@%x{!_bqJ$^@;Y%4J>Uo3lrK%&lP%aV67U=dn!Q@i z$vMYc9p`s1t-LYArmV>FL7|wIDCPI;tB`xN#MOd!C{6@g$Ek9F^eJ&)8R}7ewnz3S zBnv!?Thm@EV$es?-&FR&Q6>L9s56-jRiD0J{BpS9AxRPOMR73+b6Tpu0DH4Tg5ZiV z@Mw$s=*q9dUXOl2r-M9n^yZCyX(<L~4i}AD4CFVKCYqbT!4z2aUL~ptR7lMUbW+$V zoZZ8JRJ|IFeUX}QWGw8WiLrzvtAIP>eo8IE`DdqT8q}k$%%KHO$X(gLpk?H^a|Ohm z-=H+m^1b#i4hTR^ewrlJfDPw%Pj)>V^UVq5d(I#XUiq;{#`KZsPGW9Op2azhwfn}q zG;%j=J{l-X&c36Q{*?7vDA7Rc>j-S%5dxNmDk^_qPvSs)g6&sg+<jf7n{e{#y67Gm zPgjmNmA8?lPU4}sz7-;{J%0>OJZeGjTJn;x1YKSH{lfET!9=eFf5$B2i_oiLoBX&0 zjQjZdJGh@al+oJ@5$_h5W}+^j=PTEi26MG{<P>O&H@n8-6?NKQ;8rAY=z3+KLwgen zCt=vYt(`FHkD?KWx4jK?EXB9P#a@1zmzNHiiaX-80rq2sIF0dy0xH5`G~Bm9eK3@+ ze!$?_(bcF=y@!nuHg+35#Aiw}lW^Q&kp+}HroLG|B#{HXM&RlpSWDSEI@&m;&DdyC z1V8O-8*@DStYzO9Shtnv$h;+mhT$FH{+|~Adgz9S27rM>NR&9rSHlDyT&PEH<%JhF zuILLfnGKt1j;T31a*Ea1G7NJ<AjU!2#S97F{P_E|o*3pj6$)GyI;9CtAJ^QcZ8`o{ z+w>vT+u=69-A*kjc1@qU4vkTZeyS==EgZQRt(D)99^MguIJt0p&+-2Onp;T<Lb8!~ zyjjpO&0#8s?aC_mggdx-_U(>~Jx#-ShG|cft<kR2>bVWOoE~V}!p~Bt=)s>Uf_j5? z1B&rRv>uKDP1&4y0zL20A{TqMJ1_n4oe`~mMOe4THNrUt)-~Pv1-ypMXbD@=#NO`u z%64CZ+Bo-Wx9c#q`6D$~Yo)BO>Z<x@Qu5uRSl^tuNE@4VDa!DAB}}lId2&vK47d<H zaH!m(w;A=0bU1&)5=>Os&)zoUSV21C+QZMU7wx_yaRRZS_duQL+N6ZGvzbRglY-7y z1!Mh@-a)A(&l?f<)es`yM!1YDoGw87*sZT}n0c%l^|=^-rQRcE*cY{Vm4PVBmVD@B zPAO6cSy)i7Rl`JTMNp&d=Y{E2#RoQt9M^i6E;_r4!ti<}HSo?;`5!Q)us4t2>gL;W z#;D%pgB;Tuqqwr<XfHc=VvTMiYNWSUB;GUaY8H=^PuqO+1M&t)6&{J$+bM}0OH~oZ zNHsD9DaNLx6DZI%uT-9mC()Y>z0XK5m&l}7Ny%*S<4Mk<Vqq+d3i@Cf(b~*0YWUhd zso<s0F|n@&05EPwvLHASpAa&brP@}T{A#`AfkxN8vCxvod9fa(zN3%P3-qs}&MQzl zXx_GmaRCn}?5*vbPmsoiTBo(Ukm$PzcCHNm68Y1fA7ery1(Sylo;DIqQ6F?(f0mHL zgfui~Q#(9%tdP&=*j{B-mg$39{j2nyI8QtbS*wb&1$Ciau!eTd?*j~tQhR4ORD|Jl zi$xfCK=L;Qb_0eY&IPQ`2ej0a%e>343~BIm=&FhEhlpc10UcZ*`rGAT!;Ur0^?D`G zePPu~`mgFW#O;?Wk5cI%<Pp8_!tw^G2c)AF#4ObH!Gus@Q>gs90eZn-!BidLInu>M zt7|jHERm1{QJE;Z#tb$+KI(`L3y$C>6jKe<qx?!Y0p>bsuHS8f{u;nxXD3`0F%<me zc75zwe)^(j#=G;6cP)N#svhT5{j@v1yBOvU-FXVlFIes*Y;YZ03@a+Hqk4;;3DV`l zrEA@m-8)UuyDNykaqiW4Z@=-K489K-AKJy-=Vs6K=Vce1dsGxiU!cXP`6Vy5NQ`b{ z?<OKoQ9LkhP)%+P9a=M2Ek7f0HbiAkt5AM_mt8l4$=d>VAJbmThGbOXnDsU6D6lX} zN%{~)ZG6qXNF8%N@X)dHi-wV49Yj_%NHp#ELo+fS$6y1#lQAfQkcBb^cmKkN`*7ls z`CJDr=^;wt`Jv&0CGYt~qi3x0)9Z*7Zxx*TSb?7fV<B3k{^KEf2GwrX*xpa0PM1d- zhl5X8ySra+TWo975{y2VdJXF8Am?119E7tY(bD0yXW_+C@5Ejp>xu*sVi?x0@0Eff zuSg%oGnaK-Uq7UuIvZNfR}laH4Qq=uN5x70a?2SQ)Y}nv0{yy|A@HC=hmzdM{MGW$ zYusLT0hfmP-I<QAUy=KI5zzxHb_{=I&rk<tB1mW5l6g;CZ+$Rhm)ZG|>lhw~4_#2J z-F;u7^D=l^0v$00vCr81K5ksNd=koxOUCQljk{;H?>mR>(|^ZNy)TYQ>(EPg_b1DD zAk8WZ0Q#qq#vijg$XpdY-f%C&SMF&YF?Ql)e<|H1funlg>fM%4iYPN_wxcY&_g)I= zs!5ffM-+9!!{F%iQlT)G?k3oQEyxX2@V!UzJ?r%W&u!O>&h;_uc4LQMt1Mkf_!`9; z(bS8txFU{n5iOXP_}G*8M0jG^W-RbrR+Pcsmld=rf)Aq_C}uB+C8qLNU5~D~9(1It z8yWY;p~>yr^LrC7Ei+SZUe<3r1-TLZ4q_;sf*Y+x@V|}I>5wBzU8?dGHuXB$VjTmS zs}OLz7VdP4R}HBMM;qajH~Z?U#J3>Xz75AFNtNxlP<SDvS}9=|S$qA4<zztsqno*u z!L>EJQtA!Eo6N|$w!owuI9i8$G855|L~kV`!DCWFJ@~%I(Gr>*gwIDkAMMw`u3*^f z8T#w%l0d@zZYf|Ou7M#?Pbd4_bt54!y5oxlH{<1R_{!)$<ddWblH1KJsY*Eq-Q#hR zM7uI^U%jt+U_FE&F#faw(+W7Z`DwfrfiK1B)cA^uDn!#{+6O}F)2EdlXKAg-5Bnzu z%+q_YKL!{DLjXw>w=teHpkR=6#gWBB_d?wH?yF%dH=n;gFJj>KKvFyM&RE2_>GV*B zO@S-kJY%5oVLYsqgRmsxv7%Jywlw&BVYtaD1Y;ofLcZ+qVX`<EPiKcjc|d5F!&w1P zFEZw}=Q9C5IZ8hxKYMPmvPU9CytPN~e8P)>^~=l)r*-D39Y&YsM2H>=q!8AQzJ^|C zdHB3<wnvwkDLhE=5L@X{&+<KXc6Yv>x?>$L_-LQIRQNr-)cGFSkB++KJtcN;q~;wa zjqMlntc+j9%TFn4KFT@5yH}8_E7znH&&;&OVwix#PqNn`{hTzU8VWeRBRE##T(q)h z5142jp25GFa&_N=Jn%J6yC0-{C}_DL0Leq5CzyJ^!dXw6(=~Jt=5OS!4&toe1j>ZA z)0RKYiGI*{N;t>c3Wq_bV3FtwjC*7F0aF{d3&s*D-tS%AMMIu0EKJgi=e2z5;a6>C z<>~yebXECY#TEo`5xL+$PSJvgbFCBDGRD=?E6ZwlaGnLTil-vP<H`-)dfmBYT7`-N zd)}V1jYz~5d@i6PXrVKj7#>vuH^19Vt~YRk+smuU(6#@N?_t9*wfBR9`eN#1Oq5xi z%61<5PpsJmwQchl%t7|^98^@cj~;{kT5bVQ=FT&*x?q$WbXgsG#){at$sVR^Z!yq7 zsl3&XVmc2O9i=2wjb4(0U3WJ=(TAVo3Bi3Z`+@;6Yz77tf9k`(oUC^;{a)#k2(ZX- z*YBswgO#YmPQ)Y!nr4eN%Pvc)oV(iPry%jL7%N(HnfQiqp2S3qtP#6~LB)1?ILztN zclc&aw1y)`F-vexTrgIfSg0g5&I_M_hrsOa-)&k~>t1v<{bD~aWPj}N!XevK$o(?G z!>qcnn><J=kG{sy5ELr{G#AziNqXC3oVs-E8Wi(lLfiwH2Hz52l;tpnc^*2Incp-V z(2|{-&A|{~>L=vVU6Wj~JW621*Xnx&VAHBF+D+#VvZ9CAI-+?b8YdfVg4b-OpM+b< z5l<OT!U&Af<54z9YJw%kU|M6q`$}$edhJlKj_@&e2AvhNmc2{UzBBM*mg`pcLik_r zEE)lH8MZ7ZMf7bamr4wrXTHn+fUzn*S~jULp|LrsHYTLfjG4+<lx*y#&WqvC7tP=w znF3tOLchqi1*u+r5V5yi&zzThJXH!wl>tEFpls98Tcd(mUl>MrzeANm17KF^-Hxuj zmPT)ii{5^I>CroQq5AV>xm59huaVD{tXf1FZ|E!Veo(2!Xb^m$q)LD&yvnn`AaOxK z=q+bQr<#XuQ__ItnB)Aq6>DE3ip|(2+AJUM1x@@)a-DJr>!pgi{)}U^kWbmjKudl; zNO>S=gMG|#p%pKW=ok@n+(S^r$jGB!PX}E1Y=850;>7V<>!Y68O#0b$EC!M+Y+@zM za8<$?T;!PUBNA&Bro7?4LwEhAQ0(sVxbRYUh2gUo>D~)iPKQ#SJP45;;&QW*bXzry zBk<$e(S4K6zLuEvx)-;UozF&1n4VE=6ldUVI6le~c_Ffu`@x4VR-6U~oCdo${e<&U zejGgaTkiq+M7BQ;Tq7Sl_dEK2W_z;@m>VZ{)Uo<Ne~Jtsdl!NYS7&m~4csK&h19kM zDPCJ0fQBg<^7g)^X0jPjvd@I8*W;`hNwa$Z++iyq$n!9$SI<7RiUw+7IBrN_8`ZZd zfj+u-+%fj+61+le$szVI14&(O75)e|Rsb&w50b;V=$vC<@wmk~#h9OxV~gE_Sn4!G zTI?kktyB{;THo<R?XjC|$4R)Qur5}h{p_u@@;<%D8)_81&B<%+C4MZjb~hhiSaRvB z3woIqk;mLMvXQmQrS+IW>;S-JG|oJ8SrWlZ>Ba;QDlN=K``1YPw&^dA&pdaL!#l&D z!O&WO4Y}-nk{E06eJQhc`j(2)=X|+jqic;(*9SUv@#3##-!DialG1x#xO<iah1LG3 z4Y45SN&o{rx8O0HkwAw|sVhgw<3jTWJdkILC_hzKM_+e<xiYGoXmN8Gb;!IPSCvDz z`yt1Yp|mx!9@%}hFnT5K$zg{NbC=3qs~jrtr05)Tk31FS3F`au9H&m)j1m$(Ar@wn zvS%v(baV%iCmE#-bC3$GkxH<@+2f_WW&3WTdr=tE%aN`+H#-Scc{26AbYCr6nSJ)% zRdf&?4`^ixj(i@@4zf_4x%GSb4>3rct~GP*D`<y=$z3(v_7~hLo=K!JJ&)s~UpnBI zWOLCh_MKoCRyX>&dvEjH3#2?8Z9-#?w1Mr;e$B1K%bb6_R$={l_y<(#$+<aY$)-vD z&o{O0v^5hwzsC5aI;p3<_>#CQ+ed3&Yy$v9K8c79C=JR67IKicPlfrG%q;ev@Z$mV zo)uFqM@QLUXYrgV&eK|l^08DwR3eM9JiSjZZ!Dh2!a!wwEXv|QQa!3jx#sQNj5dtp zV^?#tlXpKwKAoo!Tv^ZK2+#NGoB4=fB7FkANl1sK5GW;q-aegR(OtvlEzc#F*||_H zALgo2W;Jy4+1Rq+ij`oougB5pnzJ+Ti#9Oy1=s=G{PMmnNC~ph)0KZkt|zew`?B1* zbil24RnqoKh*`p2t}jHzUuuh>1Eioi=@Go>+e6vG_TUi-o9YCk1$&)Nyg@<sdxxOV zL-n-&u^PvZ9ajrAE^1U|#W47RsiY66zsk6eszdE23EK@YJQGXLu}aN-t;i;FXL)#X z4B36|;-lxh)u@Y(m)3lO2=N#O0;_ec$zrgjE1IsBD<jm^W_3Z=46`R8OZQ;dret(V z^Eb0r*{5&9G^Bkls<$yv3bllgV!e-Hu;G|X<D>p0!S6KUChmbHRXX}3C*CnN#p&ff z<k=TG^CHhjU1N8c-HA(2u1xtq8v<lHO0wkxtB?PAej)i>MHD^&oPB8WgHZ#j5kJlk z1s)e1qWGf%x?N@1Ss%62m^|&ZA7k;z`_lM*%lbo`OWKNW{dxiha|M_4K{<?B?b|8b zNuhAJsoQtnaS_~rewZLSROAkdVw&e)VXUuId@fC*9WpnYVTPYyIiF(%>n~VPdQWrx z_4^{txG0J^++_;99=xr2fg$HTUI>IYy-O2joTXh-rC#)iu`s2NCruu!X7jiRR+%%B zI;b;qk}ICPJYt(gl<A=dc)g4Au_cpUhgYu)3w^W`auNa<>vtc>@)V35q|jqwYCuCi znrmn=-U#&-gIsyo!nexTH|9uS&B0d3EHca&kI~gdHt|<t?zb_l_dkdlz0jfz8I+x@ zkWTk-J<*l^O^m<%hW9l7I^qkI5mb!Z1IyqPq}_vX?XekGs*-LO{8h_0eTy+~Dl4fS zT3u>AChxMz9=!eL+GElvx`4oB`VJH%o)Zi+aIa9~g1DUQ@6qqAk=&KWGnJ3DzNu0@ zw{%#u)w7H;rf}CEG&tI*n}w{Efmv!JA0inha8;A7JRbPQ-XKh);&mMX?KlSBH`FnS zPGwpvJ}7YyD!BWspS^y$RF&?HbKwR^DOk~ZV|chp!Tdrx=>w{`Z5^wkh|vg_qbvWM z_hR8w<ja8pqmm`TF^BTde7N}B$~B9lbeh@7RHWYkA}`g0PQ9y?cxrYtEhg7(z0#NO z@rYT&F6|Slb<fP$2aa<#x*1g7Ot{{LH7GPKX1^(|o~adCe&Xb*_cy0D6Lsa{#*rJl z3y7{{mWynL-i7_G1sgsFHsos4*FQK+|CjaXuLTPr8K9!a-N(bcjXM!^X5ZZv7p97g zhV05ChH@Eaj+(u(LHjExFnfADX@2@yK<bkgpWSJRk4DdKBVqtT>ER3SR1$kNii>NA zE3~aNh;tMgUYKruJnpmia&gPN2W>WuT%`J2R-7_8DUyyiTX#asTN*EqJH%@uC0lEk zZI`1Iey{(XjSK!}klLjlh1O~x1@#Ou3omOhtkc921jnqr$tXbF{IGN5RWqmPTvKjw zu|yT<mz7_VX)@)+cfRk&<oo$QQ)(eS{$B7xg%@l`sSpC*2cRYNiKsm><HrRY7mk#Q z7zuVe2n-08y}4-0EOyNA%J5f*GY7|Jb>AV50L%L5y|>F-eZbM*TWCVr>s*jdcou1* zz3rl>$JLnDqR18|j)c#&pJdaAqj)><44~!)ESUjHbcq9ta%+mj;BA4HYK8|?8a9ju z7^bhQ^+X17vbQGESPEJB*ettgbMMMMrr|1{Dm|wp1rS^hP;gI0ZE{~Kec8SE8{guO zBRG@b8(c}GY7mCNIhSI;zB75ded^@~CANZCgy2EEw_py#H&Eg&8@ZCDJF8)id|_TM zsyWlW6(Vov)kb6q5;AjDo1B89i#XSatT-9u1Oragu&E$`E4=x!oOU?n_tPAUE>Kzz zFCD|4QfP^0WZm`h8(!gjOALbLG9hR8Wid<2;OWs+DiRuK$2wa~uci>@8}{A{`@Bcj zl$P5rD?Hh4VH12cu9Z0Yl-s&BsG@t?H1K31IpU+HpirVWIaLgbZXk&OUat?~WG1e> z(H(7jPbJcRTT^Za?LEZ(><fN>y<j3lB#5Amaa@qV+mreg-+m!RxoDu__1fI1;`#|4 zHGUt{4MwcL?IN2F>L~SxQVk%+>6GVV=6e+c8%18>Q`8U#ZYfd|*zCqbto4d}$1#4n zP^H4bvT%g4#?`n3^>_PMgTKmIj>i#Lo0|~y7*QNEwixHB66i_!IDe_6)iZZ-A#hA~ z)4pH4zDo9P*1MCI4pdOXSd9CAtIx!~f_F(c@x=<s*OR)BVD#e=e$uxTx|(2t1vkse z1H&sfj!}>>1w(Ku+<ILSQ#I6TGAZC*TK?OV*$B>DhlMHP=eO#;$0fMM=<{=5bw1qp z(noCL8nIgCh_@R?WPx&gSQ{IFzEbX6y0mWw``$6b=z~>x)$1_q#EmyWmVzH9)Q1nQ zU9Sj1@8vV#l1e1{DZC<DsqQxD(6Hb2C`j<K8ZYbRs}!rO4<{MeJ)GaEu=RM`P0W2S z8Rk|ijm2VTEguDOTrP&{>#FHR0lXrL3L!THf`T21H!b{`HM-R#b_F_{_St?i7`FCV zeIXogZNZ;?3sq)KVC6O~>|j=R3_$MXuh0$-{BTa({NmKfk9?tPCqcn3)~O+jwydj8 zW~Ix>(^2`rM%<ZR)Y$V_lcfb3z+*QhzFrGHA>r~Yaq@gutX@m}+Jtli#|;@1qk1l_ zFd5NE3upXkIH(-}gWr#H!k=hsnyee4t5mBg$9JBqy^xg^{l&37=%i(0$cq(Ud?4C! zoWZAt%KLa{4Ts0B&jT}DN+(&9=;azdxobO}gebI%MYY|bK7Nq}0(;v25Xy--gfqnU zV%nRQC_K34CX^RSM<18c4GXumNJi^aRxKymoVOM8-5bOHc#49ig;Kn#J4rzXF4Yj5 zXSrDmIZT@ZxdT~%N5RpCx*@$a+&G~OZ@SK*Azbjp!B@8}K0y<&rGGge%{EYRyVWJ4 znS-RHxyKF6X+jDo-X2hbw_P1p7?-brJ}!GYQT*9az(?*m`c+*+R|I$ADcuV)k?iyC z_@myIxD`wZX#igOwxoAmx-HIvt7D1ZhWlf1f^7}hLCC#Ld--)leq$<{>9xSuI1c?g z-Yehbmy%&XXg9<CWeA)&sxg?q;VZR8zvRI)-YnB<tG=Hq2Q;p%45Ph*)<sjYZpGgW zwGvLtHLta_-P;z&ek@m-Z_WBH3qrWCT6q#hiK|G{rS%9t*Beh!sh2TQ>te}!Y~)f| z=UTqIdzQ7K8p0kIOrnL22P^9~m^Aw!cmT~TX@51Z$8EVKZd)2|TlD#-E9du4d1BN# z*zSKndggwUx?@KHJuW~K;~wCGV#OiG%xCWP#MHd9yz??Mc3@U6R)pdK-?5{|`3~BC zU<#Y4*oAEA0VqxZph%3t*#K2xv_E>xEk`7PB<QiCTi7$voRDFXx*0ko81hhD-l?r4 z>cp;7)mK;Lx`74VOdFF5fHGD)CBF&RL$5zv3)TPF(qfu$(l-6^7#iWqiZdNc;w9B5 z6~{ePfkHz@8NT9DFm%oLbWlM`x>+OQ_a43uHn<rpp7uG>IIi{TAnTdJjp5~1bK3Zr zgk@nY3{C))IjTLxa0LIXp3Nph!wZ!G?9IKAvmNHPqHRM|Oe6LC1f$<kycY>8#h$&Z zA!{doo|k8j!KD~0C7-=xK7iUg(MMnw!Rq5$$B_%rUAC0(D)Sa9hm3AjaymJj%|0k2 z5fVP7bmM@gD)Z!n3DgM$JE;R&Vn|@to_G%3t)kNCG{F!cQ#J>eh<6G5nBX`l8<=GK zCF7X{+=g0!vC2VaK1B}y7QcVN0Wn1Cf|jh;>-O8#4ZwqIg!9vcVhgf_pE*=o6;?!? zYguN$v&5Bsh+pLE5Yo@|xhrZf;v_);hj|Go>>B8#2CNES>8Tp;J14Yrt`D<K44f)H z-CXEmw#LcRs}V+EKu2SXaH0cjxgB$)0~q@!hOr90xe86@?zOJBr<i#<nIj`3?uMnZ zT_U_AIN>Pqr-7q^A;bne0?zbE-OlsIlHOq)Vk!?y2|yL1k4?u2iNd_>C8zJ~S8AAg zlBIsDuXxV@tN@fdL22S3psMwK2FEyi2jFQCy;xLfK%HApsmE9mCNAKHHuQjTZG*#n zMbILvU`){1o(<ihNOMmLt<9Ak$5CIdlayn!bUZ`murdO^`}X16fWr!u?B@y8|F5um zdUmpUP#}4BT*4i>j*~an7z>}D$rK;q)5pe-2IjT6bPvXO*|Blb-`#(v?HE5y^yc}e zTaYU-8++~v>c=&EaC4_|hSI)`<(sSvHBobX{<<YvoD`N35dx9^1`2{ycew>Pp&$C* zIZcH3TTcoVgd(K88GDs<<wF_<X9n`#_5}1x#`q7uSs#4QQ>0EIy<~7cV)hJ`>uh~@ zaCOp!M_NhAu)=Tx^XWNwV*6y$!Wm2P$f4skT?8p_I&GIl_u#yXu#csILlT2u?>Z}R zhNAA4=qP@eQ$uxG1*)YMn+=wn+g0#nl>Z_%#D0=>3{}j&U^Ui05PYG>K}qJNM?igF zJV!a+wXDKwO4z}DVcA;UV;Wj@dpUm(%|-hA4CC#%^(w%k0yMN$(JLatX&<L(B*c+? z@S>Z=PG}^y6HQU=%shiQszW=|&aJ;}*ljJ+LG`S70sdtT$u(M<AATQQfNjQw#Ae!m z>n2z_=MG2>55zf#o*q3oC}ie!9rZd-Ouw|(rApbNv3wA2+UQJ&ym#V>Vp0R6VNhSJ z>i)*fPd#g)BK4c*z2*5MKxVEXI?5l1hjR8EXz&$Z)|?W}<kjM%C9DxM!LBzAxf^L+ zR)t0d2*P=BUG$x03F&RgpFZg|Nl8Im)Gs}6<cK<@&LQj!XYx2Xrn?Xcyb<$fdnHG_ zmR+0$CC;cT?_*+sEoX^>p7q@XQxU-kjp3^5V@K(q_Iw_*<dPif>ZEUdy}5utLFyo} z5!0##@;oMMV-4LZ)#E0(iL?V=xfF=l)54~2PEDzaevtRC-?dj+Y-65SCF=$EL80~3 zFiknOJOgsrobe@gPv!=}ATKK$g9URAR@eVS*_($$`TqUGDzcWHP=<(P-*;2Vo<!M~ zNwS4xmu05NzJ(%`$-YyJeHn};RQ7$HA+pbiG0f8M>hpV^-~IXC&vQS=@%-aBIu4Dw z&g*@i=X-fAFRDtIWNy)(M;4_-!!KxXVk5hFEm1WwEuJCwA`5zd0(3$n(EAKvIAy(- zI^Y^8T*qb{h9WvsdOB#yH3}CrmbaME%bdTAu5N}*$i(%hi_z@vIZEVuUW@*Ts?eRi z@%%^C!*X5ugY!9h<8#I-F;$A;T96C2)?H4TuhO`_Br8O%`ZCC!JQ6db6G*138CWJr zAiGNgV6U~<313RA`|-#N+a``M1)o=fh{>x|8p-Fa%|e4yeS_tECZ;PW{mZqDyV^um z(#>%MjE`hdkK=yni6E9%9bTUbP5PAdxl+>i<y@h6%sl%$74gP(VQ6fa9^nOAI)VTE z6!bD-t2f{ZqeFv-?NHz~12b)Lp^Ikv3*rSA%_n5m9{Aq>U=zeyokcnZPC;JEwcrX9 z!ZgMt>hYd?m}<o@Zr%#(I(80ayx)BOy?9?1gl~(MEOPBfpd?Ix66d;8PoyVZA*a_@ zdG~ajZ=MVYce07uaXGfi;1O=DU8=owl|`H3<zDQM9=2ZYOXp~J)#87feZ;6#2yKAo zeq$_2H>79b80i$D%z>7=kv+-ECqEdLA(*j=6gv~S%b}J7AgqCORLTlu)+fw4lsPke z^}Ef+Lz-yNjztrq@xhLbm@~vwB*YRZTWB6n2c)nC>!CAu&}iMoD$-q?9o?76k0Wy& zah#pMqSv=X2mVmyx{ge5(Y|csD<G+1wO*}&n2WzFqgtGcGoQ+wk+r$=Ma&b%PBX;6 zmTpW$R4u4wQIrYh*nW)b3=-`WY^06T!+T@_qp=2s?NFe1TIb}GGORb-dQN5g)dx(+ z1E7eA5AGgEH|{vD_KbJiC>1$-ptrAIHRbg}W~&G%aXh+i>m*3U<mdzOpT?vB6Ow*f z6M_@=H+sVC(RRq<Qq7HX1IAJdw_Dp29M;ZF)YRV)Yc5pv41{2H;WR)W6*}x7f-4-| z&FRS%NxMD|f==ISjAPlDa~A<cK|3t_;8+tlEpSb;6EBlw$9a?t!V4QdZ(MG~BMz4G z!1y1|=Vlm)QpI&`^K?7^0-U1YxZMB%h?D*oh%*9+!VMGfEx_>vtk~g=(J&?xzr0eZ zXI?v1MQyFAjuF)E&Z$2*S<guH;Hj9hbK8bi9X?iU{h>PF_M-3?-NDn$j!RRLJ82r3 z9$B70^&?h4WD4;gG5Wxh;C08*%p{I<d=?JUpOR2<?HC23vX_jB)=-tbI_8p^m1phr z3pI30b3|iEI5kh?+6*{gr?T>JUf-XrMpxzKRbZ7D!NJ<g;U-fW`{_pctCv)roP-(x zfd?T(p_vI5{0aoC;}IQ9FzNQ`-0WAhOKvx2Y>o<7wyqOz6v*7Du3YWY<ce=!6w*!8 zWr$~#m+hnq5XPTv=z+j9^F`F{eh-5H<N^$L5q9zElG=DdTY6VW55Lfu=nDsSSC|Xm zllcPwh4M=odf&WWTHhN@`3a{mTqBy6>`LOgebB9N^)82tY@0Uhg5QE9toU+9fknOe zQgENiC+*C4Xe6-5ZX%zRQ3Mu1vqpG_kEC0rglNa2?U3ShBGA3eN*>;s=e{Q_mmc@? zL8JFxm#S}@UVjZibc+NC;YEZQ`&?-YiAnMQ=xTzqjN9Aoe;@WP*;Wq`^>U!G&ZtH< zhY&v?O7&9d(_4v+)|o7iFGOu@kXeE?RvNYV`1~^GaU`Pkt>dCgLsS>(R&_rnGtmS! z9PJ>5J4N9m(H|Mjrl?hhv+#`WqVxS=rEh<gbBtjr6dpn&)~H*HnH!tJ5zMWp#+6r6 z_e!Oq?omd1K6`V%hqq+VnU`Bb^YB(JF~U3=7NNmcx<s;{@^1&B8ZE|c?LS)hM~k7~ zF&MB_u#DA}iGMjK?@Gny!TSY~=B($0qovTHSM8ZC2<f<(`?!oU>JE7vlUiT_Q={+o zmeyF~P^F@)TwRXq2Iq!S9tZRA^2_0tNy_^q4$&?x7OXnoel(zZQhl#LaVu=<Sln5` z&wjzRBr`zczD;l9-c8}lvi+;BN&b+FDRB<Mbp&poitP@bx~A4lqqa~3!FIK$ky+Q0 z80GSXI9<J3GuNFHzvvtyXE*RIgaM+ANELT?LXzC9Vq>(?euMjn-GJCjnWV6FQyHCw z9)a*rX+CKNyYD3JR-3akbz!b=Ef1D}F$lcA$-XE|!sIwPQv`Nc04ma<1&FNpIh@Yd z@iuj-x5sATGl*UKXV*xqiG>v1W@wq*$tc-y`X9Hb1+o(`qDg?fgfMo<0}%t!x=N_g zZK@p)2tI6Re^t!eAB`Xj8Hf6=e)}zwJ4S!kR=%m{C+=9w({g|RUzSd{i_t2J$;Wzs z2^lm1k>e&!SP{_$I+g*e9quISVXn>>?bQdVxvO0$%sMEVs5V{XwR?18s>e6D!rCO# zdFzqhWc}~{T}`5LusptqVDEz+?t3u&m}^~A8yJM$bg%Tzv%K?GD6Ce@;L4SY%0ibp zJ>@1Ozcn|o&ug!F6GSt284EnXXVc9IlekR%X$^PG1=sr%KR-_%RXpq%7f9_fwWWKK z>Yy_G*5!^lU4(r()uoyS#9!MZdW13mhUrw87kZx2y!m5x=tqmGOA&ip_CFa@`jFHl z;GCs)B!5yMHp9>?xR}>RIf|k~q5W;+dv<}}jJ$n#;iem)DxVNq5*s7FV5<0P_=9dG z7U3$s?@D>Tgqi1om4VMp8hnm8XVAvQ6S1v3!6qaQ6O43})^*BMhYZg0Reh*^&}}#W z3J)Wqn8y4I=&<9nw3BBlkLtYb5+n4e;}5|Xe}U@ZB#u>#PTJF;3!rF(T*iLz<6!>_ z3{2M@IbLW5jF-|rThG3yEY~NO3nJP>2PmTCRFY2tLB2<=Qf<pa?M}!CwWzArF50a1 z0glht10R29)e-*Kd=YuQ=GQodz7D6?jbwv80pJd^Zes54rG$G6Zfd>n%7t~+a~#-Q z@0^nixHyn~TPw(QK!O)hrpWNrbi%-XE1VtZmY%~h?<``cO$hGT)0v{G2A8(Bx90*% z9aPR5<wR3CFH=!zJ-lD~>BcLEiM>=IBXR0GG+FOgs8og1M;Nfk#AQT(=RS~|-t*Xx z&z1Z<COX?8sRD+V-BW*Ik^1c8D~)G!EUxR1RBKS)b3qh_EFA5sXtc(Im6}(%965Ke zPqM=rvis`7QnZTj;!|9$!*7;!;=hi?M%!3Obe^ZiG@%Uxt_*nzZF<K;8e#q5IX+DL za3^R+`Ch!^Q+sKWlMk<cgv$Jr^llf62u2;zv+i65*Mwgf(%UaC0pUS?3?zu!yieg= z;HMCthQd|9xnDutaUOs@P^NIEPlWt97mh3rrqFG2qdcTvW{-~6>^S3c3#v_&8a;(g z8hgFY76!(TZouAfv=%r$JGtyC@al8`!^{>O+8y$6ZX-UxND^e+z*pRcY)YP5lHD3J z9E{g0t}Z;eHb5<0QvuHMp7%g?D3f!bDq(V1NDnC9L5NV2=RW36kvIs`9hSE(460!l zd6MlUwbtnKLx!Hp*JEoq9>RXOKQ~Tcu*Rl$E;CDwTVfl#hw3NRkPVKKb&IpLTikv^ zHRolf@KY;?a$;Qq@h9RGhB(~u3VfFar;QR_A%E{{Ee(badPxz@qva%?z5DrFFnUIY z&Cn^eki2q+5BAm0S4#xjpU?rO3{qrTT1Rqh2`?~4Il6Tp?5+8XO6r3wubXX2>`25f zT+~0`GI2RSXQ^lD8)eob3RlttP*|5Q>>3~UfH>Wj_+Cn_oK}&z9Ak)D9%YY1&!m|c zQj8Dx;~<UuyVTt%)aiat3P+dEL9M$lB;hLa3$5?9i<XO6+Ny9)EQ&%eL^KK0X|;!7 zq9{2lp&rr9>dOnTr(2$Ugx5+xM!)o%Uh9_mrB@=4>H}Yn-{|;Cj%xz0xVM!4p;bxw zF14T}(8Jb={i|PWb2PO!ck(h^=yIJ=eX;kyP_>0lxC+1e5WWog06v3U$wbz9cX?@> z;FK!7LswH+H^=(@X!hy^Y^|iO3cf?v#dzAW(6RHxYD9i;It=+-HUN8G1kD4clJT%L z8owhTp8mJX8lVnp3AO^b)1!K;DW(4xn_NB@=N*p#oeQ?Lz`^6C()#sBc1k9st3ibp z_^(e=zf8ROv~tm4#San-soRe@`a?w!v+VbB!Y2@xsY}q7k<vCO6#u1narN1b4Y!!$ zFHX}%t3I2j*y<1P-!(La0v-B@*5G4PY|2h?2Wb3>+i;?Wj$`2>r!c7YPP#+WSIS|= zXxWvC)N#c_%N=&~711tuEjQ`{SpVTXEDu%jV>7~G<Dtl&S%0gzQC;q<o4;uM^%hEg zG(Ks!PpOjlCv#FDYyD4|(^r^t7?|Mhfr0TQ*n?46hqjjG*Z`IUs&`drhGS(Z+G|%6 zpX7Gt7H(8b)N3m10!S6F$9s%?d@2BXIwy<kl4HDV#tUIzPR^SH!Y^rUC;`Z4`}2Nw z<kB`H526h88*cGw3k~_uA~VS1X}34a5-q<SOJsyZflpK2BmJQ^i~<ejowBm?=lL(c zX?HeOq-g<>^TwSwSvRr8RhV{<-m{GLvy$s@Zy&|Oz&<Ug``a5|n@{dH(+aqrBK~?4 z0+<{Ka2fnECm~1=2<$j8g}xpaiU#*uiSnXyf&=LHuF`m2EZ|?8Ky<FS4tcy#5`V)p zI{T7FA2cexgCpva_z4>;gtl8NAl6wsqv!h)r%&qo`3qcz2a+)}4Tm>^7bB7q3*>&= zTO~OLd|_QU*e3v_+T{JPGeClUvwhrI)_x0*pS$dN5gb&uphwe5^2#=ad<cQ>GUt(~ zfw%jRz}~gQ({u-C+2aMa9G6&4#8_2rOh`o+1<rKwv3|QgORc}9d;4;@J5a(rB)r0A zKxR{Hu@`GFi(1RQ%9bJFOR0su*K_wUwjQrtnVFn(RY(B)vh8^(-#JwQ(E4&`$Mq2b zT*~V`s2Hj=II`P;KUXo+FyeXjl(<HwnN9bT!T!s2`a3I5WT(_<)uP+k&!?LVwqOsC zSYwmdjWBxHlNv@;`Rzv&ZI;4IqOD2M41cKHUUSXvr@M1dM}8Gfo;<FHN-hF<h`Sb( z_2ytU2!&)bQgGu^5y|*5M>8kGp=Kb)pvI&}utY&F!B+BM_26AUD3YGS@+*^{@5_|I zYc~q-?;1sqnfYjg{j&upH^cu>NvS+|7S?U4@_nRCOz99Lr%x23FsKq=Y#yt50Xi*R z*z>#fAA@ZDih^SvjMvF^r!{7rdga|cnPyM_`R#!q$NRn~PCrlf+JVa;ZYpMH6I})C zI*ptqJsGd!yFcmq1kM#yJJ{!ph`)<jTAwxSON%}z3{Y=~zSwa@<brjn97(@aQylIy ziREeuY{fb7F~+s27T6iJ8jX41HC{Uz7x0!t!x;`fiP1?oEzS67_bvk(l5^WD>I2-n z=ZNZZC|1EEO@4f^{}^pRvsL{i=F7YC=aQQ$jB5f@OnMxAWx<b3=IeS+_mg*#uF`Y% z8wlLT*i5~#dSe|MzMP8pcFdobW2h3k5as$a@~riBQcUnmu&zfMj-?*RddZq-kw7j7 z9zY0$MTf-iwQAre@iOGIzgaj-h-Fro2cfxwvIs~Jy(Vd6#nC_eqe!lDbG8Q8s+Q-k zH8nN7S5O{r3&d7los{9V_#vdT(0QHnR2>K}TXJ%nJx*W-I<m}Ed2RCO3ZIF+dXJiO zId@aWkMl1C+oBbR^dBz`+^Dv7={rZ)hZs}5x|GeBcls0iev=mM8VN&#g4f3WP@zF% zlpY+5lZSV0|4&Y#h$7j<z?z#iYZZ715b{Z3zT|9$SPiZ?56nL8yzGHOlKICcbr!15 zh?cu;h9+3G0p7KDHw{D&p(qL?1dB0N7%C5wpW5BWuif%4wH-dcZ=#we(ieIHiSir1 zpl~=*uK=C5#ORSY;}vj0J&;*sx9r#S&FrP-QeC2z!ULXa|593^$f!UNRtUlx=0Qe+ z-Qn}nHVp)2Y@=a1Dg+Yi!u9-@&E*uOywd%xOv^&uySIFw(0%T$6R{tZ)6B%Tkv|5& zXXWuOWVj+v&66ob@Y&$%z3uy1R`qR`r;X{*k*+4^M|z*<3SYI?uAL=t-^&zEPoFSe z1gV56k=voyN$1J$Nb1-cH1!+zkXDbmiN@^q-nJmKThDY5U-Y~$Z(;WWvxe#lR;W16 z8r0YkXjfC_z40T6$wOdF=*DP#ajB<#*?s?p^)~alcl-hE?e7qh!iHAoedK5~*ywq_ zlapXiU`zlWp>Ddzgc%jA0AVHg_28BWK@Wq6`a$!O5d+@OBiCi_3a0o#vUtoh1?0fJ z%bYOR{W(#*3C^p1KT#pv1Qldqc?Pk};{Id(hXJ>`!`$iR>yK4u48NW^dFx;OZs6P4 zLQE)V9N2&<#7kjda@t|IF~XKu!x{{S%#v$rAOgt-8FJQ-qXq1=xz;6a1qC@}_|@M& zo!;fc#t*F`yFlC|@m4|MX@w12F@yQFEv_{aSE+EJ=42&rbLya)zLZ%f3d0esB*El7 zWkRVc^qEpGDE@FpZ;r+P`%&Q|dfLi2R5PHh4{4Lcnw1p(V0ny5^llhr<;v3`$Y_nF zjKj>`x;s4qW)Df#?L2%;CDBwkJ5DE+p={l_;>whdV8{K$Y<S=DY(EMrh!bxO&e8qd zrio!yK1G*pdi_)f8urE_DMMLgUTugb=`rpuoEf=N{D+G6$fKDuTpZlrIhPXc8W{d% zFWRFOL95{hP6M-U+UxB!mY87s@dyAP&K#R7DQ-TYfaKp45Mzb)Y$+3c96DbRo$iA- zvik37-2*njxV!AFyf9H*Qq{&xJ)@?!<@iM3PZ76g`HiU`yaeO>9J~5W<gaY4a%|Z) z<&5lV7(3%!DGc_jl79Nwn7F+*W}-&$Q@pYKF8-<Ubb_=1xZU6WEB_4a{DISb^LUNd zl`t{r1RQGwV<(-(R>ChKUH93yve&fuv_oO;GAvK=skfCC7c24IvI4QrA8!lgM|3s{ zK#xh6fTkdzD8>*bj{V(b%cnc4Fccc<{^kt+L-lc!=W_>)uDji_t4O<){%W>Ty!pjs zhT6}AwYhWx*jpU$g1Fswv~2gF@~|!iuy+b8>CpsjCpd|F*&BC9Y0Tu)w%Lkt8OpP@ zsG*rc{$?6^bzn+=vXQjiOtAo#q^D0Wx#P0YETY{Swx3fEp6XD-#)8hnyjvyJyYEOg zMr+;BdiV4TKmQL&>nbLvE4fT1BY$m&vDSQCDQ1KRWxFS?2|aJlAIS{6^g#K&0(BYW zTegAI|9d-gJ#ys@i#r@U=(jjG*Tp#>3^$G53SKqO@Rm}!qS1fOZ^v4uHLi2Taw`d{ z3+v*kr)eT*wV9NpXCiRzoBjDlC7Wxo)vk)8A5G$as93Z6oqikPhtpt@%LwjHlQ}2- z)T*BB(=bgO5A{ydm}1(2Zgo4|tEirGW@{xln)B2a@)3r8Abzfl#DYyq6jGKa>0l=; zX0|sBgiB@jqZLoZ?ojAH+rnRg8X&#MSXh1Lu6Gd>Kprq14fvZd%r7UY+h#8`NK56# zReP^}5PKkDalfGaroKhir7y%Ntqc=_5I{S|>kFh?;j*$7O@)U_XDbX*Wj8zx6HlpR zPp8+0W3;Y=W+N#K+BIP}36a!ew(eRgIHr&aYH8`2BX_Ahk3vY>O#I5dPrfTo?XU-w z3%JJDP(ecAcyGt~DT$*+-jj3lOEcf<x>t_)-hPnzHTZlmSb$$Vr24*r_G2g4W^7O| zk{|+{3rHN_-OTP5?kFz}p>mNoy6}ok2Cuc~bvZUwkvO{emCMXBY8j3n<QgtPtzlhq zFgFvvuuJ5;OuRSFd?!8FwI}m9#I)`O)0@rH1wK-9)$ijw2fB`Lq|RkpXnd-fhs|Z; zQ?RZ(-_e>T{ZOH{M#?0mKUb64D2P9>pp>geww(DxALzX0Il7nWKh97*0Ha(uBM=7c zz&!R371h0BqqyCGVjO>gFDy#poc(}M>iD-*bIsY#eH$Is2VwJ8A9G{&Hb@+<`2I<- z3*_u(2Rk9yv<<c@c*Dx@>owkh4_4Mvq*}Tc)-%Ekon>C%Zqe6wNDw4}K+C~FdJ}{R zc|^<LY3qh5(oLGRQ|E%px$=`pfhC8<xQV;E%DPv>KQeCI=rH-4%VAS`tGw~O*l$bR zV@Dok`~I3z^C))r(ZL_bG7I;1G7j{PU6O;Oo@)y@JH5PB^Q)pOgSYS93YpOecVXON zt0BazsQqZD0iU~d-Q4-jm!Anu5+-3&QVu_|e=fdjouE8}0gpT@27Ux$4L-MO*$L+G z(6Y;Zn<~C#cIVh4b872aBE3L7bp~TBsW*5I+)`v!+kCEwoTWt*W(e%a)G$ZDH^NPN zP6@wma?afn>}qRey%N23=Vbiu7rwZNDb7c(srL?S`4X!SM3Z4%rdo=?LUSYCfktIa zhKscV<c!M5;gCv~ljLC@?}2@!YMMc8tW)`&_dKHDF=>FqzYcm0I~T@?#i;97u8$!2 z7(Hgt_sgd-oF2^=RU{?5QfH1`L=a_Wro}mnapH9tB;oorYB&aZhWxtCxqtvhWm`mf zxGF_AJm19o*j9Qfs_O{9c#4!w{482FFrcb90P7Mb8Avq~xjHh1G9b*s<v_zCk^N(Z zkgdb&{CbNht{O#Qm@U&x*$FSTDHVRoOG)*dxlC27aiTRF3stG<k)Ex<V+oN&X_Cye z79T+#b$YK@u?j+j?1mKF+h)prD9g!u8~2R*c8Pkg8mn)_5xu6#cHdvABx=GY@ir-( z5Ly-7x{8bz7|G}U3<RUYEmy^eEw0);cLtPvtAdZxNV@bOF_!0gU&mp!m`?9(#z#P5 zrtBZlq5tG4{1We>2of58cY@D_g|Akr=O8b-+2E^adC0p-i1CsulqZ~(=9uYExf^Tn zUCq^fKIjqzK}PPlVslK>P@Vi-E$(gh<+h{&jSQ*$b;~YPzlR{pEuIsHwSCW0U6WaG z6qo^c7nYsbt|)knjc15MLXlpr%5>JXH{_FIXsxkO*pH30a4IUOF|3O_OtKgrjbw!i zeY<nIRDrpKXkLG_|NfS%XC~F2D!46ecL;>JA^(91I%#eh7?$wl`mrkb3PBVFXA9%2 zB+&Lw?FZ#=<Nd54H`CfAh1sj8O@%$H3nM33A>V<X*#`b4_D4;%8@RTnTQg&chG2U+ zFq73*R>r8@R&Py0AkC;M(K^9LRj#eI4k1fE3q)%KP=DO<XMUZ{UxW=>sV?KsTP03} z+L8^wqfno8J1gI(`tlNa=;C3%P*)U<1wj-oO=1W4Q`E`tG;DD&J46$|#+271Bo>+^ zE2fa~X0Xm!xa)Hm@mHi|OXE##<<sGG8`ht8zfTzMoeCXpQ|PaEA)OW#n9<YqK7arM zpfzVhmaFMWAqXM+Jm}hFF~hTUJx}rcLZboVNxp+i=(}bHUf1Ipn*u-6JZZ?4vA@U1 zc6h=EYB-7tc$!$c<F`T4Eds#zFaCn>0YCa-Qj!r6FTVkuK^=dNlJOCizqaecJtlJ{ zeYL?Q6oyo+bf=M^5|qtL=>fkl*TJdvvnSqOqk7N44CL0Dbt1kM$3_CkmJ#K_FpPJ? zkgXfc3)@%h`pB?2TOfWAbDv5$c1|pr)~qm~X1Zq12tN%Z!?bA6C6&f$1d?rQ8Y_dv zzbkRj@jZ<~)$A?2w{Ng1Lm5fmY?HEoXJV|clwUCO`nZ|khz)~;J^lN4F1WCa_h<=h zoi_P>O&->Lu^#EOLmi0wbleH>#_n|hW%2*f<f>Ua#+wpWfziC}Dm0y_4P1yxyZzA` zp&q64?HjW;vWoSSWA(j#9}XTXr_rOkj2H5p2lp>PCLE%0LY>Q89an6E_t8^zUe&)s z67G!H&o$_3SFZ&KX!r`ESD#k{Y2Vc3V{&0Az2`6^xe-vGm}j0fLGuMi531CJ+1Kcw z!lHMsouuyFUN?$+$kNB>Ecl+eZ6_`j`TV2+f14aBxz|a~2YbZw^)0h&m|2<;FE-_` zFB=)$bnE%7a<H@}C0E&D-*i@G)bN>>B=PQ3C>u_i#L3vD2J0hR4C`X0Uy{HV>*yy% ztR#Mh2A8y3e0wd<Bh@V~Eus_SLXSZjgI#J8mZS*VC4>Tu@npm%g{EVYGQ8rgwz$&X zK33&qwT67J4y$NsS{gYU3luY|)R=ub_leLtV1^~O|2j+&8)HN;AsP_)3=pIBz+jCq z);GB^{>jKC`}=CfFFolD4*mG4R!&<1dOLq7_;rFS8qN;ux~nC=1z=LN<Rm9!Isx9S z-FMoUHU(j~F^bzmb%`jtwc_d4clR*Xj!6w=VspTja)k;EyJPp!$K6-7Kx!~{4`p6N zj-~%A|F2V*3QV^pGGi`n90%_Y|LTauF6#nV8F6FmF-n%Y5nJ<G`eALN!m)vea3gyI zIN5#Z>&)JQ&%>f2W39Xi(i9LeqT6+LKzj*}F7|!=c}ijE=e@2Pub)XN7)i^6n)w!r zBX}hff;jH3neF&Ph4Dvn1;BU0!B*pl)&#T9Mn2bi`{0t@FJ$!?RHeGNg;Xw4r%{Qt zLsmBcd?ZG%hp!K-ywim~IRw~ATp6cT3*w<wiyARctLn>Nyy@P%M@1%nNGjs}Xe0Md z?~$1SX!P2Ds={@g2fkuZ7zeq4!cEZYf!-kJlT6B<s%0h?*S9r{9Es0*Z;Xe15laI= z0Uv~q`5*5mF%Pl^r7hnG|BZ&9oClrm{}uWZ<tPyTh$rj)Be2u?fAi7K;ef8V5b;s) zzBVDol_*2`VfKTfGX1Dw{K)9L#viI;TTNng^x)(xe*15OUx%e`#Vgqt%1Y!`5O2V` zWT5O}Vq=mT=D3Ew>Ha0P=Ch%1kr2eDk{t4zQ~Z)i8u}GjVO;!~(DkzA-zC7HpvoP@ ziS&lCkn{;jer(&*fgyX1#X5m#`y<=d*i|<S^CYG|H@sBU-0oG>>goNdfObAq_LI}; zSnpl`cCAUH;h-0Cwq0x&D-ZO|ABLuhS0g^K6~`vG<nrLO@s{L|6p2kW7of-AW#jw< zo@bXZZ?%is9N@dkiOSJ?*=B1Z+kD;UD+ZYbT;O`UpkhE6<nqsiuJ7C=K`r{1zqI%d zI3ynEutO<7sVMY?mr^dj5Cc)IcK|J=h`$3-0|b)CZ7!x0IXi#fBT4GSW*UN%;7fg$ z_l*BX54KN~So^&*)i>_#wVWPy3VkzX5rh}Q(e~}L%`SAU9)@~BhxG(sH{^mEEV=0w z!b>v5w8pk>xlK`<yqnVjG=S5_;9t#xW+<;<&WoW&IPlIg7G*n{rcxz}%}A`^xOw9? z&PMNYDwWDvWsAGahDXvo!L2v3%&(79_z2~jo``UU!SLIs=w{ZgXHg5UCO%x`@a+fM z`M3fKy&%y%IOKO{9p!tj;zZt;$wSqRcI<3Rs*~*yV}`tm7tiA}8T46e^B)ktVFj#T z_<<*;(IcQ%z7Qn|>75SzIB0@20CR3v6dCh65)YhsQX9Xe>MZ`OmdCJ6M>?wS`|PUX z@C}nW-?zD$S{wuqfO<=~(YUJ~jxmY#UED;{Yp`_tk6nF}uk9_*>g`hbA-w$ekhG7= zNrVv14eFavGKi7j*9B#)!#2M5AF>DOjfcfbN>t`sJ&IQJiMn&2>PT~7?Z5-ON}*2z z22|gWXF3?Sp^St)42Yl`rW1<cOEOr??c2hrSGY7bCQH`NYs>IkCq?()xFuYwo)lWM z3j&_Viy&DL?6RRtVC9@ntUvjJ58ckOuJo^PdGPUozQ<CYCFE*f`SS0Ppe57v@-&;P z{y(+EfLC8gvcho#ycExAI7-=N>i12ojT_@t@~?s^uNs<xyPyo+Mx-;7Di5{qd9Xcf zB?n0(twm26;^(iM`lK{B9se`EXD;!c3{LShf4;BtfXB-z#`goKFN)_oKy+g65VQ{N z$A7?<^n&N0p&z{srs|2tdiJdy7GgebbuSzo&FvH`CHcoMdm!}q?i3^yoK8$3-I-^J zsE$hjd#vArkbsU=c)<Pf%Gg%JSY=t_D~7(EgD*R&6|x#<vdza6Iau^UKf-%zV)@w! zmMfZm81Cfiv7y@|m20hS@300smss;Zc&Awi3f-&T;qdh!ED<I#`<F>DoMpn_hEJ97 z+%KbY>&-672}a`^;_uff!?ic5?sG9(QkTE9;u7HA*!2buX#5v|2DyRL)+KOb#ZB5X zyCHLo{F#q9`h6-LUh2(1i_!lSrz|J_M#y+<AhHKm2xkL3l0oPi5_?WBoTg1Bu9T2A z*b`h%p$Mz**C%NfG=J!$TX@*TXxrUH>mvV~&8YC5xZkrbVt>)!WZDB5y~1{U&=s`l z-{2_T=#u=qvjcom7bXm0i_z;cnlEeWDAHkuqtJ^a863EmnI!_x&pYlqAsnY~@i8B= z*j<R_cW3A;#5G4j)nHxhBsUlAM$dkXpTR5F&|(h@+{S)*wW`;~Bh8LsI<P6k4cPwo z9Vd&)@fyJ`Hm&7D1??j@4Ty42EsBz9RhT#$^CL`nDxYc}FLXGI?!g%;-AI}M(7Xvo zFBa(un{)Dxt*Q!8`aI(A@ou@~1bar1U;C$VQU2F54!s)(-0sS9AD5f7E;Tf&anCXt zta)dH#ocD>eE0$n=aXf}IZx_<vM!Afx$@Bi?@)`qm{~dxVkHEbP2@ZnZ|mhY%(T3q zAb;{?PgYLt({rUgv*xdg_>Ckjd6GPV2Yb5OhvZP)wr4kvFp9jC)s?%h^Ej-+O>bZ1 zE&dMmu?kgoOJms3cW8c!_DLu?4=QLC%#6<_%%W>vpI*yNDSmq2fuvRYd0fy+prJ7$ z)HW1;<9a94^!cg#i?hWN2AZ&Pcm##sI~qx+!H&h>ebK>(#b*@_>ZunY8j{8MDAZdf ztB`)nM5xs4GIY$Qv45ChlOdy#Ujg15sP?Rk_-jD9@5r%<?x9@T&434;D%3~d(dll0 zUJ<iXgX1==<CmIp!SXi?yW<nCIM6%Hy7d3J+7`vnl?ZAXyYxQU@Z1||R(h2RL7gpV z`ly2`x+Vogt>F?&VI#Z(2w_l}2Akf({q&h~Lo3kZGc^yBt=5yAqb5iD%-=@PX?9)a z#kf~}ryT`Ega0kb+5B&2+W*#~j96Nq+mn~9ER#Eb!$yfoS*(kP`hc0*61aL$Yyg;~ zCP9ObrnmP)%U)dRW|@!Mx+=z_^~F_YzGU->hKHxqzZHR(Seb%ZY9$)Z5FlL+G7}n_ z=tZTea9EE`m@jud648)$$>w}R_(+yWnpJ_^E}I^Yi!Kw5irIR?J3M=!>k$~hN9X`} zTTvi`g^(M8GYJsG1fUqO6992F9}MWH+KduLa{ILbL<ZJoIcCYB3J{5|YI{M{X+Mss z5$-n;oZ6c7+h1P*bt7ROzhfv26)PZuG0bT<=wUoqZlhZ*<70IX)k#Ao(&>GQbM)p6 zQBsYq{*IWZW0)ej7J;M#_JOKDB&B7dEU3yY`#Sb8aIC>$-@aC)ZxM7Eu99zOkbFlc zr$PL{l|ny@<$gde2fN!Y$HCc{vKx}np)~~kqxpo?wx??K->R-5*w|4o(rL4AMO3EN zvYd-2aKYjnq?!m$&e*7ZI_&r4W<Lx^Jr4@9Xp8c+Z|-Be{`}>cNTJ*ypT9o8U78)# zqMhEeK-=7zj7+T|WYNaf=MTkkVaS~MQFUKsY-3lQe_d7u1y7sbDbuNMy%ze77}60y zE`_-*UxW_97~z<hIK)u<<7J}m^u6RC1F6?uJTtny_a^F$>6O;CmnuK>M$J!v$sJ8x zLo*z2HtzhAEn`V;{94WxYL}^#^Wlvx6vbXcvF{?bGvvGD-n&QkYSRx90}%&wdsi1^ z0uA#rg{IFV<zen{!gb_JfMbxRb(vst*PEAgE6D5AQ||q)1k;bOynq`Ot%fVnRzmha z^(994%$BVd!+@IWH7y?a8P&)piTVX+UY!<9YPNQcG-mIMnO!&oKp!_qY+!V94$f~? zFGWj(bX&-FDoo1D6%pEb&8d9b%+BE2CN0IL@3YEny$gblzpo2DHBFKD&~Rrcz-j5h zDu~3H-jjQ!m5>>V9;PR0VZT>ZX1^}6NuKKxtWPqk8@lrI+q5Z-Y5MwWMVxXEl5j(M zR~DzNJ+^{fuX0}zM_#b5Un=p*{{)^_hPmq(%w?W^aM|N>{9W5Dt2mz8R#R}Pq^055 z(W2b8&a}kt(G{&z?#32GYn*FD@DmybRiWpmqi^2~c1EaNMJ7tmt!rKc&-r2O9C&m4 zysm}mg){&vT65neQ5Y4>0W6T~TDN1cebcTDdcox=o})TtyAB_Y!<XTVR=i(!2zjIy z+GNI(G)tZ;SMctp?8<j0iRn-{T!l+_=s0&cal<>C#5>R-voKL?Ok^7)P9BxX5)9KG zN0g%5IucCU#hstM*$cHTjt>xZx%Z&P&tX3Z*SgXh@gj3c3)^1nq+UGbIpVZ67Qgn^ zekrOrB%Jf7!v(@N))FJqsvNCx1`yRCq+3LAHKh$1OnP~{T0M+%on=ZkEEA9g`KNw( zVp%?cm|9iE{h<;v1!`+xk}_Hh)YkuI8{XLRKV$<)v2{FzR$>Urn}9B-Od>CUodFL! zxn`{PQy*))g)Oc$1s5ao?H5i_<k?sb#w_^&i`P4H9?sIXziv(y;VEUtpW>4^qm^ z6;3dzH+ER>vX&G<TD`S1VEAldHD}y=i|VD`xgscVUUV64Omr|n7vPLq;P6~)|A~e% zMXHCe>KtvPQ^47cb0V}cK>j~;Z<4r+X67b%^e<f+*Kl3g)xBV;GbK5;HFz-F*e_wm z6v6yhP40u-=NmT#;(wL5f1P>Ps%A*J4Q%^xlT~RF$GKk0m6r<BA;^?zRBDi**E6B< z^k1A;FCS8cSRQc_Z-s>c2%u%`v?(EdmG~(GKj>6jt9y3CwC&MdixIJ{Jw4I<>ryl3 zBFMKFlrhSES3sCfa$`QWOv%zgwta$kXHMTga6;<RuqHew67haR(5it%8Z;8?YtnCR zW><nazdJbt?BG;FYDKWqie5AnwCPvh29=$fS>92Rx86*R3oF<vej(_$7t!&Z{2u0s zjD*!IMO~&`oZ!BP6PER!&`=J)TAk;qx9rw`7DE+c#IH-Y#F{*c-5_znI!|-!uufeL z>a|Hl4cMu6#j5pD_zg`n7B<~Oh}_}>@KV5)ZC=^>hlLMwv-!URH$WFTSA!cngbxCE zd_CwAZRtb}AJ4g@^^&XSbH!DK9lg95`JEC58TPpO7UMi$zJmUt0>b8Hn<x(4)zbJf z%%`Nc+%0>uZf<e@?x%=k6=zMeJ1S3nqIJ)_jW|>D8u?^@4h(o204*C3Q<&jYy{*0^ zi5-37KfnD#^iJk(%l+WA8L^EYO^iHAHzm5wJ5_5MDOU(3HaIYf`2u0OSMAa0k-epM z?WFYKgfAfalZ#mtNxSfkBb`syLC^GoWlq+>F>ie(OsIp6APBfdKoFACJCHn&^nsGb zBq`5*YBTQI3xx{U@1=;FJFd}_&W;~ID=UYT0)L<fth^E!hXq(HD^gMD96oR6End48 z{{sZ;K#)SM?t@*wyARbDVtOL(MpT|({B#}k9Z6zu?d2^x-d$aRuq+LZEpDqtBaXd3 zoTP-7EM?Ijoy-SKSROUnVhShHMCeEW+&My;Fl>rQz`(o6_Z~FfZT&L2>-fX`TKf0; zHlgjc`RUzEU}^q~b4qy*TgjrRjspTD0fdU~(+}I;p!nURMgCd4D2uiToYX3h3SYeK z*K+lY&b4?-a+|7x#VJc}kQFAWBq&JG+}u76;9H(cGrkn%fi#)8>W{DlxWGa{z}+OA z!y58cF?T5&;MjY8_H+<qE)Pm<zpDJ9(np>tSlJMxdv_qyrIrG;>?49H6X5!iT~(ZT zua*d)M&=6GsQeID<ytZdrA9Q=O;V?x1me^EH2e1wvhJiv4ZqE}J;=xGB<0}x#cmMb zQ~`S0UmbNg?$c@^4-~=VVClc|xR(F^hedrz2!jZ7e49a0uri7lnQ%0#@ljd(bMr)v z@a3IGL|pMZB(<5x$pkrpBv=MrT5b@H*U}_8rx5jYuys1+SLD2x<|^y-H;XojR*&X8 zQ@{T7iQ|?2p#1)XJWVdqkgp^R<NXO)XcK0kp|Y)9jw#71!9=#-ck#8<v1gXF51@(! zfFezuK+dCZldey<`CyMR_v&2H17T+V^HoyB`|rGVpJWdY8%VBw{HnkBdT?}KK$c0q zsZ?#$WOmSWA?sPn=J_m%FDSn6^5uHG87@vy=I4a}${R%t;)l%YlZp45;<x6UnJ<qt zr71rcsSp!LdG4_Rn+sh9buULl7&I*1SCN<8bNSjP5Sq8A`o!b9+A=&6UI-<ky!bbN z3ce5TQP~Qvep0<-P3Xmq<6jesh@QXxP;u@ffFCx%kU6*Q9Ixc~z|%%<n>CF66f4a& z;f(dIVDr^D=lJWljDO}ZEti76TuA9j0L|>9Ps2>S3GWBv6cZ&Gw1s)^rn5gzE-jZ| z^K$G9l#4!jRkPuWzlj5Nht|Yqb4P%I3WMFGkR<bEV!lVZ_=H(9I<GQckBKqlG0oJK zf(+*X#&)e+;!TvwtAsj0geaS{eL14d@so$ecLf^0dlOaF98&21y+Ti?k;CefYU}IQ z^0H^^W<A#bP|bPcy?_>-UYG`QL`!(qwpX*Na?Je{t7H3JM8|B&(-#}|S@%g&O2$eU zN=0ZQ%mn9z4vMH;o6vB?kQwhZ#B#X@Trgaky~%%|->mf#=qM=Tfx|1}J;Ak4i(`Uv zp7MQsxGX79Y5WMrChX1O<t06EttvvsTG;)SY+KRo9bvtu&;Dyg^v$6~4K43sSRFV& zp)eSUp+%j~H6W?@&nWgJ#mUYu3lBWAK0_=HUfwu5$Q)}srZ9pXC6R!|NtOF8Q*dP7 zD-gND>-N!Ck_P%@dXt&NE`)zL1$KqKw(JnYEfxTEbiX&v;$mSW+l)JYYxzmT8-9xi z>l(GmbW)`#UtTQ0X6f%1-)ALBVN?1fZ=BDhun<oUckg~0Fp{(!VjbM5)$?KK1J8Yc zUSaT<Uu5<6C*Q@UL;yalHoEDn_R`%gY(OPE59tr!`si89>ccx&d0DTuz*V*8;knBU zq*Y)|o=`^Bl=~pF)4EvmMGT0Oq}7n1gG9LSd(3nySuK?3-u0rg%0g}wdVO&AJ5{x- zOE7cKcyD=tBT^IMrC)=vrhLov9zP_J_1+|Hv;nX7ODU!w*s|dlq7C}flkY8$m?7VW zNgM@uUmUD^Ij#X#Py2GUDd7%|W<i-dsNsd>nBunOTpE{ylWmHmaPnP10e?y5nzFwm zfc_4Lt)y$k9QKTKA4pWk|9}U?(nN<dn>rZa_E!ONC{@^1K!34@EiZTcCgQhHgD%6d zrCDvS_t~_IOm%8vo>x9)2vJRMl<WXdKpJC$HINH_#=`q^h~6}WAJqC!CZ56k3ZCAT z(U{EHv(aC)zczmf?DHc~`T_9khDuAC<Yegp@cAt~H@?B9Bd6TZs~VH~tP&&5ccNn# z7pPDs$Y3z{8ejQNq_{wE*{A>*IIMuXz)2wNLlE~ih#RUE3^ZTwV!2YnrZT2%d>BD< z3^7VA{&L>YG|{3aa_BL=$AcH~5(Asy1`vsT8O^*ifQ_*Mw82Vxp`s%JAm+Kbxm#{h zlS_N+lubz^zSmZTiI<AiC!uEL!91!s*bGn&nWF)g4>~EO8^jkZ^@qxIyy{52wSV$3 z=Y3LV^3Hx2BFoA8iXF{xZnH@M${*gy4ZI4p<t_;8LPT?;{!lS`V3qQMoPFmqs;8zZ zm}f<-pMUO>9L)@-c@d2JxUfoFKB-xh(c}IY#1i%lz|;;Cu9>{*VEyIIM`*>onwYFY zcV&5|+cXo6zm=<^D#bncUwD3OK9~n}EYpNZhpwbVLeF6x3R|TPnVEi_+IOECxw>*l zfzNA0z9M&CVL%acv_N?soQaQ_@Rn>7L(gi>KD*iwIs=`h&h<k0<+ER%r_U<#x$Mj3 zh$z1D9%ecPZ`j{S2?dZPPf<9h?rl1Iq6<>rwV(Vv-E$T{3x7JydLCi)t+dVw|89KQ zf}n_VHA-~eqg>g>e%k(R;QGAaNRjk{;GvHb?H!Kgzl=@1cx+SM98gGrep~gSqVx31 z<WKD@)rvrR0Sz<|P}D~jf1V1vKvd}m1fy$8jEWWs@u!QJx(KmG38ZslmW4s#jUL)m z3q_4r0vgaq(5}<ThF8Q#VPYLE51(ZAu*_1euy&C7Cz&--gABQ!R+2sP(|n?qAM<bE z#fvxbbN4=a6j@6Rg{lZO#)S*T-7Y0jaUOW@_G4*pkw3v)Q`mn6HN=TD=gll^Yk^uA zG=3>Es$}2dZM>h!P|QOs5WSc*SQxI1f%61wch0#1!2W7?0PgxNLNKV@9_4)IO~mb! zbU7)^839)n+OZC9avl(-`O9^pD9AaFHw3>v-k`)b1I45swP!hb1LQo8MmZq~7u)wi zwt8$|XaF<Wg<T5`OSrL7mP&SOfR-h2WXOiuPaG|u4W3^4QT2RW8y#BVWouxmDm(vF zSEo5HoK+-NpZ2)e2~q{V)TW8u?pbCEGb#zQ9`_1>(CZa1EIxf>U+u(&|AMFy@Ql_= zlv+zQtd(IZWVrwX(s!&e<WetDaWfl`)#1d6>rdnnV3;enhr7O4&v%b?ISR5Zw0|4T zN7S4heA8{u@$!Im=t9*#vT>ip!QBnw)ZhTS!e_G&R(qzQk{Rm85VP8bEc4yP=y^sR ze*=*WG`3c*dRh89Be%NR4Kv@0y|j<{P~9;0X)QI90x<aphp`#!c29RTa-}|PiFz+@ zYuj6j$i1ta`XNs8r%Y|b(e+DGhF^eF%HR)GZOkreC1q|1n6}>q+^@98au<)h*r8^3 zE^;i+a;X<Kx(NAxXp^|zaZ3+2oH9FvFD1YIL-iQ)$`ZsBQ0IeV@5{ZKVLQxe>y|NU zw;87}8k^Czx5uyk0v*lzWe%jJlv;Sh+8FvIIJ5r&!347a15wTp9#|5B@^s4e0t&A6 z)V%Pb>7rSpZaQ$(i@pgurbg~Hin-WL>ooriY?w{01v>%n8kpSIm-K-nI~1@f-N>ly z-QlQ}_OW}7rCVHrIujJHo(A0QTA4u!sP-4ShhKcsU)j@ScGt{j>S1Z%z0wSnsksZo zF*TkTWWz+8wl|Ya=q<Sz-4}b0TFj~WeF3;|VmyHlvyZBoU&a3#Ijl*BUd7TBO(m7M z%NrLN7ctrb>>58n^lEXhu&qfr!pXkUKv-Hb@&q1Q>H%?$xiu*z^}QiSIN{3MF%=_M z7m=H(jjUfh_qroLY-GPTvnvy~_nvrWvp}9B=O9-KAs~Q`=;p<^BH9Bd=u)oEdZ@Lj z$xgQ^viEI`vlMTMu{uR~1lKy4EQo%s?E0)q{#CQihkr<Jfw@S}HuQ>)L(kja!e}$6 z`(Z8}y`HGqV3L`)S*PpxmO?V^Hn+XJ-T?>3kzC{Y$s#FT%M8`7Z&EVsO|10IP0Et_ z+>OFDdQYbm-3*2n;|%R*iS;@#sa&8*7EueGhOj&XmP{f99A&fHql9y7@t*g7;;KT& zi(QBg6g@YTWb)}dbeqz1iri(aCY>9rm!5N3vW0OQ1^7A<AF|FZb->>d)$LKd`Ta^k zNkyCuG*ZfG_Y|)iG92)xxlX+s4z{J-d=6^|66L3WyB4;Q^m647RS1N9X;ORzCOr{; z??1dE{?m72`aex6{vVzgaNGthIlK!HZ23p6>c1RR|8X~)`71f}FFUS(8&CXot@uBt z6c!09(267O2md%m!T(H=8-M>bqt}{(ALEeSDe3?V;`c59#s-+S;(7UPFgN5ozL|}- zzkW)?^(ADIH@4shU|3GHf&CT!Vff`%Fem-<mQ(Kk*QcZaA3~EH`tSeOJ9=$8gD<7F z>)8;#%*Z?NQrN+HS`)*)?cYxLQs8a9BB_!y5LMdUb85YqlvuxEb=zM!<er2!Jk8^T z`z-`x_3)&YDZKa5s*QJ+LcY-`{2I`FutK^dfy@z+_>^#O9qdv)O<RZ;IqGLu(or7s zX}VjU^;&D(y(v4#d<FxE^!f>KdY2$Q_vaeBI@rmXS`2e`HnYC~;llJXyUlBPO>K=0 zNsoTlGvWnoZQtJKdHCtgn(Uj;hT9z%C__lVnvuh)UmRDm+R+$V6s)9oRnyRa#-;H> zx<`SH%)yvIusrL}=pm5OO<)pz8&0c5N0KAZuKd!tfNi`JsW<)@b$3vCVe#8}rfGTQ zVTBUnw_wnXsQXlN0Z!EUM{Wj?2ftVGz>A4+307Xw$biZd5<E%>t9@U*GDMq)+(Y~e z-gtcqAn(M77+)7=;bD`XK0N;S0{?QWcDL{iN)yxV*W3V<&cds}`>U`h{-C%&R2u*b z2O#!ZYU`LFAcHYZuQTjJi6Q6RBuN0Lw_|c?-f)jcc(uyw#owMV+{1)OSVrIZmknxl zbhV#_jpXap;eY>z-bbKij0egZWD<pQWYlz*`yg+I0PhD5;l4baD83MDvdf3@y3Lqi za&{B!Jl>{p|2+(0;a-%C{oV=|d}k%{Z9iVVm8$G?`9B||cx%}|;y<1OrnHQ;GU40` z+23VH!|Cj9z<N?pET9`)k_idKti_gN*+O%&qU8aK=mj)8>4Ds~<@YUcTU47i+L%{S z1JD{bou*LKDFGc^2E&hCzmTsJm~Y~kBS-+zoz~W7HWnc%(tkIRp6`srioUMOq2ad1 zzcxTM;608{sJ-zYU+KRsEdMC%2IJ-9e=P~ezt_tC0!OG0sZ_#m>0j@|LMl$G?Xz8Y z24f%uF=!k5S@8GQ%l?Ped(Hb7Vg2>fWGE01dFEx+mig>9G5_;NbN>C~S5kVt=d>yG zP89@He-MNV>FVV>-Nj2@9D*1Z4`_^7SFNTED;D*(Af}4mr`;DSeH{4KPBK_?f9D*K zT3;ok(~_<NGT&kfb7#7Z`O7dL_3k&O$@W2iaQ4Jpq0WKkBlCI1O)7_Kxvzo&aQ%~% znZMkeGA*I{Xh8dN$}Q2%V;VI?R8v9qJ5wzHfDESITwUr2^u0M^f+=E3F$vJ+p7dYT zIvB+BNLG7oI0-+{zVSAA@e<46mj0t)ft6`{ox2sP>Ij8OC^ZRa%tzdMn#r$}^N_%b zX|+Gkmw$ZUU9IBYkaNaQ$M)A6MQ2oQ;xZXjgEXea&`5%ici#mM%jA6wyhl^aYa&G! zG3r-p_cfAWzL!CjwbP>lTGSLjrOKq}CcsYr8qWYDkEyYq?>0Tx3x1}|?&F=Xpq&A9 z-w2eO5HiM?@Xi!gu{h{Du|IeyKl}xH{{`zO{kLncsnbHhER^A81`XR6A_W+D6!iS$ z-p|LwKA{D(3wOVTqzk{{62;ZzU9SwUYu~X?`2Y}WhgQ~O1Tu9A1}l6#w0eyrJ5Dg- zrdJo)W6J-#y6LE7R7O&vdj{9`nD~9cL|CWk&FUZV_o|Nn+Y$RE?3Ps9+#SpwqkqEM zg6YiXlj%#;A=5#2$Nyr$nyV#zbbCGZ>VMw<djIVI|G$U#f7=Y2`ILuTs{8+Ob#QBE zI@r2LRdVeh-7<ZG9tF9kju(em0^cwCzdSI?C#Ho){W<Hkgvrf72rWYJUkH%%@0_kg zr6h!@N@TWNSWA=9b$>{|>+DtHX?ezS{oGG~-CvhL>%DE9L~}q4KoW^9hL;e=yVQ0M z$jR%H!b>*whqsy@W{kXUiG{bAeq?^^K{U)Szm&=8;U>xmA1c`a@SD^f<WCf(r>q1d z=F~n|{C4vj6OHULQTq-i-+9Tk1#F!!Q>LK4Fe_g?c@n$4lZ7qmhS3B-UWR}o4}XP; zSI^~yKjg8mkuDT?j0sKC=>K?$HtBcl%!OAsslvT<#2!0Kj!dwUrb&iC)ZQe)u*J<H zC0Gyp@qk^;C(>?>+^)uxg0%T{UM#YveMhOv0W<BioItVEB@Xt2T!!>?C^U^BevPc| zs`WK^8%l>KJd?83iu_62%t^jIYJSw5kP3PSuLZi837wF-%($H}Ys@+3q&5#P)~5Q_ z_FJ4$36U@H4Zxj#?ZKEe&y15V-4Bn$>VWCJhmzlu67%le43s!?#6z2%3rN`s04fK{ zfZ}kkze4$Bd(JHmzmA}|{<Bm6To7g_|GEI|FFYos^yGrD(3nsRjC0GPMK`tNj%#a2 zd)A}I2*s^op*Q8~z9G1&T71HZsfED*m=N5UdWE^b*c&358K)s%YWuXsqJUw+dTDmB zZhn|Cv7-MfTV=@v@AUsmUh$>vZ_wZUC+KDOuJ2fdZ6}`9^s%4xqX3YKH=M&$f4xeJ z#Hs`G7tCyA{~f0PEorGF12L-(5}-_j>)ruXj4AfnF*-MYD%<POQub+x4rM){VM20p zl(AaQDR?bSxnI!k^8l44CNOCw<$p2u=J8OsZ~M4Pb}3u3G-ZjbWvwg|vLy-Gmr2M@ z$j(er))0jdvL{>i-H@FSS;xL5`;2v%rQfCde(tC4&-40xe}Bv$^LmYO&Go*P^E{5@ zJP)8jS&OFj5@?ic;I8>vFbPB%5suDt{!;c=c?#ydoDwHZLmxJnXvC=9Q|sHAR<dPR zygjVP5Q=YIfs!I-K0qpXT5hPco*c>FQRFPkXn6#sTXs3^S|a;g>+?X#o`544ox{kg z)EWXufrag9l{@;dIQps2hj+Zxzp*~7vxcdh3hEL`>U_E5(HV1hLHIO0SWB^`qQL6G z;)<7k8!YgUw;g#5=64O7kT$krq_n|t`%9;b{o{nK4WUJnx8I|9X|7#}ebDhG2R+gT zK`Zx#X-}J&_z7TALJ`@a$re$j+iQguR4!%pbyAlvLZ+x$ppzT|hfvTx7KT}rBKZHh zg%oPF94}s*Ozm501_J%FEou^8!g3;B&1#k3xE>Fnu-@5KRmsN|N%yZPyn0R86o%#a z5LD|4&jDXqum0Hx7AQhw^l~!h;5_E+d_#PAe=R}qPUR;VPwmpHg6bXK-1|k9e7Rl; zvh7__z3L*^OZsc^R!@Y3o26~L-hI?8vfEOo!)0&M$R=?%lw#e`NuN_G%DxXYuwX@+ zr_NQrI>z_yfx&sldYS?LgP7=*wYK{7uz1t@ktO1Tj6Z|b*S(nQGbq&G;p~T8uzK&U zc}K*>3dhb#rrsHNGA>;k{z%k6nN&e(O3vEqo?+>#sq^o*ZxJBi?!b2Eev%ws(U&*6 zYp-#Gl4}+g0sZ9Ms2N!~!a5x;Lua02AAhT^rXtwwQnEW&rT!abnb3Fp-VZ(Yiy}4< zGcRG(DOfe@xy>`J*0q-|^OVMzHh>#1j1CzGkHuLjQ8RGo2S!6K!uy~lD$S6w$X;En z#cZC|$4Qk%(^a2{rkWvPhQLo>wDiQek6XOpQn<;ZcCK(A)FjoyPz<vk<>;Jt=Et<s z`VqHH<S(CPj=%EB%ju$ECV52TH5t)GWBwM%d%oPgUi|Rjbsq>lu|2iK4_U(dbXSwY z<}l1FY};t?Zkq3h-c+l}3W-R*7$)1}nRb~Awe(-wpS^&nVLx~68=)7!$Ic1e_`G?y zhLWR&K1%L7V-3E5Emu$5C*Z1C6u6rHab(VWVP+Rvb}2vVOJ77P`u66tRK|r=U35^Q z9LLJmV&xCljc*Bko}b>Z45{otup!?q!qE^vr=C5EGeXYuVa^xNtwW9aCH$dl%!iIi znv8C$mm+V~Rz<Y6#PKNKqOzRRJ7}CC7HX-@Sq>#a_$QY9rWq_N#~ekyc)vKzz?twH zh$bU<B$J;ac7*P^(12tq)?#L7cr!gToMK!L88D^aUN|Nsw*DG6AOt_@XZV#o3SkEw zH(xq$v7Aa(VVt{UQ&Kvx(Fn_rdrHtSr7W}`)i#3UK#HTH{FE@%dj?pmIhz>NLMq+3 z?be+w$%9J++ZF;+5U<V?44W`6_-JZL)Ox}^jKdDf2z(llp@)-UE03F)`d$>^6+JVX z>7wadi9!9H91We4n@{2&aU@h$tepa4$CGpMBS_2TCx&di&2YZKogHl-74gSr0kYu} z$T?bg_Fz{IH%g6GAmd=05DAcl1Sp%|b&RhHwjQ&B>b@J??75t0Z0m?%+MV3Up!R;% zDIT{jsLpzuG~chy(~9c;aSeYi5dVpT3O(e@)Z<Tz7`+5k{bAZ@$s%`eo`S@(5lwTi zTH%*kd_or^=3jIbNi#)WD;lZ!%VPKdy87LjKr@toE78@)q@Hfkcn^Zr#~I`0F<DX1 ziHvqrJZS6Z4!a=|j-FZp#^JPbmxcBMk!<weXQMs1$vu2NQJf3j)%h)6c_OaoF0d_K zCc(z8T##vIk1=j4{86Kq#gX+zs$$tA-92n&va(f_k}05@&97sgCg+uWf%6}cNLqR+ z2-Z2GI-<tMiImGl@P1SRwjA9fDE^a#z186rY^+-<-Z@|C_<BeJ%R}imH@WnjqrdVO zo2KQV5hhp!PJ`HMRNvZ=o8^UU^z<IxXP&k%33IF;_&yPm4O3RJ+Amr+3q!GF$0mM_ zKY>j}2Y=Q?LG~grcU-V;3K+=CUHkfv`}>@>{rcBvW!Iaw=5K0F#oQ$G8QF2ckrP{d zg4a@Kahs>@=bCjfOCf2h&KnugFC`_z6vL%GP}Ij~#ETj|bV<yQLEo=~g9f-}1|ohm znbPW-DB23x@U{H6+`RB8eLrh4OWilBGb@*dQ%*%W;nZU0TY~05%)WLY+-wU)UFEx9 zw<VJ*)_YR%+4lqZgXvOFi9OHX4mgm^-Cu=0VV238JNq;rF5snj4}G=;+*&o?13$i3 z&l5=CM&S%ZOG?(CJb7@A<D8+v@ys(YQ7@4_Hp06GI_42SA@sbeI(9K)zG0BJYRLLU zWkfclqOSW4hm<l?@l*r45YY<RB8&fJ-99w%@gPPuK}G(*UElTK`qupuQTYAiAVd2< zf>OTULy{U+zN3@g;E(Am6rR6TgMmGlKv3D~dF<aXD?Pc9>dV&AWyY3elYN(5A^)bt zN_ii!?2+FDrS}ZLqPZ+W)4f(Wpdx2G*9CV8(WHp5&}6h{fcL~F1{KWqDBqi#SF$%o z%5wF^?iENb!}fn<26QqMnaG{uk1GIOae&2i8SSi)lL+(Jm`N1B|5pR78FNIHId?x# z^b;=WcsD2Z2RlW}55o|KzGa2NiWs-OqZ&&+L%h(iL&HV9tD{tF4Iv|c&qv&;FB5f# z!YbzBj{;B5l(4Si%e}W!1?Wa0f9!|!^mN^c@)*{Ls7qy7_q0*3xurSNsONrA=eh22 zSh2~f*3D3aM8o|9=W93DD0O=^FW&q?CjD<<C<k?Ladh@h%|4!+YDx)-l510*Trch3 zCcob1mN@qNL<2arV-UGV2R#(mm)E~uAg-YL$DIEwGW+oB{`FJB84%m$&JqgB*w|oa zZ`H`vXM~c)7aGVd&#FB(JEzq)_Wt1s2OdM?H&)$FSWu?|OguFE{dAo_`l(@Z@Z5<) z`FR(=2|Av7H)4L*L*shlqgxK<&mUYTU3b4Gfhz?;*`1gYhA`__tDq$wFkU{Xgr07Z zqeBxjW^IJ#%7ay_pIMd$v7EJ3XTOuA(|zwaQ<LT_XVr8t@+6)E&DK~cM+NTRaZNfK z{Tr|Cbc~zbU0jVe+*nKFtGpqx5vOTKb?=cBWeTMH?#XdO*MA|O*2ZhPCF&{k6#R<4 z5iF#E7fand#WVQCyrg%IK$9Q6F}+yH5+l@-Dtr@!ch|4)uDTSVjN9$)Ei7nGr?<1a zRNud)^#Xi5$+4&8B>I|4*6Th79&!@caUAat#CbTspA0s4{?aQGyll0U<e{IK$e4&~ z-1T|G=C+=4s|YnJ<=w87>kv&?Q=y%Q6ssd4;>}*Aiwr}{mgE>0K>1T{Fmbc4@}&(m zL|iDwuX-Vg6zv!}82bd`GwmFK3PPbNEhF@yymPR?{87itR`yGmyH1@rDBf&S1tmg+ zc&NE^FtlXia-Pi%Q)GyrS^t})7N4|9*R&uYQ6|aCw|?dENSU0Di$;HHN4J~dQhv+( zKlgF#*Q}AamT&{1F_|%MkT^PB|8e6{?cWy+V8cuS`TVtq%0Bu>4Lr?J@pq``Uq?V6 zKqeK7{~Jbil>YvSEd5_F4y1Q~-56wz)z~b5jG`XUeeE*EuCaa@u-kl})KXeiQkAGN zKyCQw>gRs%=Otv(tXC8w8c)C^jX<LXP%3<WO3`Yr;JC59R}!^bAvR#Z%Y6M+@x(;; zON56QY%mqy6G&_VD4BBD5Bqe31OY>aj;IdjF=-;D_v}xSXEl?lEs)SH1F!K`58+aS zrfuQZIbZ5RwWUn=>C+auU-9QID6<RD4H-gOT-*8qJpW@RPeA%~BU+x+mG;RSJ<-C2 zO>PM`2vDf7fq)>&#S7WC59h<m&#{S6E+@X}kwFPfh`2c0Y`9KaKCv=q*6e1Wd;Q+O zO84;Wo)0)`9sv8#tEBtHE1xQ{p@oyE9$TT_LYZ1V^XiE7SjV-&lH4Z`vlhJB5y$Sj z9mXpew`$~3M?*rUfF>nC3`=J?%!@>egu6p%4eu-te_mwJi9CJRLy1eA-hqSsZSUwx z%eE=xDRL$nl==9ba5+^wKTc3-b0&?R8}`=gZF>8u4f_Bl(dN>WYRe(dgcJJ1tt2le zG%4nec0e&`(yfG}#-81a2PJOrJI$?UX?2>JzkgF0d=fIGJupJ_Hyb5Y6MA+KcjaD& zWd@%$?ZIoHhaok<79PG21NAp#FPM{&WL}O=+*M<%3&pp3rM;{6i+*&4^<GQhvDD|3 z;{t2jLgW~{%g3Q_re0D=r^T~Bq^M3lSFK^sV2d*B!bf@vDVjC;xW=j8`)78$)#miI zqii1mEh5cJdGZfjO#S^@{FR=zv|KY$W8-_=U!jju!{x-V$un%Za(#0h8fC29kteg0 zslV`AMm(LqpntE}sY!J!$3;4CwTQt+%Iqq7FKZUcXv+%E%Cu)L8G{+!UF+|2zVRlS z<pH~B%(V-V?*mQO87D#M{__lrgL!Ng_<hf?#qYgRU}uPZW|vEt&Fs}3t#eI#tUnkA z_0mg!u&{b_>RD2k!(&hO*Iig@BBcOM!B27c;&6kgSG#7(x1p{(7}LIwD^4G#MK8uO zbCbVf>A=dY$<pma03Zjt00MGH09<_SaVQpBbV$+lg|Mzne?m0&Sj@x*H~L1A8!4qN zyUO-t;iYI2>+}ac7&^<1lnRNb>3dn(yyY+K2?;}{$^qm)fd5>f8H^mS8Z$7>Ysngy z7_WV7Tuf1hgm{LEfJrYkNDvBJP}wg2NpeaT`x*&B7w`BtAjh_?x3-Z5@Hk@2bP4n& z)DlXG4Q#GF&j({dI8QZsaPjR`#KCWiLN0M}BV}q!xfYzL0wKbh)AzLm?_}nG<>USX zf7SXk?t~wqsF4gkBgol{lMBX#j5UMt`U-EjwaNVTKIhx0-!HkS-z-N8cqOvK&Hwyr z{Y0$DEaW+y!``PaREB&e_0$j6oDj=xcj<b$lL7YG6DFIM_Z}O>U3kFE6VfNK{^Y(d zj9dD@;>SlJ(0`zArtxO>G^R~X(Fet@ku6J)+qG6rC;yaoXI;(_&;Jt?1XY=>h?A=b z1|kc#bhd|3{x-O!Mq=-cLC5sP+86Ws?2onHUXcwcGEXnnJ!>fqX?0#3L4Vww<6Re; zLA*#T5A~?RFrK#a&^b;QZE-Pii<f<V|6T{%0J8L$ROr*j^1nHOjvv4@=8TtHdrfdF z2YC}pA~@Xr-rTlfWoejnXWf+LrJL2X7r!gB2*WWFD@+9@3a>|ROa2R2?1D@Bah70l z=x+vC-FY0}xXN(MRqnXg2l`jkXu<_`6xJg1IBy)M)YIvBaQ~J6R9KI0X^pCf44WQS zosff8SeoH`!O*<zWm?A<Q`e^crWD6J+TYD|EbD%=Q)4&H$hIRnpxDO8_joW)xw(EK zB^XjkeTR#{1EvCoLYbw})_w|I3ht_kxE<%1=fYaE;qcfMk<Y(WCjy)!0FqQ#3Sz?Y z7xqfE^ur&B56VTtk!YPh6#NVRhH9OuuZ53H_}d)<v+SuUB`2y$GbLw-JhmrRF;*`@ zW89Aopq{9SjkgAC?g}c2Zx5fp(O~nv;<biVO0$M8`MzjdSN4x;hmJ1H3;yHu$E*oE z=}`p|=*+;^)%YfC6p>;Zr)}%m!yNd*3uaU%=vN(cXly+`TIbq$Jk`qc{O*94CXu2K zcXLHM!>hSf?%db)QT()(Z-m0E3NA>%t8Z2aq0XqaTOG^^m4I3yu)MGUq}3*~5{BU} zvJN8>mR_DXAYD5aN3E*oQlT7#;_i54QfL`>^Vl_#ZCIMwZ%hVYmaO@E?{2BuNnX<u z23?9MDV;f|*C7@soc6{R4}#y#U+;1F9bCK(U9f}h(LoNyN91)ujA(pZ<-f32*1xEw z1L?gqLgEe*l`)&&K!QoGWA;3)zE{tySNU*+)qh4iU5S(gQzdQn@)d_~-bpL`-C{x< zVkSGaBreS}1J6=3xcTJzqHqb;l}MdO`4;nC;>9<oNbRbLHo6CEWcG&-(+jT!#pdS= z>l`$o+t;XZPVm7g@e+*6x=#M|GC0_dWe#o5RwJ*_Q@2{!o={^dcD*iK{1omOV?n;p zpn)}=MUwgnek0N^pJxN|_MlW!y{pTGNSh$laI5E?oY9wKJ8ccOOy8DTzBa>|{3HR6 z9IVLQDF}f^?^WR<cOpYXG)6cSM*^zWbJ}Pb=Jf-P))>W9dD=wzf@I>O3~?ie*Ci!n zz8-YN_pg3d=x_58jeZ5s!z=~NW0PjqjT_~z^*czIQX7NT$Kz_2k4uzCF9cLsxq}o< z)$+kP)eEdUhXTBY^+u4(2NGz|aZwhnIlI&%fMB1j$e8nWl$$Xb{ef!zBJwci@<fme z<C*eCg=17L7u(pcbwEF8@P?Y+mMuurW4X{VdVvUTw_ADDeyWTPa0y~pD*8?z6TA;m zb}N;|J;F_WsI1`hG#xGK<~Qn>Q!3oYHulrg-@cC?<QLm;WfQ0*-|hQ7j004*?nLs! zE51>pF2V^mS~)M(v>85i0q8(Y$#B|ec>PDs0>c#}aaR+>BMrC9$up^4WU4X=EFqZ= z0>Tq=gf6+u2zI<1HYVDO7B4^7$C%kyA;dT}ZFg+qe7JqXop*=A_PD2oZl5~>)l{fX zh{r6<zYezh5y`VPSrGbo5VUc#io)`cw>Y0O8T0zK7g&KfWkc1?@8#ROwW~hF{^DIW zyps)ax-Ugpnd_PzF#u?yve8n(08pU7LKO#g{MpoBIIgV~h%sJitB<|8;i`6BP>nlA ztw<sLQ_98eIVHaT%BcU90{xe(>4;i=U;H`LeG{vC?m071Ti{qudRFu#_5DZo6^mG~ zLmZ-k1i}7&0l$WA`l#9;w+hpN01i;3O_ycFFo7-mL^-U*2V*Ro;ozcg(l~9<{OzhL zSM`n%Dm91RmeMuh1YB{U8npPy{kGc3;+yks2U#WH@>V5|Hb828oljwr&CGFIl|2%L z#UG3X==ATGkY8Kx@#jTb5Ge>&8TR+Esq@nzI;~ro0r~^t2Rs#}3GMdbIY7LeK=(L+ zVWq_dR<)x`uzR?mvIGGkF_u@PNi%YIc>lB)9FUhov1NL3hrz*A#utM~DH+{RZ@<vz z+Z+#I;zk|cM3EHrfR0a1=Nc|A3tIsxY1EGNss(4d#Ckz%X6p6Et~Mu?RapP7+tek% z75E``x9NyM{J9T#+)uk0r}pUugJ{VRTP^#!C{)J(y`g++LcZgM2;_V>?^rNV7M6i1 zwZ=14&Wfxp<{D#5#x*pVu_dFyfd<11r-Zm6t+oy!oG<D*>N@qYCdZZF5&ha29lI}n zA%En$h0bl~&%SP-0`@OVbL*VV+WqdeY7RvOR?&Ovq+Pl}H&1F_*CQ2uMRDP&eZNh9 zefnCk#X%-E5DaaQP)H>8Q+VAvT`I9ST=1~)`)8c$Q2IBCa8>qg+Qt}Tgjm#@x8Z_; zaY~(9D-CpnBoOT9Pcu*%V3+13i)Q?VK5?gPw(twn`0uG?b#lL)UhBXFPJ|JkeJC)y zr1>OtLFF}G0zDmxr=6jr!%7<uX@-gHILc8=CtKf(jTpjz`k<F+5-0ucCH_kf;k!l5 zBVvm)BUX97*=Q;{$L>%#gMAOQU1{zKn!9{1Ff+O&){0k#b(en$e{?e%Ag1F%h9g0h zQ#Bd4y30`xWrRy2nmELZ&e+A@*leQp5upwpOU0eNZ!02b@rcOcr0m2cPZ%+b!rgQ+ zJ2nf$azWa|3(Pq&Md5W<vzKqre@VI%vvRoj=DdfJQ2j@m$ThqVEAh2W#;O}2q=g=U zRjEz<Vmlj7OEupNs@9EEDjcnGcFQ78qgzJz$=BW=lD;5;B&;=@2a8_<`3M%A_{ONk zjI;uCa)E~R(#Yl#@`dVB(jx)TWCndL5vk0Vi4i3h5iJ%}7WLPG7>2Y4tBa{MsKz+I zu+R){xKPWp0a4S9*Qk248>7xV%GBpZ6HRvg5lu@X)@hzdQI2`$ENO(rHE$U$5gg+7 zuXabl1f5NA&UpL7>*<ND8Uhzxxqx?*KNz^4-xaLRoUgzAoOmbZtWk+lP0;WjwB!fo zlhe5ZMb&SyTr6?QFL$plvEaoq&$s<p33<CoRj-UYXQD!+#FTUQb#Nm0twCKAt{C*C zTWbP$>uX}2KA3-2;w{9?dlU(JdOa4SewVtkcW55jPI&J4ptf&*=}}GYeb?C3hpb<T zX$|6jlxUUpbF)cM8oUvDC=QuzI6=L7rLt15h-UE|X{b<HG?cI9v_bCtg&F-XtWtOe z^1b{0yQG80jhEpT50+`aSAOUu;mW>uC#}77gS<*&Pjd}7r;LeeL<GwTcuZd^n$=+5 zQt+0u9Ci^4++ca-zdEuSHGcaB&%sZUgdCw=nSqg}I7zuPnj}VEFop2utEeQN{y0)r z#8^mE_!>?o<6LJ~Y}2Nh>@3|FbSCwwy8ywuDU}8<k!i>JhGAUY-Rb2e)xvw3c_%6~ zs-8T|=^SfnzkOH|7HeDrWG-I>;Uv?DCQdm~ta{77PgGM;=x~kF%M#|wI7FF|-4&%6 zJu%r2(p{0%B5`bm{a@_>@<5t|jhGX%>odiI>KUiambkB7A?QZynwn^nm+6ycUBr9W z77jFbil!3(^hR;kWRT*1`;IBn_cNTm3JnbsFCxPl-!A^P<4@m9P0ePo==y1V{C%WE zXXmwhqH5eJz#tq3fe%1F0oQKS-7V)ct2NwkcFg^W&cYvV)ZQCx#WkVPX;revJmiJR zNT2He;9z=bFTU|=LUYO36f7VCyn4`ja1i{W&AvwqKAYHUZ%DGkDfNzC)>Z6>Kppxl z{)~h1q>39xsy)h|<U)N)s8dD0%TE$bDKaNI!ejC&q_0hZT;)|)u0?1740NeMjIA(1 zsqu7~26k+cYI!EA`#$fUzLa#zp61N+RPEx$aW;hio(|Qp3h?S}tTX+|v=#e7h3jhW za}H2@hCfMCuO-8+r;zL($y=xq9jEB_LB84_aX-77tz`Ky4E6sMxcmtl{R{i~{|o=l z(gW!eT=}#ySanwS^nD%2>SmVC_1fG29*_V=Bsv>*xTOhh(X_nW|4i@x%pC6@Nqap0 zOkDoo*mJ(AtEqQE+Sz-?9|`F~SsbC0wa+@1Q_3enDXu1VJCN7_w1i(jE^AybIGtHW z_dBNhuP^66`tkogdHhfD(VsuzuL$E0=**x25^rY8dCc}?ZEJ#Lyax^3qxa_d>Z8X; z1t4Cs@zo>QW50&0Ec5CvQ~7@zpa2xm5~tdKj{NSH6UO)cI1&Vspb#H^z7><y0%evH z!Uj2WEN`t!c~-DW43crj*gmrLToFCTKItgbMG|`P+~fOiS9iC5>7(kW3GhCkkJ1}l zm_KI_SFSu%US19Y1`ii*W;ACjqZZ$-h|}h}_aE?oU?F*YQd5a3R2~+Piq?vXK%CCR z_Rp=;HBDU|mbq$=_WXQ9uG*UHwZ~q!d(lc_MJn^^tLKzjf=*i>$Efb_d6MrJB4bj= z`&xZc(r^#(mS|!MO^H|Vy#eu{b1M~B44-SZsWNO8z7up71==zLteAc^hCFab$Ooff zVrS%-yznuDiaUid`sw+n<xk3!GnV^p4wWLK$q#GUYzkfzMqgbZoU|Dc<68oeQFO{U zv7Q?|`4>ROsR;-m*-C<s8u*=5z|S;EME(MBO}hHaH3=b*$}}6dM5HR<guT3ijm@YD zB#bUr*dQgS!-yYN4?z2kfR}i&K{+}iYMKsd)2(jpNY_$R80zgJZg)F7C%v20wdH09 znYzuKd!Ml1mlI`)E1#wBwrE-$a)N*I=2LouJoXsQ72cOx79Y9`J&Bhc+Atpx-+R+) z@$se*53=$(euOzyI@F^5%l+6`{qHt|ZZMe68zT?%$LV30N%a4;)i@H!F5!Jm5hDwL zIA^kHAmgnDX4On@L5HySbjb+YK9q4ItYo^`7*M{FkE&DjB~f=@pEwC>%cx>F6<p6S z(hhXUQ`9Gf<-u*RzMw;`9y0PgYt+2wQ{g(<S=kd>5W9Z7kZk=M&$AwmU!1b{P}bv| z^Y%S%lrG!pA4Ol!$B%%fyWlE6c>#9H?v8T<tDmHOOvTuwvs`LsSFXT(2Cc$Dv;n$p z;sfy*>}!ilrfTu6v@;~Sx-2B8NJyR>ui?neEXb8kO@J1YuP4lHMm0!d$Ui&3L@}P{ z0B+db_Rs5s#*Fw1Eh>{AynAc<u2q~q){s$Jz=@{n+=-p<$m4QkX1U;@w0N!AT7#6a zu*sz|+oDWU3?Qf3oqhFi+&~MDyHnF?F#E>?j`m0OCKIBAY-trjd<pDqQ!x7Yr%rGH ziv4H>B4GPLO^aWu-rqd5SV0&p9d(FH1sc@Cpz2LpM0;{O!T;AjiN-=YO#h`w2F-0d z`pF62NMevcTA|M$0wIa4yD0&t3P%xBKy>3iq!`*VI=>?HWCYJOxHdryXqYW}gLE<# z!x`@>VvFn}#$_Zt-J=e7S`P3sbpzRi9XgA72$n0g)i;$HPk|wCrd4(mC!QQ?Mv*~R zcGgW~`rmK1e(@CAc_6L7I*E`3(iA#I$yCf{o7ox9apuxly;|xNR!6xFlEBrHImI0^ zWai;F2DbYTfrE8XNRh+Fj-vvb;asA+;lnWZh-PtZ=ZK0b(pbm*Q>RW*$gXB5iV2F) z*WNO{9el@0TUk_;qGLsrq9~?;4&F^<AS69;W>cGua5fy_#zYVzGY~EXy_Hfz?o|1% zT>~F49SHN-UWyKZh|Q3^zu&K(?DIaZeMB61tlra7Vk9|wf#qF<-AW=hfKB@~FYOPt zjNbn>*PDOHMoe&E>c5>O0KVlVu#%6x;X~<uRJi?DuRPhg)Pv(1L_F;9sy+DXR_GRK z(l54j_)UZOWrw~V=P1yjnL~fJXdT$FkJWx=^+@&2GFkDtn><%ro8?gzX=<lBz_%Wz z`Y~wgTt-5-z@|_sby*zYcF{tJS16ntK3F-;n1c}Yx1WaxRnWfsREBfxr=Uw$78>+F zi7+nD^0B*Ypyf%0H$k@sOc5uL6=#EU*pOv#NOa&N&$s+G=w&5%|Hy1`yJiTh)Y=%> zRcA3v;WEx5qv9f=(=<yJ>N(_H3@Vn<ieK4F`?4ui(%x8;e2=AdstZtV$DdKW@7=)R zr_rzO7neAk{N(J{iSdr-M7f*zyuB&pDUiy9CYmmoQDbuoWE_Nq%QZNMFJIj%tN1!0 z6Grzj|A*$F{sxbr3Wi1H0hoB`7Ts%N!=oc$`bhh3O_bk4jC`3sJeM2QNK{;T0-oEW zE9qf;B;a)-#rc30gvWpzQ3glqpYLub%aYcB?PT~8n1wk?%MUoa_n5htfBIIiSX+~f zHF*Dwx?_FqV`gd={G82nMf|#~n_C)u*z>S8A4-N-!EpF7kOyWKKUY5=%PA)Gqni4A z!W-_VsbXZ7T;~m`pehLGKKkxi=;+d1N*+znr6eU{&%`M?Q*Ez&14Lt-E0h&)JiMza z44p}YmTm^Fb=(Nb!zj2$M;2bF862wG45|u&OAIMc<~8hb-XSK~rvkF^8Hl3bM>4pt z`p~(kgA?k1EgDuB>*cj4jDP>|<5`5=?09px-06;s6=g4$5|w{Mw`C<neIiLDdJ>u7 zC}<gwvkK|&eHy~UT%gU^h6~HYb3=Hx#~&RE#AOY+ZL%xZ*@r(qbutl;3Rvqh0ZnO8 z;YQA<h&>1<i4WtJ6%Di_Mwd9UBy|K4*aIefju&<7SHS4P&dTsSo{{}Y67I(`+@&el z!(71q_E6|kVVw*^xI<_uj;|2W4BMhZ9AZKKswmz^Zq}3QrJ^|KL@7FHTk*PDR$Yz0 zn4kgu?L!g);2<l^kq2!|EWnO=di1)!eI%9mNiqtmm45V_p8Qw;!2y3+QgERDV+5W- zl&1sCqB&SG!$($wS|DWwct9cOY5Bw6Nc&g!li$Cd>Myy=KWyaRt1OsU3ySg65{IED z4&dp(*4h6W2d99v<`ZHRob6yhv~JVel5{w72!T}~?XONSzwLF<c?EK~4&VuJ2K%-E z;XM^}7j*;-{@U!le-x1b8*_^z8*>!U-Ha&y$;#L?kZ%!`ezj)%r!<5dOuiV50EWI- z0EUhDGV+t;@lO&$o+<57$;qpuK8&CLx@*AI*dan32OmuX)MN^%`T%Vx*Xy8%ECn`r zo4+obi@#kqfDL*DB(Ece$Q?283#Wd6ZzS>zkJL8%0kFNWFaNZOONDGnKyc(y1Xla^ zg?@;RLB!g5=#Fh+Kw0j$ud1N_{I6mEfsX3S|MB*(Ir(R0A8l!pLf_9|(#WHTH2~U5 zD?fTVFyc)N7@8VlN3!5-BN6tYCYknVUxWWaa`ajnAu5A|yXYjyL4rUNjX&QG7ir4h z0w4QT4u9-V_vE9Qk-`VggFk+I)GO!zS}lKIAWxY3uwXb~Z6S{$=3!{_uYw#fDFXk@ zCi~X^+O6Wt0Yss{la@mqgI}nn4$NI<mFSnta@3oK9*{#`AhbilTECyVJBK{HGO}$9 zPTp4osP4VYevzjK5_Bh*w>EaYHbv68R*s7-nGQlW&!#1f63PkB%Fhl#Es9=vib~EU zvW{D$hHcGHpeauJ`@?`JrAb;SyNnP{JllGWzbD63^%!xjazr=>qerTbitW^yw<-Yp z=L3tr>>LaW%)=Yr|9$EG=IeR%WO$4J3F(giwWxke^^VpE05AVB`7DF|vu%Dmo}-A$ z35eBB=#DuEU_j;kf^9sp?)4Fv0RrIUUxwR%2f%JqAWn|D23_5tBTyY}V-O~ve~cKJ z0RE)5>hlV5?MGHn|C|wE6AOTS&gPttJiK~zVSh$$9jiF(20ckx!BBSpStCEc{yR_k zBjEt$STreI12P=5BB!ynEezp~BDYwBGJLNtbCjox1D*Cs#>4?A^#T39jQ(COp%BhO z>?G1fnPT2We6TkPaqr(@Q_=GDTOJC%e!B5_l;|T;npwqSD#Z0Va*RFbrG&c&BH&c& z^)k9(_~{zCM~O8N1vRanbm%uyuO=sNQ?zf!a)lmd-=I59cmro$0cMaQsCdvp!@2E) z*=kb?YfZ@bvKYtSmgIMP+AAlvl6<{_6CRTvwsAd{b7LijUj)=o48<9XFbRr~r~Ds3 zG=kvv#M6`Z!bb4*!j^KmYlKi>^8;KF(fcjAm|%^vQVi@FUiSl5Q>*&hn}X!EL)Z3( z`=qZ}#A5w(%p0w!*zAaBrm_6<N6mm#w9xr333G_hcrnvLQMuL(6Y>2Ehw!<v_7Nt6 zfZs!G#w_d^f*P-e(QM^;`0WXsn)7*yi|4=3HW<8D{MzjzCTO2JXPzQ(&;^1{d+eq* zrf;1f5`kA*tjL}FQK$A{;*H6L>N-Q=g;D5p>&GNd*me6+I;uSVkU<GX{UG>P;3~)4 zyg8OJTffv26{1gbA)=wr!h(!;IL&9pNZO0>mDCk&!>Fz>>Z^@Q(U&Hpt#kj#v9Q#8 z;8X~B<tIycOBAq$Q91d^dd{hTjvHa!ZLJ>|zZC2EL|)^g1%O@_=QIVb3J+^eS$&d` zo-GW<nG?s2B92^zAYRkDSe_Z$+vKUuha%4>3(D<lIpKzxwOw7g7cS&SMPHKQ=6jhx z{StAy4vN4q>~$m2)OM)UP^&u3m-CFlI>VQ6dTIW&1t{BBJ#KvWr@30`;~dj#&6Omp zYq+F@+xPU981*UN>$gG6^w(E$(!?J9zS&KdmF*QGj}pxxb1?nnR11rh-&P;{Y0J|J zot)L$ESH%S_rS5AS%iFq7&`=AV^Ub7EijrP!aBFUPCT8qu1e-us7ATcMN>%&%fqg` ze<0rq2lr#s4d{dVv-8UDz{IAm)6$?el5@>8FGXaTb!<pn*H+*~)<5*@3VP5L(!T#P zzpt8tw*H38;!;XW#ipfyDcYDwRgaVLGsI*S1xO?b={M=KzD&`L-75iw+@({B`xbFt zi_Sdn&{-poyo67QZ9!Wh;|zNtgkqu)41bC6DnDNk&pTT!H+uLz%gRw&eb4qd&rXb) z;tf>Wz$>9)KH^vT2~ELJaAKYe#9E;}n;_Ki^JZA}W|U^I`+R|kA*waYpxLryIbbYt z=Gu$XSHiTMKb`j2bg<xsg5LPzL~0aXjPNQ0lRQ+?UVvAqB92zSDdc9>>RuRaO<7*d zyVI~;?tE8#C_8SUcFm61j3}FKOJ(xYz)Y_paT*fk?JW?}i*><Tm63e#ahoD`S26?o zYe~+@G|@LW<0J2s1Z1XuL*ex?Ry$_kstM@CIxQmH&c5`!@yhhd{1@wQ!WYBks$+V2 z@UnS(>D75WPe$&WXfEpPeFbJ)-0)T;Bn^v1FH9I=jc`UckU{0X_dJ&Ot-iE<_IsQy zR;^_$AbvhmHIKjw?}b5R&f%2(1o|5;Vs8_NeZ#}mUGhd7ahc!TnIk|0m9&GwjD^eQ z!FO)NWHO*P@k~o|74ZOK8p{?5ntCXiH$SO|VtEhscPQ(m-|`NAZ>UYtSCp`vh|l;6 zr-u*0ih~1WXmO@^{)RYbI&6|^$)JQpfRq<lmo3rbc5!1Zaiv@WDpwly9vq9*csa@5 zFr4^(A|fSt*Ivm_5qBOwfuQ|KV$VUnrZ+B5$8Mm&J&1>jKTCM?K%zD2o%h~CiWl9v z3)h<T5S4i`S}q=sLMH_N01S?9bvL4HA#!yKL7>Y0Wzu<sg}m!~S!X>93r=Afl(C-o z*B)2;y7QrBB!0wsv6+gQLJFeyi0Zv%>1h(~XJ!@{<eY!}3#hfoIlM8tb;t7x%Ih{x ze?UZNLPkd#B_8LhJReXZt*jetk=RDaCz6}M`%_6|^wDvjcb^ax^@1q#g?ajbIgd`e z8&!81!(s>Kx$6lgJ;7rasE7`77yNt)#SLVB!oxtg4hbJF8UJyX**>f3RJo0rul+S{ zW#HxB)>SIMMXF$A(}Li4B(X@3;E~lCOt{@Xi9p{%o*M6T!C1F$3$KQZ-1?RVpXHW% zeMgMguNpNAE1hPAU%`sZK${({=MYiC!{c`bE?67v9}}8vBJZqt3aJ<D+xqb1`lHVQ zDqCqd0r&*$^pSp^&MQ?3ed<Mq-D|J7x#8Ij3HPe#2ln@)8TsV}rJvE$yEbR}N(RqB z#(`Cd@qC1|0VZ?AgGgTyFYwXSSRy`nXB2YYyyU6lS+Usp1raWebTuY9^Litxq&LaY z{6>ZlMMTqOam_P$T|#yPH+;a1J8&^YNbyOPoUvWv<iO-@F5aS8`cLMgswwHnG&?k1 z0E84ce#l~-6|kl=)E?n?zd2ahTE~;kZLO$~*(Z#Wuo|)zk?=naJO1%mJDAW4gf(oe zP5+zR1#Il25iLc8`SRtxb#+op@8~p2G8L{quO<#L1HJu)>U;C)gNL8P@HN<T;5<-3 z>$h)4uu6S)Cd12O7(EWVy8`bg&w5mxY1^XYtqlG`dA2*q`PzE#WBZApB(|{eZ!;=u z<#V#qO+-0IW1Zp68RN?0uj}d6aRXzcAJrc}N+G?uXlxf`eZks^f>-Lc?bf(<VWr$a zdevs|lq|Zk6>`#M`g9$Wm&lH+&wzBdz|$;hWkP}hnTj@5O?2!7`2~Fo!?G(NnTKs1 zt3GT8VF&Y3(4u=3lceS&K&F2i#=6V!XJt3}R_uJyc<SC1Rtz)U>f=#AFI|ktwD){$ zYE!v~(ad&;)Ty{OV|j4FYws=UlCtH+!0p!r8e#{OtpI7`{LDzC^;&*gvRiJCJI8Kf zv3tPQlp_1bm)?A;Qwd8JG~0=IkUj?V8snKutI@vW%NV*apJ$>IrsHz$tnB<hkoGsP zUiAL->FPm1`-R@GC;gyk^}XkWe1!S^ujQ0ay8E#5b-FZ01r<^GZGBmGrzbe8V}`AG z*Y?RovnsAUxP4Iksj*1D8KqOFn-II!w`vrI-QP1IR1iTYeO9}sS@q@&>_?Wm?rB;( z;XGd!t?fFRE0tFQ@h)2#=O13YpdSV<Akf#rj^MoKiq$lqO(mIRgPy~FS6g=!IZfQw z{8UN3m-qH?PTNv-PUb=BjpPo22<_MLygKT6CWl<}QtKHwaXcx~pJ7fa!cl1VZR2#7 zL1xX19m_4!Vq@+Ud9LUs#*XDdJ>Dkg@!GwI*xfk_Kdu=~=8voU(hYstb{^jhOiUb4 zhCKfgaM_q7Ib;n>y5891)wgDWJMDKFtAwsq2U$i-4{Li%iX4VE%${{PudpRPpk?wx z^84WRV=*F^jp@7h7yK70dOjjkh<u;07C3c8ld>OqI=q{eEFs%Qj-sJ-NP>WnFIP7< zZX4LpTlv1gqR@8FQQgLB9M@@l-O@_pV-ER~8g~W<Vz^Cu13#e(VLvIdr;4?5E<mA_ zK4L3dM7wR@+kT6=C_*17@dc-9ak2`S_9{x>;Nz!s|9sWeLrKbFRSmIV6G*I^{;S>R zwh|gT)3@#kHp;0%Cn66hj7j@|b!!$9|71MDAfU*l(EKH`{cdF(>SUy-LfMOW!K?8P zMhP5PMZk-V4+1CeW(AB@Q9G1<QaB3X>?`q{flXb#|3vVWJ1I}zHw#O4WJ)e@d-goh z&0(^f%2Z1Izy#{0%7WtD`^J{$f?noT7uB&9jeppzQKuZVnC1=J3p+60s~Uvb=%Bwt zDT%%Cv!x^DNG6R-(Y^?T3!@%NHn!zXiK)12$w3b3vxp{59>_&a898npXhPqp$b5Vt z(mEBzdlwruzr0lW^})cdx_x%Vi^5A5LbWVfTxR*({Cu5Ml-;M_N8>27;ZraWGPJK& zR1sdoPvlRXKcy#R-|Bi}y!ZW<Vt6>4mH8z7oGX-Fe?DqWXx5S3gz$-Y-b<&QRU^9~ zr}Lw!yl2kJ>8#ee7$w`s_tY2yqDpl2NCHIDk;N<*0){Ep9W7MNUoc;rk5EYGe0frr zorIj^)JczrR!jn@wGgxR6hBTRHshn;^?qlfxUJ8lh<Ua2S1T1aWC|o+ic*>=b9#Ey zT_t_QHX%TN;tEMh27v#LS0A<>ofvh1A!L}%z`Iuy-fakP2;!|z#WNQ<pBy9;@Llyj zAx5ocFlQZczw`q;$!Kq<<RRiW*GD%UO_a)Du0wA?n80@49!TK=!oBEb$RjziDj*P` zoyIF;w#(FnqqEf)S{(&vSkhv2!@SSW4#hs#QdlB&;#Vc(BImV~T!V)VSXw)IbL61~ z=9kv>=ZiQl1$qPjOFj^*1UF9EmR47xd#m;&<3%1TilAnz24-!OkJCpdJ)gg(pyU(v z5{Q41G<EXtmF5voA*b<5nXB<}oroNhmF=v_g2q_VXa?@n<CBWtkBeQh6nM9Gt<`=_ z8$0=;XOxhYj!c;z9pCE$9hvm^0)zLo2-(gXyWz$Wx_+|khi|6s8U}VR8}Jm4ryCXu z@p>q+jRoZ8hcwCS5d#W0)*XZ%H6RnE?d@%*Y_k(StFYTpi`8B|rhAh+<}vxD^eidz zN8%d>e?YnVbD%R5*d>Y>5NFte4j2}D0t1;t?$imWPMMo=L5JVB%t3Jc2qjwLZ6Dyb z92+RCs&tPXeS>ZdWELm6FonVHm=mVhCf{^>m;4dtLv^p$S~z{wY340tznJZ@M>F0| zU34aT{po`c>0%kw4}`)S{q0@!PZA<kQ=ymo-n|&Qvy7ktynw8NBimi6%g^KbAF4!Y zH;k7toN+rNAC&Nw-a9&e5y@--A3~nO^MIRtWUeTp+<Dy*(drSJZM)sWmt3|KW}L>Q zeC}b;@azREb;~FVg|Q0)B-+jDd64Ub`~7z!Z^cQ(Nzz1~5I7}I{z^%%I_wv$wtvKg ziX37P1Qvn!h5kp`csQ{R_6s`|_+PY?ujm4H8G~#@l=e0IYtDJLsAmUid^&#ZeF#}~ zea&k*-SQfGsqTy9=PvLEtSRK3!J22{6+r`-nJhE@L7|58E83uX)!OQMz?`vqsH32{ zPTy;ZFBhHMsbiiqhq|0TP%{WT?*4+8$NyDQF@br(`rLv?A>CY19^u6dt();Yk!LT) z)a~0o6uMK?IeCIeF*z&5&$p`{6>fG3MqkwHE=}!Kz^G1G)ZWq<Ato(N)oas{0!y)z zL?-+rtUt!SRReRj(L;{14vC%)7rCvHTQCyK-)V6}yktUdkZr%Cm;4y)J71#CbMFzs zLUkupDqzWtR?hPg(&f&0T|Z`{-(F*udwHQWWJ72Q+*h^iH1a^C^&MFnMl?js#2{%3 zW$baf<6fUt!wtO7-mV{9eDyL1<&+_L?;`lz!6qkwsyKc1cO`Vg;al>w0Sz!h29S$C zO)XpVfjw^!R4B@~?H1~dmxx87Rz7`R00XTvW9FA4Q@-=m>jABAPLv-k+fNP+4e|5N ze`nz3rd~JX^!V`|$$NFZ$96ALoZrPa!&@47FsbdS<I_!W*}<jS8VqSAs-eDUMfCO> z^D*aZ1{NmK93>YcDZZYP=|Mi`JJ+9$a=kmu=1;e*GBeVI2u6_9QQD%HW`o{}_naS^ z@}OB4963ur|0TuSATCCwku>G_(~lr#TX~}&3?G<gn4W2GgmU0DDj&rAFo(Mdg+8Dn z)aY(Giqes?g>sRjN`~)bOaM->4<EPyu(SjKBEmwa(Mm-OUZrM`b6mr_Z1oC*lQy0U zlef2CBfLTOTBZ@tD|(w#^J-1SP!D_*`@cYcf%PdRzC-%t-5acY>7V%iLHUx1%9-HH z$pFe1P{TU!USOe)Cg!>q*~dQ~wMBVE%T7)XHHXXwP#F8gNS|lYk_UY_nXp##)1cj9 zEI1zn@H!3H%Q)U1w^@<kVRF{En)B+{v&#kb*U!dN$c#RWCsnjRyUBfSTZ;CxT-2jQ zr(w=L=;Lx=OHPd!@OiSy=+!LWzcDz|gvcE?zD-x7&RMx^O7>zdiUylKI^|`pUpzEp z^2nI_?Z!RpoF0ZNMO{Uth$ePWBAU#r9z|p(50O!ui!g6<a^kE4t$1zexZA1Pxj#}8 z@xAsi0D7Wt_nicNW)^2f!XXrXh(a%Wbu?k9esUw4lR7DUI6#N1MTA+^!?^dEMVwTS zN#VxbHNmQH%OZ`Q*1q6$GD61m?OnwP)v!~q>nK+u9#=;9;OCjJ88{xhny9wva71Z* z<J&opZ!+X_wCXKq*&61Ht61O625Y3~zOkVs@?LOX+5-;Hd5#t?I2Nz0jSch4I9e6u zm?56W1ujzK4|Uid5SGq}HIPedMcuUDZYENc&N!c1Nj*cnfLEwbh8TPm&l9@QHW-!g zaELp4>7Dh<sFM5#K*9U0P1!SZU8%$h1L>D_Bk}>*P#n4W>k6!)!b0~J38j7vI3X`d zA&Gen`!*Dc@<}qI+>k+rOHy71d%F`0(>*y`111xajdwe`-}6l><j@~kv-7fk`1l=G zlzThpjE)N*Y&c~Zn1}jUEx0l%YiiqL6la}*6Ql|p6^HgSA(Y_V3vJ9e2EUs8m^#xx zVNlb|+rwUPLZHd+g-aRGqN-Mj-grg*fH>(q0}SaT35igP&RyyZ^jx>@H+Q--*?E3j z61@q+85|$kayu1EuC<Q!b$z5jF>=nuGA?%eEA?dcP0~WOzU}(*xeM{Hu#HQ<p;vTq z=Imw+@e#cdlTY{IT3#$R1H@a27}X)XH)iA(nhv#2WFA`?-cMowR%jKYTddw4-bA5z zS&&uT=5<de_Z!oe6wP&aYi;(DMOIIh?&*p;u|6D+pP~9=^(ZR4yDo&5kWx^B_<jUa zZ6TTGPKW1;6WlzX;qC;MoLS6-GIu0H)aEg<XGBcVn#kT5=-Ew6HzN{KhB)TMf*r)h z-yMA7c&{OYEXgs;c3;m;aHO<Tj<KC}iHk2I??xoDbH5QvVh3Yv5c7i05+e$fW+zpQ zhAsy5-A^za9$v7TdypF>XnOM=#X-ozDf>#wOg2kRH{8Q-LXLH^@5e?p_*KY~ZE46< z9(-VCq>Q;s!tPl}_Zdnr$1!y`1yY8&8!ngY;(nvq;(VIZzUY;QkE1E6iyL{L4Im|s zqM19kQzF$Git{6FsjOZrtJ0It186F<aU+9l93@v=mdyxgDI(=8PRLJSM11<Z4V<H{ z0dp$Y$4MMVP|>P>+axZipn6dylFVvFO8KTt<jq1~dHEH+O1YmT>2(%!!RriYshKjX z20rYxG8*6H8Ll24Yd>OQecARrF8KWFxuP(MX{<obT5#s1ME!Fj_i%>JGug=3C6fEc zH|#yzhvf4!?rM+GmcdiCU~i^Gz<_i7t`Ezc$ei}0_*zuncMhA=A~2hLR&^wU`3!aT z>F;yaVQNfidR3vv^TWRMbl#-auRZcnEJH?uTLVGoHPt=m7!++gr+FM3<9}+!k-Uf1 zec*z$WvI0`H$?PWr-SJFHEq@GWi{bPfe8?oBe6xVA0T=DDbF+kDyZmOK*At)Yyb(9 zs`;C|#BJ(m(}8e*!~n4)aU>>SM09}bYBe8v$a+LW|0mW@1HStT_yh012_cY%zXBLy z;r3CD1fXL72VtlA=X^$fcYy4jIw}<fRMzi>aYwNQU>yEo>{5yHD#Thant!OND1rx| z>=c=@L?Wn+#r`dXU;+OcMyNO<6(xYV!EDqoa|2s2uwTrSmiy5~@fX<+$oyk}@M3_g zllVz80R@TYh@#Q`<saPt!=nPG3E;b1)IUioK!En+;Zgn$qPz=8obwTTX9Q*aD}Dcq zHv+Ac0eAEQ1WokF-QmCay5HUohaWYGi?8`Ll>fc6e(&cl@H=DnFWwM3=X^j`MDYAI z3rFnlZ*PB13dhOc883jQA@R@V!Q+SlLwEci!cGRUI{+il=7D@LenmLv560yB?$Po9 zkGu&1*qDIoKi`(;efz2fqQsK_kt{eLkONc$23EjdGot}!21qAYzyD2T{>Op=txmy; zVTSB49w`9<YfC($5Cx%|zc`ulDD?ElBRcaRBJQX+wM^=k1mJnh1VA=K>sO1rM{I$S zBkkD;Ck(JJBnxuv<RJP10`=#;(qeqoSfu4el4-i`NgCdMVI}C@)arlh_dkCkk)JvD z%{27(lI*Mq)eku`bi?bJK58SLps2L5CU8ZlBo`b1CDi2RJI5WP$sJ=47Fx$IJ`*ej zBxatD;15E*zgqMm=G!2Lhk-zPbJU{mKgBt}b6-a*M+nT%HRx14h^8g}Z|W9;j}Qg> zDF*SQ89c9kFj?P32;RI$eYuB$Vub4AKm67o<kt~Y`kE*Ma=M}_=nnrteA^45$bYlQ z|8xjE+IlY#3nv_R|7RpC$iMf;xu5-j3aj44-rk`*0Hi^OGeA4QFeuHQ{Um|H4gjKy zO~er1;KY10(*9qclYN7`0@k_!AjY2;-2{#1its@{N$?sFbnFkvHdtG)05%btF{W8c zosm`)@RP)ep!btRg%H{xG`XA=XUM6pCos}kJ1A7}9iqtilCIo8=iejQ3~69O2e*RO z6IZZ?bLyqewsT3wt74*Uy<ZdBH*&OIGKXoD@W~E7D$k<i@u;OoRd1=_=@st|<RdNF zqzhz3P!e>fS4PgZ`W&qEf3B^^zn#Zlh2@aGIQe$wl$r#-49`nQL)g+`FU5zs_q`zU zp(k#P1np9{*Ql$P3QERne>g)Zy<4ZtMc?*;T~zM)(~d}5CqDyl(my2*rB;Z$`d!4T z&1QcUCm8xAbwlV5D)slTbT;$!tdgEFj^6Le<k#m^=2Oi}VRcRNKc>d*16iNMDcXbM zCaMjTLK3^6B;3TouMWGq&o<00_WU*V*y7X!R^N>owAO`^pb*}?U(&_QL~tTlJ(00^ zB9(1AxL^ts)_0uG*ufz|b5>`{TYO?;Tk8X(zn*)E{&b?&1(px_1X=S1Yh}zD)XBBC zjl`kiTl`&*F%9-BZ^>sFRj{Cpt6>QVPsO^fJv?62Rh#-<6U*<sw(FT|cj&opjt)}0 zTbh<t;}s-*%e^YXA;exo<65WW48@|XF0*9geOHM{Vvi7|f8S&c(Ff^JU`%8^OQg~V zs-^8#`eJl^P*IuV4P((3rK=5*LdrY4vrD1#mAs$iqYy(;W4wFC=-_oOwC8P1hDp2q z9NT?$k<-g71xb#|5^Q5P$@j&6lH`Xh;0wx<yBgs(04`L7T5g7!UBHez;xysCQF2)y zZ&!%HP@~rabxH=sTU6iIR!o+D(P7l0{ctC2`JHI-cm$QJj;E4Z9^_Lh6Pz2%I}`cL z7en3Vd38CFJh&{u>T%lriUDT6i+4|`aXChEa~M2>b$BFTc;}d7F$gWfhdRo%`l3-8 z9l5gCYL7;096{~GKp#ihfarlY>Pucs;mwJv2NZ`H23YSSu#He8Q2=Q|GIL@mzB%x) z)L?kt_V0|}gzLzJy;9r@zNdOp+wiff8D-HAu{|fOG&*n30jp$=&S(}ZShHjGH#)TU zpv#@U`(9HfH{kfEV`nI(xpYk`D5b}~MUGfbt>F)`SHZuD!#WqrJ7?qF(B+#!&K=a3 zveKj0X|E^MmI>;8XWG%l$?q49q>^B9O+QH({UBN3m~OoB&ZzfUev5TU{d3XG5BVL_ z0v~HiYD!8<g7ipFQ*bu;U_944aU5RX4TWXY(DTjoeU~q(t(P@fh`pZ7ELTmAs&*JD z_u}lH&1ptZEl-i7CCVEj(rnMLIOIE~zfz)S7It~1Cb(w!Hs(u9j2icd&}~ob!*0!5 zC>L_3f>~<I>%?qO7He@ypuylwLhuBGCaK10xy6UCA&Rg^h$g89VVh}YgcX!VCBxR$ zR;B4O-E*gTPkO<9Bgd@LPS@xBv)0>z>s<UTFW*@bC^6PeFtUd0UZV4j5XStABjV}_ z^cJK6UMbhpdpjS-3B@RJE<EjMoQb`zEiXs!#XB?7*mrUq*f$zmFo&iat8vefZh!Z_ z6n}Ct&d{@yJK`y|7(EHqmG{Rq)V|$Y^gL@kapWErFhSk7j(mP+f$#=}eX1<&owg>^ z*KT{8;DwdSp0t@R8EH=D++%QdvzqBUW!!Uy?T%}!HE@RYxcH2$5U+=|MKjDlXH}|f zjiBmoiT<IFaQrsBaXmQtYTJg6t)+ingX9<IGAEs9Al`$G?ARBu`l_onOOsMOJEzjs z<@=P3<YScBLX<#%U`0M2ge(E6t2a`cQpXi%_S^HWaikT0dvfrp&OdF(@wROtXJ=z~ z)8i2DAD<hr7)?AA@1EpW8Hr1^*<LmCFwhWYR6L1Rbl2&-t0<R{3+WYQw<b~5_Z~gI z`oQd7amI69X{HK)4kOhkU@c~{jQaoBd-Hgx*S~*Ui<F(nPDK=D$yQk=$(AI^l5NVq zB*~s(ijX}DWl6RqTlPXGds(uRt+8eu1~rCR`d*_Ar~7j{_v60r&;5J+?my0XJm#D+ z^PcN^U9atWKA*49Kx>CA0gJvCs={ljC(x6VlOML{=&0iRI}k(RU&*$Nbk_8h)XdWl z+6*sY+z&q~iO)@se<wJBY``C?qtrTMGf0WK$wO{~M3+E-L|Rco`D&Ktm6UzqD4{JP zcEexE=oI)rDcvBmNj-cjkE~H<g3@;vLCetH;bakd%!EFuYGCq3uW)QJqcUF!j$L^_ zeZG`V%3@u6`ra@a_uNVzKg3p0(S+{|-vK++k=%YY;ZBJ*bEIKe@2&bcCz%Wnj+`wr z=Q;O3Uw|ec3gIXVoFnl)591e<D;?FOi4+#<;=DK|ErpRjg5iJ+g^lQQAHVXD+QB1Y z)KZ}F*zm>C6Jc$-sy3-GC)`cqyV%58tA%Z+K+nc%1{b=!dO0>f*cvsk(#M^pGp?T^ zAcL|xec!fXh|C%(*g!XzKAW`glGp|zgB@5f9ob%l=(0BtxZoqttByNv@^SR?@qOH? zjZgUQg>2#LSt?mj94$c^gEP&yKpQutL8TDZUmfexZX}%WG&S(4K}%tJ-~9Z6!RU)_ zl)G3joOX;6aQnOuCyGCgPM@7X%YY`q&g>$cPX4y+G0*<mASJ`#{tOe(fb)9$WZzNN z(e2yn+pJ@))}g0os$sP1x<PtWYg2r!Ym-$>>8rdR!@@x|(6}ETb|dQs-PRWuCmKE< zDsn3Qy96NILcYmOMG*=*9Otr#JvauKk`Qae5V7`=`@8d{ucJS4KQtO!wX6WQryCLk zcO;5tm_Rj3_Xf#{KN>XU-7&&NyV%}TdQ7K$v9Vv=;^yJ$J2=Yc*JC4HP3`sZM&Klf zU2=yQEWm4;S!xWF6El$6Vd2m8)jaH&7W=cyOT?N?ZI~ZPvyBXvuvJYw$(@WRdqO5k zK}JbbfLu-tlR^|&p%hZ=K8i*Z4(`@645zi57d?d07k=c(=leX1MeOvVx%vJQw%n-> zZ9+C^{?f2_p!&jVA(Tpcq_;{Mx>@qf?w1jVzfs6`lo*?E_S=yK(*rvwO~@%i_Kqra z$TFixW@aCYFSvxfF-cz?6hB9oHxb@$qt7~W6;@{K&!$_B!+>ha#}&&Z%k~uJLP&P5 zU2q60*JhmVjy1`V@366OaKU{Te-(5#I4&cqynd-f@ETQ#`w?g&7<B+;#hQ(@)H%@M zjj>KS3L_3XZB2NBRe{1G)x#?l9XSG?amuvM-|atAa{;y2!h-rJt=;GQZ=h)X+}?)K z>R2yCFkWWFo<iHF@8I0t!ouRR{7Vccg|_>Q^Bvr|;&wWKD^pF`HdgDD22}e?iE5j( z1Ko%Er`A$?`t0Ks8T$K9-8=0|cyRJLWDE3d0G<iJGIcv4SLXxs?PO|ROz(MdIy*7C zk3-1CciRhVpOOlvkBBowS$L&|^N!XW35VYPYH4I&M^cEL$^Ni|NkuIS)iz88Z1Hfq z*vX`d#bZOnYp|n)`v~inKBVS?W}WV<-2-P^oS2CSiHOErB+FJ+RH|U(;z8b~8!s}+ zLqw~uy4zj|zHv_@JsFZhhZPuq8u8S-9!dTAHSfiOF4+Wu_pdx<?!43&cCd_`Q{_9@ zv`62-G%SGpk}7WyP7o1{Av}WE@sLkni-yqQuh_T-T!~XJc=hO<9DgBgh+H*;NzxM- z3)m{(>Hf>@S@L`Px4mI8NO=D^MgHlhk-ZRh?JBAMmxmI2{G2`tf*hBor5gg!y7)QR zZbAsiaf=pu0?M^UkawlI8HzhxIPA(|$`)w42(A8ym{TwMe;7~{I_gu#t)%>(bto24 zj}=C^xR+HQ_w|j!!V9SK>aI^~@@;9=^{zS}Z~tuNzKV;I6LMohO=Nt%jp&V7<Nz!- z$$<PsOP#jXHc)LJxJiL0z{jM47z#+7Hk>%_2Cs+4Tr}Q>-XPgWUknF%`WA0K_uOHn z68~JhLKfDw_O#peX7)?(G8>+abf3k~Fj)^Z3eH`wyvMIRO#qF94Ik$%i?;zQ1O?&s z^#alm`wYRD;~cuXrqp*jHafcW(qq&$0hx4tVFMkdOPtXc&?PbPSKee>xA!2=UWhRR zy4Y8+V5kw1k_D%MgsEb)5BF5?6qW~TEocy_ue07K%6%@og5R&C!2axb7_+6obq++D zm&$PcEh4Ww$9XhQm@@~LUG=hf<L;^D^O>iZY3ZM^isi$%CFv?Q+_MuJ=J6rY<7v>s ziRhW(?5vx*q3J%So~yREh?{}lHsxHj%}(-!*SD%}QH<%K)WI=k!p;xF?}8kY1Hc&0 zd2*lxSM>$DtzLL36J5P^P)E*4sIk4*8oLCm-Ro!2cg96HvbbB|w7Uojl+xQ*7bs>k z_7a}RZ?P)@`~%@dwmyMZi!Sz*ZrAs_3y>R((2tQ-?^YIjd5mT+7LJJ_JS{iGoogOS zfY<X$y&6W)foTQEM)td-<&R}D##yc~k*mZW;=Q!>mUNveW!gnAu3=;^1k*#vmet<z zY9Z!)S7GKJuXfuC@mLqB$@))*_OhQW_`EvxlY?dV7=1#h!!Ch`dP9iKk>93<UaE`< zw;6qQ%2;s(*Of5->UD^e*<<Dg6`Q@LPmjeM@^kuhBB5WXZlDiw%I(7n-J2MAF_>@P z{RZm+Q-A6%GVB^+{~4uon2+H!ie04fNWN;1+l|uUs<UnV<`!onphbuR=xh;4X${ae z=#uJ8e$U3{@aHqqo+e;QN|d;-(5<a?kK~P1x9;T|%CmGB7r2C;M;*X%z)p$>x+HG5 z6Dv^Kk)GZ#Wdmo7C(fA@nwvC29`+xboZh+DYeynlN3&l^;&VPQz5-1fol}I2Lc87K z4EWO?@+R;hR!r7(YkXl?^#x<i8A=2NVyF<{5TVa%hakbR&by7Vo@)LxDxGI9=j*pP z?pNEMLoukf67KPaIw*Dg0gr#7Ll6|LHQ$$1`_yklgmqe%Mc`_T6t%<=A&O^_o)(40 zyqvRq_dl=`90>k!b7S=(fdIT2=x<clx;{P(=QdQ>ku*Haxm;@c+(Edbs9}qvc)$l_ z8RZj(SC!<Z5*8XubJBdDAwm%FH`qgT!3awSx=S!QFfn*9kf-~+<cMMNzhVZr6#is0 zPR0L@(fnxHF}?F|^0+MrpLjnogjZTatW=6=Jcj1kYaPQb2zkk?R$`pI?|dagO4h?H zz~R$^kuUhamP$w8uhsiVuI^`J@ZQd~s}MWhG7!i${4!MaOYBJ*vSYc4hY>?ztA#O! zk|M#S7x(mjCA+jE*hS*umk%AM#ZeVS@%uz>suB5~cGtHVAOUP-*nDSwbt0{-0&G-9 z2{oR552DS}=eWWiJQR*+Mu2-yFl7KvJ%)vHCqBidYx}A%*}JH`E-SW+{!kEsvDO+5 zmPuRDWAMMa;G2fV5qBNIiMe~L&Q<Jnudd-f5-oep=YX-`drjkajOxe01iJxB0uxpT z?FNQX@zQJhJ>K0e3lUXhEB9#|t8kXJ_k8C&@DgLQGs|M<fw@}Z0e)O!3teR{4G+i$ zE4A&*MOhldHL;;t3OlDBa;qoufwCvX0ul<>k;D_+al^%BPvMn@pLy7(*fnM=c)GrD zL5y+EuK981VMpXlOI`0@Yb$n-FFtqUjT;+bY?GJMaBncm7WNHR`GmwXEmxNM`wnUD z^6ui^wY9$%x%0~mM^WiH>R9`MDGo*c<IXrmrOLNE7elTzdxMTqm7>`QGQgEvs6!kh zXIoc)zN7^zIMWyf%G)hhOw@3iSl9khfmy;R!ry?riRQW8s%$rA|Ckyl|CDMZS4&=T zxEM>kV|Q@{PoE+v<!^ta!+OEpI9DIv9v);l^Gb|DtQ<qHz?8-obt5f>k8y{J?V&0Y zRCg0!cRHeH@fA9JR6Y=Q0svEFp`-I*=Z!oVfcA5@fgkc-&u;y9p0W)wYOIa<WG4w9 z1m4{^FHH%5CbFR?)H4A`h2p63Y=n%Qme9iH%UG3q8_KG_EU8?{qSe!4>>uAqv6!D{ zuvDhayj9tybLvTKX{75F5#B+(QVy{;v559j(zJ;{4~%WpPHvBrS9+~m#vAVziJ)yB z#m$1!f;%QB&R#$IT1a{nit5K5h3!NSHg~lI7ryq?DZY~pekJZ<Zq9g=%Ddej<fFw< z-3Q5jldQv<LwbRLN)(e=i1CAA`Xp}B-5sJ?G}5;{#cVNq=A+8hq16zcjGVGzFa-7f zXl|fLGT723<5pRo^f_*)!u)By+wiG)sj2bf+@UAD>>QrgXS%W+pWrEQO&o0jIMunf za);-qOh#sE@~~xw?h1>C3kg!@iH$T}=eLJ-@4s>5U3`2j0rW$CD!khami+)t5wuwv zD`OZHJVse*Q*tD>2by=Be#+r_UPVUON{#xK+5WxdnJ*x&-c39O^>2{9npKQgw>KgO zy3?L9c^MkM4vobSPrq-iJ%9N6Q_UDgSZ3t8iNp2pAhysC_lLq!mlilq0nYmT?&(#z z?ie%f7`Gkq!NrU3+00`lX%1_StFl{>zqx$zb_uUU-0RZ=#xeJt2Noe%{(xIx#I;ms z(foF-RFivdU7ux?9R!S&v^Gry<LXOcIeuo>S?3qevqX(Fs7|Yw><nC0&&G~ce<h<P za=G6hp$nS8$wv%-aQMPe&sh?6jVel^ZsMxF(sa{F&e*qDonbm)<J<8pR-kJ>92LUO zA7~M+ZyKiSVR6+V)`pcOTJO!koH{+(d$MgyOGL^5aHXd~h!n=l3_lYV)~+$(FDUHd z-Z^mhFmr0D?hT5DTv__`V-&7*eA_r9<J>fzWm3H_f??SOeh8F3?u;$>{vKzfz?)L? z*;r!H)pOV}-0An2Sl3zVz=vFT>T1r1l|s-IB-%iIybyZ?y?n}VtD<zEMZ92$V6fqF zhLhWFiAgihL(v*Me#OYGaLY`Fktf|I`xpGiVhM!uykpTH4{7Z$x=l3ld7+%oESvJS z!GpOK_?MFv<c8jz&}|&m9~sI6VS2;;UELDq4<#H2RU^tT^c99kr6+JiW?kPN6c?0X zDtzu-zH1xRIqhl9-if+Zcn$ov$(DuUxEnD*&V#$-X+&Fz{Y(1&EgTGZ$EKVxnWGWL z6G7#6L&&W**;!bmaR&@?`O%;Y7${}6vmW}`Qi))PZSd74q<fPO3}AURJIfu1F7Zd* z>9bGhPI}5W=PuCbH>#$1`O2-!)!P}xz)<HI%n8DCgteEcoZ*G`FH}N6+J4Zpw!OuH zyBe?fp3X&d#+T`uT&;j__cE>1s_+Y7#{u5&Zr0Z%@C;k}jw(E#?i-&qa4Ez@yU|_2 zyc$rUR-UZOOB8#nV}AG%uhW*dI8($Sh(!xlKxG!Bkt`S6@ouAXx=>E{j<eA+WrmN2 zBl|U8ybAGGJA%@4^x(awtCp~`rHkQK{Z!BT?9`6(LDBN=L+UScH!>)NumLJ3@NPb% z%R<&|(I38&xxYMCC*EER9~NqbOw4>G+lK(-5Km9FXq?z;4d$bGuFr%e;8l80;4M8w zML3b4)O6-*!vpKAyhPlK^&PQ79U6x8E-5_>2FhLU_6+3h;?K)DR{fHb>jf*bQ)F2p z7zaJyQl;rf+=CTEkDdf-()}(a?S)jwP-azrHmTc=w(y^5l<-S+8hqHZv<#BQ^FZPQ zNeR1|M@WY;TE1*|Irh2xF_E<wQ6T9h%6ER{b_`{t3X=v0&x4m1vZHRLcyRsX(}{I= z_x?y11fdf_6eox3dWKR?3lzP)M{8{Q@&no*QdwaHckj_SbHRBe`L2fX0HG_l4$N4F zq7qZxIVyVq#y+6Bzw^}s^zIb~cOQ3F(e}dLlSj5Ow11j9C-p^D&2)>i<YIlj2==f@ z4T5v(zPsU&ga7WzMEf1vGL6ql(wq+%C2&iI?(<QM-+H>n<wCX(&^$8L`~WfRmaHK> zf!G{KxE4L`LL;Eic_-53<3|Y}MbBp|x1w~8y9Bm8;>EX<rCbdQ<4SK9eNfms3>gZC z(4+7?I3=(*v@Whv&7(Ao`q^znU3<kd_gnPe9;;lWsr=F~%1jXJSsVxRi@6s9W;<|a z6Z=?(W$znW-~5zQvA4rTNWb4QE~{XrWKX+K*~v)bcI7N7*>h&qR~=0%pTjF{<pl<? zLO2n1tOuCpn3lBIuWvV%o_}d)WyE3XGjEp9_Xuy9X1#u<(?TkZJ|wa&(G^~)4Y!6< z;H3$PlDT(mp7}4tgbn%kwbyNB*LPlU<S-gIC%$-kA*Jfk_+Z8PQ?H=lCdWq#&)6>E z5MZ(&yX?XzeWLzuPHJm5^G>UR7x@+*QF#roYich&0A5e)1+ETp0yLwLy?P_dsCT0@ zZX<}=aQcrnr8?6_jRJv^J7d9UOvNku`-|_AQ8UQ5?K_!Q&%WX~{DLI`9bOCVrvR7M zBldb#QjQfd=^qE#4it7Cq4^Z}?5(fqK>wLj=J^N7lbvsXJnf<&@`Y_8pBsx*iPe`% zXb=xtH?gm*vJ_rD)6(l%t*!LjJ=iez{ium`;td<!;`{Y(Oy@3+qIRpXa|OukZxkhu zte^)Rb7mGy3pVen?7m@@jzXETg|XYi8p7Jo)XRMK+oY96uwtx>U(PB4{Kzb*hPHp{ zEP}Ea;%y0;%p*Y@;U&FTfF*z}$NCLBh#J{ied=d*cvv;|P6(b&`6TO6NA*k3#Yt(Q z$?(UBp#)?J9Y|3vs9G4^twy-R-8_boOzL(w96r~mi5#A@?`m}j?Sn||(R)`tcWRf8 zeGT0p>HQ@tvyVpOc!bVkW0F4@sY!$!`I2F%dXMEQxLZA^uM>_-yN!Y#T+4bdc{d># zU<w{14qM%WFQA!g@wpP+Qm!)|X{lj1&PvVYy`$&5pJ%z)lPq|P95(0xe$S0I%Yh}B zoz%?hTZ+S$u6=YAyxQ9$PzDVQvDcbmcj8n&?@F8QGkKL>ooO8tz3La*Fz5fNTPK!{ z<yeF2olNQwbN1HUdl2(*9}^NmYd5?qw*#-^GNLV<?(|&K)9Gq=<Af2P)&qaC_7yGi zz;lDBn8Up*FXT60i#eWokedv5Oh5X!S7vFm>Aik`R@3uDz|s2f;F~2r6>RSC;fi3H zen>c9lt{uZ^3N!-lxWrb<6G5IedV8LrSFZ!$zW))TuFFpLM)6oO}{^Rnz-*panF~s zc)Fu@gQpI}m`S^oghn%Qi9V{+zrQGgXNC-^-1U~j@>YKo!`f3#ua?{<b}!nr^0Lik z&BG8f@6KAPnTpm`QXEdhjK9c6BP%trLRPgP>EfnoCvsv(EBoL<qv-L%oA$43Vi>1l zZ~1hcw&AK=oKSJ^I(2Qa>n@L!;o+O(XKtiM?vr#{wa8JaH<3lVRf|wgb4xGGW!ooP z-!xLT%WO>VWj{DcHlFYS|15~AjQ;tqy*!oS^zh27<#tZy3s}8j%b0ZId#>uwY?q)l z>7Dh=uTvOi`FIRgj`U!fz~K&cuWR@6{xsr1S9!eGNy6dEaKb@Of9p1;K#Og@g&NmY zwxh-@s1L_2`+q9sTCS%H;Q_z>DS&2}grd`jy$Uh%ba^k~vzeDF8Tt){_l)XwN=0tF z3K1Ney^zOm?t0V%IcvXQrbP&X*ky+99`PoKpIw^63yj=TJZhL5yVZD0NWP-14L^F9 zXtYqm2S_X3Yy$2Wo}F;NoW763?;5<Y2z8ow=H{0g>KN(vr`Ml9k&bd;6KK4<J7hdq z>@ds>Q%>+DQhImxO)j7k@A9KbA{9QP7m5p{U3=PUr0Ox5rlv>sAKaOLIH;eDnpMzm zP<{4B1@x4CPsZvtn}ywPR@3jyl{+TQM6*};S=k)<9Mk90q<7teJ}Kg%?AZqI^O^=k zTZF|R@M{<(p;!_boVdFO<;s5UD;eXvD`HFg7^)p<iW5w?4As&-yyGJ}vwO$;r9^Ku zknNsO_Qy3ZK<YF<YgLA8w3@3KYdRb?Ox{hz+G6c$5(}15zPJO}r3?4p(7Ok}v+r(m z_pQns(6E79m7nlPrmx*%p(}RoNoLN;W7M{O2lk*=wkNdA#GLOuED^`{Mef2U4jCE! zKASmVKK<k%2{tP?Q)V3%zDP1=d=iN68boQl6m}k`tT007w;DIYZt3^L&{`b2z28o* zxu|R4eRtM5^E*_xlF-{kP0Jo+a-RaVSz^fqN=(8)Am|9*bA&@WLRG_Y?&{~%%ici8 zM9aUEc_w1XJ8Cr%Cj!1e%$pi3P_^nek79AOAEjfk)3vw52tf-~%u?$Qj#VDq#TTPU z^t^J)`J^{a>4bda$D4?~H!1=i!z;l>zioK0$WUVCR5|E%GpY^evQC%Auli@pXWH%W zGvekg(HFkLShqin*@R!L<Y7Dg&b>X;{6)BH-tX9H@ADUVg3+ssm5kA1z0i8E8z(2m zONy7Q%x39h@&0QlGM_uP;)8e=Y?L+Tf|%$B_t<Xtv^%c4Wraan0zI=+pCw0hdC+Q_ z;T^~<_JCkn7CXC$iecd*w!0=cZJeAskLg9vHbMHhPn}G$tse-bkfD^-5)`wQbd`v& zYfmiXc6!tW%%>{_=erwT^s<HSTC^`AJMAH|kF28Y;mnY9oA*9q6Ot7#=Q2veKdQVS z;5YB=z;GZQd+DP0CnDL$kc-b;WK*tz0ra;CyS*ErXifMnXhBYf&1m@U>Cn+!wmyaf zMX2!<#Vc3#j>%=G&qHper{<Tv*n1RAJDO<03YEOc6k*4Dst}UO_aLl0WsmP{FIQl4 zeBst%+-NvJXiF?;m<{ugIY8kTGBVT-iwL`gEA}3oTrKiPr0UO<UQG7nQtsm@v(Zbv z_x^TUK!MOUs6P^L9-#}PBlGo%Skw7l-6b3?s)#B9qT93o{@YiPBch9gf<|N}-5=YS z%j-it-cMH2isoW~Hk#dNUDN^x<^sCbKi4hPu(Av<?wWQfJjRr%kKvX(j<@O+ak0o- z#k&((FoD{QlP9*8E~9ABSBlg_A-dg?G&edfwYGhF)sfn19;tp;I9bOMfC$_hUqvNH zN^J=nX*imsmd@8Yek8ne{x(Rh)kSVW=tje#*cS!(a|`D6EoEh0gLRJut{K%^b1dJA z9~+QJD;;*ay}An&prDycix;qsmS;v+1g9A8t*TC+!eH{AVe}(_{KiT!X!#ChA&RBK zxAxhxKMl-OXK83h+A#2?hS3gRy==5PtfZI=uLRJHtBH&T#W7E9SCzw$w9IvDh^PkU z938kK--fxhYjUU2Drb8%ch=)9TP>9oa54;G8Y6PsFvaMaKEvX8K$(3lysT{fK(Jo4 zy!7GwOrNsyF|v54@sQ6T>J3F9xFJ^IcMufi3Qu9Dv3{wO6+%6DMM*+)ai&loQ?aUP z5NFHLtPA3z5$`T>Y`Jx8Z_nGrEnms5Ktd5kkh}9lJ{Y{m1xjVpGr5>xXc%Pp+Dz-E zc@4OsePnbh-9}`e(!s4Yv~B{Ia=?@As}Sj*rsMJV-s^sXSR>Xexr~VlX?h(PBqNlj zJ<A6%80<L5-5lX{&6{Z8-GL~uzz$k0Kr43xWDbPErb(r9*P>7<I=7}JfLrEeY)>V( z5V$9k%iqNxe5TWW-b6xROTy)dh74Krg;=5o4CM9Oy%)Ngf@F0TAl0!qIIr2uH>?r@ za<*q!(|r>9tcXz}_z?GaH#|OZf8?z9@y>G1oZ>{O1XfSTi%Y3))c(qg7n^30dnws3 zr0@;JGc?PdP**3^X7Hp65S7!ulDz;hgSO;S%3;mB&Ty>io@Erzt38%S`g!J8ZjG|G zoB<uZ4b6G06HXlpPXRn=0<ocPQdwVu*#hv6*dP}TbIba&DSSf@sO?)C0_4lWSGGe4 zE+kx<0c68x>i2ymyX)-PEcvAP<;U^SV;@HSu4`&d>79vR>1vJBm3jU*;Gkz1?b&)~ zX9+zZYOw)>wDD_Hz$FKZisHY#36bzTgt_8OLP`M?`41tFjUS`mM+Y8OeK$>QUHy{9 z)vHd`V!Tg2XY-zeg`cY`eKn}{uP;%oz<PuM0gQi9cam;Ih5u&ht-)`unuM$aN($il zPC)Q{r${@CV+eMw#}O@O&Df@}x*N)7+iC5`vCfQtQu+Sjeb6^yad0b~1KJ&vrW?1v zTk18qnp)BnH8gU7AC;=B=M>s{GyF{H#fkTYOtA(3p1u7kl>(gF27{?<g(;@=P7yVl z!QPtx*xSsD6K_AGR)eM|{^lBubU`-vM;rI|`|nG%MBu<-K>>*`P{G{sRRRABKq0IN zEg#CWN#`~$FT^T+*buVeUN1A_+)bNSwZF&ReZO}9!_xqOwr~tdl^SgG#ue)+S4{b+ z?;*9!fou-U%d4k+^EjowFzuYJ?W9H~SJ%IC4c*@Vh3gdtpvY7Ji+BJ&lLa)MQr35M zBtxHorcgo09TsU0PPKh?^|IoOC+HM)Gg>01`oA0~a(27;H@-s)oZ6`WN*4nzLnEG% zl!@Sz9meF>Q))<Omw)Z-vaX%oE1+rBfzD3c;7q$Z)8!;4`Tn-5Be^=6zqf(!*vkpL z2Ed$lfddR$U6ZEwH!fWcSh})2`u+h2_zC{?=QqcXKkJVc?!V040g;^zXypyT$d2RW z0&Td}(^Rm@e02MG%^tJ8<Jxh8y@=$Pk<W5+{%4<6X9Gz3rPc@+r~7R%b_{pla{pi+ z5qrZi#47D7s3U&$8w>yR?6#~mCjZzy^8<jvcctsickpI*75m!eX4{24LudH|-+mY! z*WLbDCCymSX+rOmz5d*@e-Wm>wMYN(DgKoo_>m$&hT$t)tBH6Z#FMc(=2C!|D<>@E z85bHUq^kO1!rztm32#z1^YKN=Yk#!4mvDzLW`7Jc{yWgp+R51tw)nZ`>H<ktJt+rF z5ljiEmm7Xbcvq-jeHC8884sfG|BQQ%A<A9>u<mC7*1dV*Ccwg#sg9Ps{MaaaPPv{( zuvl$Or#)TX<;lM*voa)}ybga&6202=tRHzu2RKd1-pMgv$!3>vnD<iNzwrd~g6;jO z_nX5EKyIPl>eY_8=pxegmj4fK?>f}}rX}lJ+g@uk()K#;j>xMAgC7?Kr?eAKlrqKU z{ar5l&%(stWZ~Z-`WpnaHsylS0eFyJ+0Yvr4P1?&eq<cx7-M>zEX+S!JCRox&<l)> z{=ngUZT~wRuH^v8=*M{?!iuCuri!N<6L{sR2k>b0m!#ry^$n(V!xZd1UtVy37<MQ1 z_5-5Mp5S5BwrbbJ%jmgBR%wR2%iiUegng7<MTK6pLT3jF$%F_VHw_vQ@NvEbMx&iL zMxB)<szBkhb6W7s!EM#@wBF6g9mFlR+y^@=c4NIH*kqwDG#{TvXb4pq(23UEtDAdA zt!jDixiYizB3U03ol|m<eev9zzmfH|oxb{d1J@~&c#;K*X(5$QB(XUl`YMb-B@+FM z0ITO_;OtL1%PkSLoa)7V7uf_T$=KvHxeHg<BxBdjjwew&z!LS%5D@~TB~n6*$-Vzc z1o0Li_JU!o&2}TmngsQc`Zozswf3B%6^)O%$<uX)?ldz?M`{aOYo(}BOYb<Ia5Rd- zM0L<`e?Zbj1nMofH80rJ8%Tv;W@YhJ2(wq7>U1$)X6UPDfPAcZ0(b8Dtfh1<Pm(d; zd@*H2bEkJTydc20f(yh!Uy>5gHLU4!b7wAXwvdL0{F75km?T+mZAH;gW~Rz<a-&;2 zKD9Iv_k&KXq<3>{!swv2Jnw>QNSGS#=%9g7m2aDDKUA7$UbPN!5tO_U$w*>3fMbxR zT9516Hj5ohSrQtC;~AYW7qOnt6|?PL*l|n0ynQE-7U9B{Py2dTNl_5_y_=~|Ps>&2 zwr6rsaS1ojNS`eUYH#nB@TYQTFbz7GvPFl1iJUZdkBn?ecQVW3xcZ0%A4xBf7bwYr zp#MX)g{05=OVXt<Z6Q}n4wMGpxodzrM#kLYZby`z144B`xroI40a$HrH=Zxc5Tc)f z$`E|tH#QnuRJOH&K%jGPp##GdCN?MWx>U1`=T;+yy`SC3sI%mg%X3u-aR{q$Iw*~% z0v0+ncw)iu#(=@(9{Ps#F5|t_kZmR%N)mk^b|mvz=hY?YoCG5S$tKCtwUqWApV}b* zAt!<lrHA(bdK`(W)t;`YAe{7zON7@3zfLGIi=;mL1kCFEB|lM^vQXc7p*LYOv#ba2 z0WwP{_`69R65Vc{GA`*@ZswJN3(-H36-a+()90OQCLi;>U(wUbg+od1b&cKOqjjUy zVPTZ{5tZA)5Y>4`(7^%7Ak%qfTao9sJk+z<=@G$4r%FmzuX1AO4UB3j!<WzN^%v?K zk}RO&k%b*5+=pAy`IJOV!)ah!Ql?Jafle1ugyxE*eCc&@?Kt;nzNpT#r@%d(c=A3R z!SY>sSrdO7Bv)%ftIqu{yUiOdO}Yy;IBH^b-Up0uP#J4$ybh^#vht)fGHhm>&R5!N z?jnDO0V-|)>^}cUbfK&QMO7lLS2nbX>Ok(Js~pEidV8}MP~#&NS;++#>@2lR+S}W! zx;Z#l&5Dall!92VoQ$ZuEBgHT6Y}#r$hMJPFu8PTTB^nBnF4cjc?uoVTfWeMB;D;i zby;ny)W*Ek-dt#`<C7^}1M8T1LfFS+(q6D4Bcf!{H=*Lh6^eIYd&B_`lVpAXRkZi} z=-%$%DHS)9#8kh{oi&1o%2VK3vEeryVDKSL8f@6)E%~<RHo7HFw~nz!>-W}kUblO( zK~ncpnZaP7O3Nx_HVG#-$)fI+3Oj^$X4&b+hxibEZPH8UF~6W!ozTZ@6biK$411CA zXMMouSeK;5?7rpVWipDBg0@0Z{R4nx2Q<XjYub`b@#oms?+nzR@}(KJH?JjTP4yVa z=h`!)LO&lhH0nR+qx#fe=Mdkuke%i(e4@PDIoZpU$UNMt9DEQ|-sD(UI3-K~{iP(p zxh(UQNV?Bp>b*v%gF04jkH#Xxx^&2jnNL!Zjg;}wz~6#~)658o!bwsi^+$|xe<k~} zAWihQyEwlCd9O6Wwt^bWDLRyB)LJ;GtUUC3FkU<lZ>*Nu4r3k~+<L_^$@+w4+(A}4 z8!KvRiY^8X=T2QWk}~BzaFR}Pu7LCKlZN|hX`_~{jr?PuUt+hL#A-=2PLS&V<mvvN zdB_Id0n)}bBJK|Z0N|Z(qc!b#fK=-@!rwP4=XXNv2gocZi5CpY?UgtRf^Rr6lzEMI zxa;TX7g`gE{lUZq2Y=+3lr0dmVk)-Uz$XQMQw*3M0%uQJIp8;|dDghJ9i+LszZC-o z8oIee(6h$rg2zUDvinN*5>D*O@!zBuy9{7nYr_e_TR{*2O}(FO4BbNS?@Z-;RU}2y z@2aG~`Uj-nx2~PArWTta0y+RdJNbv$_m-CM74~p~Z#^+ovQ<xh-SDza^k8@ma*+nQ zI!|H)19M&XYHc}AfF1uyIwmQI!&kP|gMByv9=ngUG2jYmuRAccRKzNW?ixLKvts)U zFb?2mdwhVatp=3YO|R|r(w`)QnDb4C7;sdPi*(_{3b6U#)+LUpumJwLi6rX#JCf=K z1}@OW-JoP^$1{x3Sq;u;1*h)kYSMbFn>PdU70ng)R8XNXuL<j}g%*;M?ss9|<-lJg zS<=D-=UpEH`SOJV1j645>2Bc2lJ@miNzn$Q8z(&riPipNXK8OjR@g1TxAT4b_6czD z@GG+?@u!(i{Rqq;D6h-5Nr{#K-lGzD$?Nb*op1c<4T`~lKb?!eWnTgC#glcUXQu=< z^kWJJjIQgu0JNp}*N*>0+Pdjyz*pE%h?#ax!cLIFeFl_s@qTzuYT_zA$@KF-Gyb$A zAjq4$LS_u_hY)B;CkkXDWTk*F3SZ;sOHTiVb3OmZ=^?NpGN*R%BijHh!sG^gjnus{ z+mcMhn1B%h>y{McuF?>2SM}Mn2jreXh_P)>U%~;w`3Ml?H33&_o0k+M4g)~3moyQA zw7tL5q(Yz<aB8!3dkj(eE@TFTr_W-*@vS}EkKqMt<oIdu%-^JhH)Jg&I|gUwM@n-B z!s(@S<Pph=e_GDgwOI)dkYB!loQ&jD*@3k1A;ioy$k=}OD2ebDc2i(zEWprwz~>{0 z$`27UwcyDve^awofA;g^fpP*^MMj6^5%A_<(uW@c{+JK>P0j=)j7jR2Ka+a0<TXL- z>i<yFKART}xwl!(dZW(G#KxC@N$)^wcdrc`8BE$2k~(z?@g!KwwOj{q#qVG?xhcqS z?g|Bh00S9bQtYHqBDlr(MG`AOKGfQ51A>R&8b$w?;<!9~%od8HNCaBvK;;|!^q+bY z2AUfc$JZ%JteFdBj2^_*ZXRIEz+Y~XLIhe0{_rtY_)IzI`jQSHHTY;z;LJ#J69)A| zKuh79v-Brf?wa+k6I}=GElY5^FOLG<043+O*%s@AswP+x;4F-jemKf?f)i`}`A4nm z9StxSYB)(O{o9&=Ze{(NSb8CNwBPHEuM1uvp2mJ9o8$RPR%G{EF?cYL)E!8RlPm?4 zZ9vDOB!HxJk<AmjYpweGDKh_E`Ft02b>@3StpdK{$ICTI2X%032V@`~{9Kb!qB8iQ zmq8Rr(EyvjF0kp6hEV*9?TI9rb3I~N^_u90(1w@aBn5na9DLG;1An?sbp1zE<%X<I zi4gs}lCeCEUs$v^$aHY7l57KP_z+3ST)}ALOM|Yd$%B62(bv>MK&G)ybe*&^>w29+ zzcZGvWPTtiprXSqt~qR<R~ywP4C=8CYd#x1`_J{<wkdi|+$Sn$KxS%5@)v742TAYZ z=ZKE~A1I-B{$D8jzfksnq3r)c+4|8L{};;sFO>b9-$)9@01p4Zf2c>-HzgyLBk+mo zB_hbZc+g=6U&&g!CI|p|xqzbmN)~|M?O9R3h8tS<zaYb$ML?}6vjs=&Gywf;I_y3- zAkqyIN`^-0%4#{toKY%3M-Q>|#p5d(yf0W0F$^$X!Z<FlG@PJ}@I<T<5`ijI%DO+$ z@8b_7Z<40&VG+uozQ}PvaHn?XYNECtGq+yukjCKqX%Zak*Z0D!j@tpnCB4LD!t*0* zPs*4BKA(AsrEc2@mw1i*o>rK6=HMl%0+~1OJH$A8N0g3)U6+1*2tKS!0>US?!RKEg zu(2H<>fXJgdW4aWPp&Wn8PcVN7-E3ZSF(yv-&o+A{sZPb@p9R$Cn(R>6`&Pb;0l06 z?_yAM`Q@ipfeGeF5lY&f?+2C)py*8bqacBvL@W;=@fsJW>KZ>XI^=yGXI|pL3$}zH zKA#XFEK37Yj>^WD+OtXc>atm{<4Q2l4xua<6(P`q>ck6FdNpl-`48aDm2MwaZ>&wn z+d4z+1qq&=$*#@s>vqjX_m7~W6OT0agzT}te{F2=(0lzYl}0X-7pE%K<gZAf^1j&r z_dHtAN;r|(st&r!#X`h^E_-0grkA~nD?amJWxiR6UG6HLWFfiWqIu&M*vV*M?H63< z4w)e9sOZ&FL;Y8jFKGhs?8S`gC|p%pMSWMHUK4!d!t-o=shJ<JL`(Xzzx%B!;Em)+ zv#AE5PY|q5A{%_t8H$^8Ao7QAd}TrRiK?Rhbt7m+DIo|RptVd=<r^0OPwL{LI@=P$ z)YMw&qp^s7a!c8DBHJ3=`D9_iyA_iGAK3}MAbBC3MsAoN$8$~#Dz^E50%F$2H_JEh zG|5!dcRcvZ?-albB10b4<M}i1e<jm6Kr-QP7V9Omq4(ep-nicSF7@SBI|LW&G7b#7 zS6T*2&1tm9kKf{CuHXLYdBU+n0!{pb#q!yIazbpq9zY(td4;DR%zX%`jT_DyWaCRY z@J``B`^gfX2jQZ|;E=8<QBOF6rj!$~ah;*WjT>t@l}J+|JXp;aO%&CSvUKK!r5sM* zj($BIb!@SyNeCP$<3Bl2ojCAybN}$s{$zE&?}q09Vo^c?^pHRwY0XghfuT6tW>~^5 zKehBrWps$~qwx_hk+W0Tct|o6j!n()k_IRJ?~c<mu<cg{|Cv|wI&SopY@Ir~`z9Cl z(@2a+MiNSSO=B^B?lOhWHzUbNZ#o-S{D+5+ndGhh?l+|Ta0!2WO26GBYQuX#4ZX_z zS0lFqMqYAVHu@tl4vXIyhvEMU;}``^fS+?P^%^vQ&z|hkZNgT<Mz`Ekt1w{_<!~yI z^T_7e;Deq!kD%rm<Nh#YkSttG?;jmg&{+L7g0phdS$^N;%>gqm$ny-&Wj)-MaZ($W zF7t3pmt*De=jrDJ)iN0S|LvwB4jNkD@A!IrHoMe>r!XmOncKDYe)mdKE#4&K#gP2? z-BruaFOD|!h~~`yyW`@#{jVEHV;Wd0X|>s(_wulc#M?I|Yb+ApeCSVjHPe#z*U+M! z&h=jrS~i7HZV-c5fc=0jn98q_n?sx8u9YnU_~YJQx!M+xaCF^cLLPc&N#<g7{hVz^ zM^GfJ%D&%hy6;~H*L2_p0{)x)1xX`rFSvWp4Fnxi6N<kkOpizj(_opp{U~|h>991n z26>BP0)BJ0KjX>&4wnJa>tENU6&E02(ZOgbDiQ2imiJPhpyDuuldIIkwVO**29S*r z^Ws#srn}m2lZj0`{?C)9O*gZ@OGq<F>zfd#=`>0nE&7&n?!jUcnQYE6kdM~>ugOQ( z-xZhd-WZXyP$I)6wf&7|k|iN~_?Ea_=O5fi^>H`(l&u{uWb|j*C@IPO@5n~Kk~RIj zv98bpd9?k48_sYRihd}Ph;fi^LW&F^ORl+2<jO~-ZMOWbbMem0cm7E<`N#RvH|6N> zgI)Fh>XDz5JhGLw<*NmshPXD@Z>EuJrgtu$>Hen!CHCQ&)_<E~hJ(ah@V`FM?}%DI zbM~)~o(3qDWgd1Dh9H<|%$2z{9M|3ZnB~=4FcFgmzO4A~a-R&4znSLzH)fznd^3ER z?kibeQELz27G|$G46k6~Zt^8!%cqsNaa<e*^?u;XM0??;iaDbr>@oWOAEge7VEMWJ zxO^h5>Q9uye`pYP6Gqrd3yn#zsveeP+<JMLYYE1#KR1Yf@I-&Dur@ixpJ9-M&iBzH zmVyF3DHg4{AvG%~M1cN)!;$S6ka*rJ%Nbk@)440)SI?h8auQ%L<R4}iwWJE@ACwvY zsC%$n2{H`eC0+ouMcdO-$`y4Yb4e`{Wd@ohyL?uFTm$33%POz{qmc=&B0-dEt^I3N zl1M6DqpJ)PSr0!mSL(0OZlvEb?#T`k;?&rPBV|{;{y0Ye!;JV3YV~!6E9oNg=S1ee z)+SI=Z4zxK2ja-V#$!~aS`B#=$)l0t7c=Uka;_L7|9yE9l4ZkW=oMAqm`h!>zu86A zfchtgn7KW51E>}gFQLB{tYw~68h>cEfK&NTdk3H>aabp^|JU%WNea*EF3}TpRDx^_ zTjw9(o37Id^?|NN27l`Rnyv<%WE|uHgcbN_GrilJ8$gl?X{1=_VIH#wIFJ<6A^sI* z%5T=8n^7N;Lt=sai4W2GPc;?)E>wLl)8}n~|M)S4TM>GQ4!FE?&$|`ts3vx9_Xib9 z)mnwp{6AixJYEpNyMrrx=y?ER+T1X*vW0_Ox$k5oDX8d1(bKfYi*s&kz^qlROMe(t z{$ZH=CqbnIe+#JB-2^n7uD?9G4HP{3#}D;Rpg8fD65i_Yz|4;RrtooI$usdD2A`Ng z`{&=^vXh(J2tZp=BbBZvGJC^8>H1<9b=>&4Izx$!Q%`K$=1#9|`Z?i`|81GZI;h*` za9soewrjsHOg)_S@bmWMEfw1SX16>{y8erb5-=XB0we+MF`5hf*>3KuI-Tcvcj=S$ zMj83`P+We4!nRJ<HD{3SBp#8tSpUKO%=^}PEW8pVw<L5qbcL+n3pnJq(DnB&dF7B~ z1(#F>nE|6DGl7Q4D6N1iZ+OlWro8<!U3&Ar+c$yg|KRh#U)p3=)PL>%&te{0;=M)T z?^LlaK!<<<z-v%5lhZ5pqZIfD;Q>$#1JA1b$BMA*=P(AwL4a$~5Bb-;koz@{52AZ~ zojt=D+{<+H+axj-N<9aaM`R4G12P+h1Vu*d)KEMMyskl56%#;|i1DuV=0SK#!S6<V zROeuJebFJw@lsiiKd39&aW15*)m@z=pv#VJUlgJd7;$}MFPnOhJ&Wb$g{_`!4o`gc zeHjcgY4Gxy#GMGrweqleW&kGb%DPGQFl4=GrV8YZlxEXazMv?y?Vds<v+0v7YYp}- z;HLs+BWXNPxd0{%+XiT*Ln>9xD)mqX7rH!s<pqW9TDK20k2gw<`FxZOKdMW4?&#KM zhifk~O04lD!d;UQ09tJ^k3Be1iRkmJ7l%o=7Y=GxpTN}~sY}?AF_v%3aEj_}p6s~~ zkLX#f-{NjXS@t=uGH4$>RwkByJvm75Bx#rs0B26%J&oZ#fCcgmN%(72G(Z;b9+<RV z!=N&+i~}t;VM4O33J~3BQP$iBt#~vNzGqr&vYX{zype%I-lx)+cL7u=%bHi0=cq(d z%=WE<3^!~KYJ4EjBqL-ILl5E1c*g}NjB!!7{NCy1n{(NzGdKP3gSj9=nr^aUJJUlN zg(4S^24dz+_5IlR5sKFF9)`i&=l%{#soi^X>l%LX=%J@UeQd(QTxLNBgy-rhpQiv} z*)7ob^|$a~#!o*#UEelLeOxX3`#>=G>C7?@9e@5SckQzQ>Oppu*UmfUtGoD1zacAo z$GhXO0-=_W;(|e!%;FZrYaEN;Ng#L5#E3CeE}7*&e8N5cg53KspijtuxzmmqN`x0C zydTQ7v&lV^PDpRXJi%XbG?s7<j$Gt7Ow0#bay+$mh|sTOWaV@Vnp&azD|!kard8<I zeIWMkvKBr=`_?kFA?(d<lS~pKb$|e_7u$lNJn%}Xt`3X<)|@A|*F_x5bpajTUQtOR zHC^-01D6`L&(3sREelX2A;TB}pzH@in+9H=P*3n`0R;w$#pI6|eLqU9m;gEP8qsSr zqvZdK^p<ai3uZC=q?V8n^uM~!zemuoZ|ss520q3kK!B|kV(pM^D^!~h(H@8~Tg_Fp z0~p|$l(YWDUjef}xfN?9hakupjR<Z5K3V$>C=U1-LSn#godgKMlVDU6JGk@*8gM-| zBs3-oUAK-U@tsw&0Uzizu|b|>q6HtS4seJ|Yj{lN)YbLS!^fb@>cc}U1$j(THVGG; zLR0|NyYUsU{oN$M>|Y61>r^~Q<Z&=nl8)d8ZeA57v%D!5Nn@md2lzRcivl<u@ynq6 za|BkJyv8l~If!f%q~Eg!B&$FAHekU60jiJ*K2!J|K@Z4Kn=#G5prC6g)n7Q#-$K>_ zF7>DU!{haQ2NG;|@6Scw2n8h>3ZPni2Z|cBVOt*q+yaxXBETo!TKnf4mmms|J_^3G zendd?_s8oswnge|ATOZA{0QJ+&u<~k)>=<&Fv5Z+>$9J_1vc6nkh|atAO2PnKykq; ztZn|Umn3Vs@PRb6>n9@k`xG=f9)fcW*b!UO2Cbh(_WO}+x%f~`aA`;d41@*%RX4uO zHhJuGSL+82;nh6&etF31${J3Vv^eX_q~9707JyY>0O$sZolL?sgXaO(<xNUGv*7*& zJunN6gb)6?pvOUES;qn2NO}O%>d5KWZPfvQ`T#)XX}WK8KVawFB%pF9&nh#(!Jqmo z41QhWOG<DYR<=|UKLd9B@5i!D0u!`}A(r0<0B&}$nBhd_NAQ_<kl&(IHL**+#0rpB zw`Kx<KuzMp1O>sX5*#dDFvIWA)o;M_+<0#QJ$PF=+Jd75EAlcoC3Ax3He^xMeTi5V z40b?R$Qs7DvTH6p<ymr24T%2hCWes?=+9|lfVJYC`2*>j__gPMB$?7Rd6jKb!O`YI zM?WKeq&P9Hui4X0-0Q=W5=Fi+uc(W$HCA;z#Zc7kA!M)knWAoyVPmV>6KU~nlcoFL zy=cPS5`SOKFJs-JTQ>m_T#AM^&HH~P%U3}uf@EP^*AZ`VV&_Mp3XqLm3-6Oi5a#QZ zh;F~}wCddwP5fbmtB20`J+fN!?Q&O$?}&6|AQ!t${9pnmg?Wn@N+R#zrB7&Dqz=F^ zW0}$zm)qKlg;EO{(btbfo^{xMrk5D}hH~q(H=JZLdKPM)63Hd|>@rq#7KAWjgnJOn z`2bPdKD{?6w~?Fz7Z>hC8w>NEz62nAe|Ik5i0Pi99obIBhCK2M%Jlbx@a@=a9Ibap zB7;P;O5I0pEX6ROs>RC3*~{TiT#L()>&}o6<yAEk<7f<sb=^i8y!~wRE&AOpUnrC; zs81(LGr<odcFD_mBN2IS)iP4@G@Zj(_<`zy{@Rg*JyWx&SlulT&QOaRq-IGAiYFH^ zPSTEOPV3F4gEcyXHCyO6%)`PLIL>jCFWBR<_MBZ>S=GR!s_HpsnV&?p?BaZq$tn2u z{i(#xxHvnzevhm3`_+aL*pHh=DW;@^9L<mSN#&$>-;a2hh!qT&Ed%4h0Gva>U)B*_ z)g@uiTYt!VaZ2hd8Q&hgRnL>=o-VA5BT?6w?)Ho;>-PHzW@cGX=CtdY+SHq^dgYFH zV1}?sBk+D9OieykWXLW>%J<2%RrQGz8ArCfqTP|=J>)e`9lAtIO`pMa4z3Fm!0F7~ zbi?nK>c<532sdIQk=4@dSEVn+zmv}+Z;DkaM-e`G-cd{BQXYLXwE~`O`vdF=S%nc1 zE|^=l>CyB6`zvjQ@Ax<h;Ll!qKGF%787Vm*&}qc(?tY`>&`ru~pWvuGw3`CK56tZh z_W>ifh`W0w!vgK>OlR+UduF1x>bEbX@sbsd7v_1qmM&2BjEAeaN*9+#MOCDj?Qgbs zVbq`wZYaNT(BjIh!gjrJH~b!|H+Cb?Uhl>_29>z*o$f*J$H(f<^dW`%R4Xc<Ms5ST z@yuV4vwEYNSbd)S@G2yu#N(?0)zPuAcB=yu?Ui{^;jbch2z<<cwvv%?G&-!llSxa- zX^kbo+~WQ#c_xw4jsy4A1O2i>Vk?W>4xDqA(4`3aVwgZxwOUbRg@G38>kkZ6W2S1e zlcEpy-qVzEWKz0CJK<;axC^c43mHm<7kEbv5h!~`Rcg3sTk23YtlcO)#O|4G>{Y$j zeDni-l}=Rro>}ix3SO{@v#Mo2d9`{7+M<HrQ(bHCG#c(NPocNZ86|X~D`Cq}+{)<f zU0e$o<!v1T-3VtQJKg|mvk<HRG?U_n;eitKj8jQIYDex=DN;q;yRTAnui|+B{!FuY zy(N&Wko$H4;wC1qu+S{xDOUY#vDPHJCrDl5iz?V5<(=9e2&&-pDowRm;PzGCsNQxS zl&m)@hGEa(@yZCz%n>@Q0E=H5I&szv{qg-UrG}T4$8&jQD&Ztgxf&HBzSOL*0-5!^ ztU2`Rzs~kO5>XTj%V1o(RkaWRhau??+@E!AD#k?LyF7sW*sv?8kE~|vEc3(2>(8?4 z{Up?+&F_>x?pK1P<9LXjeVQl-bluX3@S`UK?l&}K^j@~jWm&y6d~v}4pp~9l^s$mm zl@nG6(+qj<ZR5!lJg_I>kxB!!L}Ia@_!iDQcIRGwwVSmgp;r{-@?rO(w-O6VYBC`p zm#CD7TfY{2y36DF^vyjn_H4(5`-&%1w-E=29=*oI5`zFtGMBb-1ksx^5`Ftx+C(Wj ztYGXQ@lZ-(q-wy(G&!7|o4u2LsCuYbPtRVc`et!v`oMIgy$x^hY=yJBb6avjnPIid zampuo)F-#!6Dpz3-BI53=?mlq<b!8*fx96_1*@HAv@c9eR@w%35v_u`D{Uqpuv@Q< zd)?rimCzI-z#}r2d!=6je<F$9HNwMWjgeZ=|1eXrS18qH7jx;|R$j5igj3Jn*gZ_- z(kt@fLf`TJP!fF;Q-sry_B|{y6X)spbn+v+dcez~m%B48V{MFEbKXm3MUD;myxf<6 z-n&h0S#XsHkg~Te2w>6)3EuQb`TGkjBeVf2(_-+f7j_YHv+();lYEcF`)^QpRIq|! z@&zq*#;2{3G_qbPb~odMj@nE?B5qFKiaun2EX;~>hyL?>6b99ix~~JAkOy<4;8%J2 zOzSa5SapF=(|iqR&55)z1I>WXC8ilJ@MDLm<GdXN`E=dtcI`WVG-f+b9=smqiHX5( zOU7SZP>!=pv+Z${E_S>AA&@*p%|=|An>lLCMc2q&JdY;gzGlSYk~7te+4S>+$)rMk zeeFad-9i_BLCR7=a!jJ-yeLA@+C1LpbyP!jz&90HpJC|rc-r#{=5ACQtc@x?ft&AY zE&t?)q5Q}l(sn<~0M5@FkzJ2B5cEhnW6b$qX%X=dC>fYrx<$bJBhtLu#FZ^Z1XEI( zXrP51oj!E+{f2@8_#r?Cd<x(S8KA`=NJ<*l%MAQ@@^w`SCvF3lNFF5a615<O1etFN zxifRxxyKvHivJ<S|MxS6*}&t&62C0{ATO_@=zXWbffD0q(n}$WT$B_bxJwg5m|J_+ zzaWin-Q@zZ^zTffKjyfvahEp~T7RLVe^Xod#cTuRz;RGw@m?Th@}S&q1C-&7g;=}S z#!1WTOD&T3*8*h&NUL)|vOH<`dy+1xBn73~H##{f8(de6b%UDpJ2iG4%?i{xFW?`J ztvwJ8n71rNhoj&De8Jz+;doY2BtA7Md;L|4eal{diJ5@#MWUen6#OIc3H>2!q;OzD zt<Aq5unVd{C;>b=hE!$3n|i*IUH?i($TX(eRPW6129^cre&DS?2T%jWK2rIUZH@mv z>v!L;>i8oIu$40)<-Y`wHYAAr`qyja&IJ=74GGKzl+_1GoX>6RCq3uD;BPy@SZ>H? zn{RAV)t}`Q04)Y0#@G>GNE&^5BsGFxFTZE>U@5+lU`ZbhRC>Uo{k(}I?an%y-tW1J zJsWPoCN{q8&ec>PF}lCi(x4tjjPdXgU_V!89Zm1I*0O<7PGX;~E5y1X)oaBAsn_sx zH8~gIZ@a)j$|a3G?%6Q^`5TXuR0n<|@@^oMla_s5A@<uUa2=nV<X_g6VZS9Teughf zGy;dBwpNo$wy1!Ubr$huED`V**CvIp5f($h>VS^qdOkU+BwbgCeG>y%n?SDj9<mia zc6nif;0J6(*+{RgYbpFq;tH#*2WTTJ0q+>YTqwT_c4t|oty4?MRCI&v66t_~3}P>b zL)Q0dagCo3s``g5Ut9ktYA;v{&S_e&RBtw5!DRYPR1{v?<tiATtY>&72E8~~fP(7j z#ltS6$q}_sKY0<X-HjPWY~pD|d$;bG(t%D9&KquEJm8q<GIKmvY8(dyxay&>;#Frj z*_T5osklcl?dM+4!e76(zq<9%{H=$3JrfNG0lA;_h`Wk#r~AB{AndY=XvNX9iRkdD z*xH$1HOb-LJyAIZVz=*%p(C1D8a?P5LL%<p8K_>hR#9Ux5B23GYiPK!Q*NhRWlo5} z^4w`DE+wWO=TLSvR>5Zn9>$YVT+mFr5q$y?EdmM=)Rrp?>6kkKl_tzD4F~Cl#~7y= z8W}#`pT7Un?o&uu(j{Ksu<TuX?<slp;%<Tr>MR)Xlg+DxmByX04a~s$ptw6OE=b1t z7j~pv*HxWO(+<3*I@Azgere@W>Q^$oMIaSTg%R(p5O!Z|8SSZ|+M~H0YcQ+%G_49> zT9>`eLdtg;g^G8GsF+dR1BqL{?P*;d;i>lM9rE-|I#gSlErbkyITvJb37_m;xRh-q z?R9DWtV%+2t|d8~kGXko^}&vECyWsRctGoUDm+cVQ21;ax_o+hKXK+f&{IB;wfy#4 zjyY6>LpILN{$4$`$77Yj!XaTLPZs>1d`{Q}tiv(A#z~fpgr<wAQi?53g$!kpJI<Xv zPG+_&QdL2nkM%(7DWIhi9k{X#xWm)+JskHcA+JU77L)OaiyjESpe7LeviV@$j4O?8 zOSMQJ&&ULxDGWCR4TjO-6kvynU!k97o6}&jZOkg{wiibU?{ST+nzlAm?US@TdYWw8 zJZ;f39iEY+F8bqs!h>*sr7F1|KbYdP-g1uHk;krKOq9oO-f@dPnVuy0##wUN3PoW? z$UyHN(R~y`$gN`k%=%^NssMBb>dS*x%7*F&jOK<p?=-G^<T1?aas3wF|5N*F-?3d> zM;S*h%LQiTq^nKY(OJS(JGG$V?s1q#LNuOZ<cLa@H$OJ!$p_n2jhg6~;{0>!m5vPk zd=5pbv>}xF6M}DieRk&P?7<vfwG6_B1BdJrO04bMe&k3?4Y&zNxsz8=QEn;k`>xor zC1bB=JF$hQB(X}Q&uv6E6AT=TzCR+selE5zB=$8bQt|S1KA-2&{PMd^=H#+98vTY( zci8p5?|G3EUOcnuiUUOT+Ih|ayf~H|%%Ua_o-J>c@Vd6zhM1aW<*Zz3ERNS1>3Q;a zVvGU>h9{0dQD1PNomRaU&(_(mfo2I1wqXB)_YgIb^Ytq$f4Ng7j=Vfo(SDEXJE<Ol zPue__klT=<M_<YE=6&#TJ3>8&9xNQ_t6?0~?iSABfAtb}xuP>--`&Sm2V3cKB^SUP zcLuXcDYYSyyGSMhsI*pRQKlFDSrA^cbk84Yyrl^#_bfUxt>x5?xF%%K;RuUp+ouH8 z_0|Cc)q}o(p;*<Jp@M~gH#oy=nPJ+3;kaDX+ou(~m1q`@9(J{kRPCWnR@mNF79dC+ zjNsH8gW#EvwXrN=h^sBTYo8crE!c?Jta1UZljdtEQ=OM5RiJ{(2M0x`tBW;1Z^Jnd zy9`8T3(z;0jr`qH7s6g~7R$5cnX<*AVrZNvZ&um@X`(A}<{spgJa7He?M4i7W~0U? zLhn#t3}+s`&p1(bpm}k7>@e)p@TaZLZfu98eQpLJX_^IEL{3@t@(hIEE*D70QdOGp zprs-bUtrzT3)-{uMPYFVFEG93qU~fx_n=&GPPJ&w8dsj}L|W@abOOw{=d6~2jhKHV zQq%4hwT5%vy?MSMH$K6)uHFlSEZ4r0Jt>#LoyMvd6CQD3LOO(#5FJ;`g`{4)abDPA zJ$K{?bw^*tE+IkHYz~q0NI&oM!1wUNjv<+d2VuH|G+7vcx>X3W&>I>KHc7Kibj5ni zo1b*b3rclNGO`a%plDFdu~zhGNwWW}(ptem2!&YZ2KS{^yvAL^UtN%^Nb<be!-EcY z7hI4illgz_y?H#;>-#^hR6-(=BBruNXrruC3E@bTJ*G&ONh<p~rN|OORK#Qp*|M*h z>?-@d?^&{rbucsi?vXO%bgJ|Dp7;6uK99%ykMqZz<IKEX_kCa2^}Me8d0o#PS$bT) z?1#^Nd?8#e>dome0o{!#(Bbxc*MtDW@J5)u!yKb+;L^GI#+G8Qa`Uoh*u*qAvjX1e zO4G@2cn3KGhLAyTISDx!Oi{cuWgG32E%uVO!0{=)@i%#NeBolM(?nO7_<fGL9WKi6 zK0SNwdKDYwR0Cs?WXIP-cBZ3zx(?JC1j{Aoq@_61^2*JQ3sj_e8R#FnyP3^MPBZ1w zhd~)KL-JQ1Pa-4d_m70(xWQ5g<9F&faNzv%xQ$<*GM$6&e4eLh%R&<$t=vBE_->kI z%(ozm?R5D#%({6%si+!r=)~BkSj^38{LX}(x>Hq23_MSTGctU;S}87U*fkybdJuXF z9mXm$s%wk(#8Zp(i18n=hum}8(U7jFD}9g=3^i91Q`o)Rd++H@DU~N7o%|Hd&7qe} z<P}@eIrYaumHy+r|J2j5#VKxGkA;gy;;MaKl9LKk;{macI^PzfpH-H&?vkc!pX_E& z@vWt(`UtCB7-NdHQCGqx;P*=R>j)I7*IDvk7%?-AX)iOUZ4>PE>uM~NkI$|9)Ms$A zoc$3Sd=$}IKYtd3Ube-agRmitsd4hO6dmP$9}!mDn3&^v?qmerIH~GdbL~DakJo8Q z-JuTkB7~XQ!^2LMuneIFJXwmTbo~wsGkT0&*QQp+oKm-}Q&5+i<58tzv|1xkyGv*5 z8(iBP@aa3~IW+n&xZUM_{fLZ$Y(onbmKXO5WrBLtoi12vKiMiae?G_b*xC9hKUz9W zAmui*qwOcX2T$L6ZgeQj*LjQ2f`9%-zj#IzOvs0!8`Iw-z2N1vcbDHXZ0bqdD`$NX ztI+A<O5-%2zK#(eJG?ET=NXdCiQ0iV7vmo0aH%1DYCg5^Qr%O<hNJ+OZ0{<~AbacJ zO{YpCWk2>pZc=W0z5S$-$v{(y;w)4{l2Ft*g1YYWpzX#9Ho@8mjAx(BhQv8Rx|gA? zk>V(SJ%v*-O6(Q%?>`SkIjV;{fm^iHNmp@&XiQlVgeH$KeAMouSZnu4jzrXxsniIW z60NQNA@MTjZ-??J{eeMGiD_pr1wo6URIpR(*3ZonH07VoeW;Ljc)NTG{IV?cdbKk% zP?S-3i^rPxsmkmMf<By}AJ@8kd)_l^q2T7-ekaXH@`=)7y=2?~QhC^?ViLno>tjjj zB;X)EwK=|euN{|*a7OsCN0&|1mB?;Fz0}GXC1fT<o5!GI+EcF<dQfAiDWG8~8qd{z zF|%H>Gp4womT@qOy-N`!Ea^M{(1%VmPfzxvKnZ_0))5UmjZ1RkGxGbqbfb$s6D}ya z#YgtJg|S|i=;h7#d0gnm*a!KuTRkObV6_wvfG#^KIof?T*d8ZadJJPVeJ)_IeojJQ zxyr@uy%cBO&Qk+yl5#9UwOaHS9?^60>kbX8GGY?YK)`RPw-|}1L$qq2&O$q(oJQgB zxNfaV*65HURL)Ih)RyM^xv5z7Sdyp9PbSq&wz3x?*c`;B?3&Elq>7Ki@j^{zT#YyN zEnE;Oz1f$h$4=i<W%<yili~HcN?Go#ifxp<vbwKv$I{J}p*??bO&kLT2%QGEeo3KN z^JN9>NsJ@9r~s0R&k+nR?h<#l_oQ%Uus=sHc+9YEZ+T+A`PmV+V#ISN(}*qk4`PfH zN<kL2k8qRre{yo-Y6kM(t7U16|6VPxC=2}eYWe%%y$$Q`lGlCw@741EjjQEaT;_}e zs7{Il3e#jipi{D$c|eC;kT@)2D$&&gz1V!sOh5Eze<IR+ZI{U8i4w?6VKp8P#V8Mg zQD`=rph>+9bO;R_MTA(LUjGgHMt<-<7N3-&8z1Lmt<9_`oNUR-qob@<S8mNF!0g6( zFfuOj*n;kZ_6tAzac|33M*UCKp0x20H%YP+x8J3BowD7($0Km2XSsFnw*Dx`%_NV5 z7JLMmR*_^yw46l@FWW7NroX_o49jc1SO^A!JH3Wr^aKRUL;8#0rtb1+3U3+Eo%})u zZY`IZolasrV4e_4{zE<Jyuh$IMb2wGq~i~f9r(D{C!IZ)YGcR%$LlSc8U|m;1SDCV zTDmio#vX!76jk5g(o$W!d@*9`5hmmPpm(Rbi$<WCz~JtjaSelWRd+Uw!kWZErSaRK z!q;p^F!mrF3?!Ea*`ez!l3p{>s{M1*Vc6NoIo?$EyN+c-wc~YiaymOcw&1OU@zm1G zXIKRJ9rpCpT0gSQSNuX2fP@K-XJbz^zbDX5;N5LA^QkBp`Q^`Tfe~i0tiBli!X}?> zOyI@H3vMvm2UMMWK0uzth~q|$9bDe`w!2*kjNDy(UR8VZEO>*&t9g0$rX}`6&iTw( zF^s8Rn^{r!HY5C=bO$rfbIH!{A*?ND+_RQn1WCLVir14=Z$#dMrZi*ewM&;8JAJ%R zM#DhvB+?)VN?l@(54PB{mC0NxOS=@|&aQuOld~Q>vRj8*Hh(JL%b>S=yRnw;^Qe(G zoarGUF-J~sIzkiU8y=&oN=~*x=Pl!t(QJovCc;oqx$6moq?DDw+Ky>s6yj}8$fThV z+eh!To3!7Ic=(~-EVQ-DdZzV6Bv;3$i{@DD!SN;jzCA)S5gpX!rhyRu+g>f1-IuTI z7}aSs?;>21ZEnV;5;#&Xc)OGpDa)j&OGIVeuu8pNu%e5y#te4pE|s3;d!B`N6xRlp zioCnghdK#}f3P<TC4#L`O?0%o_-*U3&rC}LR&9=V-vk*m^7D5N_{kc29NiYLU)a;b z&HaM5F^8A&y1yLllcBtB21GSAbQw^EdSM3~&f*?`z8OIeyZNv_<R0wt+UUkPxq+O# zytKEd`hn2Ci`kzLDN0nSx%3sq^c8X<9L?=dF1$`p*{+QYVOGNKJTb3ScQX(z$=up0 z%K9PGt|{TT{wRyijjLntnp?WIPVIU=Rex5A1}ia@f4{eqe|xX-t1}tNOr_K*rJmW< zRyUF-;0;F6yp<Dsqa{d8XEABseago(53wwSRhqK82WPAtj1D(>zlo>9An+5r@h+ZH z5rNN)j&ex}@M?iP?OxOdjMQcHQ_so1x>=nA3UP7m?`J+0Q9+&u8*$*sI6}!@KbSQY zD1={J1g-bZW=<Wtn{Yw1P<pHoCbX`_STsL8=xu0Z;B-eBO@aHBP?3nc;xCVu>^S4r z;YzVry$iYv)suwWEY2PI0Y#ng30;+RV24>s+tB%BFLXhWLRMce*-ZKY)6NruT1jXo zJZ0xHpHs`x%UB}}Wxr~Tce**BZgqI1mbX9WptXFZQT4XK8Nc?BO>QDIpPc1xKpuht z?bR+?Tv4n;#XfAG@dq>A?>l-IR!Ojl+{PX~5;&n4onI<5dsRET*6zIt-#P4?DHPZ_ zV_M8X?y~GTg+;CDJ}Jn&_bYUo-TC{kT*VG}-8sXvm=|;UsQmJCcgbt_m-e7=9!?CO zyHlHjmxWDq+0y-sv{ViSW*Q&yQSrG@(Cw7^pl?v-x`6zX{T>X{Q|YslMLw<&T09*_ ztGxh5bDR%KYm|`}l@MgQZGh~WZ<Vel3%P~gF)@8VcwW4rTke9|{R>d~{a|rV*ytA4 zt2-B!EluN6nrssE)LnN!sCcyhgtnffgUJAs>Q;@78!iu`B=VrWC=8GKm|!1`;n^uk zucQ&-rAILWiN`xRg(?q#>zj@Pej-|3ef#8-*>RU&?mf)PxAZO?*%Xx)Q1lqDk*3s| zJ3o%g#@ZUhIb3nnD|~+mIc~=AuFWzbA)6i1k~Z~tg1`N}yYe%diMO(o$O2UB{de7) z^Jzi*%99$bSd>W+P1}(sXgb~Hj3n{9lw7%LXS}tIsIuBTHpY-qEpfpXnfXC<s8Ryg zHd4~^<B<t3d63W9zzv17CjMjo{)TG}rdW0^4+Fi)?ZNT79D5{g`R_SHJAcu{`<?nr zEa1L4+v6({)ahF-y_kBN{9`{KK5R2#`7ti!B3zL7Bh5#NoRm<ht@p{R?DQv1cqNnh zG(>h(@nHfO4rpug#*mSXk&(Y7XIum|z0KUX#}3BJG8o8tbhq>IWqafv8)1<LR)G@^ z<4WhB(sJf(Av<1sa%TT!uU5-F*R^nJ;je^jb?R8Ws;hi3TxA|kTyR)Q#=|h1XlbNk z?v&Tu<iiMjqX%3wIy2qCkL!{p#WjT!tusDvskgsue&$pMBntl!bU`xBb;|Y$yWi%% zC-nBrMTy1wjU6qQJLJ2MR~mB_rikrL_Rwhb)`-=U!(AtxsUNMq5X4{HABM$tBMKNL zIm#qEPxQ%niHj`HjLZ}Q_hV`B#IW7cKC@5|!;W+o=X<R^3f(0xCFmvYN>6jNRa+tX z4%GF!T3{czP`Pt1wc8t&aa?&W_Td3>NC|3F9upv$-0xX%7iSH-Y$LMYd+YIMjW3;B z!QHf)DfXoo`K$BIkK(qyU^|ZxNw3DRKYWLinVU%Sf)@w<alUo=D6CzHp7!j~*5l8< zklD60k9jd3DV7(bDaI(wTjCz%)8Z?cA7VKqscIq`^JEyp;X&hN?Sfa;HXXjpp)9rG z$~peMCZFU~if_ZN+vf9pAq(AwSO77zFo&7fKsD3qKB=SC$k`h-l@UDlru`@`T&KPB zUT5g-d-W20x$AEB<(>NL-)LWa)F=rVu^W1H+{cZ%%=I{5H~sJq#qCeyl<4d~o}Ab~ ze@G>uBkUgg{nEkG6MN^KNFbDt@xZU}kyLUu$us+`p($|6_l~Ae?>*!P2Nf{%PMS>Q zyxP02cHx_QL`uzrT1lY_J+RQ)Z^L}!Ud-2r9o+j<WOK<pu{`eQf1+HKyKmj|CFh;y z%C~r4G9dhMmwt!xYWVb+h(iJ%_T5CMWWaZhi-I~DH$3Ox9lEv}5tV?FJOyGa3Ji9t zsRiGBAl|&|FaNu&=$LaEX%G@83YI!F4B+Vx5r09v>2^g2t&j5>rq7*f1*~()bFC#P z{+LbtOgxxaEqX#ijH>P7&k!GBU9A2tswIWa1YCSl-5-YUe)P;Vzjj_`gLOt_aOwHm zF9tIlh+YF+aFY-$%tPBOIN5&+xmQr{Pyb>)C|5h-#?f3Az?19Rs@KUTFSe^{u1t9a z@DS)E-=-)hKEcg}9o0HadZ<WW>+k>e?<E8(@V?5Dc;Sjri)?|h?c*J@tjFqdUz5lz zG{!Ci&B%-}5?DfdA{c?OuzK4Qoihd!%gSNq8Pa*IK?1sDi4Fo^SU7mW&EAZW%>a(= zlNxAuj2L^c8Q7cI-l08Ja6{s6K7sWDci6f#E5sO~|IEG#qkyHo-`oK#4KuCWl41SG zk}bWHSkb{`M5$YgGGWs%Hf{Ugv!r#V`U6uet%+<d3HAi0CO&dUr-ilM+iv^w5rCmd zni}FRF0h5Tn4bO5KONPzl`T`7CK%gM;Yrg_*fWu;V=wRlsU!#HA}NvQ@=%8Jxu2Z} zkiY(he<t>_d@L}3T~Ro7mT8~_dLSbC#^mnL67U=ljUm%p5lf?hhm&p*J(;kn=^n|G z{b!Ccu`w`uy?meKNzcDO!wB1IYkkG~rpU0U;Y!|3#5T&R?y$3BOs8FoLhDU91{l#8 zvE%*qaUp%V70-Pu^g0R*3ZOINY9EK_vEQ6;{j?Zj{%8mqWlCbSK5NPujaBwQuJh*s z>wo0C_2G5!q4NhOSPXnBe4bcwi@A#W=mJ9{664?{7}`$Gh@Y>EuiF26*dYD}HR1bQ z`Ny$ZQa5TBQ|<sAtlQP60Z;*_iAeV&K?&>_PVSekk@x@I2~ZEhyQdxxz0X*dZAs3w zzcG!i$}TlW){(?C*|kX_|Ir;QEn>RWe#q&@<%ndFjw1~g)mjsAD{3mMv@!w+G2%-5 z`HuYqCz;q3;!U?GIv9Ugv9b3e)>q84hF;DQ{2~c`Z3TolMW(<0`Lq2Kr|G0J7s1RZ zB^5K<B#XCnj;DT{p#|V^-JZ!439_iG{Kw2J1wL2|JY#_PaJH<T_08R%MGX@`-H&8m zht9#}(KFZ5b`l3$5|02tJwQ0B|3IK$=N;veyo5GK3Rmu0Jgn0qZ2e-E5Nt^mX1>~* zw5ilDo=)uNUg`(1+Gow-euMoy{xHDFzvt!(JfuEZ;(TkW?a;|8^Ch)vBG7VBorG$b z<KKS%K_u~!T<4wt2e`Ym`C4;j5OoY;-`*&<gtWVgdOu&mk6Z*kFJf*61ho|hNtr<Y zZ!8RHyglU)W4?T*j^(<i#WR617O{2-ij_k}#EMLZ-Ui~ujOo8RRR74f@xD(2spqKy zDbsnM6dt~}88^CY0TgK>-ZdUlji3L_u5mP1Mj}jHTQ637vaq^$=6XlGvTL>keA6`r zq5l;hX-4}#$%}WtAx)}uj$%~jeaHE#TN363CrLa8`(HIRUOBL5X61z}W@(NAr*+0t zug~0nVJMP-T(e4L2-fQ;;3NAXfNB(tj@)?k85QDK{R5cv_Z_%C+z&q321%E?5jXFa zF=oYWHF3<heg!`g^&P6#A@kF?6i)pDS2M1^d2v{tQk-*Xb}*gid3jybZ!us0@P^Fl zg<B%5@Xw-)Wj#vRM{M8*;!QYUm4EbT+PT0Pt*6y6-%Yd#B$##BC_a0=Cua2OT@*q` zo;uW<VU)^MH&KwkY`Bk>5Sod^pH>nB_0NjGfSJB((EpKwY0V0I_aB`lF$|Xv79?pV zCcZ2nkcd?QiI_TR8Qda;CHzpT=~*rR_{8k!sCJB>(e<2cId)$u_K3ZV1|pkw6i_4> zU?Td=?qZqxlxS?EO0<fZZzlCq4yD)f4{euhm&lUwJANyQ{N90H&3iX`@0?CZA`+nj z4WrlIR+phL+!JppT%e|?Htn7&w>aZ4$+%dPCOd~yoNtrs=VUSt>@H<w;B0%vupyn! zLfNNH3vUP2bG(hjQz6lI(q>OD<)ic1JDF59FF9@8zo<SdsP3lrSoR8Fl5YfUB`>$z zkrZGr6FOJ4fkC`Lf(~Zaw9t<=Br+F_i1IB%qmWhg$F*q%pt~8~prlWtW3&0IT9la2 z(lTL)H=*g9XnKL#j}#U`MRcv&l}LEBeW1_f1h~2Z>UHb;R4|}VMIEYv0-9O`zCY2- zVq@8UpO~oBb$U%C@|#~9em<SRIVur)et+~ZlLQt!Y_1QC&NvJ@3P_r0Ry2W#dR2($ z6M(M<(x97yaTxGu1U*L3!LwfX6y#>ph~^3+#U@FmrNv-EU;d98cxFJ~19GmX8$5{A zW#SKnrhLu@Kx<hQk^{@|eLlfT13HkBVupQH*!tRbK+*#P1i*yA313*9eF~ajNK*Y( zO)W6lKy!t>PoU4N8&FV<Tx5QVFBk$GeUD*2xmi*THlM{!P@LsM@LDU9y+qRse%$X( zG@gLa?~PpC0$G|Q^c87fzpL7<DeRF-SAjm2?}ILXq=UFRoPcl)0ST-e6qK8dfSMFx zRlreMX*vK3k7R^@06z3tnId4k+NQD_Kq43}V`YDS*a5MymL4?|W+;5`o*^9CwIv_Q z1E&oLJ(>|U?ob0+IzUz%)=Q80Ho)P#QWxmlf#FYs`%s<hgl3(uT`FszSDJU^>>~(f zca&hw8wnOo+$56?3g*P~{MHRmz!R{Z30R30T`jQt#GhAICV9Oa9C+OFZ|YTqJtCHB z{GnJS5?C=3pU1S)l+Q={N$c&`0Rdl|T1dsK2z^aNDvdunFeKv%K<gZMn2kkvETQE? z1N4I}B?09#uq^T4*V7zanXio}yG-0cL+C!E+P^0Do2NiDoq(|LL=y8~)!^12nYHNz z;L!`ar^)Z*M!+PuAL~`tf@Q21#MyGMbni%zzz{-{6+x_WRkDwGI00eii#xQxigs!F zKJcllLnVv|_76LWr3AAW?w29w8DO|Qw_&pDduY^ZFr3pnJ0Y^5G03fuM5&R`<+CQ^ z2-=@kCOxdEltTaK!j1pz<fs2(v{s)909SikaM|E0H;KmKHk!M@jPkQJlr~Qy{38S1 z$Ey(k7+4X9N#9s!&xe?0_ea`KHr(2sy3r^~v9gui3K~KA%C&P_YI*X@&sAscVS?;L z&xQ40`B1d){$ttXq(M{<_n6t#iTSu`Aqc%wy}Be1TDrVj^6~ui>DMwtPpNUSVoJ9t zY}q}{vXipJffZ~jYtG+@=`QS&z=b;Tn#`-)S*05ar0d7O(H6t)lf2p64&O~LR#q74 zamhbq_|(-qQH&9R`Ob>S#7oLBF{j$@bRe1B`mi7cU<<BD=Xs-!5xe8tSS~cYQZAH& zT)5jKp5Rt5{^IfWgTiATlJ`REnm&cuKhqCL7?`;#5ccTKmBddR4hiXQ<wKji=e&BW zG4naV{R6|8<;8*+=WOe63HJ&wJ`#EuQ;mK-xLce(sk1ngzOFyrdy~r*<6XTySHjgY zAsknujHz=($_qM|C`rDgu`J*?*8Oc8G}x>~K?N{OdR_%JmYU<jVlf}B^ZU&OXSDFo z4MV9lu4QNY?sw%B<nTLuNm|)YBb1ChRtW2Z|F{GxPTGTS_cuaPVl_f3(ZUh2HvVHv z1A)q)H?|#NZ1C5kJS}5<VB6gnjQo#JlQoZ%16Hw+K>ohVQO)BJbQzek)vr#^vKhI2 z;ylOR@o8p-H=fAF0e#5_Y8bb&=Q^_tN_9wDo8TfRfqHdK&}yTfU_8m;%ik4Z&f2i$ z+_Q)nKQ4nqkEq^Mo!%|plu+529+3Cc+AossOw>T2+E%x?_t*9BlCjDqvh+SItR{2V zGiCbpt|YV3)UX|+Yd>Q=XU9|Xr+#uA*Zt)7;)blQOXg8wwQ$i`1aus}>|g_%7s+oD zJmkbO-2AFrJtH~zJ-)VqKY;_4ee?vHVY(#E{@!$pm>_@9po`@7@nkSzE34MQu?I$f z8RuD)&t7M#a1Yt32|In8o7G99(}%ICc?R5|Zw8$}2!K;t^#r%VVHB1+O6SnRN!IK% z+ZA5rTuRMUQ5-WrGSg!atjBZx>VA$_^(=;Sxp>N0w0<9LDQ&Bnd^4V-Ln#KxMMv33 zo{qijSKr;HwRl}5(!9bus*QeVP@hdBkRv#RBdnU~<&*T}`34fCm`#{8l?e`#2$Z1E zcy?a*{#OB1p-z33i8HUA<+#Z<H2CX^O(o6W#|WWwmC?Hbrs7J3L)o*Z5<X~s4sSG| z-sbmotMY)fT!cA`OW*-?NHmRZbi6UMq1$oKaSE+Wg-WPOMo`s6m-4egXNx26S+;*3 zE{5pqnoh;_$b!)=_vV+pG7Aw@#`ryontgtl*8Q}%u5M%Rn$UDp98WiQ=_uajAEcI% zdv6r5(*9DBRaMZ-&V5BslDJ!xq&u7t_mVI(S>SbnSDEGg(SWIS;I$fr6ZW%^xj}#? z3BWqGo&;Ef*%u%nPz{Z)2&;o}`rmI|6L_$<=YV4L8i*i_G9uNuAcQC4p70+%k0W6? zjwe13RG(z1z+@i;iBRi$Ez~@4r?O8DwW@^*zJ9GI{4Zob!Q+32uwSv;cWw0_3B`t* zEi(J#^H^4%22T13j1Ah91Db}vf=*Ix0YZbk&my@39t&GKvZ{vq9sUvqHi1llSce>_ zO&7tYX%R~pB5+OUqg`v(UnCxz|6i5y!{Mu)*Cf>F|Ei1=WS>WY5d+KkugdrjN4EV3 zRL1$%kJ}=Q4qaE$YJ+UbKVu&;{Fx^_c{fPi*2bU`THQex+GCo`Cc*$Skh#5Hop@Ja z_=TY13I?mnr$H7Mp$ijA1UWCF4|xa!$%-y8i~tDQ(I-&gos@9P{ws=QB%fN9QmH}y z^^-610pBCw4YE#9+<DuLbE*dQ24!%2qXqyxlpBu&$g8+X*u9VDKohk~7Sh;0_8QE$ zO4WzLMd)_4r25NXb+Olcz!o3Gfnh#K@CZ%=Uq$Ii{{<MEy?msTjT3zzFE3k^w7k^^ z2QdRVz(?dRp#<T{KH9qi{DYmW`7fEJl3i<u-r3Pn_OJ!aGGRHjXt7x2@&Y$t6Khqy z$ku=9uWq;^_7`9TotZ{Vb|A5ekSU@M24m5!-oxPUeM8&vZ#h6_>S7^OsL)5VKYduB z_zPLKg0+mPPtmST+e|A>5rwKRft(<COVk}8ab_MZ#xF{F+~T-8NRvs{0AxfYpBwBC z&g<uhGXKWA8_i!FD;x$n3}Jqz0BRhGcTHROyIy?|I%B3BiIViR<pIZFb^S-Z4RgE{ zr-6{fVw1C}#zb6MzM#Vfj0k$@oDNf8wTs0UGP)Axl+)tF`gs{N&E+|6ky8WHR-*U2 zg@#F1gXF`RXk`<B)>@1<dI-O@-!XcziwhT&r_51T*kz%$J+DvXzF@`XbnI32TjB>k zGWW+RcIA2YP+%D#^AB(V;uexL_(ox^#N=>|4}r~cuj7PsqxSb2xLS+k-Z!gYY%Sv2 zrn32+*|4E5#<vGSJ=~ms0KF?=d&n!}8i~rz&T^Yx*WIO>ogO`8e2aH+`3RGCrM8(8 z7#xG>)##b>x!dR~w3v|bSzWoKoLwzc%7?2<?#O`li+nk&MfXdiQPohZ@S2APuc3b+ zOw2I6na)_wjTp$hzDAx|-&;9$ZwXaB+vDvgvdHyH*vLCOu<y3M+Yv{%J9UdUiXUN= z)Ed!0=sD#IYm1nVYQEWAqI<CE&}`)i*?hAT$_M&Hq6IBZDxB+g-L<3rz^9|+TQkO> z0Fx9z^7lIM!X5@KlzbuEVRS*UpBlE~vay|0f;mf7ji#(IoQwa7>p7%D9fdEM)y2${ zn^;kpLxXSHo)-E%Odg4!Zi#lgsrAWOG`w<Njm}wPgJ1qlN!J(b?<F;oo`t?1!!hGL z{6MYe8tOsZ)(uJzW=l`vXU<R~`iq-UMDx7z4};7H;h;Ii?T#{_eYoWGJYLG&u@}e7 z&!>{%W3FIqexo9o^8%&H2XX-$gME+g!?cY;_to)V$&wpt(;d`g8ZZyge{6G6L;l6v zanS%v3&hdxDWyBLhyv-fX9K(S5q(knmOT0T5CMowmKZ*?Af9pojVOesJ^Dh%3I_c` zS&edz<TMIc+N(A?)o(6+dfO2-zGJht!m~vFXXieXlR0Eex3X*wo^L*jK2A5B<Dk0_ z<=THqK|^f`Zp7(LDR5>3U+JUB*T)88I36G7MbkYA@;l9BN-Kg3m)wT&>_<48VvqEi zx#=Fjn8vihIA=vO9~#;i-0>}UK3II`%=8(B2_B9=Qevwau`jTuwN8idmB_Se_xPkd z#hCZ~X0)HDJGtFeBVDJ_Nlca6H5C)Ri3fts4caH^G@9puUm~&G=Ani0>}3{*W4QR) zQN#{ot$3%s==lJO*0DMD%z*KU@q$Ac%^q=C;mMpFm-Fm>KJ<)7Y#(AW=9k#0W;jze z^|8nrkp|lMd4@2}Xp^F%QFduuSQ4h}VxU4`#>EBxt~;uoGH2L7G7H8q;zVo&`xnNP zr<i)H+(8+w5XIoYV)_zeS7~Z`HLWQ@@Rh;k)bi0A(_$a_0)5+WYPP&EhgC8a)3!XE zM`ElILQxC%g!r#-ZF!Jaqi3o@c?rSnd8;l)(oe?g^JepW2AnU{IB8E8f2hw?d-36? z`)qT({6`+sn)CO#iUYw>A&Z9a=-e6?J_ri71Jx4;#v>vhSo&J_+9&9j`bpoMx)-G( zktcceMsH-kaJL}DmJyc<gFAu66?}j&u6D^lFyyhoZLh*5D(2O9S$__<w-44M596uu zjy#%@5~}KY>P8G!8?zad4T4ie170Nqc5>9N3c;Wy?uU7$R##-$L#NM`cJ(&xZfBqP zKr6HyFtsd=QJ;z{RAbwOvDG&VGZNKf$Vf?dz2KP@c>Venoz9j(>pK<2e#Jq93341y zE@mqmzOKEzKoSOINj_c1e{g(mEi0uNbTcyo4l~A=q0;l0_g0$To;UV0<FZ(;eg7uJ z`)xyyk9=`MdN=K7Ez71C%`>M2Uiy(AqCTLo+gE-<rgb`Jh}WJOBRJ2A^R<AslB=LY zqXc~n(WlW;+S1$3lxm+0b8d{fW~=Uye{FowH_Mdj*rSQQfIXTS$d0|`xC122XOc(_ zxT_#|&YTNvYjd2Itf28e_E5zZxc2iQA~Ok_+LAk!fBJgLE79y9jPpd79Dj=Q0uRBX z*0o*BLc)cL6StH>`S#u~3`#%m0BDdo*_}V%h=24+ok=fO3g7q9>>EWB)Vc0tB<(Tv zS@7JrMR+Lc1~9300bJtvFb9~B`;RSZA_82OY|LH)0U%<RKMB~1H>0z;e=e`iFe3x$ z;I03zrC&@(ZXkwrvktHMMa9H$e>Fo(Y4dJka6%G}WmAyX#eNH(5p;!lYY;;KTXknc zF+ot0PXJpT22g}F>n8aneIq9j4)_hc`yAt&>9bh&V&hu@f-`xs2*{F_UuWzSp-Ykj z905Qi>#tUn@G4BQKgDHi9~__QP^}{$7oyyb-%l#D;l_PvJ8qBx?Go62BvV2n&X8oG z<3dD6qEB;qyZ(F~2v`<)f}bt<%0sXM;C&DP?{73@lGk0eSNXs$V6VqyPPOz;<oLh8 zAWD^UX{ajEg)9E6%JX0E#_vA`V>KxZ1R}b`hxs^wm{%<b)swaRxCoMUi8rM#W|oc$ zF1an)bWFbIhI!Eu_V6`({TDsUJ>r4ojCrRcA#|KW$Yoz6z0PF(;;q|W*(2i~t?SbS zlcDo=fL{4?6Zkvlk8siY{f04e{m;Q!VCXHrwy)&OOeGih^zXZIyD*E}@1+H!MQnA5 z4rRK2&d)NXzw;cwa|B85GJo)_XVBYyjjy9GE2TfG%Mcdnedb%MWb)k?|BHL;0-Y8T z#NDsPdok9iQ#qWDL=>LN%tuT}KlijMTgG2GS=uo>U-Cm&OmFmy$Q1)}qcV%%$hT@i z9CWD#r8`hx`+jRn>IO@jv8N+-jT1KKEqCM@vh2N;NC})V@5n`@XwFWPvVYeV9|IN2 zqHog`*ZE>e;ENCaabo8<LRhV|O#B$V=)rL<ncwlnseg01ejWx_oHl^R#547Kp}qU+ zpuGo}zy>=N6Ra0Zeazk69va$`kVIU8NR0Z&eKN?|9|KI1SVOpPCUwf`lOR71vUTlp zoE(&CY3X;lqNGY51>)?G7L}rANaHVDsSv^MPy8x=tj5v5lhRME$p)-<%@n{jhav|$ zl#;QnEG&DcD$Wf@TEtx%DxV!+^7uUT?;S_l#h@=_6A&<31|F8kgr}!r$J0YHKwUX| znJFMw9|sPA6$rXw{fw#WQl-X*=zknet&9Vu{>Cc!!7f{|DdsJASGp%Bmr=b7eJ!T; zB(_rVm)`k5U>UODHroZ<OVFd{n#^$9)>nX<gzp2iTz#JIvQl!f-`=mm*S9X=B9gs6 z^Rt4<@I=f{i*p3m_u+3<kba}s7bc7KlEoMFgNuuxVLlhO{lJ#@p9lrETzX)|mY<y` z;HzY9C^0J4kvFeD@2tp5^G}-55Ee`W*w+Z`d4)f+4mz7!7mG@Fx_NXtRu7$BHE7n? zE54c`=wDBYz<K;e8)+Z~VM1On0me_QR{>gACv7Q#9ao(jILJz)6)h<nZPuXvcgml? zT;Em1_v`B8N;Iqi`8;vG|5ijX^C>jBt}U=^VLkqK$mB!ruZ|l@?6}ine*<*=U2|F| z-m%WCyXi)ltc)4+mY*r^^i3}N5Ks9zBAwv8)z5(1=C94<?;wQV2zkJ;!Qc^K+0?Yl z(;(KA{s4WQ0_e*ys>IA(@;zfD#|`s^5I4fM8^u=p##!N{e~~l&-R1j@hdzaz7Lo(q ze|%r3*cK+a9lzH{k#`I~(01r*2DE$ozh~Ga<RemS0}tI_Cos<L-Q`%3T0C&$_H^8} z&`YXy(UO)ggVp}VO~F5GDg@xTrq2@d=ft20zpw7lY)rz0Ve5gk2VUMzGs$~h*u(xe z!u3{CofsD-I%9H}-&FN-V7f-p4Mg7F7y38t?A5ACs$l9WFJ|js`u{xn{r!3a7|Dz% zdjXkSpuoG3mfJMihTJSXbB**fk>>ox=Vi(uyf6GeczjEatuOud&B>o`%I3R?-Bi9K zhC9JHLv+$BGACHCI+jny>PUGv^ySIVqD^n21?2dwcA5+?dH=j3@bPQy0&M=;wcEP) z>4Jcq&@l3}DX?_9_rA$hN5^FMpBpx56qy#f88^q+_<Q;Om&Si%Zu74N2>*vPG{9!S z=7LLxNGuO7-03h@V5-aozjdU3R7>>p#SR<)KT-qOvynjiU{~8j=#3+&Ae{}|wqElg z*|16!xG9`c0HaG$eX8Eidy_n@K}*GU>`sGQ&8}_6SF>~cG`BDtq@~?Sxy-mI{xMd$ z_HYExM)lcRX|ru-BiJq}c-$Nc#4=$ddXRU!X=V{F-L&JO-RElid6SM&WMu`(2p*cr zB0HXveW;j>qVvM*jh@|%k_;H?esyOd+J^{wi<opTS{2oqt9O*^&WgzC`JS`+B=sTZ zvF!N=_lKXTiB~P~V0&@kin1pdL5sRx?RD5edy3mjTvq7q+qaE5!_B6&0Y^J!YR9tz zIee<TCE9DZ>C^KH-^s%*lQ72!Bt#;)LX*KyyFLvl#;=g4<q0zfzt0_9BO0w26sfZp zJS`ALMB`Ki5QzmDj{s~D0x=sly&-$4j8JI=gU^$c|16jWcr+8x(FriDiopLD0whpt zV5J0&7ug=feoGRf@P>7)o)r?*eSBUwAUreH{8`UnP1%9Kv?dhDR%IWeAl{PUffei3 z!GJ==2eYLmBKG`~?zy?YdKMJc>j<LR6NK9W@b#qZ_4PdQ1;Cc4Jh38UM<7HK$Vc>M zYc%m65TcQb-}yX*g&}0$i_p<Q0NYnp?MNu@=9K_BsUVu~Bf!JZkbe4;{sp+6dwd)< zxl;el0hDx*q3$zAeB~Z}rTvmH(19vhGxmNrJ|B>k0Vf)a%7^1mgV%-a1d48}T%+&o zSwLnXM-rD;BoPB9uw@D)P*r%Dz+GQMBq6W>DqD14$mW_LIGUBivew)UlrJd%%n5@| zZ-dTtfhAZ`RX_{?ZL>T;=}*v~f<6U8X(Y;XB9m)9&np!1D{C@)>sZ-cBxyQfwF#{8 z2vF+?BXmL#mIR!Y71HmjL>*9)BNlZaR5ZUUJ~VmuAOrysnsk4<XTZ_!fCB9r!n3cj z*H;eh_vHrD`k`3o)z;f@%=vG64^2L$59SH>kg}VIIFDG|l!UWfAzKk30nx`5;yfpz zM!*yQ;k!Ab!9f8V{!MUxsEjzhA~3-S1nyF>pFqZfq@|Rw@x+qwE6Y;0o+c*<R?Y^@ z7m7qJu@K191W@{2aPNmK7DsSE5KB{lFam#>Nc<teWOkO}%r`nYW3>(Vb@24f6$G(A zLRSHi*4~fK3yHipp<{&@ASdW!PkcrxTM~L!zOUzoYHq9-up$p&)1W<#l)X+cX%bxp zB7tkL@_jH2`XN3aa4%}&fUd&Mmh}h51vNlHu?#wHhD!-gPmL(wPP-5VgcZDgtUD+R zHtM^m!{v374}>-c61|D<;D*4#;Q+dSCxKH1x_<<@2?hPHeL@cXQ`~qNS~f(BGGf-C z#F2G9g<V^!=V`f;g(Hw6P-6$2M}W+~NjeZH_NeI%8A~65FJ}gg2XnBPoUf9T|9?>` z{+|N{LZ1!cA3l<JXdyIXR+{APv={dxp9&M*SLVKR{9u&QQO#Dq8}{uZ9h`4-UhFly zL;Z&0+EpaQO}=wneRb2E6ZR-K2gTm%ts{3vL-`tSSm=oEwS5}oQel-bf}E7&<E1Tb zc7wDn%&YChy};^BogeFmwl_&bCsAT%qp&C4o4=6hPkMA`#<k;XL4gaD|L4SX$kq98 z_jc2a#P2Kdd=XKcLP=lO_>N^`grX=O{o<M!jus8aQ-&=I*+6>((-R#IV=mhFn*sg` zWZuf3+uiJjSBDQTyFXu5vX6kUv3!qNYx226TTzCa7PT7$s_S4>4u4?G`U{ZcHc3)w zy3(-`QLpp`a?}Ke6JKW1r^zz_MqR`=Ngim3LUYVZ?#943W@mYKO=<<fk`K&Gzc-y< z_;Bw<TBrTJ`VS6#%iIozm{D}KF1Qw7=#xbD$04_CIA$!D7$aho!pjb~ZO(dYq!T1# zo=(NbXR5cI(WASuXZ~?EQh%u}92G!I57YsQfFf&%e6w1UrK45Z>E$ye+Xfew&5EA# zH^|hM*Olx%w}DJl`UqJ-=~1WyLa(|lRUQ|Qr}x?I=qDjqtaY|usX1-<S(>uWjqNE# zS%K5s7qd^$UvfR8@v5JZCoA#Vglm)|?Il3B=a$Dv^g?$yTxiNjPjbzZu#ef@GCmXK ziMs^);Ova8O7q9~W)|?2KFe3JmvK>Zf^K%SCAc&7$~m?8f|wCAGh>=CS0GEpb)W9_ zL+_)$Hw-(uE3CzCdu!vV_oKOBG!7h7Lq%~1^Rn{{5c!`rd?C}+j|zC+;Io9WxB5bM z7Z2NxDBu*ALi9k}1{dD7HJHIqxM9U&jK@s{KNJo&lsH8CC^OJIZG&4Xii&s2q4E$) zz%}0r0ucj<->%GBq^WL#5|pff3tAIA2E9bhF<-S<^}o6PRTA?myn^|#31U9=L)~Cg zYKYAM9(N_%oA#nMmzhT^8JgZ2ftw$$n-Db9HEI|)&x+^1b@Fhc$RG-qru`(f&Ma|2 z&A{3I`JM{~ZfE4kti^9@XPqq4&A`dMZEaL%?MJ#fZN?b9eBXy~v%`n<R`Rl^C(iLb z8xI$--5OQiHMIA@C!Z_u-s%>y`BF4=+^km#q67CGUQ%+K<yUqMj&7F~D7R?OGQYmS z@`?Y*P7Y6Yu8MI8?|}L<EkftP+!wM(p}f!?C~!mLZs+4|>0EKOc2-zeRQko)FJ!Uq zAr1vQAVu4(hQw2kygxQpXR6p@J?5A@)jpq$dm$+Zcke|$gwa`;>Z?Ds4!DxKTi{g- zr5W$RrV~$%Hig`Kvq3^6DJ*U=xdy)l%MFO(3~@!U?NEcaTska;-85$La}YY1l)a^$ zmwEVk?p({jK205l%1@eP+r=y1EGi=88dROV;wd|TLn$|u5X5@XA(}yW9@YcE0=RqM zaN4CA1Y!8zdW=ZYQb~xm-}^0_o;aOc^3Xm;!lPbo_dJLi{Y(U&FCv;70Og(WM@nFl z>#nM+Nf7LMm`HM=OaMg}K{WVAQU41}L?i-DNG?Eo;Q-+5KL=fXKScAS<DaTYKmMux zGy;DLL{HQ=#=b1}9#~E%f{NSM=ueD6$w+DFgkH6zMG6$o0aS3qf>!zZ-}RbSy7&Mj zZ$Qn{LYIz%=2LK&;2R5+uMo3FK=}$us(?(u&r$%0XdnoR^8n2w%J&1v6AxWtCbXY& zC)W^Krwdp612<+*ZUf(a82k^mtL=?@z!zKvW#kzEpwq#8_-~<f+qXaj*x%oEpb2R4 zKE43tP@v-zz7C<;An~VV@wwn>zUzVc;H(}J@}VD##}Ri{67b?$-{p@{2(cI$5J+1C zv4qph@qNj^YNAnpy9D`$p;tREwV<nb=)3SW0MIUL7ZC(VO!V<9f_@5a5`Z=x&-XPU zL8`<uWh)Zmz{`Etu`^rTl7zEfSp`D>0@25nMPdDpw^xHcu?RE)KY^~X$Kr^&Iv9@T z$I8dR1Np{+EiXU-tz+kG(vRtJ^)<@hVWm2$2sB}32)76r@P7{i=`?~?+Mf>07c#Jt z<+~sYp9t`fkh>C|=n!;r1$?FZOm(mDstF$E>S{(pu}+YT6v_Un!x4q<r^Pv*2FHc~ z(urnSd=*(=-&amNQiAXX{NN2vLc5-VGb!|AMLUuPOLKr^*19kM)cFaDz-+e=%^g6N znvhBP<HdV`*T{l`MxUppF8nJAOey1^<j7_%*8y5nT4&gPiP~99LQx4|xwQsMf|UZI zPWhJhQG(Dm$U_=e#Q?7#`<Jw#!6OYtlTx^=L7K@fk%_Yd3lK*255U){k9ey7_|8rn z{a)E3gh<#MG?T|1JlC0)WlTCf?}oiYoC7AQqYZlw0J=O3*i=;vUoWj&)7A=c{=T?& zxz=OP^cwY5IJi^XP4)i(LqwZ$-n5V6Zl0}fbL3X2pOxUPK3jK18_p`(#iwm_;pzcb zMoMO$F~(CH)A&lEhDc8>^)je)*A7fX)E|Cd$V^8bzqg7xJuTSJrqjXAy6s|IQvR_T zk9oU6<LK*}D)_>Wmy)yUg?QL=(sJE<vYZWQ_a@6n>9C%c;ybwSe!-UP?#(t71rVCq zb66p8<94dvK_u#|0)OapIBUFEwHhCDjG;u!Cm(YiQ--^XJLl&`=>b)ek)>F<j5DSt zat9^ZKHWX+yB;0GD%{cMoAkhfzDs8gfe2hW`gTob%jU$poRC68LB~&cG3(}+hyp#R zQNl5$DOdkxVH>+~gGNiZn-G$Y!xWj?((c#vSk9YVNtmn6R@Gf@w<UKh?w)!PDtU5D zA`Yko?d-{Rvq{02)V8;uxt5oe&Us_@qfLJgQ`X}&U%xYB&yMWd2v0m>;+6Xt&;Cge z!!thig$x2UgKfrA)L*;)P>~t(@Y*Gj9UY@P6Do_d$1^DVI!8XuXd;;^QSSsXd}_Xl zn&GX+>P`o0xD+EyWDVonP8(X>#x)+T#86GqI=3Om$(PUJTXpwg8mHJ5>Icw|)PtUS zB#h6w>%$fJG+|@OGL>8<zAqKrYDMYQZ|!CFoSy@+)T9$QM^`Y9T5-7Tx@Qv1xLdz2 z$wG7gVIA41KMVxU9+Owo2pZXNXeVDPxidUWrc$aLd2FdYJn!PX1CY$=Ze!`y^+5|3 zSjSq@3@Fgdo?`T?zTm|)zN;?mldkYhv7?NZoEkgFEeF%;Q-y#>eEeIGm62hbSBhQx zrQd~k<vkg$S59tzbBl8FzK?u`;WO;@Iw$^71nuN(w=?s^^WJJE`6(7fDYf(yR<+^f zuP$7m*zkPA29J|_ma~flBU_>dtklq-={cGe=qU%>w;4^lu(VzZ<c&%>_5NKySH2L= z^9vdL{_;f|L<t?djmk#9B%i9G6d7;qd;aDD)hFfq1NORH4RpO^AW|fA?&KAUwg8p$ zf&uQ<R5M6V1cL+jly+~`TQsz^8Ddy>oLV;f=_Xr$C^f?l^1B8>XOdq|RETbe=jG?8 z)E`O|;+OB^Q&2b;YC9BCd|R5qM6<KgO;z=R9LHU<_eq0N^R>8W@vF-g*z2`;at9i3 zc=gs+lP#=AIXibZCMjzu#8mrEYfJ4mXX~Ao&X*}LjkSn1N9~tu8HM&dbK*w!O^y%s zD|xW7XFf8q%kb)>rQ4*UX*wY|IWBeR+DtlomQ6FX2v!Rt7U5ld1q?#ued>ICqdMNs z=9mf$8=P!50;_8#{;P<c&7YP$C}z0(`}?{vT+!q8P&WsWO({0AD$kQ%rYQwVNEO*V ziTr3B8fp;lp-ef#!82fb1JVp__n)t>!PDWZL=o;zdraJI`=IU_dQi&hn|Es4I?g5u zyo`vMX7@cqUjDp(-`&DDsGir|8xx!k;wv+qB$6{}ldvL>KhIC|e(FB|INln)vvrfb zq2!c(5EgLNoedlgG$4#nUTtc*Xe!(sj2gSUz89%fKM_gKTYcMHeEtH5A(B&o8SX0X zRqp1bMh3OIt;$)W6@ASqA5kC*S^zFCpTzD}gqK*AIN0}J-4&I1JmQ$v+0$@)dZm5E z@mes=kb4}wLAWj9$>MT-64V8FNP~lFpM8r(C;Ped!1?(Jt9FK6QwMEXeZph7o9nVZ zadTT~sR<7!4SANp(kaG`L60ywCfR-}bzUQMra*T~GDmfc^s$x?{FJ<zS^;DGqdY4M zTHzbs@7W}m_GUnm72k*eb>W^+<eq#khdr30gwF{2_}NNH_E+t4)_kRwwsmcTU1tM7 zMcTt{`G*iEdGs_6Qk_f4PaMyG>r#P`z5@c>_tC{kg-BYAIiAXKS>4tNnvD*KF68G{ z$$)#YD|%MeUx%xS$WU)m>3rZY)x2{H`?k0=XUAnc<-=tqtURV90#o0sRO-1XB)AJh z{~01MJ<O9ERCnF);DKi`EM09zZ>~X)Q8Lh<dv9qhsoi~*J9a5qnnC>t0gI5U*3Kl~ zzY=g#q<~en>5T&+Y2ZV~6PiZ{&03-Ja<xzcJ}6VGQ7BJio_y$`MkZymafyhrzQetz zsLn6GfKI+TdDIm4#B^u`NvM*qw&*qm$%kiJ{E@%Q0zl4d7l`VgNto$id_IV*HF2Ou z1=@!HJ7ea*GiLrfV+LfK|D7@Or%XfPzcXf5XUq^pnL!h+O#BzJp}t8#iA{%0d1->i z(UNXJpEN;_gJ!FT*qx5x8Vhu4FasVX(i63e2V62CL(oUdgjm4Eq>14nQ&JaKx^e&N zi}+W*hpu7uuDKJOOMrcs7)gGur1rQN{MpStgIOw1RbI9pyzC;O6gww$`@$zX{6_1q zZ942~h#9msP#0?RA%1G<ux^kVI7=weV+y{IakBR|;~vQ3eKM0G;((|T^B=oVbPgLf zDu^9gx~nF*|2hP9*C9H2Fdy8pJus=pI|%^Ire(EM<xk$>>ba}EuiyVYxF*}$h{R%b zK#$6Ne8S3`?D)JBM5Ss|z*_<{4A0~+_j1;ZKh<?^P`sT!-ucls+DdA}T}O#HIDSVQ zbP)p>2&i#&A!>d*EBfq}9-d#k$M3B7%C$Nf$YwGSOUxj(CVEI1-LO?tkVHwL;;o9{ z!)z)a?)2QD(Gl8inbgB=&)P{~L$2)~@fuvxV*Nr!i(v;!g@EI^_Uy9QwFmZ;LiK{i zIH8}eQ+UlJ22ntB-Zf9X3`y;944u@g<SDt!CjaOX%*~}SGXCYB{f-5Fq2lO4Dc*SZ z&=Wk>j3ZFuv-kBh2!PX|^Ykb<4a(p&pkfmagolqU(@&Z&7J#PVkNr^WPV#=q^eOYc zz^9U_J-O{+=C_S0+fs|WIqVVxC(i8hWuWkKqsjdEIMO{EVJEp0-;7B0DGd>(p4^C; zJm=SEusN-L^g(iio_?clQ%__xh1Z8Yl*{olG)idHye8)KvJ{vFw!_T5&0zsu^fo?8 zKiFXWQ6kw<?FuOdZt^>i%P}mCcT1f32oT5lh{MIYq*vJ(Xg@1^F|)B=Z9DvoqUa*S ztYR(4l)S7J*FHp!sG8rrs?f~}A=%l3F*ZqsZPLLe%!$d-ty(WT>N|9#8BRMY<ZdQM zCsjb(ittncQ^CEGzP7zS&L=WLMbR%}YGo}=x~x2-llv<Id$+d->c;Iobm<EjOOn*0 zx*6D)7q}FzoL$pKK|*=g`m6mlGLPIFeQ*dAn(hwfH)3ePUl^s-Pma%_+Sp5!O>Uo6 zt#aw@KC=Ibw^gO%(XxZO70GA4M)pO<)_JD{6poMixPhCf?p9bIbi4%ZJ=14a!s6ME zq?C>c?%oN1$`KzFQY974V%5WR`|k4LH`0%;EShxJ`ivj!qXrTysZ7PJa9LMAo-_z0 ztmIV*{R0n5wbrn-OUid&`|U2gSF^!m7GU<HQxBcfs0FDoGBv|XlEHMYbssA8p6!2R z?jlWgM~-8T!|#rqP?3WLW{&|nxR=%g&%~-SbRM+0)@eywjnzl)ye59W_LKGNoLGZ$ z4#Q2%7i0Il7oMHn6eK&Kgx#TC5H5((K+s+PBlu}*Z9+H1dhB!a&PTx44S^*ChBKvJ z?ZV`A0{3Ee5;CGTF428=?m<pgTkdm<_PJ&8felr=%u-X??p^YKSH1vi>7T#oKYtnH z2q{w3*48mpM&;!-B_)peCiL$7WB)yUpW6bedM-z`H)Yt6Q7vy=D990xHk1sBwQaU~ zs+@PMKs@xCO36On;o*02d>c=1qLbZ{7}-D0Fu@TL?<9aIppR@)a+N$(0)3A2%Uoj7 z8j^&y1@RT!&deBhrs+gywxP`9DjoJudA@_trrid1xM4&XzqhW~=R`|dOx=g>N`DsQ zM;B#l;VtKn-qukfGTW5by&@v8se@br-mdw=xO4~Tvbv3DFW%R1ncL*?NKQ*5W4ek# zW@fhE$B$R?FJ<m4eVuZpe8cu47CDwDI1(oqLF5@OvYnko6ydjaR#yw&L#1Yp_Z!C; zFAbFf-V|kDW@gaA!P?`Fl1-Q@kAg=kIvwq2**ms0wK9a*+;l}rIjDlX;44kYh}aFO z3A%w$pm@OkK~V2=t1IGBPoFB6L$$K9J{WgT?R@J!@t4skj_<2?vP1eHr<4>0CX0|6 zN#k<8Q}KbxaP>c!Ubf@ntZE>o2Pq+1IBCofy67D;wX7(&+P!<nwH!sZ4{-ZC85b58 z=oRkt?odAZGE|P^4H<dWt?jhVi0j?1z&Yag+qCzYJ%pyQH(?$5BinN2EVLw=j6Q^_ zxNIh8y6zD8k?k-TsfD>WrT-4XD9#>Zv$JpWlb|M-*zl;zkm4%FjKdaJKB(5#J~^85 z_`|7v_qEPn`ox#PX%DGJjJqt`V<zWOjpI%m@YT%cW6gRUwR-u3x=w=G6YxID_a7q4 z_L%Xup6mQHA(ou40=Q{0kT*VKkSKfwo+<|oc~s2QP46Igtp;}a6^Ex>#uLLatI4YV z7kdWwijl=l^YG8o7NA<1=j|~R#}~S(^Mr6uV=l*f>zq+=znP?U^v(q(F|qKy+rk+y z-aW^0oiskGeuxyY)f;=@|F#wT5m6w--iW7m>WF^FCSGSrEn#9$bFnB@n=`e%Y2kE4 zu*1tM@taN|>^59Jn%OD#aJHUga?=AFCB>aAzMSs@p6vIp6!Y*t#htieT+@#2p{b?m zvAkv~wZ2OmIC&38?^#+3vgD?GHQ7RMgzj!vxSTV!FcyM_sia=0%XG11(Us}hHO+o= zh{Ai<83Yv;93p4lSK&^A4pM&my05}$+T)8IYsGY;{gHRVFFOe>H}{*l=rUqldT9*b zb@80A7Crw~UlM6cmt}C>wU<h`3BQZ%lal^@UFfnXz6`nb3)ywZb{LrBP-NmK7k56B z*)=TYa^%yeGW*WTk8itBO24l%S(S|C*$Y3pXH`_&PjoO_XU{1*T|*RHN^m-4<I}_C zGBw$&<`eUI+9tPnUdt((EqIgvG40oKhm_^su=>8glT2Uf@_|fAXbIHP*8(`PfoT>L z9#uj0oUpP{9}8JNi7}hMf)R;y5U-;@XsITh+nmk-3tGPDD;u=955f;^ER3Egjes7} zLx_n}F7w)ebCZc>@C3ugpx%<S{&>1c+RpSQFNv}JH!KgD`myNn6ibf3^X@uw=vlcY z9i@nv(im~9CjnV1FD~9(LJ4B_UwMj`af6Olf+1W-VE$jowm9tq?^=dsJkhtKJ}no8 zk<N4M%^knVmv#^TA<14Mp`tyK{G*z7`JnWks=c>osBkj=QW?xxwS3FcrgTI8!I0K% zTaJy4Yr}{Ez^lH1q#XJ`eu6}jSD>f-?|>CaTMWzcAJu5jK3K7m%hJ<(=}A;35Za{t zkNlNr`Zis51&-T!cX(f_`O?XI&TR3@<lFIn2}05#y@rM~y7twKCmer1B$v47N!i`$ zKwTZ#eK@!VkG-^E%TxPfEA5tl1%*GXAS1rt#LK?}!`Aml69M>=nprV;u%-@x)S2|J z=v5-9TCg~ix`*t|nWy3Axj)1Ht1!<lWTkoL$8b^E$QldnaRrn+&<#%XvrwW`;VYut zACp8NGOf+^<r}stf_XPrWwn`VDRvomKJL+%3~dAn#+ntx1-S;zj&Yj*G_&|yk9nDh zfJtm)8aeofrp8eU;^vo+@yQ%s*-)j@M8AiksSHWitt|-L@3rS5{y)F2fX_d=o5w&< zTqSvu!g?KQsf?UdTQ<1M0b_MafQa>=P_4AE^11OEt&WM|zeMa`!8qIRY*XydvXfm8 z36b7}2JGZ_lIbn4uy$HH&ghWaX>EH>*hV{9-+Q!VuhvY2JQ7Wq;q`9<s{T5MeEl^) z-0}Hq!|acjdNs#m4xur}^MH%cZ`@UXA~d4WM%c(#a-xd2ipBM54;p-WH-c$;@<gN& zNyvOw+9`j0l+~<OUT*I9vYNldAK$ZK66V2iB(Zgr)THsjgHQMZqvQ&><rlD9jXgRk zLF>YR-TW~B&42T>5lX9TY=?t2<EY+!+DfAR#;Hed&YZ_C-qn}5Jq}vxh)g>>#yF|x zAGXOg{x2yC6nGoft~HWybagYYe!K@HZ^NoUv0{T*%TLaG>PlRY{hhP?n+L9on5#h& z6!nI+SkoKb0|v7$4t~gzllKX58yVH&+%B7RGc>$u$oj86V`Io_(c*WK{hxX2Z^acT z5nF_No;4H8aiG2`t9_oGYx4MH_47xD^=%nMMV!XShU3lASNVSC;QyXgkdF8!#u3Su z<J;Ssm5xR>Z*wRwWm72{ydtXh)ht2A`R{J!Zs0psr;3BY6yLo;9MkEV@x(MRT!^rh z<*QryzqOO_FJxH=d}E?(meQD*8RneR`=QIG%S_L6E5&98_4kbWm}#|<WK8}S>UBdN zB>wC?YqtHJ;tui9bl`4@>SO}Bz${yAV}*(!!kk4PG#n}@l(gyy!Sd&+nb>M-_Ok=` zHxNZEfw;6rbpOF#etHgE?6t>NIeAa&iK@9v`Hr?n#|kXS{)SPi{ZqjbES+!67qS*{ z#BjaN=35a`8DK3RwAnVZIF)jA4u&kwY%K+aLPMe;rllyQ_^U#p;R^ElUEBdjqEBG& ztK)M4qc+S#iMVpA56@vuPjCz1%F-V?n`Ns&`}{8OUn&=d)DU;0{@sXaUkI3q6h8PI zP@fMYEku{pfO<fJ5SMKt!_$@hyz^~8W72<G82)?f^lP-uNZh8tU}RNROk)fzbC({# zu-$%O*!4OLo50IsZ2fca6Zg050?@Qj0}u$#VPz|cfOey2A}IQ17#{%9vXZ{{)1ku^ z6hkBGa#A6hpn9IXGURHlh)WW~zE#ivsX#OgCzc3kAOSz6D?2G5(gk-pRJV;IO8w#0 z`l$qZLPnyb4F5W@>910!s+H8~AH%Vf0LNZJ&h?>|4g>1pfnl(jv@4tG2?FNC`#VRF zN+u*uR<+^RPWJC51YmaNTK~u;l4x`pq?ifpzFb*)hVHkf19x99`(NA5(5X!9T|maO z1Kl~qS3hw~MN6#dT>;xBg$h%T-={pN+S_7*<y}cHKmWT(b}MOf@dL%}Eu+&~z{^U% zeh*@1%H=<yA4`T`qMyHa8#0tf#9)LFW9E`(;Jx5RI$$rGckJ&zc-8fW;pjKh3>f<@ z#GmxSX%j%}1^v~_RDisgl?3jd)?%`HHEPrBGeMzl77o8EXI8mO43A@>;$O(@S(O;$ z8EiR|u8MU+lnLGVf8hcQzQq%g1|JeHp@%_8W#rcF3mME()8{%PuWDnpcf;(8>AoKM z#dd#(9$#wzueTF_BO<Tw5~?PeYYG~pc6JOKebWa5gcu4!3jm;6&JA(nUHQURM3z9w zZ?sBjr3XOCfS@Oo^aRh1?|`Hv72s5KsLP;qvn`eiR!1rguK0g`N>_gJAg@LV^htlt z`!pZ<28`mezEedv%N)<Fl53Y_y(O#K%>(s`o7x=5BJZ5Npewt{@3Dxa#!Zoti|_e# z3oIOuNHbgld|1M;-kVOzpcSEnz=vIvmI5r>w`W0TAs<t5=z&`C{k=Ga5?ziwAEi1A zd%2{f#8)T1ssBIrzB8=JbX^w(ML?v36anc<lP*#sB27d<r8kuh0@8b;D7^^?2ndlT zAWeD^2ptjWJ(N(T1`@y!N;2oeSu+E(XU*FC?0tTmYp);kBcsTd_j}9p-p^fp-9%N_ z{plX2Nf(F0ESx5Ko1hgP;fE%(APO&+T?NPm<-`P+sY$MOeA|MEcR@)0f@)!z$j0l( z4SQ{OUfPy3$ZuzaT~!9yJAkh6$UOi5Bhha$CpxjiED%fpz{j9Ku)rv1DOx3R`gZ?Q z**pu|Z^oA6RI%*cTj{TJJ-!&fb|#Vf)N7m(cI7DA=+sG##lKa;zh^xBTP6H&mGHk+ z!vBj@!UO+4|AY9^gP3B#BK#T{VBcTj!U5*z>LY`*mEP=VNXYw`4EW{Cj&ouii9sV{ zF)VG*w(t7I?|CKe6k~$1fF_+po*COUcbA9^2vgF#Utdlh@Bv91?k+t~E^-rGu~z{w zJS<RhHCT5v@%)AN<n1Lz*ylD#cM;($L0`{pWXVKnZd!isdUx1%)`xU8?2hbaI@E|w z(+^;V1XzQ+5a-J6y#OWC1%-K}@1q0VoH@R>Z};WpAJfIrSBA+h*<9TqCg*f7V!$*2 zKLGKQMVqx4xI@Nav-rgKes@0&iLaE0*E3o4Q*#^T9`0SznX8gFHhOm{<K|aVY6L$x zT`&01AIq4H?=vM0Z-n=T9;(mU->y^d6p|GIS2BpbQlt5jly*f|mHFGGR`Ils^jvAA zfvZU=TvuiSdJ(JFoG?-g3HMXahMRVrx8<KUX|fymLVMOfYAv$ko$sjj<6M2agc5{p z;<c%XJ7O$-s-^Ao!v<=^C<*NRoF<k7(Uh`m<wWjx6Ri`uki_AjCh+6Tv~Ot#d8U*s z^qutxOsL_CpA;?+HuH{+8p*7PmiV4(om<wOy>{bnF)s0A2MKd#bw!+;2FK|J3mX0x zuOF5o&9iKp4V4W;I}7`9PJq(u4*{+jHy!{rD&DYFBsS}z>2n+|K<8i-lS0tq@rk8Q z(Nd?d@06{jZO_s_6{zW{7=P00SY->T?MazM5ZSY`k60U-fbLe>chw*^+RoHat1gY} zsDbYEP&wzuZAk8bu7YNA5e)7?f`lpH@GXor7fzZJ4)Mge*sU?M#SW;odOTCrleur( zlwcZY{)%R+rkEA?{E#Bkj|F&jVSaj8_1PtlL2(eNi7l!wcqs|#=vMG`5}JI=<O|E` z4i>$4_*PaBDyKtu0@7ht0cr=b9GK4gxM)a*I~5=%;G*6BDeBiVXuf19*gs~@r0ZeH zWT6&Yft8MY&RIpEbTz~FqvG7j7gKQwm7gY!zLd6H6-clUy+K`&V@<@Or*2&GY>U&= zbvGf5uZZR*U>QR2lexX*448_z0`;lR5y1C1flm})i?LTdk=k>J=dcThGBeO1pMqLY znBQY}f!<uh%876dDNR0$t=@;;i*7d&lLiD!G5boWCB1qyaSMWM4IZ~wm7EZnGi@w? zdLzNtYr*x!bJ1`2i0KZ2#&(mTtbym;F9Z{(A*2%tDR`<#nmYqe0;O@tft2~@pwNbq z%%PbJ&9EHM+2z7n*f|^UB|rLs@(Fd$moX_`x?<4>-)pZbD8EzF)RjMJ`F+B?rm%A< zV1z`-(LyynkV%azCLn_&BH@V_!38zhQwBpT%MwEgVYBkAep*;>wDm0~8b5I~FoQG% zd42V22XhSid83&#{d2B1Qa-!+^>s@C$;O&wVf9bRY0ZB++p75NC~%jw>BXAKU#dpo zMuVc8L7$At9jCp%GtJbK@FqO*dpmwNh(n~Di25wiI(POnx$j|oSx4q4|H>!_?;+3U zRk=H-a!Ak6qI*q7(`h!+S9QQaPkNj_^{J5K&7ISpsgV%H(Zqyg_pJS(bXfqw>aQE@ z79)z{n?I8}_4fJ4k0f00PIW^he<3Il4mkv&L3q+YKv7Qr%52>3Ms)ZO2iDmaM2gP_ z1*i$e*i&ptw?t1ZQ)oOpxMO-N@iyd+xVDljtt%@fy7(2C-6nL-jL4qeXCq#q>}FyD zjQ~o#a!dSvt{WG1RJP_ot<Ux*AV4LPB}Q2{B|s<|m{!y>ZRjav6ELA%We&bchPEWJ z*4`HrUBFh?FA@?E$em58*dhE=sMit#ulyFa)&{U69u)-?<!GLCMtT5rcYo7QAL$(b z9r5*RvKqiJV+XXlMW29`Z+|4e1(5UK_0@l^M?Kz@JJO>bHO>K8)Z{xL1L?MBdvSQ= z>~h>G=hX4E+L~k5Kt~jDlHc{fzxwa|rl1CPp*hIj8Mb{S1#oo-OkIFjxS#ZCK+5*h z8w+q$5CMKO?7-nDGxtb-!nQ>Q&~gWljFHR;_kPou{yXC9$PVbQgIU)AEEZT9|Bm?j zOLL_EzaqW{|Cg5d&1NXA1NG0n<Mwk8C2uA%v~=>D<Gow_ow%UE358I*y-fVMwz+U- zAT4ya4Nq-Ai?G29#BS*~Ejs)lld%j80itq|-wAPW+;!~B8658%T~Nu4ptrhh181M` zPW~sDZ)cq%Sv+v6sLDk`uCW0;b~Z*xlPtu}-?fDmRGzGHl|P}+?}7C>>4af3|N0-L zl~QkrG%h%QzrFrG@*w!Bo}7?UO<K>=k3=Px1`>3~D=?RrX-j+Bnc+hBdYXqJ8uq@n z?6Fs9f3SXB^|E-xs89Fk97pZPIdRfMpvVm9TQih^HL{(-g6F$#6z+z{ZuH-i3b$8h z&Z@TDe7;K=bV>ekS^&&Y)@TlK9!t^U6C8eMnKxmxFBDH^Y-&37g)`{lXbo?TEFYtQ zDgpJ);ssaC3hv_u$gVdc)+=0H&7qF_{cX5Yu!9w|h2%k%n)}sX2+mgt5mFuU<py)B z$z8XRlELseDQ=o!IflD?68+I}M%CMA<19Zc4@^D1zvl(t8zg<7@F<*zU<v9o3vx7@ zu%CyuZ3b12%G35+qJ*1zFHRb-z@JtHUCzfQ^WS9-WpwGL%aCldj5s6Ebhq@h4n!Rg z(y|e3g3p7yb>UT^4jK)g=hvc<6S<bgYUFY4CF8e%M#vzg75mnQCpj@Mun6>LjPJ0l z%7Nc1s4Ow~>E=^E9y~XGsNz$k$<rOA*n=pt&wEJoUkLPQjTCgo1G%YgJU@$CjJN9a z)RxEKq9HSH5vS{HQN+zKN_h!epM>-|5Ul~Ay?Gmpw^wyQ3h7t8fA}h$yYQQf$P=&? z=lkNX^^o>t=(_cR1vXO~E3j$nFax7Dv#rEbi83ZE-3v2`HSGCD;ug<f>r{7vQT5R| zeB=7lLh%WHe;Lg{L8QYIRrVl}3eG4A(y;f>PUjL(+`)^0>@BK?01-4OoPH#xe6V{y z((zoTLQN`u>gv_!(p+f-*}*CApps48mg%^7tdmI@S|!-6n8tSefT!5f337I$LFb$O zRcjV&ds29j@GLCYQI-w0**s1C`O)BVvJf=qPU8YYc~umT^nRg7d~^5dFf8$0^dW5v z<^fi7F4erru&3;!o#Ds}Z+U30;YzZ_fVY%Kk9mTys1pwl-|EA7mzqoVi`@`BnH*}` zsA3S$>?exm4RQS7e5p=qlpaIDpGKfl#jvg>M?iF-8x}GB#rO;ES0U&h*NJ97Qf%-X zGz>vn&c^1|+sx2FH2lM6G1i}0%Vn27o!hIg#B0{?PFN|QSO4=z=Ku?@W0^u)@foA< zkE)5{G>AQjX%z(MfUKfJ!6N-r8AAfHQeZ*uTZ&4~vQ`(fh&&?~&dbLq>v=Gu&K9EW z=Xa64=)qPP8O$2Q*o#`4)qI|HAXG9pbwh3!p1Se<X5|2XCelM?>y-=p)=(Fxh|PSy z*#);vxaW)+^2IDPfJwL&NNMvkMWtfW_H)7^vpl8ogSX4vozG`#C#!|Vk5eS%apZwG zFZbvb0qfM*&g}dl@d49{VfV)8td+zYX?gjpHwLFn6&)WZ%LG+wUjH(0y)RLBSL%_2 z^k(v2B4!@=sUQusTox`FVli4hD&(igH}FHy^PaLt{dP}_`G-K}cj~F7_pV!hiN5MN zYLXK7N*6kk<@Q<L1C<lJ1A>3XlV<0x-Y{8bN(@5!-QE9|cy%J9wgk2AT<`?6*&+T~ z`FYg&r~1xj{le{_(0#ThNMHjmHgE2lX-kWt+h{TM>q6Nu$(GY`jo#V(OmXes8H>Lc zV>n9daS0%&Dc(jl28*fz;Y_2#vl!(!%wCS}%p!uNd%>i)V=rc&m%ndJ>D2k<|C z2{|6n7!d6U7woCA{D7FAT5&NPn>6Nnu*xxwVPxeq=Ms+ylO3RCIk&B3GwmFGGrYeH z?KH2~W)_jya26$nv@SYS9(C~Zp2zv>*7UngNumpPruc97f0vx#cyUh;cjeCWd!si! zgI(4kd1hq2QsJ_MS;p9eX{khmek4?@ivOT=RO?ETBy^TLq$3+b17xu21m(<8oLK=b zWR4YN2x2cgn?lopPHOcKx5WBb%qp{m_vKq#owDD^s`sFA&k1l*xc7hnyoA39duOQ` zRt61nCqKP`p?|(si+G(#ul)(GQCL_P*UsHB6|;C*WS69gNiS>BlJ>4imAp{Dyo6UV zp5({DLoWnS3KLhnLGuQdcUzfAX$=;U(AUNnetxHPnK{hFFv089vM87Cb-r(rI6iz2 zs2tIZfJ2%{<|%@u5U}SQcF7u@I<P@&=hQf5lCPB%i5!b8gfCw=LHJ-Z$*__ON%Isz z;A_~_0|gs4IK3H_Ku}V)!RpoK*`4n(j@+>G5O3z*8@K!JkT!6Np4J(HzLvl4$AldP z(5Wu$TK1t5);z!0dA9JD_u1&Y>pc9QpDA`_uR042TTMjFpT0>{^3<I};{LVVy$8FA zbK>wJeAW*Q&3pagUG>)bHDO<yn@NO<imaVkw3<j0V^v(Ae+(l5?#)&(zD>|f0V^Gv zA#%fy6D2&W7v8|5WToHfp559h5OcXHnO}dV`fb~?B^8?%|0r1KP_Y)551C1AxPsno z{=%b<pvFEifH!kkq+NOXfekKcZgXaWvYUE_ke&U-_9?TMuul+V2*|=L#PCCAp{=Mr zD+BsAJ*Ku!H(O~PWa(*RT{V46hBt}bX8g@{r#jNGuko~V6Nc$Ec96S}GHayB3>5C# zoD2;)<j%2!ON<2OO2+4}_zYK#Zxn2rYjrcidm<y|gC<3Sb!4><3=Yklo+HWtOR$Ek zMTxjiaE@_@GO_Syo9^CcO6gsgNelV72=rgP=;drXy8N7B#szQeY*y%dVFpzX)azR@ zqf9103Nmc(t(<>u<Y3EKW2NiR@h*A0c*1uM(ozg3#seG(G;bU9oco#+^-4mVtvwee zWwa|{@L@@UMXWR(m$H7;p=d<j`RnXM%H$94jSM*~`=!jV1tL(|y%V4odc;KuNH`#& zDwdTfc7om+EbsbUC|gmv^-*`ak$2<XU`bBu;v*?a1)}X6!L6DTym*o+bX*e?s2#%E ziDqt;zgA=O*2GjZH=!~})x1WeVh;BKJ~w5pqN67we^aK0>?`=&F9cOfVK8ghSm=8B z<^`$HA0~ut4{U1PM(?fVtYAD*DPtO4ygduOO9jqnHM;so9f8WD3TZv(6b8CfE*ya< z_kS}Ds_5f2D3k>`cqA)DJmID8AU);eLQipx@anqgT>=VTpH;0m2k`=>ep~=HrFEJO zWgYy3g3ha0t7@R!|0;29eSNJn%QeM|T{0yzr}oo`CDL>3=x;PY9X_sjQcaCdw_Iwg zZxvvbejKlunRz})_x?G~0CI>dsGQ=Ej#CkEo<8l>HOrHT+STiK*YIe*CX`Vhg+Iqp zmBt^MtWk1n_Plm!!o-VrX<}xjh!RAUcy9=#bhCwx+Sa8YAE2I(Kp#7oFIi5fQp1hY zcP7MzL{^MlGx^%L#5Keq^AIFI$_(RL*}s7o@p`^2Vn5JL{*sLUbFV~UGovd;-)f9f zwMH;vDPr5mr>ev0<vwq78+JU;t4t%hiNaARV?@^kvz1Bxu_W-!!kbTg96F*-XCya> z^d6uonr?tvp{KCHfY2<2(?EQa%C^eTq0y53Rc&PE<S9H?&!U_nf%3WHMHogLtK^RE zov%zi5b(1`b5F8Tpfonh3Z#NwZNyC5=@zp{N%qAz-I^t<`NB`FzPRqq_%UxVB4c8i z2M$v51H`pw+=nD^hHL7$R4|o2t8i826Bu0TgO<@Jka<~<2kF$qy02ra?@`w`UqMlN zCVDF9a#nKOdoUXXx$Ul}ucHJRZ<_SZrZj9s!}?j^La167^4YAy)gthNeK7!U55RIB zQ2EIXlpD!0@oj7>8e*-R_RrKR%I$PjJPTz)M#+6kU%aZuOIoyW1#b_y7J)(#O!8cZ znx#YXlH>X|$*mrzkg{@C`It!7o>jdBe&4c}ylFFg+1xIxEYvX@V>hnc64P*5zMG=y z`U5tHXorPDP+GloCg2`eDFQBD95}KqU@C^5M9XST-MnBpP2eFC*)bKqm@qT{EQ(+q zkpwHL#>US;0LIaSL6G$&rmi;l)bmj{B>#ckvXLQ~xJQVoap~KnVa`)wJR?t@WmZ5m zU}cHVkzgi25)|9Z%LB-r@KjI>{D~bsrmuitmCY&|dH+T(V}e?hSjk>eC|8_WnAxYa zS0li31+Ll=k`wpDLl13!Ay8s!)gs*CP}m!4wogzKq?D-W9YnlBkbs_6`#FEWZq9qQ z7v5NHCXOjOyflkEJ>@p8J#R@BzVgcRy2|CMi(RSJQ!mXNw9TNf5@=|httHwT6N0@m zFK4(5)UmI`+MQQxjrU(|I*a=_g;E=(coBY48)v$Gk#C0K`pjHSMXXbaFPp!~6nxCE z%imwzV+6&iCNNN~I<LfNW%cBAE=#Nz9d-~simAc@{vOtwENf6&S?*%2%Di4v;!vOZ zg;-3t^XypBJ@&HNw8pZ=?tl{GyS!@W7Wl8-`Ccwr4b(Q#_z_bON~Kl94&OV=*4$}I z20Fj8EBI8xD5QvW+)>EjT6cX$>@9?k#1$qw?(v3qxJ-FkFaQIWO09dN9YKUx$Bq^) zul!qy${i^ZZEg5;SC-cX!bz@NrC<8$y7`!+`YvG!l1HetZPj%<9hU~o%3w(188f(f z%MGX2%~Rzi6W#WL*~s|zGi`x8_kxVPJz}$-fBo7x8xvpML(F|}7d&Zp8fICaY!<n> zG%Twod&|ZTl*OUxzgRUD>#z}{z_@Pl?3=XGQ>H^O@O|9;bcW?m<AJS_RbEts0&1C_ zoi{L-D1SS-?0q0rNfeU-QgJ>tXT=l{o)b;u;%2ZDo_XLgNcmj|Djs2PnA)|R0M7_b zuc;2ZRmJoQ{b`)tKv9Xv;;AC@r8;H3JLMUvi>0(ia+=LhlmYY=Q&gsayaY-JHoJB< zz}CU(asvM^1k&^OzeZlvzq9x1>G|x&CsLF(k5Qwo(eO<S3fnuYNevzVQw|FqlA*eq z;gR)Ol(w<lb^H>oowUz3uY5;*X?Vieg<r7V_%IW^+KUwg*EpEZAOhtnf<{hZx)t>r z3~t+hzm-5aaf?&AU55>6V97!q9<vp3AB*$Ouz{jf5U0kL6P(8s^5Iw)hOo;oxX0g4 z8GrRRw9SZB-nDzCrKYCx%ySi7gztjTx(i2w$`H@-y!K#&pGSA^l*B+RC_49S9Y zSomzspU^(5>9E`VdI;d)0buYLw5+#9c$~i($nZ^>uNS*D;$|PIOI%uQ%Q~YZceqPc zqS`-UYfycCnIA)_JR)99xk7&fALvPrPsuZC^R#w%oKv-~N+s;za=dN<XgyVkSVjf) zuXiS-1;w8XXgmTffu;C69!%RHPCfpso$@i7(J}wbBV6<d_4I@O*ggUqRSzi^esw(m z-QQIjKtE&hKx<7f04NBmIq|7HZ?I22_jkj~8lWVFd|@*C)q(!VVDJcY{Y_VM<QXj& z74Vx6_^+Iu<EHONrtuQM)9(T{eW8DtdjhcNuNI6yi7(JSrbK+x(ofq;{^OSLx^X9+ zBisJ4eLq56kEP)O#H3#x&wu}C3H0P<p?hc9_BVe+Tz~h3A1T4Ib^Txf1X*GHmjjRd zae@C>PMBw=0m*NlAY<17pt;|K{KypX^&dmBNdvI#fMFQ5f$WGJ4L2_^Bmg%3Yk1pF zA8ji)psDaXgXO4c^#|U2^hS??!AgHv(*N;-Hjn3)`Qoi$2LSGkH2h0fPY7lju!sEV z&Im9Z8Gv&MIEwq)>{aG(`CcNY)i(IuEEM3Q!43oT@U_6Um7aWLv~ld?PgF5>SLFz| zwmce<pQD03!A*Ca$17(7j>~Ak+FQeo?#Ouc4_o&?g<c)KdJW*!5C4{e^{c`7pPgxe z=l$J5^T;~<IKTTZ4I|}YTM{6g7eH{7=+is?LAS!khx9V=^ol=G_ml3KKZoZSEBdb{ z3<!`4oNmD%!uCb--xnP>h1V^?Gyk+P2gc-RIO{sv*_ePJj?*}|;)`CH8iT^B=N+=& zimw*-mD|?5VQqVUHd&9x)~@$nMvW7h*L+jM^>X`7VtWs!ZzRu=me1n$EOstX#s-f+ zmlzr#+WaUDnBT^H)Z9lOdE2KKd4m@0;_!8Pz=~k{`N~fpeXU<-$I^)eqNDCmB3||} zu)K1Ab;10LW#F`TstLby^sSBt7_mk861M``G5>3ny&ss{gTgp(-lOpyl{?|i`5(+d zq39)IoPQHAn|_WjXugMH|KQ~>1h<ZwG57yLS^2YfyqSt#59l;x;SqWX7YMw5Wn<kw zEcX`86q^dL#zLA;7;qj<(m&ie3mF=5djH68FbDlIgsa;20~VgF0AS8i^$P*1EP@u& zO9nbX0@=v5O#B^~G}Y-2x$oFaycbYsAe`{D-VMOQO{0hGP5>_dz#>J;zSdu=JN9GI zQf+M8&As>o2&yP3OfDyujAb_k*lK32e<ARPVRa=#c^WQP9|-6c!0Zw|b{}~zeJ3Q$ z$@bLwN$%VL_?j5NWVt*7H=4l%4?gyj+Q%M)uCL$VK$A-+I#FIg{u7uTOEA^pSQ>fL z`!Zu#!uHI;I3wZp6*Gks59^iKPO*1|?E-9_1GM8`?|;d#2fXgaEqKqj8?ADPD*J_? z0ddH8ay*u83hHxWuXd0KB>zHy**TL@v5oIJcqsOCqS~65vB%#2_>V&I%DztfJ8{74 z10qu5(!!NK#Y%7fF&vr4{xW}hMj0@;9)I)a(Y6Z#C&r#Ga*k1AJ9CokOQ9}XoO9$@ z6~g!tRaC{)uXG3#$OH&SZnrYDI})N{!wOu@mI9$T%r6A9D#u1qPf<ywd`q#U_r%y7 z|Jx?yw7!~L^#8Rd%TOy05t8qs%NK@QPSuZH+FLk(AuS$wvJ){l6(INJ(8}~<FY?dx z=^^l|b)x?Ejby^T+5h$9UpL?y1#Y$JJp5*$_1+54%I=gPwd*~uW<cajmFGIA>%jxt zXV~86{uQ`pt03!S%b6w*Rd;pEF2TYs2N?r3`Ma=YHQhbcEBj(6SjB}Vdd%XXcb3qh z@4bL2k&O$lbM~FZ32Tjl+3dBi+jk4iDjH7C2gV>j7zjFQz1X@#*JM^bCh_C88A=Zd z|1Kx9e$P)tV8R1evh#sv>0r!Y1Xz3%vc7sdg=pegrxr-qz6yq-wfOuBnCFx6+qog6 zdCgW*5ZUdX><m8$HJy_Wc3TUmq0GRoySpE@@s!dIRhPQy8p`srZbOw0wBd4zr_1-- zr2U+Sj0>Ma#9@pe+vsRWxycUUTw>VfkL3X^2e+~2iLnk&zmMkSRr<5r*F1vZ7Mua? zFo0bD*a^#%7%73YSI4%Yw{J6f1Y2^LtfVmwHAO9H#a~!nsDBmNZ<N=xWla1gI_b6_ z2nlJ1jVoeYu~%G@gIhoZ%lk@)#wxku8s6ZS)kdE`B+n{r5Jv14r(aR0%YGk}KDl%| zjhEn*lLf)D6tEpIgy<REc)C4pWRMFF8Bo^mtonAJfXi(P{&|0?P6s&t{*iEW)m`pK z2D2gY@u@uP`3f`xyievIY*@at6=<W58{{9cOcV^O@}e)b?5j<u(I0AJx4uqs=!tC@ zq!N8Ze+-N)eWvHR8GpNqQnvWCYNUXd(2EzAy?3KB<?@t2M|Bck3I4m;3G6vCtP+KO z+$hgb;l*J;r5WLKc8O(`dyY<S6TYEYj!D+BJXZ1xBe38)vJYNL-_mFR@K#)pJ<s9B zfXsb`RWVxoHXnCdT(LUo$+aDx-dP-O+wgM*aZlC1y)?db@silU=h_oVO}aT7att?5 ztRT8?UZc&fhqq8sB{NR+D<e|1lJ%DIP=Ch()dmZObJ~rMPU$v%{luQvL_}p8qhx)w zVIR^1Ma4|mwcbKC`9QR!ksNmxw_s6uc5Th=UQ%oIw^UKrrxuC_8gRI`u*a|<fNg{{ zYQAA{qc@BvqD?qN!drHtP358ua+u1zDzb+7$>!sh&jkD%U-{LZSPj3eq1qEZaDz0- zxc9<6Td(<PqsTWB)3IM=^pV0DpS^W^AB3F>NnKE#nopD1BXqEIBh7J~g!UlLLz>t@ zb{h7EQKM})f`i@U<n#rq3jKDY7o$M#=d~BVT%v=EZ1C^<WF)s~@Ut(d%mc-BfD*np z);3u$sHjL{`G=9cvVEcM;C<D_`Z(ur(JUj|Ev#Y{y4Txj$=gx{{P}0C52*(+9$53j z32eZ;at%6iI5YH-CXE?ciiNxMnL;EInf``i<7-sIcya$YWWnb5$g5#ZD*nrSnE?92 z8v=}70l?mq!0B!`0j;z{z1f%UVk`5vN-C;-eQzzaP*uKe^Dr=Pl+o3W+3h7dBt!FR z0#Eu5JWgQ=Sg3X2&!b6gC3i#JFJ*58HLwmosaCR}sc&o5a^i~``xf0KqsI$fWeN)! ztr}Ny*@JT7zW{3N!v_cAha`PqI%8w~RXt3kvv;m>X6K^B)IyK}y+E$KvG=*G=lVi( zr>?Uxf(H<&J7&a(rlU@>PN;^B!A3*mPNdw_JDWjU1~KWb8_kmSWhK&10&j7gM6r-Z z%ULDV_g09n93rvm_;V#_CKCnb4lt-6`BbO0D{G?HRXlu|$@z4<X3=OzdhxJXFsL-R z1sVV%bcY4h(#IyIF^wL!6xQRqCQa;wT}m2}{8!ua-wr=KH%xc)>+^Bm_5G#8qdV9? z>`7Iha9`m%h@H29%RAzL^=k<s#CNCBjL2R>ZQlvAzXaYy`n<HO67=R;5NeGq4NEh& zf1O`d!xigl0_>G#kfzTm--kB9)P8aa=&0}2{%6~=d53DMCN&%Em%kqN<I3>jYqdF{ z;>FLQ=N%nE71p&?4r=Qb7V$+q>_!Ipc|<IqV(<CB?>&E&^ZxyW*5TM3<}zfSJe#fN ztb=-!2-aMos?R-Kt-z`Lz(%RQ4l{brJXTUQ{w(9gyv-xu8VT?>AIN&ydwVcF)*q5< zW_zP2!=0{tM7Uv)E-wDu{V^_)Gr9zhf;AI%8|GoVu%I-`#70xXepyauZ=rPO978To zDOVZQ?MX>f>&b;mCgmsZ(-;UVJSF6ZR|~?`^QA|it;^ZT%<Kf6GKlww{Mc_;26Xg8 ztna}cFQa+cvh_4XYaRr`8B1tn`t|;f$XalK0WH)AKdeghXp0<jj+JA;vQJhaZ}~w0 z*PxS-APZ~y`<T~DXv3A}3jTajAGQGsWcI-|{Aij47B|}qr@;8u4n*Z-+3;tyFn2$# zlDxoGW1UO|VZJGq-E>;%@l}?27N#xDaZNl)%KR9ZGpB<BZiw$P8A3{&9pV^ZTG?b; zy03@8MBbVy;v(VgUCeXleDvAj3^N8a(;H%mb^;3A)7T;pVV;WFLQX9YIfJ4?jyKTO z3U_%XAV29Jxf*3U3mH3OejjI#ZNPM>;wIs-UkCuA*EyhHiwOONpxh$4D9P7hKDWrc z{F73=Wz~(qA*n=GbE>MvSV{(4nHQaKWr}4Jy0C(gPKq}tO4I6YhDP0nOX%oOSxClm zt$%TdtZ5}l;dH?uLmiW`6Zwb5C)$3wQ*WN?d;v*56Ip$8A1KiTATq!&WmwlcF!ei! z9iC&0GAk|Lk8BGL*%T_y4sRK~J|xh+@WI=`s^SUxFf7^iqE6!T&qJa?PG?dufKhNj zBz_FcJy;+wFpiDlXTEa14(*c4fA15;^Q{iM`=T2v#GQeu)tw!j`^gy<`$M1k!(U@L zTR<hAE!|`@M3B;+Oe^6Xna@;0IWBQ>72U|?nyA@gviICv+jAP>+rT<woXmvg$+LPf z<LR6N#La@!$OfOTmus9Jkm2XMJ0K(A994jf?P*Q0k}ae59kn`{OhWtcBV146A~Xq7 zg;+O1vtjCk8%wd~I{oGLFfwDa4rj~~v@3Q{`#^qIQ%IU5meWx(os`+RtLUu1)LhQG zbI##iT%tH+JQ$h(!4`k1d@y6+hw8RK|CDXXy1`-y(m=Ma_dB~~&vtnpL3GV(#o}Tm z)LIU=9!_3g?j&9+MH<siCdT&Yl*HA#a@{e%ob7GYD4xU>Ri=#XU~6FuoffZ0>lV|e z0(}{9qN8}1Ft;&Z*xXE~Y}?qS19Pg>YMFLrh})sqds8o&mRhq{bz&b@Figtf)@PxQ z?O9@J1K{IC&dS-PtylRNx#A|{%-#ZkBQ$ao%!MCiWk+{oX7($hvTty*yq%#SRb<1J zg<J*G?XTz=78JdSi6n8&;hsD(g-YracpBXDlooXJ>6f?6Jp@zNqB1Yp*8)b7pe>>l z92U0oWaxhC_j2V@!)qt+5-0CgSAm<+)e|MapG)EYi>p;2PlLdup^{zaQdjIo<Hn?G zpIh&pjr<ewFh5HO1tYD0^>CN|whFiZCV%x%r(d4NCc&_>(AGOoBX5<`wo;eL?TOLn zl+Z0_CVFF}4%hbbjTnu4`+ONDv7fC?jxFpzf7zpzme0bk1~?cs-+a|(kBKg&Wbl1D zUg!GGS{lc1eeCMQ=d{NJT<!sik1~+tpw{a^-<st*{m-vEK*bZI`>$>@JrDqsvWX@= zWFIa^Qgkp>R#w%<?&Z;55&zCdM!TIo2K1tcE@aKjurTdJD&8NeFr!e(ZGM_FxG_R9 zn+AWt(a92MD5=<&Z^5$9beMt7gyaCo4<-y-<5`$7Ik9YdX{2y{;GXW4@(G;)(VFGk zd(Qa&;xdRu_mgd1+*`Ld^&YQRb`$BH%UGaSgsRwkGlJoA1cViC%AIXv3poZ~9pxwr z4*%&jdkGl6wSRpn`d6cH{H9MAnXXnGE=6BrSn55n@cENW70b?1LHhAefaH~fXr(^g zA<h4}d+wj-#?OT?dl$HYA99iU<(rlJM?`*}uulAb!8KwDl>Kz?I3#i92$}sYPN>LT zvY&)A?Y}qGZT{lIX>Pw|kNoiIbJ(ysg7uCJeGfV+bF}aX!^p%d04fg?08r{1DSERh zkwJ6f&hjS^<LIlc|I^9)(DWKQF{qAkb^=C+t;Ng9sF!FBYVzEZqNLM#Nbm9FCXi_$ zcLvlfFNoTWs*^UKLy%4tV&e0ZEvr&>5}%#dd7*nMKK@Pq=~G0Mw%b1zZw+9o|2ZC! z_#a^ba~o0nxz=#iLIc@xZ_h`bj?&9Ftbal^)_8?r{O6xA=z!QRYxw)Z+`j=7=%D}c z-~PXV97w(cO+!@7*{wowKZZkc(;>|)X%x8A@9T~pyA}d?me`};5=cw%Tz-luL~}2( z8FsYo!Nv6gt;aNH4Hg|a!??K|JspYJFQ{Es;8g3ieBz-|`ShQD2Q#P-Zy4+;6n=I1 zP;Z96P^!_CK50@Pmw9S~iiDB+EpHM^ne1Z+qjclUd>Wb|8s-2RALIEvKU#){1ZBqD z_ipYG=dYeWtDhP4onwk_;eJZUMXs5I6^ln}`KCQnKr-MzSwAsY1wj1+W%Q%5pVuVc zh~%;gSRJ`_zOqXDxhXH_%jb$$*u3>w&d>PxE2fq^E3bB&i2Z54w~uCx_M|CI>gKa0 zvGJ|n^E~g)T7Pt60feV5QqT`L0DkKX<ZTvGs@b$0-)B!Q8vqK!{XaOeUh*`E9|A{K z|6ZxfM&pumufm`lKk#tJ@cu&0Ngp9-p5)N+6Z9m^2w-Jl|NZTc?C1P?z43E?2{=qo z$il>moZl_&6i0(>e<28m&=l6$&w^fnPs74*kH~6sk-I|dy1%!Pe``PYMqcdVWYLD+ zQgZ|)2{E$wkN(5f?i~F`C&)}XlPt}p{xLfyr7Z7dDMJ-uHk7pHypbtpFugm(L5XYE zLqgVjb`#!(u_-fS9rIdUYxkl1oHH?iTddW8NlBbS-Wprl`t2ry_QeZX<eJ%Ipd4Lv zMt3zKP%*ajBOarbv1AU)omu{Unh^olze^MIA+(1ze4|5mWY}oDoODndA3kD|Q{Q0X z@?FlmW^#gqVC=9Ns3}L?V8gXlc{UZ0#fZ3VL<~k0{w10j>i&QudN=Y;Y^-Ce%s}47 zoJ^4EKOg^IxHo6%iE4%}vRJJ+g+OSoLjQ2AM&*fXwR!GJ+E1(!Ao>G{*O6zw;Zdb@ z%l_ucnRfiw03bBTb|KjOPjmX@U*S6{)Bou%3Lu`WgPmtilr#LyH{;BhT!5X;5F~of zWK7bNWrwx?Xx<(5Pe{!6*N&QAN+9RuT5wjyM~Z*4IDZ9k^G^WWf7;;zuvOtd@$}C! zG$43t>S>)~xP0r`DP&pKHidM%D|DdJ@7SUL2J&SHINLxwwm?+gJ52vmt`pztKZ4i5 ziv9aK?ynEGQv2_%WYvYbpc_KkW2qBCH=>f(Oom<YJV39>?jLyvhWDWj<+nR+c#m(r z$11$vAo{<5!oN6M|HZ*j;BZ>Q&o)Hxa)nJ*=S$8{PdBBP<&L(q6P+(ZX!VW>Nc+EA z=Kj_2JQ#93v~|jvGPcFg>v?J`ayB_y*|ZLPj18@e5c=LY>BZRXUhx$>-{xU@2IWyU ze@V#zx#N3f^AbY><cd1cC2#Y<OF`aqz?SuDN3UicN({cb%Ell*KNqfXLr_MmipCZm z_-a7RKY0#re8Z8zQ8wT@3sst{>G<)%-R@nlnMpNjG9@pU=TKy=m^)`RT5<6U{J#G! zhgntGApL-|#IMKce#qJD+KLxg-`Tj*<@&d4h+o)tA@b>eZ4srQb#ro8;QF<rtj#^c zJmI2sZM2dbqGkjXrglrM#jLiF^K~Qz*fsq#$ntP=se}uI;sv*qD0$Okl^+sUx|$_} zNE?{#5f!&<gWJs_4dbUq-Xw>V42oBC**NUyy=EsCX}b96rPU<_cgj^yd$p<QFU^JO z^7^a21BLu;(M2U1)V~ni9=dow#@>sEonn_vcj?$%)cba0X<Y_IqXqP}LdgSxj0Go} zw?*p`WWg~k{v&N&-|E=zvN?}b14;n^l7mqCQJ~|Damfu_tDAEoITQZH%EMM%J^e&# zw;jJ3gxEl@TRn*gR1}SG-R3EZz2MFBW*=((Ps;_<D+elmkTNXQ>}Te1U#fij+M(XF zDNpo2RwWQ82?Q!Qgw`kzFD5;|xDb7M7-DAzr<whzl<#MPy)U?9&EK%5nH12>_F<RY z^`euK%d0d|K0P~(Vyb@Ic-h9WgYQH`iEI|y3L`x<K*bkF)UiDqG%%)*oPSM}JZ;gA zwY+(6)Hv!@z&T59Ro;d?*UERf!*)eUCwoBVHq`d>>LEvGv18m>l}F>#<I8fcN6Vf8 zSoXg~BK~?9=Nf4r--3@l6VUSm4ui{MdpVd0Y|WhJO9WX31&wlo^D4u=T5z(0HOK0V zB%AF;c|-ormrWBdN9tr|gx6siW>{)OJCu6IUX#Y_Wt(&4y*YnfTZ>q}jo`Oo1f0}# zk9s<mCRKaRI0KBY?t2c3I#|d|i19~bHBVQ*AKt7NpIircOS{liaI)cqf~7rqYU#Pz z0Esa1OLUY3@BIn#m&zZgyT&Ws%fCO)7K>nQAYWrEqc6-lw8JXOEMvNSDy!&iW#c+% zzL0%{iY@ti-=cH#c*^o<OA;S-D2r~WK$A5w@kW+U*o(i^FAH0^9J9^*sU>~><MpfH z`0Zlk-p7{5C?S4^rnvhf>oW?7U0Z?H=$ypp_IgE(T3K2L#vNrW#W*>VNOS%d0vF%B zEX_mrKq;Ayr1v?jhDB8HQ8^6@pkFo1?m=aU%Ulm5-E>HiN(1gU5@pAhJ?)9mbUNP3 zaP#!Pzup|3p8v(lsKCKP!w;^4$t~28#eUL$n>tawdc*qX<>q*&{0;8M-`{PH8niP1 z14rYDJxPC>4LG<T-s<7k4R=eq8`acsV11pnrfBs<%==G_Lvu*??<>atk*b33XPa^1 zF&%Jle|=ws887p0>JfW4(tB(x(mqK7xbJII$^HM}wYg~cO(-6{HgG@vR8;H6RJ+SR z-rKR9&)NrdBOytGgnw7)=l%p^j(6>kysr@YCZ6qxCs9*xSJl7oMKqp8fTkK3+}F&s zNB>Mm_yn!tb!@H3LpJ<#SjO_tuuOpyMQ3p&$0=*_e8nWmq)RXTF+I;jMkS7#$Yy&4 z6aJP*5v_(tctb5t?L-gk&xnC8c(9Ys{FmYXr6Rfij1SgtzFB}>H*A5>^+z-SrwJah zVe;`er9k?Cu=)v*uq?64TLN^f4r$friz9%B3wM7V8>$&u;OBrAHhkIQqch}CYNY?Y z11fu0+TiT+oGzOvqh}GLlD8Gmnj<R5I%IlryE_GfdC`(D(dPFm>{B50Z6Cjtnc2PY zq_5T(Q(a6fexp4^sV;wElNG?qvjM>bq?~uX*FU$iTlmf>_Yg}O?b9Lg_BYTBW!N2D z_V5pNIhs55BNYr(hGRxu?lNho+ejH)z+ohXLbK<#e$W;5h5?rvwsOb%1699MFOAV< zp|S?E`FrJ;?6d;JT*XOPVvK3EPM4RcrlSZ%`Ck(>vbl`TAr7fxeG63@A#@T+L1UYK zYWD2fySj>mpXX8TIDSlQM)~~|Rp&8)F!<&1PfdQ$JiY-S-2Ik>_lE!~3rxKAD>F_c z@Q4HESA3v-=#I@s(J1#H>da^cRw1a}tbC)9m_aAmltNLyR`A2{(@nB*{2MOc7@j@> zy?x#o{gEF%ItMwVTWUd2{76C4Q@oPr6Em1pe|n)x)MgRR!=Kuq({+CSI;TW7pR^oZ z>-aDhkn9g12zrG-3_ED!pQAVjG?LrIJ@=h!6@=E2%B9}p!56zYSbm&_so?1j@1PLv zY{AJ4t%!4EF`3w)Arm;+m%7ka%dpu&ULra<65?DgO8c!*%xx?T6^_|M2i1F{Rc6eB zE{}+l=`W?|#5N<esy^FhUDjSmo>VP;E>@9tbDnpxonrk=WMo33rPGI%1hk={;qBK= zPNxN&m1rMb<=_B(2Hq185L`H88=_`lq<y;rNHUZL=x<u5jQ<qK-r{#>bO%c2#i@h7 z@cCI~B|TNv;Mb|s1>udC)M=VubaI{Q1PD_0LrH!D+r4n%d8<^E;_Q$1+Pf}mdJ~0i zzRFA8HJnL|K5x^BUH4HnX9E444=(s!9;#C*GQ;<Qr4jD3+mk}^+#TPxr|#&Rm{R-9 zBt&X@2;=(fn=|Ewag`0Am+Z-1H!Bxjd|j!%t1&2>SN%4v?z=L64t=1KZsVgDRBkU! zvFy=lo3qlV;^07JPR0V{?GU>*E~Kd~Z0iWSNUpj(!2P)Ai7JdV<jW|Lxdn@2n@|LT zbsAXlBdjv0cgZ?ENZ(c|pAVt5T4gC+CZ--~lSYBW-A!>{n-})N^fpiPAFzHb(;qkP zB_D39yWjm(El5SlI^<ImU#q3d_3Q2Sb`t(6HKLKd;#itl4b4U<kvuDw)6gV2I=GHM zV@1#Y9kRN#G>Gx63d;>9q%6Q9W&JI({%D;8#&911)>|I1(yyvbi-MuK`#)K+zmpwL zdMwoJ0>J7A;e9j&ck!wwl~+p3G}S=%sH}FL;fkRj8+dL*C+M1{LIS6NFJGrzpsjq` ztDKq|Gdb`um<K`%?!}7?UG|Ti94D6+X#zRL2&S;zj)|Vtd4K`9q?g5bN_<AxXI2T- zU<Z`QIH_?=U@zK#dapxb0b1n&v-CcY8#7(e6EQKcXX=42^pXWf*(5VA>FN@n&thi} z(+>ZxCz^j>zUQ8B`qt7R&G$A(u!vn^N%6+IpTvzapDu~v2Kjf6Y=PkR(eF}+G~q2z z6IjL3etBEn5(z1U2d$+V*8tXDjNVGOj`b$hOWmvhAZi}?Kh#dY(sm7|#j$}i(ZPl; zcGFTLh2p-p7qc8(c}C)cxs+cDUnY#DQ#)O=CLCf)ijAHnOSNv?Z!0RXW$9PpoTxOE zn$CF|(s+Yf`qXnSS0%2!L8&(hANSL8l)xH?`dBF1w;58NP&Qi#=@`Xd802wJRIJ{j zpTDDOK`^n0qAG75vq;b?(r)5bC1x|n_W))_5)`2h1zx=EeMaNhu9oxkJBHWn)h9fz ztLM9roMDcbiN75GX13A54X!5^#37n^Wd}*Ct>yR+KR^Ju-GYpML+mpiITHfK=ofj- z{k;?*#$MvLt*b724%R^t3_9z!yy@qVyQjxMY6x$h@>}bAe&bC9RUoqd>j$r?H2%3r zbv&s|4)+8(O`|7+q>XpN(tUldiH%SvQD9cRNWMeu%h*$YT}BQ1!QIrz$SCx3vX^<R zx`!}XZII1m-u*ACUt_Z(qFTeY%mSdyvRBYu&4qKC<N}q0M(PV@`jh58m2V@S-$8w8 zdE?x29(9i0mrh;7rkj(S`zV_9^1E#S4T1icLF``x$dkuE7(QG%vU>c-5l6h8GlyX4 zwnh`qNvunYdIhXKteB=ys(~38Lw92sAxt=HTtc~lxY@X8%d`(N7H_br3g}MlN5&u* zo1yJ6W``XUz4mEYrVHUzP_2;)MJGq-bnM*yQ@o!TJLQ5jzz1s-fL{3(lx(M)OlMe7 zyjw=4ytE|9zBBd|d*!(#=8(yC2Cnn58Xi@)O5SOv<fivi<O1@iO(w<+HT^yC#`NgA z(wZeZc7cv4uhR{VgCP6j7qy$=JDX>0nCg3SARkRsED0yZH5a@GKIxp9Vp!~4e14Uf z3rJNC84(}*k;=2HngqYTS(shvdDl@ViIlqL%NOE^QDzNCAMNDC<_+)7X3YqB3heOg z8k8D)ZOT7kU`w4*cY}>bLBOu~HQ}|ZUsn}~Ww%bv)!(aT3o^UlCxgmt@__`%ioP<` zPe<_2cULF%SR~&fI5Pz!xRyz9%H+p|(Z0*wUu&uWrf`e`uzd%?7J&2n2l@y$1E{|( zW?K}HeeAJmb%M6cvUj{oQ?q>(c5&q2{gW+z2G~1}v!d$&K>t7CT9TJ*X1L<Pa3ghX z&ja(iQ?>^ZbbY9dt&z|m;&2U@T~UlR0@0hzTHFKBbP6{?#Wtp`e818ug{Kxlk{v`m z*u-2={cDe6Yg}+$FV@<D!kf##SbKaOW*fKvy@4Ag6`JMr0$6-_iB$k0q(n!e`q_K6 zM!y-_^zEP9c)?lPE@B43fANt`7G6irta&FsO{CwI3Z8N-vPz=Bq1KFgRmW!E?|t0% z)ZFgdzXve>FU$Za_wStgQAMDxfGk{utknT)v(WqxQv0uLY`_Oa`VTXez2XBOY}jrq zf>M?O<<b5m=FXG4B)!+84BN~$WEA?tEYY_7JDGSZfOzo;5FTeLffWy(hCvm-5I9Ck zGG2IGilzuE7?q0$f9(Yb7@zg->eWGGI>W(>pUW_8$^+s!Le<i~^0&IvUH7WOMy9!E zxU_O_Ywu|BGjvq?fYWCnlw+%3N)0r#r@5Q2e|`H+__H*osI<WimoMw@02GWfPNBlA zH>-T=%WN>}@5D6xK1lL!#5l#_360Tu*0<r>4p0C~Y?5*knx5zwIo}Fz-M{;#K0)ow zKnd$Ql`DR^co2>i!;|dIbVZWQDre7iReuGAN^m^l@;@-*-in89uDk)$?WUTTg(f|I z@Gu_WJOlmPf37JAGh>oU__l2GTh*&Xw;hbUd~j=p?Nprz?FzLWE61?Zhonc}Zuz~P zk{x3Yc^%Wp{@L$+bW(iQL@AGpw(+-pd0@MQd=bV^0Hpl%<iqfOFbjT^t^7yTAvgR( zg<w#mmpVN4)`k%?Bh3hzk(<i{7GjZESlwjuA~5U$pmJDa>Lon8P4c(y9Q_*mlvHZG z)s~LYnGZoq5#`<o2+mwK--wY_Xzjdf3=p7{u?|LPo3Z0N&B{%B+YuM0mhpU4Ibq@w ziY{or+jUi7`dO`K1s5G+^cIQoE|OP(8w$9RJ**${<gnTV(lz?s#AeS>1lHQwrOA#I z?!2}9638X6eOE6x>|%>5_Djz&yY)N0UJrl^tGB)<ff&yka=*ygBfBTQch~Djv!frR zQA|Ur{&lu4l}DU>OGZufIe;tMAlsjbrg&MQ?qH<(CZ1+Oeul-IZ$3zckx}<lkT>1n zP(tbt6(Gh(%nS$UqA`VFIY0Ly$SftUS|x;6=5fWSEXe1ZZ}a7HQSim{{6Fm5r^Wl^ zS-U;wHfhzlm@K293~=r!-nZ>MHTo~<ZW`HGGe=!#l-Scd@VE77nFFHMr$irCm!QwS zbQ0I2y5_ZLV-e%YDWrHMqFsSFy(o91{(`LeuK02<;Ia^zCKTKVBk|LlOEOj-@iA$9 z9v3nBt>GaVz(k540!!>g0{4?G)J_$G&b^l^{u`5SSl`A@@|Fz-Y)c!jh{?odKf=bL z4w@Ry^cDFHN<u9^dIjB<^{;LfaY(}(C3qrZQ-@w)a@I9aAD3nk%{n6$UUzR4hb@{Y zKXeX`>eqAlc<l$=P*eN+qphogUBoWl^@Z+TrSfeVVeLb*O0zf~%c@}s85wD#Gxz7_ zuD@OC6C>2W^u7C6EsPni3XrQP($&+JbTf666~t7ZFUX>M<U^@Kqz9VIQ7wNdP(Vek zpOh3uaH@$bu8(vi`bfTWgMV9Q&IvhRpgw0S%Zrjy2sXIFe=BiUTm6~iluwGijlsoY zHhwYcmeiLpLGy#BeqJb{^rv89EUnUq$?I%#kt6XgDy}s545ipztE@rOmu_M1OHT_W zdw_Ivi=-M^<xst?y`=isu4X-u?O^en_({o5n!J`ajs;{4a}cBa`_~F`@mBqP$#%<p z84W(z@Pqq@bXdz=^^CRs<(i=x8Ozea4EvfVkB2QRaPVsz1+(>eS<}sL=IOk}mJOHc zgn^Ad9#FfK0j5rMo3ol7y+I(xz*f_9L*J?@ZMf3fzw-nva&nO$FbCg#O?LSa3BgPZ z^!9NL&Oo;UqU#5BY@7xl+|kh&E-1=QAhQq2j-?6JzGU!v{~9rnA;!`5P)AVx!C<*P z$qy6LRc3zvhoYL!&KzyDs`Um_Av%OZ$=K~yL{)Snlwwuz@e_Du9aUvTdx}lkP0k{w zIejw!hm^k5S8}ULX!0%|-aWV#wpAPmVFI)ISqyRy)sg4<rz0!F^QGUkcsd&8Br&f0 ziYDArAc(ynryEpQb4M*d6Uw$F!FE6#jbpNZUo4J}j*{g@?c<%Ou)Pnf2Hdc2sPko& zWKwTcRr^kFNfXRc(#r+9o6@3nU(Q1=jCmEeFx=WzAIjJ+%pvWp7ghLL4QQd+15Od? z3>o>5NE~UF^aA}9a9Q{ZhvLH*Ue3w6TMUn$DnGbrQCEG-`&8?lE@t!8qOW7p?N_Ot z9=&;^v(W3F(V$(4D{ml_Xf|4{O~}kFgT6tmB=Y4T0GjP2+Dy^wLHjfndL$KBID>rB zt6xrZHnzty(VT7e*#&Lb_#=vn3xbY(LlF)1?sUD_6ud${K!TV(l2N(+>9dJ&B%R=& zC2v6f>rFJ!SW<)RNEQXb1R-`HIK@0~3kBthDFaHU7egN}mog=|I-w*p^>t9Sl+Qa> zNt>S5L5ulaT#&ZWgJ^L>Q?tBy!;i_|tygvEu-n<-erQEiuph7+k!)guQs&vnZ)yP^ z6_SZm6C3PjYK#=l4A*eY?|w~H=HG$LfZ9#?=cAuLMh6Dgl+=V-m%+*eVP9$^b>8wn za#YsSeej~GX@M#9f&G2kIZi3dn)MxRC57sr;=AI*NKGK37}!`c$${^B@?)WCT0jUO z%6Wa{7YM{#&ZHae)IypCITZr|mr=VlXYWjq53`M>3k9y64??;Lvy!>E4zdEB$+9~Y zznB`GukJ5qfhVGPUwi>LL!tp7{*`MJsr+m`jCYkYoNc5Yfw8SNf{sTwQD6RICJJho zS$U1mH+hJO&TEHFb1(Z_nk6I77BkH0Az|~yEMriyd;NmE6=9Z(jOmnPJQP_kxSsjG zNZyTx56*X2HB+2c&$1aM#8bm4Z)5iTY+Sj^HMTn4T5`ukIe)}mB;tPzGDp0WVk2o_ z6x^sG32$ZPvDw^=X=gnb04-~r+T|#*B7VKm1uuz;d0Nxp6Grx-V9ym(J_IR0^1TV# zC-0oHwsF(yPg7n?Rr(f;zWEYWJh(||Xv?sFA=7e>C`v=r*C4Y_P1)Su;}#cr+JtNJ zVKA<;7}^3WZx1eh_X|PB3S4Ik$6oXH7lP~E{^<u+henlHe^kJl(x-P2du%=1y>e3U zW4l%PVX1=*p0RWIE3{ETAGK@4l%M5htV;EvKv>>0Q`<(^{T5f|bJ+vmBczm)6<i8b zK3^5u+*R_=nSs$@TTHQlf2CT(lQc%u){3N$i})$ot{P-_TUV%L&?Bjg*J_tUqFfiv zN>o}54o{(;j6N935V4cL@^-b9|GcPC?W@WM>*lQ1Rd1F2eIIBSS=k4_d^q=3?}R+A z_?5gQew0b2sqhM51Fw2{L{`69Ifk2ey^?gJ?e2l9b<B%1=0wjtMF>xQB&invTs$<8 zt=cjjv+GZ{C!CG|Ps1q1J<yAlg*-9Y;)0%JCd~Zj;B;qpxdd5pDc<DlEf+kgy8R0e zt{mP+tF-mLO2G4=1Fj4qHys7IYE)a*JuaVXeiU{(PX<%j$KdkrRNw7%OW&A#wJ8<J z@<O;;Au>Nd6kR@BtPGhnXmjxpa7$UH+wU-YjX-G;`%BGhzN*L|QQa|e5t(fAmU#`@ zOgB@-?qYVZ8ktxvJJ!?QbqYnAfzg`D)4sQ>1Vl}}S+8XY?>?~-@cP1bZ9v;mq$J{M zJ00)0-m|#+Iz8ukwvYx|ENB+7lakL~s(#*@ySPG9bp~MCmzO+mfg9rFP)@;ub!@YO z49y-E;x{Cr4v!+vN|AYu$RQq7@vfPLq@6-jgdbi;Qz+na8hDq*?2=ha3XS>A)VE$b zbEFP5Cv|Q;EO|xs>Fw9NGorB1lDm{96CLhP*962kI+^pnmR|e9zDvXsrb8F2*dlLx z#|hHcs=3FM1t27J0PGwDXinqs%7Emz4YKpNm>D~GaNEm%mV7ukSa97@R&B1^_~V$3 z2k~xiePyQVm^ssDzx+Te^L|yLK=BDRj~m9o9_vr0<R_PhAN+-Y(T{>^sDay$acI3f zp4FnN)_ra&+-pCM=gT+);lUQSzXl31Clw@r6|3Cao<^0l_^EFCvz4ZhO?Cv*Yr**4 zjkIbmssIuqrr@&`w07<Hx`33)u&WxUYc_#~Xh#I-|FHL7QBAe|z9<M%RHR8SL1{{r z-U0!UCIX_;s~`d*T_8Y65b0GwKtYH|lP<l3^d=oaI)o-Y0Su9p_e{Sv);jO|oxRuE z7iWxfb1o+&BQwu4^ZeVd{Q5;riul8;6$FxdprY8N2MBflVj4&OlW7dKBB^^J+5jr( z^J7pPvbMhq`I^nO09tbHR&Fw`N6aeH7H+!hks!3CyFRc%?I++v&OQ49CPJ)Iqrv3^ ztZ;YjZO!&{ZQaOnny_1(Is){{3MqoZkiH?AujP(x10=iR)bfj>@*xQT{Zc#kPpj`= zJ`Mkvhxkqanfre+CjY2J{)>eApKMJ%pl{`cm|X;&v;1jW{cV&1P*5Yp6aV#<SWbXo z{hJ*e2oRXGfc?r~IrW3BqlHP@^t^~4#)wm=UU&L1yX&eGr+(Lr%>j#szmX#UG(s)` z_dvC<_h%&l9`E=6l#`VCYv%u-A^dN>H2$-i`k!YAzd?ZZNG8tPx01k)4(J)a8K1C5 z=V7Iil1H?usN#HmT`erw<<Tyxfdq#Cn71tglJlurT&f$as0YDN>p~FTjO4ZdE~H)m z-B9f~dOdONd)2a9)~iaOgX!53gQRYyz^m*9vGskH(@)^)D;9d~(QNQ($yz4}14iGc ztkz_DClKLeb9|*bo?;Y|fef|1fB_wlV<bC4WRQkLWd3eY&*WW+qTagqjR~B`E{=}1 zi~4jWB{#Qp9@_=&=CRxqmI&9ILr$;}n2f%%+0qeH`DQCWNe!>_1U#5=T)e&Fticiw zL%hr~_4`Gi6K=Lsd(!DfnV}#paJwr(AVs&+m{D6_hL?;Y#fZ$5EgW_$7s}SvtP@6% zdQl&w9pUI%WWG>&LnZhrV_(y*t_g>5N+5W)3xa-Z6gwZ)bu=ex-7vB377QF6whK@P zr3Y&>Ty-gKA64_~!_1Rv&QVRsBaxttYPEZqm43v$C-yh)eL3tVF}aQn9ndX#bp#t? z)_1`|ocDACsC!(ZIntH9U~y2dLnQcH$-*O`SaV*YM+xsI1G~gMPNJ+#tY~$1tGJtf z{+qaOZ0K3WdjS5y>xvO?2~U11-dG6#>CbW&5JkF903?F}HHWWoMhq|V8ryt*UH-hC zxq2&)a}Q^4^<r(x?e0KEiW8+x`<Mr?UUJ+CiPi|c*8|~%E8-TgO}J#}d`@nmk!oG- z@j9%z{d4%@J+d{X%cjTQ)h|(gmAK&0{HWHcs9EPRLIc3o{%^fZtbr!-Ks#V3$MOv~ z*161$d%fmv)M+bGt1vHL<AKen@3P=Kd4gzde=3n85n}S{tgO!$O?ZMc@Ls>!&SQle zQ_t#^iMbLa7L;AHOSgGpEYACShRDY%F5gfib=}kFIIFcW0&^B%N&g4~(Zf})hOik| zf0xzcb>niCQ#uqwy`OlaSN|-K<Bilp^BtK%YL+vD$4&5ojCYR&VwLh-3bkH7i8Lh( zQ|&C8cqo$=IW*ec<E7z9X^J7HXwNZGT4!)5KA<x2Gx>*bbw%Xgv?Q90xS_MaI0!8I z8Q0&daAU!6%0YT)$ztqo0yS6mj|k(%<X;sP9pdfEd&(;Z5X^b^Dk%KWQj!km6A)s$ zrS@nvDz12;>Nds3U3y+OUavVenx*%q#e+Nw!MwLn#9(X`v5*fV*=rzt5QGRPNO9M6 zy3%!bQhIluNZ(-wxikSI!9f1?P^q*b!N8&zk^;dJXecIKhVi##+T5KRy1~U>H(KOn z9&Ndnw0!*FfD-LxGYC$~MYtLzW%8ze?8GY(XfDuQHqv<V*=BAtVUU{6?Xsi<M~sZ# zjG4gGVh0jMfonU2m_`zS2HRkAk~g{b1e%~%XPs*sQRdx@;f>Kr?=D=bCs(n``7ChY zJ6znB>e&L(YgH-2*<nR-5Qo_ywOkaBooSQS^wy+3Q*A?}ygkQ{ieYHzEs&4Tg3pMp zAPR!J$re|xpq7SS+yBTTI9=iNBI#i%<r8>T(oBao3<Q)3xU=qhxClD?G$=9)mW9fc z89&o`G^CuvVSb?~O!QN_?x&c|_i6lEV*5Q8O(+CX03q?Zk#Fsj)2B8{meZS0;SM-9 z(j}n=%N|xc27(MrcK9gcQSDsz{33J02xVx7@$`Y$*OynImDO-*K%k!rC%4As$^6`x z?q0}4)pLV{(j@6K5q3q7J9j89Ofslb+RHE$VUDm!Ol4HN5bXK1B$(FOlZd2GEwmhT zVk%nLOvrkPQ&*@>QF`p5f1~IN?;KtN7i5&s!R;;wVI7bY=U+QaaP@R#CZNAeeHSn5 zn<9vH9@6}@4xnZ!EACtD7YA$UH@hyKI!`GZMR&N5fp)h0Oc|k$ot*mG9^(6cPTn$K zsa7YSDJ`kl77&m&AI*4BpoP>PW%@1zE%dF6{6k!pZ6?M!VP3-t8%zr;%;95K6Y@+` zbGVkbt;m7TLpg^%#U-o`119ElmfPA<kB(8zjkP8+suk#G;jC+S2QD%H;0=EY>hD<a zu%oerJ(vW8R%<vdphn%;X3Yi7Z>E#|Vw1mvs{<7Em;=Fwy8+J3m-XiR(iV66c91n{ zv=~`iS+qyQI?Z*!R-sLP>VdiWp;X-Gbc68Krxp9oZAO5?{c#ql9SAGqrTxHRM;{BP zz{R0wwW`q}1A3?8%9CA325F&9welD-O@Om?&Anmc4PBWkI}2~;-`-o|?lKs}<CP%| z7^VZ0;4hy5Iej1o&iExLbkA!Ywv`#y&nWw~HkipkmJ-<?w^W_q6bc19t_$~$u&rHQ z*q!~NU;I1+yEO*Lvo|$$w5F&t$&xX#33$BVzDg!$Vgy?Ce0AO*SEr~Z1Rp=vsf0#! z1Uu$}vUDdHn;84AS_r<o;+foVB?-l+bOM>fE<D7|Vea6uv6%8E)&dVP!gWUlQD<k0 z-|n}$UtbrTZa5=!PkE?e%S+_T5`*04gU39=wQ24P{pc&a(Q*aK<-gA5J;lDx^4kD! zv%?C=z{1H05S&Wj=l+o5`RBgNm2V3kFWi+NQ_&MNflq#J+N)j9t(?yGwVG^I$Xmv} zwr<ilfEb49XT9H0G)Kj=Iv~i$eS$8LLf~=)9Sn6Jkhtw37@jt~bFE*vUY~R^WvEAO zfN@~J)ZbxbOj^b<_GaN+y1c9Qk_Da)&xg|n0v;Jm`b(N?T{P0H(eLM^EzdBn?2fG3 zp6wB8<(jM7C3IggYRTV7q+72p{m`GgO80GciAoJ9O~*&Ql9u=etnZ4ln>*_o@#G79 zIZ!a=@qqi?MtyQv@u|>_MAdg@?+~5pU}Nt*7)R~6_=n=zUr@ex^r(ggoexR)^W?|# zCpB`99^`#%VSzZWPz(13muq6vaQ*Idgy!%mtu_4RuY%Q6vU|^*B&r6FouT&ZNo&#} z+XI-6IcJ-so)tDVaW@hu!d;e5BL&3;eW1e>)iKgAKt}f43V*e*UQGt}Y)Xxt^iAzD z&TP#soU{a}MxL(uZr&a#Pv~uyJ(j1Z^RY<Q@sn6mAM?X=!Q>m!h_Cp+$k=v`-&KO` z0xo`guFY<~pf(J9O~kr#2bJC`-#H3c+*-aTT3B{&wVw19K~3;QuTJ{?lFv;0_-v|9 z_c6zTO>;cAXG}ELx&XyAi#<DBfgp}cLf~a!&eNWEz1%Q6lQusCmhZ;Lcwe|*azv3l zEqiaUNte&DU1u-jKn_#izuM4UTDlN8OJd?N5vZN`I3T%wyW3FbjE~w|^|HGisxlSf z0D3jA5JR9qAy{D=lc?!^@Poag`Ck8)hRzqgh3~D7E=)17Oh=kVztQL{TRmW1?lp^& zdz^~_1;Qk7EvrWHoHVno%%8=FJ{tSF3NamiU%&~)2^8-|a%gwX_xRc<#1rgtp_jYP zGvdMekh$6=5vrVkKJ!;ypAr>RsxIZVFo+(f0!9-1dl)wCvsuL23j*8pk>G?odut+6 z?t2*XkhPHf*bC?|3x7=|d7@{(=X|7O0+Q@yn?R53l0VP$CBGK)!Q+CvVb2nEtM#P7 zue~4YX+NOlcaz4t*3R^{K8k(*e9|svXPE<|a6pZB*gKCHi~2Q4AYT<%^AybKeedL> zeb;K;Wux(3@x{K=7;^5Xq01OYJh!FmP|Y075VO>F_6W@RF`jv^R;T4JGLRf-Ul1ip zw+o>VtEH2MBI;gdwTvBzdVRgm8Mv&Q@3dF<$?3ro?L(P2ZU>x?vJ3}GWb<wo51W27 zqH{UHA=IZ%^|Q72Ow)&!_=5Mg=zYB&*bj=5kv}{1{x!JOnt>ATDU}RI()t~7Emj9& zBT*{sA3T`t?)BQ=`B*I48iwNwzY=U#XSedh)!%2AGy9u-`j=aQ&e=0J^Ngo!fE8WL zBvcSfV6M3YVE7i{3#c5pvCb!EmEs}~Je+FYJ83macY3nkOHmN9R^r(Int0XVk(nV- z?fDe}356`e=_tI}`GBs}4a7r|S}uz582vai;p(9msl;#M<!qSqu=H~*<FPwPKFI9n zXq)e95*bdJbY>RYe-HgDp*F#nAy%=R@G<`yV<<~p(px?bhdZIZv4ncuS{ZbE71?V9 z!s)CwX59ZWQyU`rxY3I2ZoMhirAkkLeUo0GrBWonUY!HPZVqkoJ7O|lBAB+%5H#}p zZ@cB|qh_5{etUXv-BinqPgIaJHoR)NqM6{pBIz@K2GIf}O3#Jzws3pBZ@RF};`=k{ z=>xuXo6*DkH&wsgx)Fw0IG<gzV}y$WKj0Uc)C57KYvf7~XNs%Wk`B9DaA5w!q1mez z{@42-u>Vs0D&UPE2O>5-Mkk^Srhtw;oEcp)3Kwx1!^aJfZN~L%w1%f<r0GXG==m5J z;0<t`kZ2Gk_)#7WVYt*ve!2`T-G%Bu8)94fZVAcD95Ota-YsmpiBH^aov>BFt3kUw zd10*RsF=fi>BU9Y!HYfN8*RP0Zh_|bnw}n_+nfkzP1OX4jZhLRZqT>l2hONBC@Rup zx!<G)-A4Rg-lNW@$48~n;Kj$>K!zRFkwc$FA>5H{&q0@JB`-sRItdyW0PkX>pr-e9 z{@roK{pVyUdW@l$Znq>ap&L!{Qz)mytRk0ofwma|hB?i(1dR%AY?7PDdQ-m!&@j$I zq77TzuOgz=gwl`amHeziL~e-{d04W?w@Aoe4Q>C~>GAQY^A+F8$xVX~eom6l^Vr<7 z3y$`W@NUqG1$?k2E>>J}lh+d)w8!R8vf}jzAmsZ4D~C+&zqWWm#7`YAo^$>Em)Ah? zLMN70cM`l^i*+T0-TVb;4<u;?&$&JP?`S+^sn*%o!sb3Hm~T5Q@}(<ib(EAn7Bl{Q z_Kc6dXLgJ2U=~BMx{?SJ&bP#Q_9(;4Q6a*{Lzh_<`1gIayZmJOIIo|SxrhB;e>KZU z>#HJb@ciC~z;*Euqsg%=&{S<qR20zIyao+gwQ-#<XtrLs*Xp51rLFUzJC9<3@AUw1 zG(I<)N9yAA3#@UPU2KfY(9vDhP$3@K9&b{;N8U*1H*e&#Ck^E7^f)<;88&%Zji;z{ z<+ZX?52n{oMZVabQF^}LM>Fsa>JDE$*Kj@ddiBb!htlvS93!5|9Ow2hsUO54;eerP z+6wuk3YN;8ycM&wWq365t!bO`1+~&j=jCLrWi64Z;%mi~?|=8BFU<CFR`$_d=>B@% zYAMtbEci`+KB4E1Q|O@Q&E$INMhQnTwnX;V$<uHoqMHjU&63&+VXj+p>~G$2c|G=d z5$xr&`oz)HRcf%SwyY6I9ahlch%Ont$xnYze2qJ5_6r{-?2O(sX{5@oIp-#T8~;zG zyLxxLZl0K+;t+jSu3fh+4LabpdjvB4)BvIre#O1IJ`sSTv>IzT1gGf9O&i+@k-oPp zU_86&Af0v$t*XT%ZcmD!v0U!9gHjvImezT!OkqlwZaCT9!8eEM+%Rb2IZg@p2ywD? zt0X+d0WuC6wMYhBx7O5=BLGk|3b{1Qar$zp39_ngmH?kaF#W2GL{d37qBo9Qi`_E5 z>_}Pn_zzyVm!dD4N8jA17)!-n{34!#25l4$sS)m8(#ImIF$W!yPcR*EzvB1<ubG{P z&(t4?4m|EE=lUenOD$OaZ8dC&X2CnQZtm^wa8}CYM~7}loK`qw=lRH4myMb3?62rD z=MYu<mRJ;33(fMqfr%z^{Z;Nas=B*CLSTpYb!%pAlMF++7~CqWaNl+d^y3Qly;eU- z5hhWt^8nJuKzRk0Fw^>per|7lq$ue$Bw%f&y8(v?aDJIMd)qB0z$LEH>D?eW<yv0= z-?OXv6;pPOq?whP^fZiJSA(t8xV=7t&82=!%;)oEEFSu}#%d_|3)%1cL7=zUMK{V> z@}zxB1xI)|2}b3o33dSdZrI)JZcF5O*Rhm%+ek~yjWn)2(OZ16xoefbsXK_U{}_V9 zh|%qGZtV=X7$@}Pc>uC|SupLBF87Az3X3>*)$4Ix?S4SdddUnqJ92evc}%;hwI%sU z7_Emuy3TcDM)ve)!l7gwLRnE_mZ$Q$7LTp_jUHeB{<0<JS>)y6K!JM7Z!sb@+SE3y z+!d;OCtQ}8qu!MTw!ZVIuy&Re{k6)dbI1L*Y3-l$&_O<M@4c4yUibZ1Kle-XN`oQT zL}J!;;)mLDwjMPQ#%W|@zP83(k1=|Fq_*dNd;-^po*{o_<Pmu~CCWrCVb@tqUvEgN z`4CX=tz1y(QxnF>BI!vKg97q70drIZuAuDT&-V=%E#swhhrP=3zQJiku8NLiU^R)w zFh5UX3(8f!`AuN1T((6)vqK<9XO<gC+ljwj^e5y8^(raL^P>&H@%x%y-Q~f8s!4sa z73YSyjZBl%K+vt6+{f!ta_7b-w~kxxj%HJv_)Z5SV>@d4`w`K07u#<E^i|ZwgQ=e> zc7KsQ-IZ6Ee2=IplH82Rb+B^CBck*33Jq!Jbq-A6eDEb(c3u$fETFh2i+}cXPxUU# zs;7zk7%r7+{m^&0!wF1VZ0)8-jmB2`>l=j>SXd7kJv>oQ>>&xIJub_S?W+G!+#XT$ zPc)A2Hc7hxpwj}a)rn8dm)@VAsxbVQlw<1@YBr%&YL%YK8XDJ|G4W$gOH7@0b0g$y z^t#50${X5CA3t0Ox}Z}qyWt#fXG|<Zxbo<9pD8@-U+uV9n@odxK^4i7Ld!vKB)#j{ z?RbMvrBZn!&c}d#ws@$l!P&bK0Ewu>G|HYo`~ed|i)Bpo!7V&9^|t)>4cfl^h8*pg zA)z(cElgj{8a*S9t51y~>VE6Y%a&61L-8E9fY8Ohi9;9XtLFAOn#DYUJ9edTHgrZL zj3ux8Bh=`A{bVhUjP_#L6SgFjgVHnAxfq8)flOQymWT@}a06X+hu^SXvH_atQ3d+? zZhn4vnex-m0ulv!S1-h~@GEwXQgK^z)y0c+mAuZ7`aP=<Qz2IwzI+)cxmLApvuk-U zQyRd8><IALb8_Z5wJ+&O(s^XpZhLK99Cm9hgue@GhdIhOUoh|SjxVTnV~0dr5<H0! zBsRTuyEuwIh4J*s)*E3*zVvBF1w#wM-)~Q1#y@SB!)GTf_MVDevy)T-XQ8(Hk|+r5 z<EiEtzv1_X`htnb7nB(RDH76E*ZJ(9dOW*s#>bpO{=1U|CVf|a%WpLfzrtQyOohv9 zZT^ew{>?zjzWau>Jgt?Ztz4_f=mUt0<O0_tOjPtc8$kLsBO{2XwL{js*Hz5R^59XQ z`r8p;sw@5dm*jyF{@#uqHCP1_1y=RS;FX@v6?MPFuwtL6kyQIlg+VFCNbHAzJGHQQ zc6qVwY^Fp&wT=!ROq$TcH2qrQdNf{uK5SbX<kuh8$r#ma%ceEG8DEyfVWw@X*a=== z2Fn0Q0H7=RA1+fcPdp7lavG4DKL*AdL8l&>QSr|bp?8~3)Vj$$Z;b|i8{_Z5>wh_` ztp4X4l?3uc1L1|!+#i_JxBtj;Qg!~<2;%P~@eU@nTXwZ}^{NMWZY~77d3{K3CIdvP za<(JZv%D9WVzcV4<);`}z=S_%vBU{!dRGzJLVc|K<zG#sI*|Ag!=e738O!>&$A<NB zMTUJgog+QBd!A7TfbVk$dH1tdG)lDVWG7^oCGF@KPrs0jyPWXoabxV{=%i3);Fec% zFXxpS8E!H%4uRSAvmSu|l!TqetrX#eJK-;QnI_)%1Y8Lh^PjtbIyX_}yniu*i~2C> zZH<{33dBh8Bi8*A9EX95^wyH1k`2LoSz%oqt@Wcj8|?VIaq(r0P9{~2Xzma<h1Xz7 zyfBOmBcHn(-8!N@X5?BhE&RZ_rNiq+q@D`Rq|QZ0kVyP5!FQW1!@I6Z${lNVF}*ND z;%D$>G~LU;$X@?NMko6W!&_6(eHF=*(2^E5{rOU|N=eJG(z?%$jVhIQ3M>)scvF}w zI>>6Tg9FZLy~E3yX}+FiT+5U<FIL84sk^a~nnE=rl>+5n1@Qo#V;Bx{4<i{%FvEas z{~|N|eu}K=brabB_A>o1vQgI}!KM>-q46cJu|2yYUTL&lB;YQ`47KaU>VMt|VA2$* z-#_AP(YP`6UaGpD;<JD=b?(5xC+jMImzTr>-IF4Z0rbjz>AK){mt=VL9-RCABa0d5 z#P0hU<b=XBOPzP3PkEAWExb|pX`=Lk+oO>Qt*(HawDiJi8-O2@ljPW$&p}?v7%Lv$ zCT2arE42zy3A|M=p&Iv&+F&AQ08S<?zZH5L3!G7Ree(zUQr9y!8KWZYg@Qzmb@dcQ z>u`?yHyvoH`50(H>;xKI77(ufB4f1chl7)hr#JNj^aJW?Wj_U4nB@D4#k{$(ocDpS z{Jor};Mo(~8k0cJ1rjZh+Sra+6CVPjPE%0c^9CKZr2r_m#BbfdD$N0F^7}Ax+(?Br z&bRZ7E$*}B0#^;)W>XYQWGH?>Q#!kB?~N{a;{tiVOn7=Z&qTRFi%<v!U{9VI0T;p@ z*-Vh6Nps1rIWpOauh^n*jPoZ!t~b=Y>8hg0VM2N7Gx&hJwBU1QtBJ{L#eQQk2-dO( zwLy{Z9V?&vr(6|C+`iY5xOX!sO7ya1rBHp|G^!605r}NNtwC2SwP2-PrNtDUC`)d_ zq77(^lTnjhP1_DQ3*t%Y&h|O!*^<iFa{VlKmX#2>;`TdqyTXj0=OmUeh}*=Q5uP+o z!syGO^5+KB_hw{oR%|uaM{pe|zxC0(hzd+hh=|lhGuW?2zKFDj<)S(gJ6H*xYinyp z*P!XUXL={Ft-1wnJ^pR4lPkIjd~^e50u%!rTNSb^;_v08z8DUIv=E&T`)L8(T7X>P znkVb)0PH8V!@hK~k3>6HiiP<Odx90p2GZHi_Py1jBo(X5I~2SVM%>b6XfgquqpDu* z8o*8AeJk7~DwxQm$En>l@vY>_=O?$Czi%6<jq0uo0HdZ?DJ(WU*#jC5dN6y*TKMeB zwN_6+ze;cp9nt<C1&ZPooO(EF;Ar@EL@xX614vqr3+y1Q{+Vjo{Eay`g-qPrZhGT8 z2~*P>9ZyH3A@dX{P#j#IV4SGx@D~{{P+z!T+sNx)j?4lc(*Q0f?@JNp$BKd<Hb-}f z*D#W=TZI9W+S4Q!S60h{)Z9lbi??ok?l)PK4)+();L%{g&EnY!{uAwtxFJBN6!W5M zK?5V*$(`YTCNA+&d{dW{{3SVU%=0bsEwi0AX&O;4@meS<05H_K_;b3_Pr%LXz;;21 z{d(#qv>ZvY)aO%_mK^#>$gdh=4*yVlNp7{+*6M@gzDfz=84QML2q#F&rr;dh^mlS? zdfyflY<SNP8TlV?iss-;e`U7cB*wuhc0rd~L4K$)mW3<?11`-`XjvmhY(G_;+e5i5 zg}GhpAp9Z4t;)Jxk=o7Nc2)`5NoP=rYmk3K*^<k7TWf&7S+oAaqK3#}qIv$CQc;R& z1~0c`O>7DAece&`xoSsrt?G04N1d#*33Ta5Kd~gWw`UzPA{1|>WVET!CNc9Idc&aE zzsW_9AzUOc0xCoZv~zDedm=;{<*uwBXVNdUHO0p8YNuJZi%4guVsJ6&o>$1&u+fhx zECK+$_O3A4;7WTHybTJW&rlRXDdf^N`h3pOLq<b<f>+fCeF_Yzg|W3{AIWZ0lL0JU z;;TPG=rl)t7BES0mV2vF(XdB}A$fBhk#P4fvahTrya#r*4~?z}Qcj9+SUFJHD=1MO zaO`@~emyO)B=kWg?3`c1B=L`7P>g8?N>z9j(xn$~D~h3fqv;pS<sK~CVqc}hg&0;6 zpbmzZuXl2PaccTR>g=G6Om65i%dBszSd_rG-Cuealihxz{q9Np>4^gJq1);h3+`7d z5B}+HjuM8m^^Gg9M8?=^P25eV+ZXbhth_EI;#kfl@pnnnaAur0nkbC+C~_~sz3ws1 zI`w|BC!%#F5A@<qnEK;wdvHs<Bl&>4Y)Z@rXWFKFMVecZa}+(w4PhNFM%M`JlYaUM zMqOV9OSCTBUr2j8wY9+0_3AiJ`9kHFi?A@A%Sq*k7adHCIA<(kcB96Z`#f&JbzpTh zqVWwaMDcY}UptH#+RpUc(yyWvlhnhgtXJCeLbg&tWuxJQV$o<!G3BnwBS1QJJS;>9 z``gSjbk2IsuZ3yFpgL(wi;i@1r}#un#q--H098i*MMnS9U39H{rAJSE(!kEDEoV-G z-D$n1{yODzqot*r{x2N;*&r{?en76l6xNbh2x_yZcI^4o_tLupa`Z6u^x~IkUxS(_ z7+V!688Zn&h!`L+v#mjBe&8Uz%I&GnYH8l03qNf2JsI9UH*0y9|02)Z#Jb_3BKV4# z5(<$3Vj;K|B+&Q5#lHKAE55OvcT1O2n@VoeAV&vs)x3VZqaeE2$KKe*oesH+SpA?J znI{<qb}zVRwa+?R&-|5siP?yISY8#|%Zj)}yj3~oITx@#wm-23qPB#x>2x5w%_>NK zi<!G+2)AZ0iUE&Dw=aIZlp7CyKqZrcP!~HA`*qpn=!J0N*0K{l_jqH9!lUuhTYO30 z7LPmRM!(6mW$G>BM6q9prLu@iP+wy-eRs&?j@XUn41;OG7=eV-AL|dCMD|OrBsAWT zW@6joi!`=Q+Fw9F0zA0j%>9^_b!*Fzk-qZFwq5hhW#g9f^7l1vypbLRuX<9uDP1WE z<v#pvg<TAzfw*KtHD08z9hC9Br&>{(pO=2BmXCa!gAZ{VBCxEA)AzZ0N=CO|{|N^* z#9vGi*F327y>#_<a-26aTJf^HRG-$1yh9hS(Hd;UF80T{5!O(+4^o$Q6bIueN)T0# z-aQ+0y+nfw>szzEd0nJ~uO~&@KT*1ff+A_w4uJ0s2qN~%0PKBbl-f0z8SxD;CqiCs zk6P<sLAcskr=^gvDx$?6l1}R0DPMlO#H27PJn=EqXLVeG2@)&e*P!dY@{p^ipMRN4 z{-PCPZD2FS6qHrNCMmDffM31W=-Z$GJ1Z8bG`6Y0iwvmQ1wN$Bt=ZL@^&n$FY$VxU zyaG(LBSe0bjp4Z&qwWOl7US=l_xVO2G(3>EG|m=pUvF0j&jN~j-RqKbaq3efNrD<s z)GjTjg7rQRa)X}Tj(I229D2yh>cbCRQCgIFqsz0>S<A~nYz4a&;1Xah*{;7*?Vo~z z4}1zvwe)_~n^GKCHUMA%e6U+(C`l#pK;hHR03Y&r(y@Rf2Z2X}aLd=HHu+L!F^8em z-f`9MIH17}U=|r6FFLrOj%$hGQ94t+H+hdQ3Up(`<5iay8zHjZJYCm>3zbz?;csy& zSVx>7z>A?1j$B7qWS3CIIrVN8x$}Hq>SjEVxwm`o>G1`36B2{yx+hLpIHK$wuD`E3 z!mW`sT<|rxpZPG;6Te@EI2(a~nx0NWipX|#XR1vG)x$y1uFETP%-9^fStO^^#9BI6 z<3};Q#z{%Y%tDp$)(_23>4Qt0O&ex=89ifhyzDqf^zI%?typ+oEQNh}RPhH@Yr6M4 z{&?ikw!rFvbrm~Rhbm$<56<aQH%1NZk{w!{w{fj*<e_URn+OXb>`0x;ZFSUc$JW{C zuX=tx5Yq9i*3adN2@%Yh5e<GR{5@G8vGS}mBU{L!@MlvmEI~57{Tc>wkcDyB>w{dA z6j0-yKu=oTu~fX1PNgFH1exsRE1HDlPHlQk|3h3-f2!6%c|mvL;8RUiP0W*qhF2GK zuDRSUDN!W5gww<_&9?HY@y@%LD$JCYRW9(Jj}Mf3IR(G2s%PSO6{<}^ro%qQ9dagC z)y-ufQ|A3q>|6h(k3M?Bp%)F@d6K6hVjpbnj$OwQ*M~bI5!9{5>#B+oZPhi5^HOB{ zP0h*TC>Zb6{x|aU)GWu91m+dJi6bx_%9F$9hBYpB&nA6&>)3PI`u7DIrw2CGKLQ1k z-)(QH`o`MLFJL2ZR+Z4prZ|nY(sYbkOSxPtV?|ob$1s<o#K%k0n@@dyk|m1o8&SK% zLtxyv0}M4bc*f6ZoG;9%p1x+qwfTb&`wWyl!r?QfS)W6!D7lj_k&4@Xk@I$`tyEdo zcm6ZH$;4@b|B!)<b#?u;*d}|*@~%LpFmHU~C1j7;hBG!PvK<7UR|ZD;RHil(XAi2U z>fH3rB%fIZ$}jhPcr$S~3gOKi>%V%F0tw>ocrH2r3}tr_YPvPlCHkr!HG4l@T;-+v zn*crVh}U5J;bY(APU?b?4!j&`FjJw^j8_!H(_`5m=M>#nqn&SMo)@odbx8jH$5Yv| zYiYmld=_uiPgZ%mwWsGJ&h}{E^52{q{vXy2pECLq=U)7wt^MDg7L|fCYFs!OR8kmZ zjSJKMo;B~;<hP0R-%eo$`;>16ZcjA+dNi=Q!6Z6UI_eCxn!y)Wt&l9Z3al#R{udeW zlrCZ??}>?y*gn*REM1t)w5o%@!S6g()b9r&l9&&91|YEKwiJH>LdCd@17+R@(VZPn z{&#Y86$SH3tY86*yWRVC;}mj@H-;Vi33vmj<7&QgR0P=ZiPy^|2aH5w!3$Vly;m3* z%swncrGH&aMby-zsRX)>oyTo@J}J}@Pmg$ZPo3Q(>HZW2y>y`W@%zp7c*0m6`TWPE z@s5~|s<W;nUfjJg&B?M<_3yG-iU+bp!|&AZOs`#vdzp7(%}~wZ2ki7o%GHz<{dDK| zh95pG-BaP;F}jLNRmb=zxTEN=taKLd%(}I6WjWJxU0vtTr4B2i<fWmi-$S>2ZCAk| z@jL|6M)X*8UNT@x1*wxA?=7zsM@BT)3sb<Cjd4m`Aa*|Z>W*?jWK+T1p5@~%)bN9b z*xh*(e6^-@ls50Te9k_vO_k54*w``c1c1x-adCT=qz&K%DuEObKz&~N$7Q=5@e^=j z9x+?sDppp_zT!v=>#BN_z^~+Xg;@OSfDGRK%1q|%6z$(n4B^;&?uzx3Ht_|<8aBws zxM5UBw_Q|O6?Cd6(?3-vVfbRtuCNoN=Q_umB(KK2uYZxTwDZ99*g)vl(6C|i;0K)0 zRm5^%`PXL&VT})=)a+wHzt`8I_5)Wzmo3^mF!CUrA;B!*{gH>?g;|Ec@?kOWd)~s} zz*MJqC&v`E5I~S!)$bFup$Ea~N2FTlJmWldcPzm9PqH6O8BQ@y)F^9T2t0n5oRxUn z2;**1>)s^dCsENLOEAORKtWv{Y&UQg^2mUfF@f$ycF)JF16dm~5I)k#z^>CbVVB-~ zr4qHXFk7|zdccWa2OS6(Slck|g;eNQuB3z6SCcCiL1zPVdna%?{En9H=eZkR-<^z= zRFg)Na5pO>Dl1!A);!rYyx_z6&za|p+(&6U5-bEyf73PDBHE=^Ao2uG9AKIkr-d`| zM9;4Ehi%S`B<x3u8$Zd}QnW>B-cCr7qsf<Hx~!KN$X+>VH(%5h)%zD2S*u-9U)EM_ zHEAl20%+XsdHpzhnvj919E1GO0sij**qIXOW!B`(#pP%;z=8FTUf8$qr*7bd>pXQH zCy!Z*n@!CBJm+7{*l$=@wd?C%H#*=5AQn{qj`MXb)ZM$C`1mg})04NvaYn?jqT`SR zxo|?=IinVA4?}^?#aW>{dYhA8x4MfTL@Xtwwe1^<XPO^T;;XoYRQr9_Q`VT3xEkd~ z7gAOD*&ph3+o6rKSv~>|!7#0c&9+JBYP#JQ+tQ4<kiy2Ka9d6wh6G|94ZgQ}rlVKF z_g}alUDzJFy}(E7fjphu)pCBbeO=!^p0C0T(Ak+l9nIg$>ajF^<?Xauc}YpP(50c) z$5vVh9}{}BTK7&wjCllT8UG#YNnq~p!3ITjs|Iw%CKqfal@JStZkj?p9eJ(PlpHuY z*o1NFJf#89?r$gS!w*|*Kqz>q4!5^<)!kf1G7}T_OVng!%H-Bjk*$8Y&`JvoYeYVW z<$BlIV9^TO1BP!Hft41%l&{qDKIDrueYcGqbSZ>GMOTx4Wc51tDWCPW1;aO|VRtjb zf(56nuTlIE2~~~oEqFQibIAX#<KnpjHXQf4gBs4VOOlFmd#-4uDy^_-i(S7Vt>ev3 z$A5J<+-$RBKM)-QmmwInW1<o?reC&^r=O#(;U@<TXIJ_JQXzpp<@~=!$Mc^gga9S` z#cTD`PjPN*rSCMkZu(VANDVNlw&oZ^LcQoa+F+Y_e)trGo<xfaut2ZG@7G;8PdH!J z3UFe&-*Q(Ul)>l97&)0=OkUG?dQ{82;jdV#r@UkI6kd;;>f+Q%`h&$&v6iVomS}ER zhonEEECh$C`)yFfGmckiP%??EM1rM0;$$?c(fyHPc~hq&YEmq1trqifDMrGA?_&ht zrC7uWqyQ?bbqL%|oz7ClF|6(T%IDJSn-`X890?ZNix5gV6z4YKns9&6=6(>sT)jB2 z>8%pIX4ND#?VOgRo~+LIJIVesTrRUnH8IA)RXBL}1<;t%In`|WO5#s|_T@T>29vgQ z`$_SY0>o4>wHs!3-LzmG!oD+;x&w4~1I$?6E?n00cxp^n4K|<era6{};|r}+65;QN zU&_In>-2M;8W_*mmz@P}{t7|vMB>M>bCtzDv>q?5p!RRGO@TDN3wkV%NVH=`T5Lee zmSq>P8}Tjcf6?D$73}8+di9Rv_sPG|_ueJ*1plC%QoK9RR|eHYR$#iKGgW7@z%;Rd zQVW@G;^IY$&<pp~`=9@!pKIw6?gd?dF_+4Cdgph$9870ajnpt7TJj@<27xkUPR?^~ zuWzQR*dd+P_th9{jgAr|G(HoP^n;=oJ3rRB*KtX<#Dkzx{H@&-?o{8}GtsWfsR>LY zLuZ1&?zELIG^-6hq>g<m94ZDdYP2~CO~ki;KiWm%GdUs{Y@^o5*QsATnnsdiDTS!Z zE@93e6X!MAv2y3Z0TfGa8R--9{aN}_rHGd`4D@Suuk9$?h3!aV2$rW9s)E8nf2^_X zP6qZmq4+X`*)tT)!<tX517M0iH#ZyCISvQm;hPF|V>6NqY^d_2?xffAIT_qTa!J>^ zCDNR(!Vw})3%(M{5s5<ls@bVCdBj+-c<@?MC?`1M=frT?qV;ZU!nBqOWi*jj@q2&G zB^+pNHoTn=KKB<HyC4RU$g4|GDH=e!r>G8ldcG*~F}K`6AJPjek-cY6=TkUfDJUq9 z$d{Kl7GT9r<Ui<T2jsUyMM_?M1!Or+%Zd&w9{y~2=uv5q>;Uit62AZvp&giYdSZyi ze;O1a*84!`=Rhm?Uj{`+j(;4${zK=)dxfFZ#(fn;;kGQ>Y<$CIhIyH0u>Tz<_ZBZ= z0VcU_lK`8-+Y|Fh9Nm40XMl`>(6AzDd%^vT#O0gmZRW~oJTIPylKc_ZU5{WPi9$P2 zI!P(2ZV#&xRU+_~w2uyg!V~XzvNOIlkNwzpO@Ykb5g<~$kc{LdPg;$KtJY76%Mycz zAH=dBmVYvT+N4+b(xqUYEcNn9@r&w%)lglCGQ1mktyKZNjpD6yMG>`E?oIwmxYaS~ zk<ZxEz?vwaCH4a(E&D1s{VRu1)t`Kka{<+Wbq)gyjlz^Zjfi)?e`VBQt7KnI$#+|K zBDPRnpoU4=v3m4q^E}6)_@buGFNpSEWRCRQ&jD;RbD>(5sI`qtgUk+{Op48V!#w6` zPJu%*vnuvvB*e;20Y12L)sH?BL3!%VZxQox`WI`)<JO2sPT^+0PqzX2zBCGoiE0(I zNx4B4Ulrc8Ytt;>M%>J&V5)h`d-FYe?oWyU@f%+m;*Yfm{T9%t*LKNlIZC)Q{8QZd zUt}6MM6mp;wP1SW5F5R_`^6>!?K4jrN!iKu8<2Mwu8v=*F`Gj+fTFj@A<o2mGjrcO z%k3<73SM>o7<Kjr2(sq)kPgoq_9fR;?C1#>zs#8OH2^B1E$#0yCoHk1_3_Na@h^uI z^{C*?Mts%Q?b5*M$ITvN34S`nj|hh&)}OQIeYNv|CP1AM4U}oiqO8JH8vG;nK6#i| zk&kj>h&h!dwj&<Y(3bXg=Oc{ei-F~?iTZr@zQ+@@H}p&07t#W`nG?R<Ib^@Ip4kK( z;S89ZIM3A;dIAI*K3{%thApWNYzUj<6<@Kid|0}0Y3XYomI=qTHf%?;KyaDi2dY%F z>5ay?`&V1i`z{AsQae$4%O)nAATHToP>}c7>Ce&an=;|y^fVecrc<#3<`A!NVW+sr zE^%#+Ome<hD;xQVaE<|xb2el2nEK<Yv&vu`Io=$XXNma&sPXn2aO%X^8r_)r+2ww} zfqftn#kwZ&#+R#*<(SO+jnP8Y-{>sA$AJ5%K?Bt(m;+-4JRe%qtBoOQR?)Z+j05U> z4e{sD@asd>TlM+VmJ$!r1V{6ilBP06BXQ2_DxT2@;481Yy&x|$*Yx?>#{aHDFo{IY z=R^=~s(9vK<oBnXpt!W%`u{OQW)@(`0NaGS_fqmV4sy0@L=sB+`$a3l>CtbC4(Y>} z*UTUQ9n&!4FER)<i3r?w&&0o9@0TD%uR1OMyjcOrp=Mtu!Rd+TsepiE-aoJA9+OPD zhnvR#<u7#xAnGcC6Yx~T?(d&l_0ovJRsM^$*h!kCpI98eLCI8!Izler)hO-fppThK zi73$d3op9!7a0;b(BJ^o3+3|fe{h5Rxp(W~CKQAnvXKu{1_t2(DQyD#3*Z;EU>q%` zJV<=F3#jFX6AQcK`6}G@foR_F3s9cYpOSySm%41F<6eP#DNW<XfLI1WP??QD0O5ZL z|3${E^N%ZwU=ifd(3VZlKg`5tFH1(trq6zCVMg8(U%DLV+09CM#eKvb(e)@7G1mDP zS;s>JMlOHHa9HQd+YH~2|LuO%U`-%tN$&%cFZ~}ZfXkm3M*(}s@-JmDHajfvL~C09 zbD?3HC_14NoyPk553NZxF2{?`SM!e_Uk$6szExZ}#hg;V?Wg4nD0jd8X?KD~98Dt$ z2B5!R=u{UI%3#2D{tt`uuh%L4Pv0*I*fMipiERz*vna^={2r+TSmyC!#M-U#j%}bJ zwNebhW%f>hHS*^>y;4UXw|%RYJY3u~-{8IWz2wnmkhFE$=x*#bAjbIjH$eVz_2)DG zJQn}2-Z4raKwfBd5CaE+a2xy6Eh4ptQ*U;y71(t59O-2%BI@g_gr*%UyT7lUHL&U0 z_fr0kHuJe^n$f1ypQZV4w}W@6==jT)&1hKD5es5~YI_evivM5kxNgq;yw9=PH+u1Y zori%U)EZ`nZ>OhRV+O5!Kh3tPeuNh3XK7;8-aD7>H1N@u9jyW_W_2ZURGI}B(%9}5 zKyR{}%UM{hjD~^mh6K7P@m5JUCqFl*&zgBwI<6NZ3!X2#N9=pwEs5!Pk}yE7*$*=H zMJ@t}JHi9Ba2P?U7~0UwS>k$bnCvdNwE3-Sfa#{g!*B2{y{})%m<-7%lkMVy?yE@v z2mB}8R1f?XW+oQ_JOE*E4*eGT%R3K_P9*CBVp6zTLSLop@hw*mekgIWPf{uLEueWE zUojJwY5*!*siE&z6$NT6{xxK5vzKm#oT#VhqdLvriUJQ<%jYk8*YAeb25$5XEbXn* z<HWYIyuI;?P@{)&LMjlB1+kC*%;t7v{Xfk>Xp!GY60INx7~-vE^n#*6HD(DLZpJDG z2zLsqCs)f0bj2%gJfI5DXQfr#@m%OQ^o%=D<AAA;Z=%N%Yli_QJaaX;p0gloK|Fii zeqiKURW(x?IW-4$0q@X*;+GY#-^;=+fq8uf*b#4n=me`>vBW(tgWpCYBTuu4(xaO_ z#w!cN2tK!vg9x2;!3325b)Q`Gk}4;H4lV$rgMCd*Xct;E`q-WaED?jHbZ_y`^S4*u z*!1Nm^L#J+Nb9Ji!u=#vCC^LuIceaaRbwqn)TL~H$-dzgE1<MQeK&!DtfYhipu~_} zC99OjA<_6%qrQZjE*&gjl|o$l962M`o`UP@(sZYyv8=#(-)_k6&ggT@TbuBM38Xlw z572c5DtP$xnG}@GY-*(oxC#Ec;HarMj<U)WvMbdVBWKllTP{z@zx&qZU;3s77{w3* z7Xf1EUu5SjFblLMR-Bjy^z6rC9uXel0^EyrO5X|A*Cb-Mf=h!bKe(sv?@s*A%9buD z2&8$a&MyqHae?zqx{DVk1`gF&-&+mzfd4B#Fc<FszHv^c-}1i-5N?BTRp>GRRlr?e z-&-M%YZ+tGT5Ef}b9+wfR+HPhJ6~uIO8}b%jXm3zfW2>Qr!n%Gn$zN0i72q9IN|MR zn70#N1b1h6ow2=P*4}L+!B4Tm;CD6tapB@(U@p?X``8)OJl9`2|Bv%g$vD&hi!c9w zf2?Qx$06F70;C@k)WpCJ(jVR?D-Z*P?PAe}u!1_5;Xu!`IEr}pv3o#v_Rq-YrZ<_B zsT%W8=f6K1od3jU(f0vjduJKS{;!Llv+8YGTUi>(-ikj=k$q;I_?yq{WDNL4!@*N8 z<SJ=#f<hs7eW^Nhn@c6&=7b(iZ@{2__-5K-Z2{c5D?XG4GLHC1{IeF0B*>rxI?u~z zn%3Nz4JLnGo_UtDHPh2C>ZxSUu9F6wGmQ^}P2a?$kj<mdPuubg?#-x~6Vnh+1#lsP z4LwFNUvwbRUzyBZdtz=(#q0=#JK3&JahRWnSzUyO6Z6{Xe}dTIyd(L$?;57XY@SU? zh8+gGW~XuSCrmW1&4O2XOK5%_{XKS9!8HDaH@%$YWuHl@B#L40GaJ2)&pa0uyYe!9 z?$;T9cruXGlc1wb%tJW2`>eSaOxLn!W3a>b#|ms6BRt<*QY-$fzUfDu#?ku}S_yQ{ ze`9>UgZWGMW}Dx#LF0GMLu$RaQV<c7fc(A&Y0rcAJAQ~HgeF8!461DcyurvjG^)`H z7Fgw|u-g7W*&pr)yhiQgmh8hJ_xfZ^jt<v~zoFasRq02Q=CZH~7^<9p0RP{D__ESX zneb^xdVM5u^G)=jM^Ly_3a26o{X)iF<Qh(4zZ6rcNz8#cqf|iA@@x~mpS9C{e>0Yj zxcNHsZ$3?Ue^u=nU6?MPS1=sN(*BWXoK*Hoh9bz|;=4u_(Ab$^Rm%sI&5>DKR$~%W z<ZsxQh3#)ENV9&WP-M@4yEOf2D4j=3SZ_B836~_T0P=@lk$N}{*8ri?myuG%D|f3j zUDzFA-s#U$GzcnTpB04zmej29((oZBnB`QRT{MC<0_8eiD<hG4KRzQsf%!w-?`MM| zMS=<!1RTu6K6;#|b|R`h_h(lR?x~uZSJwT`wZ}+&Igl0ky1{(yfhHG`$2{0<27}A$ zo&Y3X7XGxcBGt(Nyp=6kZl9hd;}cFppRKalT-?NZ$K31nv9AyYM3>pBaO-!m{U2@Z z<+(>}#yUHy&CECALkQH-iRJTcQLFt2d-92;05mL~({VJ%(b;rrT&(0<pv;2P<C8(D zw0@Vt$|>aEpQ2VxJKPhrK8mgkNQAO~vYItKG!P9bwol<|EA#2tVW7-dxmb1ZI8T9X zgq63mbNOvq&{-Iq4=0I|Pmvp=bYpF9Lz2%g9b=?8E{g%}a6rJNB&4*eGOL{)CWO;M ztA#kMcbc(n*5%P7v3-Hzu2jb{yf^OOlrXgN4W4cMw;g<)r}7iI=yxY5cp>{D3y{+N zeSc;DkygsK{Ye^5fTY2Wk+j?{+k{@}gc2Z6Hw7^gd2}E0xk1%koPkO}qgD5?Oe-Yt z-!l5y9zbJCGV&QN0zG9oO%M}kZ$TfNSdX}KKlF67aJ<F;dEw-meR$I0p=!z6J=oCB zJCq>4VJJigebjB5b9E9XwdN*B%ldxpr+6bt$RO(nzQrl#&>$#$O4I#H1{;%@@!f)r zfa?I#NM8y}MlFz&hQqJfEu8cQ@n$>$WD;#>O*+1Ov0{WuEHB<?CessuTO*Yyw&uSw zr;zQ~TCF3KRsi8T*UOc-yDxG1R<r}7NuTcSFjqhom{^^ic#PhmZU@eb6zC1+U5qcx zJKPP*ICz5BT_o7g+`#Fe8;1jP<36J@t?Vs+1&^%iaI5=_=dC*vPGJh_`NUv!3)X1- zC4FdSQMcVSO69RQK8rfH#;?8?Ct=uO4w7IkjB%9Xj5py`KM7z*))a-47@`TT>u&Gr z=-G6`?-pN6@+{1Ym+rd<J7Msed`Thl!71yY^6!sTOqbhItdnt(|E|drGNze24lYOP z;{~^mA0DujOJtqZXIx(}ns(HTXl!`ne*Fv7Y16k}YuzOap!=3Y^{-ssu?1yym3}fP zv?bOY=)*l;Z^<XT(ZNFNUpI0eDlWtllV>;4)Ul`7NtltVYpI3OU_)Dt0;BWni{vi@ z``*d6jzusYVpeVG=Jbo!>v=KX8*Zia7MMI44^Orr=lP;oa?h%<<^3?dKoh^@OM)Q! zFz-`Q%*#E%vsELYWXJUQu0(lm)^Mg9^sz`+^=<dKIupg8A0!m{Pa(a4(g@Ejf~+iv z94cPU!5@2*6T7C>)~uNj`=zVNiCmpb+1~6&jyz5ZuS~ep<aWdi^`AHb9a+!ocst4P z_Rg;iFYDlgOUIrN-$9-wToP)XtfjAC7QLQyFlDo-O|{k{HL(218`)Y|E-X~Zde`M~ z*mEYGF3439JHeV**$Rg}S+^=p{v`Iw)6bQ8I8yP!_I|xyLPT@?O_A_JSXFn(0r2ym zKf*pm=VW=Vi7Oa4Prj&q%KE^nKI`QL0T3U%`CLuEV7o&gc&k0PW)>!1WZCOjRBdIY zo_iybD<DyE{H2MBIvGzW%OErl=$z7k-BM9Y^!L9n#?wm5V#M-@bDYw9I7SP_QLEk` zKO=-MLI>@>p~o0Wi^!Uh^!G}&?QOH~*PZZ!?MUgs+(`MVX7fj`KYfgNlI{`Ca1>}+ z(s+(E#;Lb1^`{!=ZCfyNU;7JFGnsn=wGG;Qfss;YUpu9W2OkdG72Lvu;lr-}k~-mK z-$D;N@lTQ<zrJ;(>(norHM;<QeCWgMt4SX<sj?hB<a^y+pO1IFCceFU2|}(T_Nnbh zwaqO<z3<P5t8gZOE)0kZNWw;7yS`S>m0ju_u^|Dvfok7&b|r3fCV6q^XIb%>v6NCD zAn-a?b8+khXQlWn9x0=vdO+jJ#+E`T<m_3;%duElCK?6G*VBQ2>e|tK5Z#Sd(nQ?- zsmUXi)?ZU!Gt^potZH!IgO8wa$`I4B#q4C<-kM}MAQw|~AcwfP9W5zmA?wpQT3n$o zGN)Zs+z`_-!|i-QU?Hch&20jHn*bW`aNhHbuoarTGHV*-9KDrl+Wr<cxu_*x_Sru^ zoQ|8xU1MC*R3P>I-&+*3$X!d%P?+<YRmUYLYEoR^usM6_U@P{H8fnAnDS2|#vxn?K zQ`XoS!4S(^o|V2E096R7jZ4G(wl}Q~f39=q*GDgO`Ubv$4F~X=UgdT&4@?!=F4W*D zZNXLI>0pwWU(@sb5rU~*oF95>;&glJuWlF1_Y`&^cCtR5%^L(qbyr>_aN~?zegBxr z8pPex?=x-mvx+HvTj3v-?kRnzG_@|k{^_cZ+vGos){(vf;xuX9d@?T1MC=f*^}OQ? zq#s0YTW}UpXCVB*g&WMYu%z$oQ`Q>EwQiz)+7sEK-Qk=~kHRLQH+DeW5>pSp_f8kn z20q*}b}+t>e_Uv)Bi_1^uA)0A{Av&J_p0<C>FX`+va}BfvLfvdJg8Cn)ue7(K#Y`% z{zA6;b7M=JWdq7jGQ2-Lgj|hj#O6e}Qgig=_R{{_kR&IOrhPO-T6bwIcnT;x``}WJ z^l(A#JW~O3E3r;>lgSKgbKrFq^8G$RO%hggE$K&x?KDgQ^9jWxe_fS$7*T4aK|U&& zL(@K;j2T><Sp}e7we>}XxFT#QPG;@&ZQBRVq=m!CKCW~Q6pTSzcY!&PItXX9%397A ziEypFx-7FFtLh*8@CR6YEXxB*p$aM#%}YDB$Qvn_T)7p91YCvzbX+O+6*?cF3rgW~ z0Dz#{4H;`X9m9_4k@EVSJ$`rH)tEe&b*Te;O-iNJD-2*ZZ0!u3{AYSPgs%Pa&vTvm z@<X+$lHK~7HPtlJC6)zKY|euYlLs#@l+X%$fec`l#3VIlg8J+s0iZj<*SlsLj%&|u zm#5mywO06yCO;F3ZxVRJT@iG%Y%CI4W!Gg#yNljaQ@~syiMly6X+3*kJNm8q7(D&$ z|6=bwqnd2Du2EEqfQTSXT9n?AuC$0q6A%FbsS)W$KtP&Aq97o>2}q4}>C!uhbm?7s z2}lhj)Bs65H}1XP{rG(6eEU6Pyg%O``EietK|-$UTGv{0uDRv_9~stDAT8`-S5~_4 z7GY`Sfuk!|qt0V|5bOecp~Uau26Le{)kJWK^;jIMW&C6`hd<}gF!-j=t&&n`iq2K6 zujFGS;@RhOkCd+yU4BE=$p0tQV=3Uy(kv*K_xYOuKOz)TksBncNbNhavy>ei-@j*2 ziBb6Q=E-ddp%J22PNo4a5j8E_f`{<7tF7*fNcZPU>N&ey;iJpq<$1)QyMkSck}zqk zDW>O6^$^Th9<6O7nripjfkn8l_Bok>C`+CO(YX(Pm(MM{QG>2xebmvf69V=_gKdJe zt1HUi^cD{@75Q-_xPD@os^zUM%Dh(1l4JFNH734JVpI@0Fr71Ni%&b?XR@B&V21hs zNW2T@kvahVQK49{o!-MbfkS^0QA$x?u$K*QEJDq;r{oFGxD_frNoCvB<9&`I1Mznw zBQp8)l49y?<C0!DFcRco9DtN|77fE{b3c|+kDq@yk`w#R^oP}TvJQ1)npyHyC)AHy z?Y<AZIFUx3z%b&+_2@_Fk2n1EM%I$rw7JfG+~eXlHda2My1E5#3@n-9!YICF7IJuT z_cIZ-zyl(H-I}<86lPg8Y7?Z%^_tcyAAh2C41ZSP>9sf7$<v34-N<6D>42&+Ix7o| zen80E*upLV%o_>EDCawo>;)#f1l9`Xg1Z0?S~p%6{fp?eQ7p_9U)yvYriwn852&CL zng4dk{LYbTCR%I4$n`Fgis?h)vyg?TACWGsq^zr3RFFeC{KrcEBvbVRZ6UG#9?iT- zwGk9eFWh7hJ+PH<Du#7MiQ1Jnj;D!VW7JP_;OIJt;0k8-xoL?q=!$PB*%o`z26pcT zar(A`i4P*LdhO0H6&E~5+q1KaOJ&8JCt1Phg_N%D2+4((U%n7v;oZ5;+ok}>!l+wx znC*Sp)ME9TM%>kfGa`4sZ%4>i9!0@2XC~5rKrQHow-!e#21JI3Cy8IQkkoh5**B2f zdqnZ+@|#NrRFrMZ+S$qNF1HOO?*G`GLHDY!<yKynaA>mVR1wg9=PlwDv}LzgixWe$ zXq1gghBkuq;<rzrYdcS%-q|1eH)5W@U~!Hq{meyO-^s+gg23|Ax8<CEHB400YtQc@ zd)hnxiEzia@&piY{egZ@w1KKhTD2ia($K|5&9C>RsMPKzZQOPw-(^=9B{sHk@Zhns zS0j0QBSIqV(YLFs^;$_7`~cSje**b0A{R-3soCcE5L0!6-*Q<kV=9_K5{NsR=1V>{ z+eT6t!$4S#94{TyI{o}^u8D~yuIM4&8s{1&5tgR{{G8XnaJhsW&Hpu(%y^lzyp>qQ z#-BA11BMPvcD939Sz2Xt{pR`=lr<etP60E4*T*MFu9@959Qg2kl1<%LBFyNA$>liq zfb{h#F6~;$Q*~j3(y&6l&zBYb^8c(N{(O>kXRa1J4Pt81=yv)F02ZUoht%K`Nh2jQ zF$^hy_miKWJ6`Q(uoVVS&tF70S*@I2d3Ffe{Xqic%Ic4(n#BBfXob-;RK2se{y)|_ zXYXrG^pu&FdoWjnRIJ1<o?gZJ>kKv6AgQUael}I(QtCypcPS`uo61^eMX|Ip*lE?l z4UH}6LF*r1uB2adO7u{7qye%d*Zdw#A;sq?MR^?FzMbeA(|UDAtf!AS{i3SJaUzqI zhq`5IWhIlgg8pq6{@DkzKk%Fw>i7E~@^waLfcbDn?f1zJY4*9fF5Mb^WqrW==>k_8 z5l=HyvwdWQA{Raf=WMwE4w5$VWM->uF_-=>rRbaP=10{VjJwX`L3$con@sYa?g@|t z+k>w`l&zNVN>3`@eo2tc$vBGcXzX=hOu@@i6>O{chQcmjxzW`N2B9;LXQd04SU%(G z8%=yXjV4>fz9#F$F{r9{+k(B{6On$df!fZef5?`dLls5_z^$pLl<#3hrSld*?{&Lv zGB+4)SDYCb9E5hx7wQSEed@BZQDHr=o3I_#R<cgAin@IYo?1u2!4Z-P?~3oMaB7Q@ zRmX%3uTDEbJDQ{jy&y7QkqtL&QtQLyRug>ptcyGJ`SA2iE#Y=i*B!GX>zBe~)$Guf zAI(o{!^gWD;I>r&`}4TYyj3Iei1IB0%XT?Iy69$Tk+!R9ABf4=EA4dgD8g=nzzk(% z`1x&n@#XAYDY34@_QZ!}x4^#QGMwjcx6s2|EcgIOQHV+281oFk$J)j%e9SHGmS0d< zp6uF7(~rOF?Gp9aB{~VOigw;|Je6N#Hal$Mu4%?_qk3&6+;1n1S%T;MZk<PgcPbF^ zO1nDrgcbsIk|&~t{Z>uo`xwJ%{V(2Kzlf@aykCPi;~Yxtj#vk%be|Qiy#g4^7G(mh z^0U%uK!;Azm2P;0KBME)C8CQp3)Dx@UZ5e(@4ZUSq!c1Zo?*B)M$Ndy`P<vZ;A<hb zBH%j<CE!ZD|3PPp@J@Ke=kx(l`qY_{$Rpz`aO4;YXl{o;Mffw{(HvmgIEj2OLeuX! z#{PZi13UR+|DJ)0ZwX~(uOw{b?^R51%j;<4%Yb6I`F#^l<uHyc`$q#x;LFH9>UObw z8?p8M-G;C{{3;dGg_I)SHd9HI^Hp<!taiGtd{2Q|&`q)$vh)%KbT&}yo?p*YL%$Bl ziL||`Wf&iR#T6XfrBx5FXp7x6|C8@}{2(Q5$j+Rp2B-HQ$rRl)@KNTBnD`Iu%o)vL z*;^m{hsIA9>{v2cZ7{Zt#FnD>v=~Wm$rnBA0Mr?BOl7nA*L#Dgs?5%R6{xy6qc%T} zj&cB_qbcX*kHJsHoOb7TjuShiS94)ctD67dfhNCYIAk4)<z0Lf8fv%VyftuY-@4$) z)44d`4p`f$l^Ilj8GEA7RTWi2Nr#C{QjdC3_@?e{HT06zzH_??Jiu2T#yhs}c)_r$ zaYSC(O6Uq?swPSDqidK)T4@(u8SBj!GSUWsn51q2Pp&Rm@6Kam?*&Ma2irB3MnL7_ zt;SL_42)UkRGw`R=)BYxt6NGaK^L*IJ|(4%y$LZ26Ny4)+I$8=>fw)IpYw?x-c)ea z`ks=OFS4u`hTPW9iR{=cxkMO(l<T|~nffjax#QX9YVo5$Gj}$F_Tdi2U>B+Dh47xV zyD=)}@F`7T22}_f^GMrN`*hE)_bZ#i7yWKOqzd^(e1oJ;)Bkq2{k?1&JH=aKue~;$ zQuR<<=4~1HQLv=erfn>*f_Z3$^-+t_k#%|LmOn@9`jvAfL&$fpCy?!~jB~!c!zme# zCK{qQY%^Z*#yVW3v2sd-BJjy&#i2{Xp4$h9h(D6E$8|^VC6gO(wL0In+v9xh?R3kK z7+@klC_QpBGGP`{;Om%1h&Uj=P=75TqxO`p|NM5$$=S*Pe6(~iauaeFcN@!wE?JZx zF~?Hg3DT~s3GIqs?iOy_VOOT#<MDiw{f1kKDC*XN6@aJxiJ$+U%rP%T$;&=K<mIlx z_8$;7DMf&AE4KhxZ$XSvhtW+K6TT1z<$X`rnzQ+0)A8q(`xPd$S!MT(#$d<v)RzA1 zkkUUWKrfjNxIcnS@ismL&Zy}Ph3ERS%AC9qGxO%!788rPrW?x@MG=#gnq|Fu|3%WP z_7v=Ux2&ZDwFpA1tZyt*XA+Rrwh{zJiYm=zC)ya}*PVSRbjVfx=A7#mBAW$YQ|V!J zwm|6V4iBAtFU6D9Zxek&nLWCPJ)D8J@FQhiO$ec6HJg$`MYgr(%ZdzG!-<x;%T&<Z zsd(p9Zf~2oehUrO9OEAc@<ca*J|me55J1Z(!DC&-jP|U7CGxW6a;1xigO!&%fH#)H z`EGq4(BDNE0wK>E_oOnexy(KMJb~s&Q`?0&Xd{PI7syPLj&>$}4j%yn+Uwiva&nQI zjkot%@Uo^X;R56)8-hrFGw-1WD0>^xuB&&)P3_m~|6y~Ef}f4m!q2Hu-539<hWteY z+)y0Y(8a?NAEaoIhxmrY)f$gf6l%0v@uMksbd*ifEZk2iwV)MwE*UvbhHW-Q^S&>{ z=`T+BDX6v|eLZ3roaK-?@_P`G9%OsLHBE^ui4gT?;K0Bcao6#w4elN%LBS0YmI|Y} z;$}+3hi>XRo<7d}DW|18#UdUR8NJUIufj%WBYVg24Nc&S4dpIb<#5;!s`*S5UXTKL z*o@DC8N8^oO(;<>>-WfRO3pPsE`H5;rJ?qO8P7M;Y)3r_(fpw8xG3lO#4R*YbUT4? zoTR3IY*dN$pbl)Jsg`b{A9*h6^}a=ulDhoD!7kE_AbG2@0yIMrZiLao4jihFfE^@| zJt&{0mGS&KmGKyYc~iBZB#J*?A&}2(=Zy%<?MGw^)Ve1(%tUcq%sMzOu;bo9?4hWj zC!pem_s#-*(*tb#-+C43`THui`s+0A%2$I)8myphXvV|HMkt+FNud0_gsRdA8RJBT zC9V_s%XFvAco_B+J<$ec#DP9-f~XEY?xQ@FnyV)&9F~91*<HNvbZmBBnN(Gv6|3G# z3s!_Xqo{Qt!OWsz`{i}QQ0-IsRVxuEAqYvtf^0jN72yKJ!}ohL?fyIs>>|4SnGBbO zLp&<GUs?{irS&v4D$DI+7(q%uEH%j_<pZsLDledY!N@HjP;yHM#(8XHhsEWl#<AkN z$;qjTQ@nvz6vWho;E$p7x`XF^!hSZ{k}JmM5jR!f53*YOD(h4qnn)jKM!OcD>tM15 zy?~yW{5^C)dm6j}vedI}<fqrXa`|ZPS4gGzRVDX|mmvFhTs3TgTRsLV1BH+ofsb4V zVU>Ge*_S}Os7@Q3s8;m|eDNw8tNA#FDSpzfI)L^jy@AypD<9DlBA|=6uZiDx3}DNB z<*=^_AanbqrzRGCbfK4%9bJT{H7Lo<vvXqQ!&rH>Cg#Tx0E1HE=(5@r>GtAWSBPoP zE&{vB4-PJ|8G%Wmt6N?veL=HFT4rs>2>%=(Z08CoB%i;by%Pq%diBB0qlCK7t^7&{ z9c4`Hp>y>_B_L9^I5)DD8MEM!^g)l#petmU-^9D;6(31A?*#p+AQC=VvJlxuEpG1f zEnat4BgSd#(T^DhaN7WB-zpyct-eSR`PD>wwm&`F#Kd^kf^9-#deU1@OQYY~Jxn5H zuUo48Zzp<O-+-kqR66tS&Csyaf&Kv&c#G`IyoR30AYXx`$y$Dg!h1Y-b(|H6!al(# zcoYv7#BdDwFN)_Zq*nboM(1V}HNAY{)zez7^^*(0-=0<%JXHH5q5rc1DW|dIG2whX zL#$_Lxgs4l{Z!Jc2O#!57bDrBe)D&*38YD1HW>EuBIZyRBslJ05d&_ltv7dsbl(us zWBrha()i3z_0pk>3<+fC)prWRv=o%Db&ySvO*Omz87KZk@HkP1Da~(mC?7bXHhfjR z<Ot*k7>IE+7sfX`$ID{|e_$jtp}ZE20$P;jH%@`EU0Vg{&P7<&oN#pn(g;IRf4>xB z(cD8WmuYp0?>xU?bo^W^?<ENc(0KA!0!S+Klb63n`A9rV@b{V+)z0|Uz^7_A)YrB1 zBSh9-v<~}g(^p0YSe&0|aL>ZsACt^VXfxq*q)%P&y!*N3&E@<SuIa|A9Wti}3e^pE ziv{p&UdpEE@R>k9_afO%9dDu;E7Olj3Jcc2aK;EVj_ki5i2w606}8hZmsOb6Ndwz7 zPXe8IWEs#Zlb=P-c{5N(m-`uGY)>O@(Z@Y7BNaLAUktlMM7{~ppZHI`W`paaPAG8A zLtVd>;HCMBofZJn2?z9QI)ReLMMVctxgXA3S@lAtjCY3WBsl8%?3bTgs?U(VR!j3b zJ=BA+;z-dYt-%KuuVZ-MJx7`fq6;09T;J$ib!qPY@OF=6hN8eKA5rk<0{;2*jNUL9 zT$8Au%QL;<d(kW5&<2ZI)Hc}fL0o($6VoBz9;+EPpPBQ5O}lCL9C(f>V!=r56JY>R zu@eC+qS;sQpcHxoud<2hALk}uOykYouI2ZwQTa|%UvU7Tqml>CvR9hl+3Pzbi`z(( z*q^OKj-vKO_9+Eq4**r)?!Xr6^aj>yVL93>v(2@$#H&!W+oc@O(8)<`DoE9SdhIc3 zCq-UtJ?CLGK4RZF)JPwgw5zY2>6P8##PCoh?bDsF;*P|fB4j7+#4;EWU(17?KQgmF z(|%*uvBs@_gpFowY&z}`+p`ea-W)XHs=NfJ-0&!%gm;d<kUY#~qnNqJ%(;0~CKu8_ z>?;g2L@!*ipA(%ZWKfj<?9TFj(5m##DO?OP^e001P!o_2^}9(F2914k!wpw7oV2Hu z5XUyyS)miO@t*+&Pt9XxE2P2$kFDZpGcllhF1l7~bM6Wjb@~(=WIQ4qbQoW5$GuYH zl{=IkG1-A>i_I=$ni#7tmi^fbL1ILMEX|{}XkIg1Bf`^`xzAs5kn!LU^zM;Ky=v9t z^6d+6OlIY+yxXELvx9(UjD(>7d-I#yDS$cjZ~ymu9{-z7a^JxA&TOz3=yQXWh<9_> zAaoAP=AHRdS+r*TTsAu8HzR1de_Y;eKi7Y=-IW|GP5lm32|~%`8}}eFyg@KIM?rDQ zHtF%h>5n@%C++%UEYzuZ2fIjofq`fLZ=r&g5(pLE<m{$t*Sc8)IMa*LuYHzN(@)Fh z>$lji*n$-;X~VyPz8nR~i)CTq->R95LyOG1*(-~L@~dsV;_k<PM|s+a40V`DQiL(a zs2}hFh7l!`EBn^t$?b=jj-HyYgF1)Vw^p<`#E;o-G40>_*~r=9(M%06<W76vd_{uY zsl<<^d#<+gU5_vr@(Tn;_LfB{mAt70{g7CknM&@<#_kfPb%f)plePAK8tm`IW#}L5 zt_x`6G-eX(qTu!Akmx-)$_P`gggr(U@#qk*C!C+ws)jQ0#LJsobW0`@sb;^w;}xzk zqe***_rjsf!cJhNC>b!72oZ1)A-X@yF+8{8mKrMrZIqa~@!cO~aSa`L=#Hg92c8If zK44_-sHPTs#+)Qsa)CXEX;?BsVr^P8qHhBH;7?@i0WF~Zw!C{;+%0+RKfzT}zk7Z* zewz1E(?O{he~uquk$VuWK_^iL@Xkk>E=J6B2(BI<2vb=k#ilQnT!Sf%7Zz1+7PuVV zcE5%UDCTaAOIshxx_(X3pkL9k*vGb6H*0)f<Dk|yO^Lg(N>Q0K_<N~{hF-R-5?M-^ z(JEuxzz@$m&11z<Isr|*e&5CyCnvPWuGfftHBBv@QH^Lnx2UZ8_;TUc$kqx}@=%S< zUBu?rrqw>&6q}BoZ}kw(gEsLE3l$C8!K%Ob&3#X=7E|!^)3Jmk!Yg!8@I0K3E!G@u z$WofS@j#fjDMH$`PqSC<9s}lFBL{3@nVgHviQbhZU>KP44`<W%$Sd^9y;D&&(8pcV zR2xNYpj!D3)ZYGj6%AO5w*d9StuZ0HSYr(34Yjcn;Td_$z-x|33PXC%JdzYYCD&V@ zADOwA!#T`0#*TdHe0??$r9kG-h~5_FY$wpa-L5=GG1Gh~HQs}g^&k^NclCc|Wq9|6 zmotZaTT&+iUd<aIJ@rhHeZ0~p@|=-AdaGX@v_H(0;dv6zJJ)Rdf4jyZ4L+S{e#=ad zpP`}#mJ#ERENR#F*!hNFP-IgK&oFb?JFW}*;Vi__eGb-OE)gvMwaxOf8Xyho9SHPf z1d#y|tVp&~*9~+i^PX#1^jZzOZd{SI)drCq&_So-yZ^T%ij6+CUz1J(cZTa2j*y>9 zH#$1zrBief2fz|tqAqJiOCXN&^YVD}OXCGZ#Pk}c?6w<Sn)tBp3m}#rXTX}{^7^Zp zs!xUDkSUcHn7rEpg&XR6-kj;hYKungY@iMVRfEh@XmX5`JC*dDW}zx7H11A$Sitoq z151mye^1kZ-qL&h1p97wH%!pt954;V&w?M#9%ShZrK@}N^ZW2PcL;Y)H9PE_E|Ko( zkBLtuJ=8yxJLb`0I7jXC-qO=vX&pYSR|8J(aiVC%j@q33XEzUx{z%kHzB)4%BFMn@ zl&7h5SJGH9SDH#6QrJ$~GG5^)zRb+=DdHXI{`i#yK|M7F{?GkVjLIjpbyX3&<4}$A zl>rvj(+8I)h*@d6ZYe-pe9sdG6j`w((4v-48!}0;P`6gDNDmqh6(`nvZ>|$X|CIiT z^kltcRPY!(-D(mS-jr$QVL|yh#{Q!UZ*L5r4cN0r%K49PSBOv5H0edb!t*??V-oxu zZUfaO)f`r{J>CJH^NhUA9&#P6WN64Fu<=#=%XL3-!9C!1CXg>nsW3;rYp^`@aj>{k zbrOL1hzWR_c{C&&1eCV&<IP%s>sD?b1lpU8*Ii6!9vG@P0AU%?umxmrYf$yO8KGsi z?))RkN0I(GpfQ^G=b&(|2F`J5vjE%DT|MGxIC5*tCN77I9jl^<-$X?Q0W;{BaQxM~ z4b-2eA8YkgX?Bo8yUAXUbeU+e*DF!3k$C)pM*Knj-pe%D{&+Wz55@xm`hbWW00j<7 zp%<l5912zGMQm&T)h<MR)+YR`JX;J$ic5+WXORn-Nb#b>FQRh|jNkyFgWFQxPCHr6 zwe>MKh#c5xZ{}UGn@YE0GY-CedyOpb&(QhjQzP(04{VDJ{`|QC8JA3^^3iA<Jb3)> z&?LN}DnX1r^3s~_DE?72B-la(YmQkx)WeL8*Du(Ok|t?p7nj>mPYJJ9TE#_dC`2;X ze4U9Ak)i62_J>r=|9{flk2v+fHi_f8%<<!Wp!emzBh8g$VcXhiartwNqeJhny-bzn zuCeKVap_?q-D+LbvpPaIyu#=`4E)*a=;7ct`%21;LJ@FwG13j<w8QEgu4YZ%mN$%< z5OI$uP<OHZ8tm77T5s=aXLPXiz#CXo&Nz|3HG@M%+$*#c^RqGESNA#>!NCxE-zyu8 z48Dxx?qF&&u6JgWtohyrEqjjHq~gfj-bDIs21qq8iu&1G-f^K4z$~d^^Mwxn<Z<UZ zq{NqJ$d?v77>Mx*&4G$!K5INo;dKXX)wdbL&kKeGEs||b6Q@1%lDNxzyLJ8T1mW1e z3(r^X(}Hgkl0;_Nr5}g$qGnI;)O?#;k46}LxeLcEL8lc-abEZ$+-uC$JAsECua#Rp z8KZf!IoHV@?btGDes&+m1xwfQ7?b`YN_@j~yWQ7+tq$@HK~>fq^wL~V)A}^0M@!RH zG0jXfWb@BdI_TQ-bS(3?uoCY_vVbH8C}`Mk0)AqnfNPBCA9?8Gx*Y%^tXD_+x%QT~ zEqgmD8az+S=hw@Yl6u)+&F%OfTmJ{nv?oAQ?|)mO!i}6KH^%O@n5_DXPFu_Ny*sqk zvg>hp7!Y-Nh2@e$yZL{te*h7NoR|z_CO8>F=VfP%c79(8qVx)!EplfQSwt0cIQ0iz zBdhz;DtP&tI;X$IDNv0TECA*rdh%+RR|C3rjb+g`BbQvb4zJYha>ZZ27tT@5-+FyR z^$zEL!eKC$484j>p)8yR=t(QDoGGvfo08+Q*EWssmJuHvgYJ+STMuE71-d&A!6*4j z*vmMcO)kRKeR#4cB6(=~KIK)|l}&()G*BEH&*T@@SBsPt&z5U92W2Y)jJMw#7~}Aw z^Ol^pl?eiLJz`dPY2Z{xGUV%Pnu4FywD1-sUxAI2iVH1u?1|YX!A6c11>Cs3<poZ~ zr%X;C?->p#TYwizCP7P`Ax=@yn?Tz+hp$h#QfSlMspT8>mBtIt$;O*C2;_tT2&v+w zkCpaWuRYt;!OMcLosNU+@kwmimM1G&%i-9i^x>6L;p7hY4X3RLmcwP)`1;dZ_OJR- z$v<YojkFr;E1gVce^#b4OC$3&`1E%yrcb%GF9BV7)qZod6rmb}$kT2&aloL4$`NKi zB(H#hEJidhNO*ne%QKBE>*3NvMQkt_TiV_rr~Jtg_?6c|3W+G44`@(E$1e8gF3yAE zDr#%SZR@M5Rb^N#?JXlc)>`>455+LvW>Y5~_w9FLD3|pp>Kn>jaGs7dtR02hhuijh za7)$$?gUqSRL9p}+yP9Ldpj{DBhEjLv}=GQ$WD|@$u*n(af!$s@JvlZ+9Pm?coG^O z2`VGRVuF_1*yYPHLazV`g$L%@U}IsQ3n7Bo=hF>oT1<X1h(&#%FEtZ23(`l&`)5ts zztY5~b?N|auT%6P+NG@&?^HmdcRo?%eRJaHA}sNZJS)uUWBNt3?2tfc02o?TW^6No z;u@4|o}?o5{ltrE40pk8!bWA$)GFcRy06qh9RMLP;}QbhmMioB9kG0#);0%Ef!+`V zvAnu~sjd?@!z;g%9n0{xFFh<|5%;(+&J><ozM`tMki>R7kJr{wmtUz}Vvliw5fu$Z z15H<0PTj$6_xerE$(50+{wUMz2CQquvYa1}$jl958C`>s!(@D(;%%>Q6F`^7gH+Lv zToFBLZ|~XX`{H}|cI3z~j5cAw+_WgcF&y}m%!_owa1W=0Ea+2yVANGrK4LO#^w5h+ zuwmg9E6?kTB@GQ^pKwB0n~dVO3qDLQ3m#lbdnBG{`$VkC*jTe`ZmaF>*RM<Y51|H( zN30*##~f5$%hYllmJXf^2WDA8TP{6aXuBBJQ{gO_=CR!`F;(;*L5T_QSsVZUnaBxH z-y$%pWcb%WDx0qNx127t82EYXs{(KF3iY^Ljb5oaHYn2(5WN2=C#U#hHn&yXf0ls7 zo$=v+Gs*Jt{3BRG6meI_Urw`mb_|<+*R>ms%amg)lNngMEE`c-$UhKse>T|FNHOF8 z`dMXX3bNmy<u*qT41}ht9*5wWMw|b7k3Plv04*44(Ikz%D_qJvYVoTDrN664dj4H0 zyE?qa&;Orty<da>YuoidVcSIm^amMZ=7VvN0-QKL3Pvubt+{kL*V*&)^{45J(6`X1 zF;;~<$lkcUuQ&Noog0zgL<0!du%hUR)_F?YjVqy==z|X)(N%*b5|K&9%bo1jyYbNj z9#)X(=86mLK$=JL3acR9aHk?crPNfJcXkG;A8|!uX7*(##%E#^(q0k<zpO}#mEGxt zT&=8kWYnxQ6#V%`Vy27qo-~F!&B3(nI&bY);?O+b$L-`!lUO+<)DoRZpakWZ+rw)^ z%`gm!f&wlGth(gB-{!5&CgT-nAb_rYYffpNRP1R-R88RMDE0BV&K0$V^8Aa*V`Jn| zHaAX%&QISjpHtL#d8d&z-PyGo-h)^hPUC!;c6c#>PS<RO#BB~}&4`qXJUIn4q<7B@ z<f!1Csh#-OK;L4zVKf%hW&Yp~uRS*)T>nLu^9pjzd>v4&%KUanmCAmQ=4XEQ%$tuM zor?;`WVRC+5oayIzSjo0tAk;N>rG3flP+{uHJ6oHg~!;vJ*ki+cUfIs6*o(|cix}8 zABQh|s$+|5nP*6VXPLIA-I;!#zzNde0*5<jL){Qpc`|LrevFPcKOG2bq8Xa+@TI~A zyTg}4?ZbPk2Jso=8s@4$)tz8R4y^kR*WM18*OolNC&KL&jF612c&pYX@n~xR_UbE* zd67=FQW%q8SeQ>l%Sl!C<lOhPEadhS?m3o5)&X4U8S%1Dbh$hYX;w+m?AaZG=Th1y zm1=iX+0%g3iRF>p*NnCG?H*F0|L#dbr+er3>mR=*fAi)B98UrGEH+31$(ufWV)RVd z<p6q%3mE;YarY{OK^~e9lf}L+#LlY^0qO#qp#?@gWACMD_qv-B;E%ePmCjmBMQk<Q zaFd@Sw}+d_d`t7Yx$Bsud8h^Tkf;cErGrh3DU+rK??**DIbV;X=Sc@_)U9dk=yt@R zXJAFWFwY?CF@rQ_S_NSqonNwU;f@|z;t9YQwyI$!f~tjcGIP4L^sIXQ>{lkabRuLp z{Uip%Xj<qu$Feoo-us0fMd_*#zY&LW-pNR$E7kd@gL82fy^Xxz#RY$zPk>V+9k3s0 zosX6PF>&abRU<zT8oB0o+5sC`hBL25P1~1}f1MWf+bf<rme6DiY?;0@Cqz4f(k^_W z_slJx6Ag~4OQoXIH4X!`ctrf+LiSw|8$~y6oV(6&-Fm?jne^J16ZQ%_nTO3hOsg1w zS<uPs>3<Lk6~4*I_Gaoq6U?6#B>Qj@+|EAeN@8}Sw-;*oX!!Z5=+cu@Bh(nWZ0Pv$ zK1=P_Bbp8EUqodTxH)t(i|CZ6ntk(1WCZHX(FHx-$Tp)jpljx~RnXx9)={XJp7Gnn zyV3=sFB@&KSff?ymX~lw!Z161U9iR}B;?7cIxvq%FtVZwz98Uc+UgwL0$Do#MHCIp zyajg0tKVLcX28Tb@G_O?DF(jQUhG#3a9Qv!X2?H&G!s4SU|OdVFxB}VPLYCptDSIG zUv8KkHXYoeGr6>_AU>iaB88xhu7BF*(e?DX^pCNKb{m#uc%6Zwm1aA<d;%r7Aj|`p z)_}3iMc7c?((q#Lk&>k6X5LnA-WrleVsa_4&uiz_>r)I<QYZaOng!~>_cjqgmyrKF zp^4{gAz-Lee!`#(h)w>6m(*H@f1AmrXchQ!c&QF+OPGE>0Dm}!T~obd)AjWU*^nX- zG@^WfvZM`Iv|QVakzL7mqcMPXmoKAC=xpK6UaJGRaG-p7vIp!06+m{4IA%^Dv;cBs z)sQtojs1OE;N9g+x+=b2K+=7s2^e5APbUQq0D{Fq9!zQhLCsdz-{^p-Fqd9Re(El8 zx9fWkZ2_OVp$C^GiK>i5p03&`o=WJ`8+GFSqhfeFX!j!gWRsc@Sc!=MdN_#jSR?qk z=mwP~+fns_Y2MoEj|m4h(hJdPEpLxXh+@sK*{8g?N5f4lUb$_q*o2m(#cHplg>vtQ z@^g?x=6X3LF0I;^hI|{Z)dh?AimgY)QytWh5ox)bXTF<kH~u+)`<&TPAbc6HCT#$I ziL>wtB-&kP1)F#CzJy8V0$g<T9|1HFm~lXK_Hvuwlcqi;1L2tgRih8V7D$So0N4re z6a9{!|K10y4LZQ^@Jv8W0Q@_E{WNe=5CkPPLcQ{ts`|HQXyPCcfj*vDGM_(t0iO=< z5+zInTRS~z4Vs4T#Q6b8V8z+VV*E;geE!$bDux<hA_F89d{od?<pq<IP<Bq}hhZVR zM9!LK=q=o28%+$ej(|k%p?}2{?Uxlqzx|=%y%WEPUi>1$7XZh6eh&z4GXOL7Y$5`8 z3A+L`5r^txa#DFd);&+78w(FXef)0wHc2Hy^?UI+4^P)M`oi(xW18OB@(nKpj*hW4 zG!Mr<(r_m@vBKPzwr`ze)b$<`6WfC;hy+S4S8Q-G3<QJ}3JG`@ShuSAjt=xkm>nqm z%fQ53Q#8J4zj6$y8sOKazjOzVQ)Vj$PW|L}JLU)7$0`%ZNAfBlv<*6$b}My*?cHp_ zRkgungh(k(ljqBb`e2>flT+ZVk-acdSb`su02HYgd|&J=asePx)V~bti$LMzTW5jG z`ew#&b2L7pVxMonh<3>#Cz~>aKq#<we|=OzgA+D1X934@UE>e`wbV$0DzJV}Fu?L^ z11BKzm^l*f-$@9U8Z-plVab78;~#NO5P^}w`5O`HThEqu?a#-5xWoGW&G7aQpYhrq zN?_ZugHP5)34vo7SWwRaqyE1~+5i_6>k04%;37I$Xg;|)p=9>wqsiF%8Xu4l7+*R& zxb1^DjZa=lEXk478w@959!C0)XA~;@l<0ej$vK{8Ee=LUZwu}f5GZ68T||Nxei1RN zew3atk~JHMY!JDkeFeOIEN-;{1y;yLTXPFc<12-wi5Rk6+6=!>tT4Q592KPy&$M?y z-+20Bt)PG~@T#$6b|8E1@my{x?fb_BazVpV!_)|qk||y1lfmWY1q6ZL(Qct{KFAi< zy@)sQvNGGRt}{s0K?-Uf8_gUX1Gxt=azcw;0Fw}?>EfL`1p&g<L{<?ECs53j0;6QD zvkgqN3WZ8E*!j^Hme#S8=tD4zMs9I}SVL_^{3N%80Mlc~<B+_SYZ}NRUm%%lQGyB7 zskP6_v<>F`IKcBra9Zt{8Q0&N|6uX3Bp3cfL9GYv87|M$xjGC}<Er<`pSf51cE7LQ zw-VUBBn;@?S+5J<=J+TRC1*`cg^tKyle=M^s!VE5D}}5K_gZJSUz412VGFU<z{ut7 z-jb%*va|cOO3Nib%rnB^^Kr`9iDAHz2KcwuCz3W7k3wM5eTXfTg<K^W*6{F3&57*{ zB2Vh%hH;;XHXD<-o4%GH0^N*zYY9yM07{av!M{3m=V#(%Hk$P<a?c`*G7xj$oV{)@ z16NeO&Ity1Kd_g*!OPEL2@OVP<?tHxeyRe=mH!%u^oRTMSy}@G_5Z@895j)4eSYuy z-xv1T_5m!3t8s6DZSm^&cbQOFbUr@ULfCIU5i9t8Ohj_eEDZi}*`0kA;I{pDF%E>S zNP=o2e6t(8Z}|`7P~CrC6m&$uk=4QO`4gIezdl$19KpX7mWCgiB>A8JBiATN@g)ZK zdkb>llmc)<t|`eZSOvWW@80y<BYX=5PNRsRJ&g94d^<Apb4Ey;rP)yceEEXoK?3mq zOPvK;Bf=f&d1Ls#m0{?DZ^6F~6XMs<|5juF1J&3b1Vwpz4aSSlYA|0!uwgq+Eru$A z3?n_F^&uL+@p$IR{qi;w)j&fk;!h3Q*HjHXZp&MBoH_LnH{;WAZh7$M*i&=Ne26<+ zz2amcHc)fguPMzsI=-{Y1(Nwv&%in^mXdRzi4iA=rfxxyKE_^HERG}%&Uk!bW%?_* zU36)kvGr36W5|V<5t{6)L{@|L8QJw49YEZ^4q&dp&BpEtIyeIV!+ZR%1=8OW)Zckd zHgJ?Os89Cb_)A90X8X;%l1jgbES!Ib^0Tu<Tz3{)!vrxtONP1l;8X9;&$Dd7jKTY0 zu}GGuF@grXYc%DM3Mp*zsry>BA{+h_#NthbW5N13^E<r~hwG%%{u@nq!0(Gb?^s2$ zWL@1Fm@26MEab@3Sob7qx?{JiGb7`CFPuma<94X1fz!n#x3deTx>Re`HM&jE&dyE0 z0bfA@k#e5ZSLU(uDL;aBQY+6BsUSefBB|e1Gio*cB6BD`vQM$MrsM)X07fqy*@|Gq zo@|IWPgTb!x#wB>JuQE+TXs?)pYB_lH0)R2oWxVUn#WX}g!n9JM1!GR;(gb|==BuY zJ}1%0U;?`oz0B`z9dnmn@7Bam4}}+G6qKw)>c{lpg>(=Z#KiPM_Ga*t$9c{6H>SW- zyYWv~;D9fzkCCju51W3$#d-~d*AV0uV1`?XN8pUz*}@}3uUFK52zY$Jlv8$1fh<v6 z$QZmcG4y_&Ln!)-&68`!50uE#$!a8%psty>dLEaK>Z))6Ghcv8_QU+a!C#i~pS4*< z<X6JojenITKb>IEg=qzId9Y`RL)5dFD|uGj%lxiw`{y|pyA^6aiM$+Z#XYEGoTq9q zwpLZ?2+C85G(Q{`Jt$r(g=sh+HecR|uNg?SabX9~g$GF0WS1Tzft|WDwo;4!*__d} z65oNz3A=h^xWYk9t@JVYBo>lQf2<F@Who`qsAIhIQ;?1eHnD|pw^?teWb0**QPXI# zWkuC{o1dxUfKnp<DG^Q^@TXK$q#>*`Y(`@JGoCf^pc&ueZm0LhPel}D%}tv0@!P2X ztO-D>K285f)JuMyR`$&+!;~gI^zu!IYQ1M3X{zP2ChNPwQJwDcA^pKu&nuS;h!L^h zO`0wAkd=JanF>gnZ3bEg0@GN~23y@O?pY4#=^2e{JklR8b$|InoU?lu7zg=6)+oc! zskCrik$rgEz0qTrg_81CZ#ARLWzG;Tw#kog$PP-vVD6`{aO~*OsxMdr5uBlQ^!Q3q zG>Vo)>xsV$vv)wS+}*Gzw2xilV`B${AJB~@mmUEq#9yn%rl)96R12D=T~Eys{@KFI zV@ZpsuBi0!5q#n?v;C+~J>QAZP+f6RHZ+Z1wm8(=`LnSZQ<7k^v7x;+M9kah?xV=` zf?S52Vu~yq#_#<dA%YTy<NJ=J)2O-?d~vFCig&de7tQL3Ta+ND@`I3p;R8oOvodWp zmB#8(VXppel#Ox5bNAMC0hcW(Wk;Gk8s6GSk5fiE8qRBcQLgSwjW8dO<5VG8c0DJj ztNG+*u9Kgm$=0TQ2?f^pR1GG8Z7-O!SEL-Zi6Qh$-1gfbt9Gy?=8sXB_g3QM47_%Y zsl+`!r<%?>tAqg<M)mLN_h03MqRz>2GBBJ<$_0R5UjGw*F_J)nn7n+xS}->QQ!Jgv zd$dL}#QOwYU(*}BDzCqipBdA34wCc`=Yr2|c7R`<dyJ!g=VjMAP90d|EbQTbMAg@m zi4dzhei%Xa@T-#ylT2RR{qM|914AXjb9{>ASob9eLncYA#&GfW(tvknaF`VaM%~ez zD$Fsb;rv`Qb@C?=D8j{EjpO1{N;hN7T{in(A7KjG<|~8z6t6<lsIaXz4n_7!-=?QJ zmne-wU)L96x=V3U0r4t#5e>l_!l|nyIvw-G4H9mEE0o0*bi?&JvyH<6fe4S5tHE~9 zeN<RL->S3OA5E@4&3Efl?VJWz9R*iXpU1hQS3~y4`Z{qOGVx;4E~Ulo2c<7wKQwb< zU#f}xLA}_x4Ga-RE^z~N-Tb9#O;&xH-Nu6{CO`hQ```NeBI`d8&?SQ<Vc>HO7clj0 zvexX95$h1`3Qs>M|2uJ%1L@k2xEBxc;&L>x2vaoTT?03Iy7h{eXDh=C2WG`omYa88 z<dgO8s&8r7Dj3hiyo%N5Hz8*eygcjVSvo!hxo$xiOQ_pUhf}wd1WgS@?xRFh16Lna zxj5JkmvBF^jnJ1SD~laHpLG@RNcFvq^+CqJ^~raT_LMb0jC&#M&Zf9Ss?PP~epD+< z+?P9C{NJM<S*4gUkEMzgkZvWSfKaCK$q2j@d3-^WfP<WfK|lSjbx9NO*yjDG<3Q5G zTRQmL#;oZTz!z}Lz$CEzC7Z8cIc)b27`48*-?B+VZ;9lVt1%oi&Z@kogrp$Qx<v+y zfF+>h%{Jk=0+*LYrP5!v$k2NOt47)u8ca*vJ=zuS&1j(fBr#n>T-=d=iixbmCg>*6 zS|Q3NuU>*89AG2ZQ={oua|O^(z?8(5J;$n%BHQ}JNc)AmTW}&OFS4xw3cxAdOPKBn zi%&JqV%GzlSHcg7FvU&0Bo>jl+rz75rWieMHx5J+l_Y4c{*`x|_kHR)y;ZD3#flsa zxxh>PU3nt{d5@jDOA&U*)Ut|(<Q?w?3hTI4U+^p?*4k)2A+UKF7<qAkIjhH3!9P|P zUw5|Z_#5ivf3qBesoWSVjt*p(j5Bx=c0}^j;3>60|F@>FzhWL{v!hMQtx6q9T4x-n zImRvkCVB<YHr0>FQdL!+pH+FD_3EdpuIWv4lUbEZha+l|Mi;q*kxzQKtj}Ll=Ms-n zB6jJsw8~iC|5t7Qr^Vdg5Rj~svy#s!4yKA7TA&V)O?#W;wR8Xw<yiHccotLtt5OZN zY{^LuWHiOry0Ig-Z#`6hSMo(Vrv4_}L5JDQ>%sy&R9?mAM#$b4#Hz~umUYs>_$;7j z(UI`_MdZ<7bx4L@DUL<UoH|K@>?fo&YnNfLcHypSm4S?pKO#L8EA<bt;~bDT@o=j| zZhwObAuFSBf3E0biGB)TW_%AZO}jh%%krk^)=ox;Y^(R@^poTS=jE~NBCVf|7>2D# zz@Q}IFdHKeVFWwid0VC^gBON*%LbLxzgM=TH1^mL63e%ob%YSFPN@Ocn!K05{Bq$5 ze;B<t+eBE&l{T$=vg`J(q{bJ!t|IYfc2T~zOhht0^QE~hj;aLBl5hfdaC-ywp(ATw z%mgECjmEaCw?K%=P4AiB*^yMfR?~9%d&kRpYCnA&bS-p|kr5DbMOJ`vw!;pzGswFC zJSSbB<P$)aZl7+<_0WewH*G9?K_?VW)x;AV^j2QkuAti~eI<}bP~QH*1xay|C=su2 zGrO<}h16mXw~oW6+>9ZMs~Lphc@mfs(gU!~!^ZHt`^%ZMUDC^L*vo5);GZOZFu7pa zWObxzRR3_q^qqBfIR#(wg(XPa{6!cKx`H5#Nu8f8;*jGACq3S_y&e}r*ENTVd`Q&& zl#Z6xh{Zv$y!kiyc?o<l=ZwEJ@zc$B3|!IK(P**Mxd0A`@AyVGz4~5n<KBRd;?Gsb ztmmy!$x5udKl&VD{P^4^0h|IhzzW@Z7&L<P6E-w>>`pDhm*uB1lc8>M-f`tk7e%>< zG;2y~Hq@Q;(@<~eL+74m<^83Q;~?ZJN_!#l?I#D?wyF7Go-hse1n28Yv@)|k!RnT@ z)#x{ctHm>{6W`8?*DKhHsUQSn5Kgh`M(vySm&1+<4f7S}>gR10@;M*q=;c3kXqhZO z<O#uuz6G(uZeu3Ck+qpfYTLZFU!u~~iEeGIXtTC_!-8~)iF})K<<9lDs7flytv)0- z_e;7*5;ICr%9&a9sCFiyUG)}&JKGuy6s^NB$f5!;7kXa-`e4+FlO#=0vnDtC&c^*r zTC!2SFJ_SAWHP*eBq5xBaAE+?0#NsG;wkDY8&$CzMn;3#;Q;}ql)`<jU8XD%9-j?v zKWBe&Q-eMe4Mk1_`rZsz)2=SBA8b&`Ximsms|(qxt(L3WW|R43S&>3&xcI@^&LrAH zrz=2Dex`c#NESdaC4U#me}ms_ad$Cu!04Zry4-M_`c^!%nIbeF@TxAQWVI(JYKXX7 ztbR>C>UN1F)&=9EiJeBb0M0hX+PVDAr(EMBx1uxS8I@Z<pL=VlpK`edWiq6b2o~p- zLLVrcgb4nmW+#jisL{<K^NWB#-F~W0ry_q?Szqp2w0FS;-Z^8N)l1Fol@PldhtVN@ zJcq0~86}+SCxXikU<c9nCIYXkJ3yrJ29{4UU&j8Bd=;yjIvLHN@X52A9`%dplA?&$ z)g?kGPxS&&`Brk*zuzueQKs)J43A-WoE+DG`QrDg%j7LNOG9D>z#+e%5h9@d-$D|- zsXG991mrT<uH>8r>>f5TPdG5u@wDcKmckgSn>f3%!kAP8LU!TCqx1a+=PWnJcB|Xw zCp8zH+d*N>Mji8^jEr^o<^V~6+FIN^rm0}LZRHVfT2)P+XziTvB0BMMOYLI;l8;ja zG?;V6c`~83nGS4^2(vm|!5%;XlsGp?(p+|9dT}+V81$s<OKo`kYgO09J9{^5@kk<@ z*#?r3Th*_xo>Kb`v2)<FeXl~<#WD8`5zmL^_4Dl=+^w!EJNh^}aiozW)$9Z=8BqlN zyv?Vh58?GfLa=>jFwQ6!n)=&S?*;JW$+a-q&QK>ydr|oZrP9nS7a>rVr>dkcf{1%v ziOKc{7Dd0oFW_j<q;bHI|JgSq``R2F(KqB);#K9clI#{5%4&tSd{T($h@|qM(B@^X zR|)`zO!rq1brrm2R}e09_!e8b$j<^bA8>c2!^B#`x$H0?dvK9&*uT+N2q1R25xS6o z8pz*Z9`&2hZW`YXn2GSnn1(`sW`(^X4*#iU^@G1S+1#{ix%k-Tnl~Z~UQsbLjU&eN z#-#8MZC`;m^3cQe1ot2W@^!jMOo?HfS`R3&xEfS6_UU|648E2i?e(m6aT!7RQV#3v z9{x(586~_-`#R}6qj5PW{|ytPdlZfLofO2<L;<*UA@s9jg8_zigClB&>1DDECkw88 z)r@B2oY<uZ@rxS*R@pLcvf-LEbakNIm%1uXJOlp3S_dcoio}`>ozWp@2+@CmRX|NH z3P9m;zle&<;cK>M7}Q^%D<Bt+eX|;e1_3ZU5kR>fo&#QFiU6bqKBNYnNCI#t7AVm_ z|04P!4__NGCvniv{RA*u|3uCKHs&h4OA3JS!6!_=$(esY7V*RE^?s}YWqz;azY%|c zqgbW};a>u9k@B-MoE^a4fRe8`<`>bLqlxHST(hpbEb~9u4Z44T=OwssAf2+H1h6M6 z015u{vB)CL?>+E+qRx<f>V62tGdTLK@4PS1V2+%yywy`;(;9ujY2}wJn@!gqzKTDP zI-o|$*;hB8m$#t|3mD$!##t&~#~T8!9<?t~kgpKB1~N?RU7fU<PN%I~Iu+}CEbrq6 z@KO<~W}c5Yni8>-7{*p#L417W4x4>~ph#+=eScJy>Pid>7Rlepr2(=MwIw#X=gZfH z3@u9mC7%uqz<)3wpcLhgDPD+5ny#_TkcL23nM$Swa60(6FDFZU<&tYA_$@Q$`d3+r zP;{Jo;zp<d73cRi!L49%uyv6pfd(>Vw^ZFa85y5YEi>Gfn^}c;weiO1W3Dax*NGa! zZ2Zu`sp9;1Wb*6#-wY0Uv=QBXuyD-M=|eoC`MID@2+bW-&V~+Yjse-p8c*m}^^l*h zK9BMjvUD5X(&C-NA$&T4-D_mADsiFY+%xp%)s5<h&lq)_W8x2o1jVxwFFY^e6z%f0 zq3}ExoxI|7U%e+)^}~8of&^fjmON6o(Ij69a@Bk-qI{rMdjTNArB3o7$@Az3h>LTN zy-eGErE0^nm>Xw{!V7M8tdtrvt3nKfZ<+0XkNz>SPGx7bWT#4F5>xY6*tG!2)6WP3 zk|6vsfFtThqUZDR4<h~-h5a8uVTb=0h5a8uVb8+lU%A7-G=2au=22iXvL8uk0{Gg& z0(Bhq^50SWb@;NqKcN9&DU^Y<OhFVEeg!@Oz!qyy>zIdgb(BQXe}nuuATas`d-0dx zI2TJmrfLbp&fFv0#%hY%OF`ku_zy8c)ZT(ypor!x+XQ+TABH-j;uKyn=Ww`I)n(*L zzRjg><q4Wmjgq(&_BLz}5<^hLXNlsV=%$f{fdEH$g{R2JNrI`)kH#XWoShHIqHXO_ z*Y&Rl-VlGwq@VhUC|{Fd{Db*%ba!YTyAi3EYGS_E-jaLuJ4NdC?TM%#vpS^F_TuMz zKHq0ob;FO{=8n8rAE`C5eHgmX$g=4CO%6o5-kWEWVWP~^JJ07yE7&LDL8?J1=W(s1 zeP`0GV-O~V-C4vd8wXoer!DR$m&+2318xqaY{!-#dtK@0UTw|DCE<hdIkuz1g!5i= z<~PL<rvfU+uij6_S#z>S$AbeLc}ABk-)Y9^`yf&cJzwRbicZx+*;Kuk&<_H6Y9c0? za{6S+9x<`y*1IN8?+B!cU!lO0VRp9q(1=bG#n=os+D?t2`;8Sf)RuOa^tBxwqsEK) zbgzdP+<GqUdTv8-&*+dJ+XwibGQO8rZ35TCe1$$VZim8dcxQxmIcNp*#xtwTnP0r2 ze*8dvsad6RVCv}5XK??hSy3<$@3$hnWtrri1)ja|#DEuHrMm%@P3fNEUYwO7<FE99 z#h&UDy1|t47k~k7y4dK2g2a9Pmq+i|WQ|RJPAv}zbkK6%5YIwL?=)=&$e-)lhA*Tw zDFEh0F#aVS(#@;g?v{()LI@r2$EAUCEjR7YfxqTl`7Y<A@I`QGev0!j5+j2mE1GhU zeVtXs4yr&9xTj1&;ts3uXq#l``NX$VA+;CDFL1>>4+5L4iL~ZyKqB6=oq0<@{?4J1 z?8?6IK!Uh(C{$1F=*5Lsa!uq+lFLZ}*|l^j=1$L^b<-0Re23HcMqoB%E#S9?f`wkg z>+d{e<P0Bg87FwO8{#LUjaH+x@H3i6Z*Na8vEMGk1I(gbk&G6$a|yv#9n8Tv*qU!Y z_p;15%gs7qYNM2>?YS^Bzp8){XY{o1*Aum%5+RrdvhM*wLAj%@7bQHtSGPoYjT@dC zyyhfAtNPsi;=6-uCzOZHU$m7E-7sMf#Gm>NyDJ8=)PTTI9C5=5!r{XFEo07uM?TcF zYexj8DooH6XZ7&*bE{F6wk^(kRWV|Go=-hKUv$;DMURP3#1sImdAm<CisjH{NN7Z@ zvOducW6{_oC*wLf?R<sgBa)2UY$3cW<?7yqKTc=KdCE=`4cfvi=4}hf3oqiCzw0nS zI;1Ol?DGpKVsU~2_s9aH60R3MnON^^?ITkM41k`Z3I0&Fc!Z_U7t<D|ZyACv+Zr1h z%PBD$lE>ap`>bS)9BCGs%Z-5QfB~j73e!jLEZH<xHitHVURu`p7);XlDoyb`spaJ7 zSSVXGHotfw>EwGe_@F=n-F&z{R9O=gn}bsw&Z<fby69x65J0r8RfQHiij_J!XRIwa z%cxR+t0|}zQDujs`V12p5^f+{DDbBau3QU?F}nx%v9i|CUSAjLrRbP_BzUvcQOail zvK6!-O68^VV7!UTfxOtO?x<%})TYrh%2caOox@<ZqQY*c^pg3JTQw0(;`0UuriHJ5 z8ryc6>JtX$A(j;cVCdx+(<8~kG?w3}xpvl;OxM-=<Z)TuAG71{$$2kG*><uWxfpqQ zL-9I>xMN;>1eKMx@i6>`dK7IN2dORc3-LILKKRE#>&_(UD)Q!dgGLsNxoWum;GnW> z?wM>k4ON)>uA_UHP3n)*&aMTkxSvg1U+|H!?FmDh^B{S<0_;y58_?5kY%=iReOmte zpcjynpO&DliMPIA(aDey(3K+Diy8NR5jBZ$(Vt|S(`StgE`A%<%SowJl*4BV@9Vrv zJBM|LFZS?lNjhKj8qugZl{EelpDd#Hkeq8dm>TeI>h60T47uq$$t-#}zlB=LR+$x! znX<^Oj&`GQ18C(VqXw+tBiVWXmu&W_z{+Zs*YQsD2Y|pu)(0VWS}#9Oq#swGx_M0) zV(i*<C~y~ticMG?mMfCb{KwV}O$p!Mnps=lL)>DM;Cb~n(!3e(uLzpM`h8n*cld<H z$KL6@AMt(GF8RBP5iNx8>aDmB<xZDWm*`5Ej;#)7&_}^ID$I7z((9y~Rik<xyWiG| z*D@PM;;yv0b*zYGeN<3>?Xr<%hokf59(f2=B()o*C-SHoy{p9ew)@<I?H!%xwd^@n z6}3h;+WT~-G^g1_JLZ3=wIsZ9JPIZ-&P86HnQG_mtzs-o7)iC#>#H*2QNKmJ68dR9 zfHg9x*)}p*Q4sCf7S7pvVlX<8g$+EJ`%d_O*n7{YCewaz6a+*>h=}wOk)~8Zib{!! zG!YT$T?M5HC><$L5Rl$Pq^tBA=~Y6JA}GE0-jM_;0g}wQqVvqa^X!>Dd!6@P=X}^7 z{E)RG_noW$%da#%z0kt#q!nX+70oJvZtqmQF7IT*41cT^0Ancrg1va+j;qVn@@aP| z2}_>x+f_V?AN6Fk=;)BIn75%roZC+Q@1Up(thvRubN_ORTxsmhFBiYoF)zK|;M9D; z*|HmC$9O!gIK#>I(L*7<zT1JagSZTs1;5%0*^_|=q@nAd<C-wVZI+jB90ST&SI@ki zX{n!OctEcD*+UrB2Kd)$`?tt2X=s<vWzO0RyY7my9{W{q1NJ+cZZ_Ky<4>G8DVkO6 z$Gb+Hu8daO9{h-b=T*TU$;n1!*nBbBl<=1NQlHcqTu9{kbjc(GI4??jPC;HVtFCo; zQ%c09SkYRvoe64tG5+lit?jjj20voPCr_Ssf5e!+?~cq<|FK#Left{`xrYgKH6Fd* zWCA*8**C`-LWidxBhg<@9Qod@b!+WMn*WY2<LD~+{ZP{eW}PsYEi^c4xrQ^z23B8r z4Z?SQD73yS?EBhe%djo)$PXpOO9BdXcPlzZTn(0?#g9@f)8MIwCFzNz1)n8h!_3^n zZ&}~)X@ph>;<Ru{HK&HLESURg7=s6J%da1PXh%P}6;niHXy&B*oF?mgHsr3=EHDl& z;(Ou{pN>D>@uIkc8mJyHtWCYgSl4Y&3=J#BkY$hfo0G5UTgp`=ym`=layF{X!6Xl~ z?)J4u)KC-KnJD2#>ohZ9ywqbJ=iyP6%S&M&yLIw33?*!Z(+E|X3wapelk&W^)t-_4 z8mZIKqO9y&OAU()P?4>_Yx{_$pkNU_1gL1?);Il;t6ff1&O1S#SNg3h;42BojF9r; zZ#!B|Mxf1m>y3z@O0`<yqZN_k^&6Cy>dHg1ISwykIAPqCvcOM(LX@`CbQ3w{-;hT> zrQ<EuLF(#!p>&&uSYYI;d%Pdh8#ftag@wWUionS`ANQ&_KKT`_n7sf^X~^!l=UMVS zbAuh;Q$itK{bRZCreZmwAHnF_&`@&(HMSEZt>yaW%A;haNK2Ef)l8opsRX{vxd0;V zKCxn&X1^VTz7d=g#D17_)H&9csJlJ4+`5E>x2o>5azA%F#W?4}@hm*UR_&_N7TpwR zH3<8K8!tawZ**S^bzEKCrs#{b)G|xDE=9v~_WXA?9RF-s$OK)r0YFkUT}cj3D@k+= zVLvHobB7^Jt-w;7%TlS;|BdoVsigcmMdGXb=AdsdU3D=XQ&qdsLchdY)^|TR$t++1 z=ou{fns)3@=QTDZ26NsO7opgM$s6DmQUQedC_u1!*U*9D2k-KB=OT;*D}32|r}1&5 zl~9H?i!%4deSglxqMMA!{qtqvpLNCn9D(yLe8303SZ5NNTsnr&O7ZHp%$f8nDg^g) z8Ls<dWNnz8xS^-R4XxQv)WMpgmQ~OcSy(^z;=YhqM|b19+$ZpddP2!*97HnhDWc(p z7w|mhV`4S$#9eu@v{emd&Phkmia|m?Wc^M`c{9R&{jH)ZVRww3nYJ{5YQrN;8E{K% zn6?d@LLArapiZ6-Qf0a2OjiBn>HO$z9X=Kk0XN+llbrxuEau^)%the7RtyBqE?GFn zYXzi|SjIhS`*xl!IP&6UwxYlQA>E<xU($pvb>d*hr7F*5>kNk`r`6h)NM+h^u$d*v zhmd0_UeN^%8y##v^-<AIL!M(*vs6-C9X`k1&Ve6cdRS6e<2`M5^{T)ZmLehwqR2}v zTXY0?=7E-#ie(-(0npYeZ8zhWg_gUD3MqS4b9y*G4W4EtvGdF?w!qj(PW9@vyK8_p zKS%4wbCOfHN0VRUb?^hwVsbw($zjax3HhEaK^~B-d&)bp$S81y0F@R4-{V>%&L?hD zPiCZFMU33U3~Uc#v=~BVX^dUNlnVk?ts5enGh<Byyt)JvtiDLQ*N$qbSC5+G_0ak~ zk!l(-bhq#N%$a|MLSQzq6IebB9Vp0>Sv*s1&zTO99d?cHIKqF-Xd${Qwt<POzA!O6 zMMg4fJ{Oqg5mj5Gk<F^;o|#Bho@9YGHyb<Wc$T}-Pv^WA!y?-+9PN6ZPozaAY8{C4 zmsUZ=L21Wa)uxYzrO6h!@flh?OMidD{=!?LyvK+$9ITUKH}1U|t@v^W{?IBzNV{7> zlVj~{8t}E&sj4jbSQ59ltyxx97LpdH$H=G1eB|rb=I7bOKui(Qma`rPqxXWjcHvLq zJ9;F7QYm;Me;C$<I@loR6TXD>qwSB79?{{l7uEEH>^ovIG*APz*6~Inaj><qn*%E4 zj+1#+xl!dE_wY(`%Z#C0^H7vp8<N-(4sm)S&d-Qd$+QZ#U7L+PHESTp{EA3{BTl+F znDL0{XXiAkGec>56<V561*=}<xDc<C7|R$9^uubrSpNj%DLhZ9hx5zmD@iwZ<u%^7 z4f{<sT9xQe>j6kRPug4EW*3%fn5%4#wvR(2FTE=%iLkwMcIv9A+w<qLizFWrosd9K z_lIJ+P-{(9(?+++V^8AZ)x0&`tFqv}oWZP<N%;zWtWhSfj7fl)_GCxM!pyB<Gsyv3 zE6JUnA%=5Ew8)PeIjk>5wAJ}-9ze>)@7#5H+;(z`oUvI|ZShecrmbP33|=c^Od6$C z)mwa7iDjm$F!D}D4f8;I%jPBWK}Uox3b7`Fy4Y0Nm*MXrIo)QRr+~v&S+KJNIY+m& zXkEM!RKCshMVi{0fkMdtL7wVr*Y{%3ynTNd_nZvd5EsVzbP#$O+EGi3Ty(Q=<{D~@ z-He@gI_gc0{<s#rSl2}1eOhtFo$KY~EU&$_IwLC7?mTH2IG1^Q_}yy_ZSzTZ6U-aN zia%*#E{`^hksPNgtJbs0D6O<Cu9G@?1J0FD$3fjNFW;_2mXiQF&amO*`wd|r1+?j} z5_(f4Ryb_&QN+<btlHRu_M4VxhToHN@^PfCtQ3X<&x7SeOZwRK%8boLfsVKB+FLcE z4x8??S+Xw&W=&Qd&<`NKQ2M6CX(q2PsjeYMW1n?ngY2HLNNm(ReIEAu!4o>O2hVhF znSW#1lFlyH<l{<=l1TwRw9si)lRN&OlbMtEW$O%YI=*^z%GfYrfwuK!uF_b2k&+vf zW4`7&4uKaN@t{Kq#iQ111L#5vvajb@edPOKIqX?+oa+V&ajaiUdF^m>b}+8P#1~%T zTmUXP=o&27z&g^+nO;)gD?u{hSl-=BK?&Pri4%A-b&AV3SI3LBn4SGr_w2TvaKW39 z)2_CVR}(Dq{TXigh!Mff`SLexAHV$&7!c(Y=n#0fUi;)UG+sc-Sok{dtHp9>d+1~4 zP=!OAcE>O}%2g=*OZ2F!==gHXxsNjS)$OZYik#jl&eXG<;qsm;XpL#@EVQI{%p`ej z)*FM0&TG?xUZb{!U5{DjBE_6`^`{2T(W$kydb99c0?ivzS37XPtcK)ZXd5=<G6t7W zx{8l^Bh>TF0ymgazg(ISOEYRA5g4j%WNqKuBEQKeyF7x3MKOd{o0z8KzfF*B+E6~Q zLYXY@6^Y%Wcn~?htu*sM@p43{;=WI(&i8wW`5#lJuFeb7FyE+V{Z|E@f_9VcS?Lh2 zrz4FVu_?!21m=cBw=j~mv5Q*o@pXF0zjIBw9j1foPqWM(QrQs_m{*>b9SM&}R_|5U z)35W65ueDId^|AI@i{2O8sM`s2d3tHdm~(}uO_+6yYA}R2r^Q(g<oOf34g56bUB!v zSbXnCmKt|{qLb6{?~#mV5e$9N$|OJNb^*wibgt*r&gUd4v|!zYlb!W_n@<%Fgt_7r z7sm2><Kmw2avCarI@bfhp>mr8^~R@A>o2Nd=2LdZ2OBe%N=05x`Ek7X{`FZ=!CY*> zBk8C(>=5pg*g0sOEChW$Q*X`5==$e!#s@J(H;G}ZZ*R+pdRlMsAemsc$qeHYuE=Ys zn-%o>S_uPl7oQJEMzy?*n0WjoUq(_g&r;5O11BF;m|@xha(z1==Jhph^w}ReXq&#T zd-4f6ZuurHv)>%JUPiw#{83}b8nJVdcEAEw#2i*XK{Aeo)nF`bQit^{bV}_kx2;{Z zXe5Q`uMz=S*ARbdFPjEuhi`7M)fZDT!u1nGSaF_Y_Mwuu@tW1)!D2<DB6YHD%pZgc z1NUr;vLpsky_)x3s$dMr``_HvQFd#@4wLTbe3gxP+sRL<y-bP+Z4(XHv(H8-7BS=e z(a=|p$rOvs{sARJjWx+>BPuQq=NBG7J^!foyAmUj{cWOo<XJ3RYBDvv?&`yjuO3rP z3*L27ucdIek*<Z<6axJ%uL)V6icUOvbE<xY24Z=;)ZyODg&T#2Wq8;r$ouTL>WDY& z9<S5p9OhMzj7-DUdeD@2%KM%8L&$5d2n2ey5w|MjszskdjJ{dwrFSzt>GQ5m6Q+gX z-xfqkHXsAy$iuL_xyyIzJ~W??Y@N(4G#tHB$X~oN=c}6Uawd!_^xY}G_0@|X3@lBG z`lB+hW^?u1l~8_pwcNqF_W0taE`1F$D`D8#fLT3-f$sA1cm`k{tZikNMxaTil2T+< zOQO^q+Xmm}3l5d9*W#?;KC(PPAXP0h2?4q>3y=&?zYPkmm-CnJ7txo#uVWRhF39nj zI5WTvZg>hb+@~bZyaCVBBRo^xziB76_VlV;UZHAmYA`kZb*<a&@9dvOBm=mCx0i=l zX_p6OCiZr@>s&ROHP6yETaHmsU@Y1P?v(cWlqO&;aIEXMDH%2z>-xPJ!8I?cK82q0 za7f3Bp?FGW@^tOWx&`&&0&MAew@;mWv1%3(O}wh=yoFX<Lwky6)N0t#aM(HJFmjPp zX157Ju*WZ0C-JRumgZL6n+=WHzJf-E0S=TzFV=KsOdc^`GhmBvI?k6Xu^izMPz(uI zGCX&=md$#FZ<lhLCGI@jJcNz2X%XRc8om?KAc^;`{}eO>ZL%ZB(xHlz&Z2Kj<#U}V zW%hV1+vP4AN<)50J>pZ#@be#$SB0!L3VB{frl#?BVixeng{Qwf#tKfUkr{kFvg{JW zup^S=(J0V$SFj<!-|}rR>gKahnV4;Jln0&)7cVVEHqH3mNr$;OTj7E*4;8}#Q83PW z<6<+O3*(Q@&>O(>tvL4>)jjGI9Q~LjQR#8<vWhFi<-yn~MeWO`k;<^_i6WC`Dwb)N zdKp-Qj*C(f4{BDs)Wtc!R$1(%Xfs_aNn6gDJF}hx?N5$J^)QySR<~c#(p+ve)(56j zimrP*Q;0e^tt&z$yfIVpacQZo?1rJS(nqeKb#~kgZWxUiG^iam_D4OMXsYLq(m`u| z>)p}0eerzYxZ9afndZcIO&#Cc9Y$D?r8wWl_0{!!6<bP5sXW=~tFVggm)GG(CX?IC zlLuL**<<suyl|pV^+H)wIXT{fK@gGL{M3sA*;k@ZwJbl~xqWfR?}^IJGd60IH4540 zv69^i6x7H^4_7M7V~Ek@vnbLt60C3hEUIcPo-25+nJno(=h5$MVGhQh_I16wuh`YA zoiM~`G`Ls_2bbvHdXoB>(h}8j!PcyK%mX@hezuf_>{>fy^)kxt4vPGR5Y}#5NuSE3 z(eJ!z;GG-cgYr@IlWtTZ4jj<2p(J}^I*ZbJ`}rJ3#q`|$P=YlwAZIr~H$YpmwCDHE zstD+`BKK_wn5u(leJ0kY4a|+lv(Ex^ybC~Wp1Ah(-Y?n_H6Sq|_x-_M)Ze|hosN6m z(NvL#HJPH!6p&W4JXRKAYhSwak%OBqR_=7P==IX>V^Ri0M`VkDGzJ0>Zohr)O6K9a zmg!YY?Fo+(%z(%v37%pf&8gYX2|J0%Emq}`JbK^yLS<F7qSh<2jR6_SiyohxC2!)) zQ2sBgVUuc9gRUy|+d&W0Eenpl^L4BJ!u>W$Z!F-EX`2YwhIQ(P4;uEPahe=zQvlcT zZje6-4f{!p`q}OUj4fKg6ab{D1_EBYKdkBHHlcM}2#9GvTepC7Fa_TwMc|x%LNY<8 z<KV}iR2%N^p#+L->rdDSfzSZ5R8DnZunJ&VUFns_7n-pliugK^3@gMf@)H2ze~@|T zIxzA0YdL`91qK3ey#DPofnD+D05y<6-uTt~27h`b6}iVk=+qo)M|XKZ=JtZJ4mEeE zJ>j!f@I4fP>+vrC;D<b`&CS!-!OQ=or@4hSL41dWo1jF?vgG|8uZ5mR_Rk8<msE!F zoY#DsnBm975?(lKE{<86h7KuiN1?D`Q{3Gd$Zo1m*Q9>D@aob-*x9y1WeroBCNufR zI^VxJjDrL%+ylP#0}%80twdesF0V|@Xy{b@&{<8}zw`|yd=1&_p(rM4%-xSIu($bQ zk!LggMTzDWS-=B*1)?KQj$Z$6mzVjWFv?~u{`zqmAaH2HCQF7fnJM#)x;9|u&OgFy zS-hq|2NBH8CAy~>Q6ouYcPn`E<TawO01ti;WGuwVSaPE?f=uIY25fXL^{>XzX5yiu zceMp}I864!dY|#Vo{f%3KyA+NrUt{PT&?9$UOo?}!l?9`@26XK9ka=shVq?R$oe9n z{4bmPyw-D>5=wtVxyjK5T1a~c!2Baj^q<VXFJN70CT~p>C|Gia8}ODsUYsieA1vP4 z59naWIsRb99Ol>%2q`gm>HDBYkqO)61AMSwYm`8q{9}#&$+00Y(<U}Zd~i#@_$z-< z5DEN-UlhbHu;hD$ac;bXXAj6gu_2;>F%=14Y%roCfFnMDZ$A1-d^<$3AuP54*i1WQ zZ{O#4=X3y$upodVOfF$50LH?nIeGiE36ANhiK0$B><E1J9(n=i%K%osp>`*RdxLfi zstAA%uj(t-kArtOI<f-jIX@v32<&s4nnKV%Yywn8oX+y^?MB#dJ)qfJv5ry5MJ{|A zz~SxCDR`P3;oWs7pvfDLwQeq!!b4H2TUVI*fjP}ft2Vs*7<^(LkkVjN%;4`O?U?NB zBAbHbkYI<AivQ!UEmU9rjfi~*zO@hd1BzHqZId74EBN1tBr*LG0q=)L8=iCs*1xWd zK02i5s?p@OvTQZ|zI6*ry6ylJEB^9ztpurmBl5@6EW5@uK>%No8o7EFw(0rFlg&iP zL$}*z4afi<A&q>bw?&j|eElnVGSRN`Qh$y2;a}EoC0$T;>eEnXm*LLAHv`jptS<(; zQwfwHzv0EB-%o(HoVUz%_%72La-~}hcMQxRS0!8aN~eB+twc#xg{-x0%e_mN3F=EB zdhiZ+#6EUnMn{}d@R{?eivQ-%)BD34@W=l7z%Nv5fvbfQv2PAe+C1oi2kMS<bgtQm zxd*+PD}SW=7Q!#Ov3!}dujkH!KK_VH!I=8r{>=aBd;G(7@@oMMm~8F-*9)NT=K`o8 zEC7YmJ9S_Ibo=uUplCl4gqM&9*Iw9x#hdwaxhjJ5`R{&{m_BItKrkHt@N1bW;9xoA zw=7q}yeUy*)6`$;!u!o;=mfdp0(&30aStvJhdVtcwKo^!<Q*ms%*COl-uvr4I6*NQ zP?ZmCJBz~$^4F?9*$c2xXdUcxTdxAJksA+hRF==oY<cMsGN0{7FA9AnkB)V7V)X{r zxtR`maAK*!@0ox5gx~k?vqUPo4tTxz!{3Nxz9ZLvz(WqMBl%wop7|es>9F?2;kRXw z>s+(7Nq2cOb#wHlk6CWY@uw@GuWm2n?nqxIRr$AT=tJi^242SwSdM=^vRxJ~SlFcB zKl#r4L(qyTv(7aIBpo9DX-S^mkNMJ7KazZhFsq@%6H<|BiMU;_^WU6yzrSeux3RP| zTyCi(s@cKr3geug*(t@d7wWXNNiT3_avrTvg8(}L_bI9L8dRB|m?!&OA+t5*F~QU` zTVyHnkKG>?|K)1`^#HocLF_eL0iF%&Kfx-lx5l{vFz+<Pxx;IW#Q7AonaxB2eeLA( z4-vf+FHKIGVv6=<mt@b@JS?wrcU=`1_mEi0v7|q*;uEpoN&0s4sWIKYD^|e&4(7i3 zOrF%YH!BS~fxJR<X!B<`>;{r}XgrC<C!rrFg1aw!sH3*G%_*OrxKa{m$00p98_M#c z?ENE!;IL~<;yt9PGqW8sUf+wt6x@Xyg)zMCL3zs>D^SX<v@X)`hD$D8#if~F9bTp1 z`oc`z+QwTza-`Z0h!}c1duYB{<jI?cK}HPBV+F^Tr?1Lf7q318w5lH<^$uM-2e*E1 zv^;jgA4~f|_omHwa|e_ZZkFs1J(|xs-~~VF8Yr@{tdp7j@ze#?YEJvlO8B!zd(Uf6 z@sC$~PVPfru^;cRrps(a8LUX$9TqEiZp?Xh%8;b)+~8w&Y7rgyUmiCed1J`hVX<D* z);IosUI5lwR1#B5#iCtiqp@$U(Qh8`UFapuT;6Z=f}i;H4R*;Y+N#LGX4YX`?z&Ab z%sh-)#eRxj<<dLD9k+~t(-3?8PZ<Z#0qYJtj|VLZ(P(m9bqYdbw0vh+RY1e-O&PJ7 zPC%KEbYsM^)oU6U)|0rAF=PXtLWn+niqsXpDva8gsD~Z>fWFa1*6X1sHGXr}W4fQ- zBCiKGdNdq9aC5Jr!2~@giSq=g$@kjYzLQjx4bQm!{WoJO1KU(f1G~qhw|5`-9yuo? z`sA`WyFa**hg;VL>!Zt~WtH_5=n4k6a&`<2%9k1<`FPutOCJR|*i9lK9@^bA!kHej z1G!sQH6PY|-T2UwvU0Xw?eX~zx-DGEXB}s>(Nz~kQGr)agL6)VLJD$uP>nuWif`tk z{f=D}A@y=Rc(vzFaOV;3z+U~R7>5lFKzfLk<*+cJ*;0FzMBKeDZUfb;v{4RC2oe7l zJsVPE)72a+5qt40Fy6exMbq(m5y=L#hC#>*3i>@1)}XDYw%gV^HhGpQbn)VZ0PDbE z4V-KboOxE+*Zb{Im(yN)wBLyi`;tdF16^A|ToH=7pKHiZ6TpSqsuqFfhFLR1_7`<l zV7}aFQaocf586!KV8vc{L?Z1pxrm~xsfOtLFS|ElNurt^`ayE@myf%V0L6-w@Y(x) zUs#Y_)gmAAx`fp(ZIX@;Fa?kUJ055^@^;RG8VS%5H)%k=V&~{DX4)cw1-h6RQDl%k zfQ!FPHBi^(uw=wGhTV2WSRFp9oGu&11DRlvIWyynsFJV{EN3nTrr{DgpkGj4@J0z; zBc6EN&d^&@$X@hVOO^-c)SxuSlqy5LbCL4Xqd^(NOI_cDq`#c%=MK>ONHltVcGC3l zU>&?5)Gch_wf)1Rc7fHLQ^~9rMXoN5!!|WJ8HT2wpIXU{8dA<L=T}U<_G5d62;Z_B zB$?DsaUPIxSQ$2aY%jPb{J^4i^XN21YIENg1mZ7Gz4Qd_ZXU-O;Q)4~NyrfIq<I5y z%M^rN$M+&%`h~7&hmVV1n57GTar~pSAB`XI8gf9ZVPAkm>6tK&vG~wTo4WeQl@xcU zC0({<icVp4(~F5w?@WG{?U8RedRg;9ulf&ov)vGN!wf^{nzVbmYoH0W@!L})cQ)3r zGty7Jvlr`?T9xOL1s3e1NkWg=rB{<o+Ce-dP@(aY2+I2VJ;g26<vVQMN?%o^BPEU+ zD{{Y`Jds4ic;q*tzlkda8*?Nvq?T#CTqWjnVfA4z$3@U~Yhii7Q6f%!R{M%jN#+Wz zsuN}Ii4}g_E3ROPkE31H_h?_=3O#DQRrA-uu|@n#5W@RoPg&lbRTWBuGGoZ=kTi}j z-n&jHm-Ve`YbBmdfJSOAwzSHfuR9aXc_!SIOGk_J<cJ(wNhPpP&W`wSf-gImh-i}N z(vgoqNcKSdfAApA`js*W=B*x9A37WXuv`ZbK<>EWn<=Fvt@@j-7jhL%e~$pDY+bZ! zJ#@NCglT}wsn?5?^8opMx3dHYd$Ji@uFc+1$NxA9V;(=e&<|Y<Y3B&{zmIAT)E`*{ zU!!1HU3Z%{|Ag9%`_z<2SIrL{mTkQk*_GB>vp9Rnlvmn}ZqeOf0Be9A*=|9nG7Cl* zsaV>baeZv#BcE>BGQ{q<!HOO1XrC>ZyJJs})b&u@7xSP)+h*@gyz-DF8^h++7<hkU zX`L7kZ_;rCI#J&@A%5dDsQiRDHNVF|2`M*x?p~4XEjO9ly|r9Byixl5H(ih#zW1#R zBHG5J{in)SKTX;l@!;w6Vm5-5bxf;h2kG}Z`@V5wQqo{|C^*9_B76xZ(nf0%f#*ZT zG$s$3Pv13^6WFs^O9*uw(?0zzZ<Rbaf3jt{RWX*<EdNQvd)Oz~fv{6A4*A?e95MJM zZKZTUy(ngVWGq5jbxZL?#zt1~bP@t3p5u2{Sy2TVRSHAh5e~d_Wo%+mpKWZ}ApYqE z<!Oc8GFvlR)`YEL&1b~MRMU2J9uII?9!`%R7TH*9)9lihR(cjTQst5rUbCAD7U8OH zf10F^)PIDF_Bx_6t>s(IZE<phsWnF_sQMDrNmoc@gb`tm+G&6u#oTP$m#p8WOdVd} z;XiZcx}yC_A+?Gxd90JU54Ws}y6ro$=g{y~9J*mDaXm2`W3CZ=)rA|Mkmp3Sd0)I{ zGIsMp-kRYSvJp6}?<w!om4!&FT9?h8%+GRuyFE1jbXR9n@ITI8(}djtJwPb<h8O#k zd&Q@=7&oMgrRzb!LED6#hC1G5Ch@6BaPHnqG$e=qT*@dAf%Leze+u8}C7viOee2C0 zm))0m?dl&H{A;YT4huuAI;#MG`)3M!I8hW!RN92UP$8}9sn{5(g%0jFB$HyVCS9!T z2ORIGg0tSDoCelPFB_<D+^Z@weXfW0zCAhv)o@M0U+o5&CIdcLU+qAOlWPM9XI2jv z;mq=By0B41ZAkrcA0$U{E?DZfb=Rc}6oHYzU*;VB+JwB4B0WP+)lr!yB|<L6J2zMK zn9Mb{x?ISC#~j+N7C*PNoW>96Oa^E*9v#T9Rzw*Z7+UUxc9#Z8=hz7r6@1a<ilPzI z+kZcFlUnwE3wn(cSmBhsBP-~9j}}T~eo`>Jl6B%Lb;HBKTVB!o7yn~Y{>(Y7vK592 z(aaYCR)fk;Y)m;W4hc5VD{T@5bZLPDF6n!r7;}HM?YnWLQ{eR-PX58k2t%Q?{S#QH zvRA4p*V0xjE5dP+TMzhJp4bb$fi#c~tT7y%pMDA7_rqg))nS755n?$nqhH_G4Q<Z5 z8&^a)Gy*0kcaY;=H(mL+$uVvDRwBGXam@|d#Quq#qug^%<9Nd-^a^%6sp{*)NTvI@ z7+FwhsjvBnaez-@5Rb)h9c;ZX)6nHn>}E~VGNJ6(k4_%D#g{*pO|%XBtKqfc7Q+t^ z>L=Yv%qNGSP*BJM`YIUuAF<jCCLziluggBZW*@S)pTKNAb9w$7ks0y@z>ICh!)O*O z1%O3D@|ico-?zV8#$6^?p!u#_M*Z$J7rO$Ld(6QfeRxrd3#se|X`V^!RsZ``SzO}h za>@U2NM6kM3L65;MQJ%d`dH%8t=+sT*?Wxb|8<%)$?fp|pHyrd#dja>YvY^8Ign_& z_0Pzc+a`8l>dxi8o3Ebms`$;#ml;bphGV}m?lwefUbtk^-SL;B`C*2^k&xf>Xj$?_ z%th?Vp~|+Sa2c}DrG7j`FNpIoi2}WHHf-OMU1QK^Q3WwK+OjuUIzKK|F_J`M+EC`( z-k1XSERV;1SSotI9ZDP4%7@ieh;*8F!K$+t#eBW9bA;&HiI2I7@6#Mw#^ND}Md#8= zYgN{=6E`A)rE?o%NZyO*va&`ag)uyk<D+g5`BPAG^%L}7B3P*3LPHWuAENqF*!efp zUGHw#i9Jt?eH8rhF%j(e*hc`lwtx=H8I)-=cLa<|^j21x?^9(Lu!OzEcyo;U*2%n( z)>#*;q3vF1PU!hk7EyWk>27aIgZ7zws*dD1XHdr*mU~Z0x^3Ty(NO|f)iW&2j%;XY z4_}Ze91wjg=8A6=VkkH)Y%Evw{a5u(@^h>9%0#}bC*U99jV5GPCd0{;HD?<wFL6H3 z6>|LIypSSZrB?3F4oUNReJF%F6#um&<57~X`kn#Rk`Hq%@oe276Fq56rJ_+<Smw8l zI&;n8Nkn$rIrVz~CkAXqCZw(=+m@JJluL8XnMw>VVo@TA4NV#dpMF%REO0VK>V_W& zr8jCfIJ@p+?cDQr^6`UL+Tlt{2HgOm7-xCKN*gKXjj={GsG~f`76O2;s>(VYCPgFQ zekHO3*I0ZfYm}p;IC%F?6HC-{-6Z>qff&Sg94@xz47mLjfWZ%ufx#FF$x_+0^-G_Y zjePD19-CQP!<*MAD*U>9FC)632i9G#4Y^!NWr1jQ*>R5{9SZ()^#yDf`-^=7gIv~n zdSkophH(mG80!1+$56(;llwY9IJ+G8t!a2f<{3FPg%op6>f)?({<bjF^t0F@u5S_c zVhips%dIxDql(sKRvod}(O$_^_V`#)qQ<Z4Zd!Rqf@J<fK1I9kvtS(MzNQCLua`Jh z#0GNJ(a2h*N>!nb>t2A=2WdMB)B1HqDdibg!*EeWz|A|D_#B)|oo_4|p4Gw8be8g4 zFlt9=Ahft+b>Z>&X|**$>Ut(N-#2OZ3P+CGtB9$JJw8%oHZM8+IjY@3KL%cGvZju9 zQ}cIJmAhM^hgbBuT0o;zS1y%S7WPeRYqx#|LAMVMdqO_6{i~EJ2BFdoB^{8%k4R$r ze)LRiUf4_B*675(1XH@IHbaMkzp9p-8B$FuvHM_T^~^S!B)6~_?a?Y^Xlqz=?AXhM za6P}{1EoM%><ZRdNX(8FD_I$}P!uO){7w0bNIU7p7mJx+nD#0V)g#x7?M`|Iq$V^y z4t^PH@KpBEsJV>DFcMl#a@^xM?juWmnHqOZEUri*bVRpFHS~kxklw4sqZl)p^6co; zJbN~Ag{P65Fgxqda0|GvsD~LwC)-t`UDHQhkZnGhD?vdhuU*S9G;mpu0?#&7*TfHu z*Zv|*&Sg03qDEM=F0In7U$GLXoiLcC-B8h54WuCGPUrnN=jb)t)l<_X5=WTsyKy>6 zd56VG@C~xL=7-fykiaY;!{&`D(<aO^xKFRs<eSQJQxt-ZT^_O~rl_`e&b?XS(-$MY z4?vWEnRi;RarA6l>W8GJISo!%)1geJc3#x5OEw5zycIg5P!TYLGze!~Ptu~~iYh(2 za8K&qIihn!M6xF_zWWqb<BWaCDFMvI>8Omi89HU9HI`@NhGIWTSCz|MBu=1eImV_} zIk3cg@B-?W`1F2wcxm2ZuH1B90R%3P*yoF?e5wwDs>|xZDUV7o!;ZQNH(gn%r=5g{ zmT6b^XJr}~4lRogKPkL+{-IjDndvu8&V^$aYT1=W0jle~$2nlAChEFqtUEeBY#@NZ zMIi=@>Wgj+?W(-r<sSJQLAw&tdJR@(av%`aEP;|*Txon=X^UVPAHH4nu&mrp;ygoF z#73&8{JGZi>lj)CNPCPUT!x(j-B;#c?EndtHb~6~nh!L!M_K8dvWc6KdRZj-wfm%7 zgPF*FZ75`sDg%2uY>v_$OlHy=J)#-6(VyI3<Bx`{%Am-N6Tjc@v2%>ESAm<474oQk zP%1o&qr1ADe*<18Q*+F343{x|9agnn^%%ayW7+CBz94o^$1mJG0fISyG%PH>Hs;K} zl?8lz{6iG}xO_&~mN9WGa=b4Z9-W1FRD|=!6Ay=*2kBNdTOvL}aC@Ow)*ROd*SB4J zF5E+9-)#8Q_;rVAFTm{np5}N&wjXb9%+|(b*wFfRRUu|=dId>d<~!f{{Y;_zVwypn zJ8kOiSFOJhRlIDnpCO+oPrugWm2p7jGT*cznL?Umax+4jH?=N>;`u30Kd~}V;vTo) z^N-!<5f)e2^7@nKzX;YROUQ$qPF9=qow&9?f6>}re4VPE>R4jm-;|g2epSPHfQshd zeCvNyg!adNgYQ6oBN{I09H7McTLUy3WJr1>B>BM)NjDI+JQ7Lx&%%9buh>Aweg40F z3%%i=9fbc;<^IpM_@UU^n#CA&XC6xr61K(XayLEyueFXm#i{Sxb3d;W^x4-BTsVjS zr_`^m+yCLJJ!mI}-vs?iJs`1q=#uT1cmcv@%Qmsd(et887a|M8qF*giS-if?{;Bd= z<hrAarjE?toHyn_Yx2?mu<7y-zm}PDNCUJ!gn9sfik1+V?w^bT?YEA%3KtV*hD#3} z!^Lraaht1uADCMI4+qx)PiVzkfpH_~ohlz12l0@65Equ7)qFD*mUwDv?h)f7lJ_#! zH*c~occ4xq{=b@JY4}#R362U7_Yd}Un>xj$4D!TzA`N`GXBn0C6sZ-jg5DeFK$)7l z^*`&rI*R@6Lip8DwEAb?;sbr`-amy^&vmY;y<+b9Rz4{3IrfKvvr0tp!lmuJ<O6#o zkMEqNOV7vXcE7)A6y~n|-YNcPZ$YSJ0VD|;Oz&49V{mvIvKWC4oZEfl%~U`fcSGyf z3t!0{`tu|GuM~lP_1{kJAN}fo_!j?cT*W&uK)&`Ps2vcx|A%V_B-cwSyQh<sZRvst zJ2;fh|Eg!sjrT2EYkNTke}6pxPmjER*3+cLD`de|8sP*r(sC`r?6MPPSCF2NR&uvA zIV8AicN`2O`g-s57$?5W|8Iuu_j^JH=)3)OyZBcFjp{alDV_R_s5uz6wMG6PaD=M& z!z20%OM(sbNnC{4{T8~AXT(kIWR9U2Z~nVd%m28&`_D#<posCO0&MT0Y|PXZ6o;z1 zKM*E3HkFhsH>cs_BBVtB&g`>ooP6H@2fcGe&^y0{+?q}P3CiKKaLzD^1QR?gsQs4{ z{7p`!=KsP3!<!R;>ga#YZv~iNgX@I(Ef1hx((_{~SowYTlJWoZzWKi!q}Ux?vjZJS z(#?4HZ!S$=xT4Pa-_<gTq~o$n&cBkxuX}Do#kk(3Qa0u9ZhHPdZu&#!D2L`An4=Kp z{tRL6-+l>?EJRQ@JcpG0yq|RlXLr@#J>g&1UGi_e|11CS|2O%EZ(ahpbXj5ybh<Z* z2#pMN45PMwBXO?BV1*WL-b6nu5D}d;sYv1{m;6S~C;Z7ZlDsaY1@d_kH~LZRq}mDW zbyR=ZG}XOZkBf1_8f7&}>ZCSe2?o{iPnj=z47O+lPnRSZ#k@ba{R|*8&k;m-XYgk* z+7r#}M+dM_dtz17+Z9D*mHcf?$9^Ny^tiA?hoMBt870?EFjkAZODsAsE1TM9gk;&P zR>%AAO9Ab1+!2g<6FUn!SpOxS`IEuo=BMj3H>(~hs<X{y9nsxbt}2a`eb}1xdEmzq zI$q6=(!&}Zl9>FxG3J$BYFRUj#u^nDJTk)Ql5>yrs@+f=Eaf;~n(wg5;D|}ng_sMe ztum>18g~0C=VgG7_BkTLKLE7-v!hKw(gA^uR=d5uWCD`z-+V8A$_h{572YCOK;K~V z9#AFP0qDAP;XO1Q$H@OKkI!-Q)bat4UL$OSH2$X|Bmfrf1j1)2B!7BM{M0WR`qNN@ z@P~mucL&yI7N7}ZK>%$6!z^qUVH_qAw9D+Yr9CAbr^YQN6SX$^#Vh?9?8a%Olo`oj zK}^T(DNY<?&p?GWvom1=CKs{lQz`{6rca+<XqTwAW#PGeawGIzu+N~k=rLZ+I3Hw0 zTowaA&of|_pvU~v9fb}E6F~9&iYV(TudErd8*w;ieap@-J6zStXJs0Kvx&L^pZd;o z2NPP%@&M4m5=8A>#q2ntAsT&7Dp@w%{f=zcf|gp!8e9V}xwu(>j9^*Sy38G(f4RJV zUY!42l`alyx62Gf%vk{1@c5#2hcx%J6r54Wce+hX<XWBu{oYH9X6{pqT<?{)h(B5b z)9j^1O9oE@`1KcZcLA#o@M)Iti6HO?1PM^w0}YN}pi6-81)xjK62Y4diaq%yHg_FM ziVFQyf&ylx?w<Q_w|&)}?2a-buv&(<QF!>x^m?PSF?XLdF>3kzY+2WIH)Lo__0Ek( z<9X%1Cf^st3JTW@Po)jNw#%YTOnkF2s;ToCMkZ}KlT7a6i56b{F+D+Jh$&Mm=!v@9 zBMyF5+_rSCC}Ua_ck+2j?tnRB7P*tM;~&&NUiWC70uCbw)i8nhP=m<^1ips>jeR+B zbs!|0|5JMCPu2Aw;NH7Ski-H|tu7-nhr`m9-JXX~%AnVC4Wy|?0E61uPte~Y3>AQU z=Yt?_(fXHz$uCiNAlxzHv+a#GS^bR&)EgR@V;af|%hBeqJhaj+wV74F^0<j#GJ9al z5kTj2p7TNMQRf(<`?0E?X`0jBw}ilwRsw3kOdwMMkIMh?J0=}8W6m^y#{*br=QnHM zr1QJL*1u5N9&_j)Gq!0cm%Au2iBgFHXD_b)H}!bEHb3tP5kHI4aLK6+N;8l0=F3z( zV-cc}fmJd^2b?#&RDpY+^m!g1w1yn|Q}~4thug=^j3L9D3&(Y7MsJ{AY$E#q)F4Fj zVoyt6Q<?B(X0OSKb^K&=wj)*Y&P|pdt}}T(#VLyp(<#qx?UPUW2lX^hP-8F8aGxnf zq>mW3GJI%nk?#AA=y?kh{P_2k8Tg=zk*Db-Sz=J>`l`|Gy;}2+j|{?LkYb%7y5Q(| zh0U~YWM_aJp9;Wy0~pNz9V-xUApAUSkn^DUP!7lU5mbnG<9;Lh4h3p~*6)8FHNVz9 z02}|WXT~3y-eJ!Sz$yR^9y8!jefztc2qD}47x4Y22{Y~QK<PhJ<bEUa1u}A!ko^s? zg_?fq&QXF?k{-G<2WSH!`pp=-KCchUj$ljt;Xy)@q_)dU;HuMsulRv|7<C{yDbDKY zJY<z%f<gP^Yu*tAoCsD4Nc0Q@=Xs5Qr~0KD{BQbCl<*d6$W9vJ;RH7ndhq_N&~+7{ zSjYTRVGq2E*uP-m;6fug<kL{G2!6~Tj*9<jA;AS)#xB8DzC(UFV}bGm`xE%UC~!6X z#c}v`c<eS$s$qlK!IAXw0~nRIz`ZLqPcgLMq#_T4t)4^fiB6aL*9nIwE$&?b=e7cn z&;G-yfpDcBaB;AxAz%KN3?I{Peg7LW{vQb$)zzMo<*Lej4LD)hCLK(t*qcDCu5Y4e z()6&PJaCG*&LYv!d^xq>RPZM=K~r2+=T?{4eu#;FwRe3}*NHL)ox8ag<e9h3BU-f7 zM<dDHCY}Q@88ape?v{p?K-avOc5fq_cxsnsb-}2O*^FwA)7eg#i)xat1K3QFX94mJ z0`sFBYyi+0+T@$Ui(sE(3{aHyb~9>$!&^1}8MY!<S;b-)G)&L(yK+)-Awre3q!b0N zdn+!u)F)&3A+>4@9x6R}R*9heC3@!hv~3ktdz?)-S<>8g<HG02DtX!h60iA@a9zId z{J9*w<Yp>X3oBYct@E|{a%E}syQLWY{t7p{49jg1=^Y&x``nY)PMZpHMP5Gk>YZ89 zNum|?#kl#PX(OHiW7Pb6>+GeNu7Etd$LT6TmO!Y1wcw4S#$eXj>f~)d%=!EKavtaU zyiQr|_2GRptnUu9v?X3rFn1Nq=S=*-{-E#$?;GMvd)}fMX&8A_PCbm&i`4>7DNS*@ zbMYCeFjZ#x>u(pC%-qu4SYO0M>amRwofGsWx_7*=>@9nkA+!-f<C;+qqpnt*hLc(d zPkX{|_2dgVuCYsQ3~x`1ai1k8-Eb$;s}$zaag)DEg03H!VOaA-S1tod3AI(<RM*gf zmV1KIaxQimpEGqIU5(4Nr{f$_d8V_dSexuU0r8;vpohtCn}YdyvACA*ku&?|2frDx zH+VScrUE~GQtVYL-776E(iw6l*>8ss%;UM=BX2Z<m{9jLU90Q*XOt^{o&I`I{sj$% zo_s`UQt-WyM4jc&L^9u;oHiKN8mCRC)`xy0(kKckRn8wDS_)J&WZ0JrYr4b;HPxbX zj-caiBj-%Vg>PDJBAzF)SAF7McS^77%Qv$vl$rY+oa_13{h~?OL~-6{7Z^L%iA#}B zJpNV3eph(NUKV0>olGcs68iEA!**1VyD$V}-#OaiO2L+v9m|M6u8gQnl$es`z-lw6 zSDZDd%d-|;z7kx>$|bRJbAUnU^S07X)Mnn|3Qzk9<M5Y|#h3=|Zas{{&7!vtlmzl- z?k|2}_Sp-J*BfwDqaLiunx?uwaH}Y6ebo3?_zk2^cy?Gj@-o(7U*E$3la*(PQQI~} zef!o}ed~eEBLh1LjloN&rpJdMrkA;b&CX93I;suEPa{4jUWd_mc%XBew0A>_MN4qq zS<Bvf$GlmcX>x;>){=`>cug}#%F@K)Eqmlmfc^@pMN){p*)v+32(XRfd=zu^KGnK( z)1{W3>st$@P$syQaA=E-EIsB5lyuSM-ur=)M=p*b<v-4tD>bk>ZcN3HWBm0u)rNYe zbZTAC^lw3qVe~J0P9aa4EQ*>ehYEi;i&uMSBEvLbCe?8Ch}bO>lY4h<MY_%eTd5k~ z?P*z%=J+syai|~G_Q|$#SkZYyA3oBNX_)ZMiOY)Q<}TM<m~^D4vUE}?aA`<8^ZzbM zD(}g)gv?x8J+(KKul=pJo?GsW&5U<NyJvw>G@v!T7x|eo-65P!AdpGkJ)-(cQXkxo ze<n}_N&WMWL2Z^__|AZsDv#1spE#v~WIRrP^i~82L@OD+;m5x|N;@4`_xvF+wm-Ib zE$!Wr^5g(xUN{+68Z8`jzd1f-NiwG3=q%HH-?$52`9%4{H7>YZJN<@jS9I?36aCh6 zaEk9|U*SV;^R1oblaeoLhu?=&jSPCwvh%-n8x9LB;U8(M3Xrwr-r%-&I?)_S95Ryh zz4_BqXn|I*I_5W`ncD&B#Ox8)h-Sgp6ra@vq9%A-$%z<eu5GFtz{tF~ER!ja4{V@K zJ742-^Gf841AxKjkT_+U-<d0k-85Bfr!P7lEdXMC<IFXsDB(b9hfG^h*C0)$h>6^+ z2f4Rmzn>_o#A)_-58s;eMcn2u`HhHVJ>;%bMR8lX<L(I^HPReXA139S;UOKY5)f&f zFt7G;9&}k?4eb)c1dV{Ofb_M;j|!{z9R*2?N{U|Vm0r;Jk;!z4>E7UU1<n3#*Jtb7 zKBXASRLer+milRyPwJ13ToRgm@tv72$Wn;Tly9xVxkiDS0(Sc%-+31fEd^z1A~LhS z=-3|m)OChZ?=BP45wBsdvuK4+StB087`<Fqq(YDR26c+L^oxX3&K03j%HHHe(b}Gk zZkH~TEJJ-^G+SY>_KfDfmrUZU>vrfJ1We5PIYgMsgj}vGX*;n|3?F@Fo<L1ydrtdh z;)jlK<m5XS8;1<6G%AO7b~*0rM&*L{J>3uFC<gK$ImxIy2-@a{sFjAAV<qz|27NW1 zoa&MH3WKwVAbLDuP&q^7+R_t9Xbr7_2(f8Zb@;-&37PN?yp*9Dmg|bz+Qofy%b@K+ zh@Xeh=RvMWzM$S7-Byn@E;m1SpYrFT_Y9Lx_jl>@4$kHXKYL<O#kpxv`-}vmaU0d) zJG;N9=$E_7g8cTlpb4&pxSj8YoV8NhL)n3{!28@~$4#jZdG7$j?w1ZS$O;eoPL`Xz zsyW*!Eix5Q0;5@$sC@V?l4HT>YxsMqx>_NH+vL~2{R+mM<lUftH8NOcv|oChu)oLs zG^2@|BWKHge73(iF&3;`_Eokm%D4iE;Cn~9Luv5i>=$b~y=aDAHB{_lWCeOZ6nbWm zj$D@>B9iekr^(v7dkvBA!7<ea(3BcV0CSrCrcx%D{^`tfZBoke{Zdgidwc62GuwNW z!qZ6KE4E%HrQ@wL1z$^VBHut3jDU~q{>`NtO4QbRJ)r833pNLoSPT#EDY3Y0JLURN zQ=XrmmY34<+Bh%p#M%6|_H^WBBQ2)(yGy2lxCAFBO!B@lRuL2Xz++8lxZS|O&7ZGr z{+iw6hG8X}SYNN`fiDvU3w0}qm%zgC)QsWtx_nHee6O(SeSdGk^0F6I-mg?HNas`u zTWui%kxT%F;MLT+&?xL6GoEqYyWw`v)V}=INU$x9d^D+$g7Q7lt3Y){O;3+O-oB?A zr>1i_5&!BTh{>6P1k2K!Ft`f2JuLo_G;FaD)|y1o$uDLvq(oKn8l`k5n0W~+4iY|4 z^FaiF8jULdHH4g5Pm$s^zz~%uR8v^Xf~9SyVE%gofWn`YWtY0t^)a~P$>52#gtO<! z5?e@p@7yN7G}#A4tQ1g^pA*Hm>`1J&D;tY%ozk$KkiO-1L}`$}Nr{R0wV5Nr8$S8| ze4g$%)c)s3qsA7_3^CW;-H0XDoZgz<c<p#rcgBgm?vq>CByX5B2T+_E(dff7k0@qX zT<P%TbPrOxProP>4r+BXce3UcdG35<<mEcW!mFh=R?&*4(wv3Kb^N6d=#-Zr))J*w zmw0wU9c@^o>Hz2PYq(u_O>k}2hlxhvX7GvNqLW7nBdTir#rX<rq-s%rCL$8DW|L-- zT?DFz<RQ|$W`k$<_EjF0XvvKA`f04vg?Iv~tJALVre|~+0o8(@^l51mys>r;6s?y? zy)Qh`dhN}mbRrcv69oFxmz}m!(C4uOH$o6dvJVwC2szL>kORqqmYObnQ=CvrQ!{;^ zIcG`FYjH>Vg|Zf}#UqmEx2Z+lC#O?0g&s-tcaI9Fi3BixeoADt9lUl&i7f0|<Wcv2 zQ<zK*EA}YbX8p4}Vt9YMy-%#o#^I`;Giu#`rb4^3nj<4!Id;LGGj7FJFAc_*9MApo zfe=G&GJUn&{v)q`b~<!f{afKxF9??HN<sO+{3!#)X+a(JQi*y-)5o@<;v7wLqgmzU za$FB`my?gwT)~eRpYbukrIJlFB)`<wp_Gk9ZFJ8tm*&is-nDt)8ah~ZkLFZlSFkTl z`45v#c)iytRL2YH%lD^%+U=W4iIBAVGereO!SW|WLR+)1L@GaUd!Wn}scLtgdj)g$ z?iIdsA3mP@RYip0Tz(dq0Eu`idG{!EZ=IkU0KA9(#X<imX?_F=+U}DdB%&bxvh@A; zxmA-s&5^TdrI$t5fs9vckH&-#KZK_NRiav|CqoL4%Dc?U`XY$F3_Tu<MNVFj4)*jl zlC<Pxy<w-CGE~ihXqZN<s?m;wKj_2C*m%5M3QCLwc_r|_sY-nTGhgX@{k+@CnUdbU zX5%(&k|W0#7wjeK>Y$BcOZNAW%hn&XVy7>B^R01oiF#j6>Z_l;&{e)nyk4_v!WPr+ zZ$#T;xOdW0=(7td7^g{<#@@|ud{YQvyE9Vnl73i*iUs&n7v#w5KGZEA_A*RNFu8Ie zM_(vpKluhgcS%KRVPFWQp^cHxQNDXYDn=9CHG2p^YIxY;&yY-sr?k*NnnUBSQK{35 zn7Qv4>Rwc?&`_kv{@HH(^+0EI@Yrm7AkEYCC{S;C*ZWJTAPnaW>TEwHmI-#H(7iPX zVA6wv!s$};Ur94T6yTRIfCxA<ewS_lA<Y3@hyOZ%KPbSkaG?G}C?qI>qR=nNdqDXH zsXf44*i8MDC;*LSU_%S=K2Y2V?P4#2{SYW5{F>)qCbWby1~+^q_jgC!10R37&}Ioc z{wyT?jKjdrBR=Shs&i1bUtbdlWP$p}?^Ja7=ZOs}lf8Aq0DuDLfloh&gWx`Vh!PLq zC20mlLvHZe!~gOO_?K=1@OAtzc=0Qs(x3tMyEiC4G=Q4uzkRmW`9+QYRgVEBm5B{V z7`_HnDu3DY9%#V-ep>utqDk-wcfb>nD*~|fHbPAW=t5wH!G!6;Ct^UsS=<^rh14P_ zH-OvwkI|$)Y|Qy@<sX8~_KkxR1)phx?(O-2jsl^Icc5c@utNLidI7|PGnZiFKOav3 z5E$UEK7oHC^yL3b6^UoCUFL`2N&>Z<pT(yXLQBGAZ$ph>Axfwd{#26qsWJcxGf{Zy zN$}-zpjbel1@mIvz-Bjj0$<ch6An3U@XIrl|KDvn7nlE|1~d#Mt-0==vbcQiLjfaD z<1pDJ8u0}0@vBS)Dq-PNW&H%JQ6R>Vjguz`X9j*X|E>RjOFsW?$;TLu*7zK!<KxBV z>eIM4o1~riLHA4MSj%O8GQ_&s85a)CNu75(t?)ATs2uC$Ld8ZwsT(@(Whm?hp8|!8 zlHSAUtE`b-IVY$q8bRb}{J|aCvD2{Rbp~E{8)ntt>BWml-%;%12HQ!)yR~=sqvack z+GBZZ9QJ3aRX$XwsYrfZi)ysSdSHw!0i$3Cmxd)HuQg#^epXYsV&j=PbPJu^f_OqB zXiGm~Rju>%JG()?bHe6B@!c)d!ZbV#PlI`dDVr)SbC|;28&NgiZoB?LovikVJlTt; ztE|B%6|Nnv*~EDZz|1|}r}wbtxXc>fA^H5JxaT!Jn~660LF3EE<<hpcaG&Ak4?|Eb zNe)t%sCfE}5Q|?ft@IQ`_Tsaa@|RADMP9gZRWCM_h$K>ZmCPZD5uM>vZSz1}?WlF- zBjlqe@=Y;rRI}2XyHhU4UL}yw&7g^suF%g{sN+V2wgmaMyT^(`3Oh)e{AE6V<!>u< zFx?Hp<-#qYfygrd<{&#C_%X7+iI)R+ts&Hl{q3e<>XBz%taRLlQ|YuLZoM^dRdAIx zmGr?h)S1x3CX<oH`QE~IYqMyGzd~Z3{L}O=yhC<^wmLhV5Bnu8l247aFeyy31k;$f z!s{5SDXg8)I@5~5Tl|J57;ELC?&%*o3oo`V&sko8jCtrq^JbFyU$>gT(wk2u2MXcO zV<6K)F{xulO9R6+ok{cK^wIR+hnFq8dCyS~I8}VTw}G*#7=F5#l?F2_6)laCrmZ{a zp#m_%sa^vVlA%Jj0@9pmxiK;H{a<fgk@Y?OT(FolBz=CaHRYzl{DW?r^NiQlOi&tj zL*`Qp^<lnAB<S^e6KZ|eXU)oe>(a2ypmS)h`YGvsW%Jkb%4{c2A!0c%vMp0A@^5C~ zDH`@KD(_2qkd{=Txg(0vF(J2})f7jj59Or{%csTrc%PsVF~2KX_~ncYnKQDaqh3aC z#$`1FO<5bq9dBYS5NXA%NfX@0{XJ3Cu$k2jfBEGjjuj-^GM&k@wukpOk~;P;W47Ue zP-37nd9^y~YxRJ%RECkUghPDMk)Tj_JO<dMdnE4z9r4B*a@=cKHdmeID>m(6d4rZc zg5N@b-qjh1lT=e7#~e%RL+;zh7f4AWOmuZl<9Q$S*U5XZIDi%FMT@KX&|MM&Gw!RQ zb#1QqZc~2KBoVLFU7~VJjcec~)yI}`!-DS*C<9VRo)`*`Yu=OqA}@4j9J;}s+C`3Y zLxQ{Sef~3(U1mTxM@as<dD3ntc^eTLnN4)NTOdU`?KcPPSnVB2>)5MvIM_%^iuW&K zjv_ksr)xMoWKqaQ$Z=y=$;R!bh1=D`x0{9p>^WMMSwgjXHz0B?XS}avN=e1``%AN` z@4nc-<u!0cGQ<ly=y3^S!<Eja&^=UA)ua$)^-^2nsULAzy9mFjC5eRqQ#OFYm+XrU zTd^PQt2v9k)!lDx^x&9aaXd?StNv&QYnbCzj_3B-1@;t1&Cw5emq1Cus{u~x!Iaya zH>Q~B8mP-EePMZ{nY-}9;w^RgQ!R?A@vnieT}>+bdbS0_@pnWgt`gT0DV0?7RJ=AF zoeQBTTjPr<Hi9Ui=HscuruJEEB$`HT0*AY~{kWj3ABf23^rPqDH24cZy+ADkhitym zOMjwOpXH868>k+yBv8aMnuiP?mx?eU1NVGMM-x0a?lsW=P4GDHV8<lIqW*@fyi&_H zxUtCE3X&U)|4L;FTr<0_bowQ_vm_S^H$liT4)U1TOxFSZ;%-4mKx%LF_qk(c)}6aF z8RHR1ds$7gPuc4sNK0WltW*E0EIa<||HIyw2gJCx505pag_39+dq}dBrEMg%A)->L zLE0s0(LT0HR6|sR1|hTzY0)}bv=FUId()n_nbxUU`mU!ejdKpp`#bOV{&W6#&+B2H z`?>GyzV<aZH13RU)kPsa<0VIjtPkDCpIUOL^3ZLk4~H~g+<danZ!fP<me!~Fn$@L^ zw*I5VDM?8|F=nMQ6|Y^E$=@zaTEu_odeX7|h3b+6n9ML<O5!;O=Tr=tXKl55DY@lH zg5M&k+MCQa``VkqiusW@!rj8T_C0G1mlA@&6siwXg>K3TqM$P@BMbSlovv48gpGWc z>+0{D+LwRf8n^z87x~K%&P`d`f<KFm3&{b+-k<8ej#eychqEz=8=@#i>Bb&PG4zN< z4<6wURLRhvE%##KB5w{yPa(z*S~nf|K&B&AMEO;*yHG=As{f{PI=bWW$9%tM4vxXt zx;)y-eY5&%gh#Fqy)IHX@YJ)+-qLeHVv>iJ;mhaV`BHs>dskfO>JmJMUYr#f=;T$K z;`ed;dYXEqwk3UM{7{dF9o2TImm+j7UOkR)x@C7`b+yy_LVMB1x(v}%+cjf%-Mmm? zb#cJHI++O?jRjMn$uuS+Jk7U6wpP)<CLzrBu4qDEf<hj_ig4|c-i%$F*K!t$adZvR zw>axH5WN}<Z(G}_W)JW8E^}Prx0O5V=8-iUu14%#cbM`1lk^+toRD)?VK&{``F7@z zdb7c$c%93#4N`GA@;CL`BVVF5_^(`1i*bE%=WrO4uUup0gQO2dNZJR{2XhkbZ$Jc8 z|3t%NR%ls9Io~UYJ)B)_n)u@4l*QY(>IL0d^1OMa`;i9xt4``Li%aYw?V9Iu3j=1$ z(>?q~i%&$w2qsDva>r_}JIdgl9(mT;6m|a8wvxcq_^niJyT?^qY{lGXQB<Ms&iwA| zMx(*Oe&+~m?DO;lW?$4y!;bm;&TTp=Z*zwKOq+A<9ryTATl(tGQD}URqNyID%4R2? z=~K2B&{{9G>{@m09`4-*E+#EY7`e-n!}fTtG<NPcqJ`Lzv0Myg>YP#r=AL23W5eAx zRccWu$osq)kq#R)SG+;-b4s9sj8(g^=K%7gN_>{FPzf{(EL^Cc5z(>fnt>rW-{+*~ z-B>Bry8YrylQnkv%gR5-l&G$qf2z&KBFbYwb}me=jUqB68(V1l6zg4BLE5XWnuI|0 zhJ<Uo3>J&7A+CA0;ds{ST>Q<z1=8URBj!B^EgpuzM^6cc+^YoYGRsA!<gjwb^@cTt z^!Pxnpnzj$y6dmbKF)pC-q@PX@4f_|88#Io5Kr@~TT1mlxuf5`B=^Ys<n^zbTkYv> zTSw0A?u+-+)(lnEQBP9e&ev)JZ7Um!)+%w=(fV_pt|~W*h?JK$mP8$XLb{m~yNk*> zJ8nPu(zTn<_oTgBO<0a6OLxoC4_X#B*$UIV+$A3vFTSl_!Wa5N;kel*x}0F<<^{pJ zmJ3eLtTE5QnG(;3V&CxjS4AafTVi}tSJ^MGp{#pbli#+Xdi!f&jDl-lQ*^ipX}R6c zQ7F`FQPk?zGIX+u#)fE-GFMOYR$|u_s>mCI8(}MG){XK>Jq;yGF8Ac06iumiZ(Y?m z!*}uQd5c|F)#6jF2PD6Hwkz6*T|p1-iVWSPWgNS5DJn+#h}JOgy*C(H118s(76hJ1 z3xbbn&t5zhXT2>fpyI0Ro3t3KFy1daT|ILvWLGI=J<Ms?;9IM1dCM(o<?JIAL#r_1 zRDsvn7cfsmrQv=P7QZ<;;AvyDRXts0UrN{rnLafyC9`ddl(0wtistEaQ2Pt-dR8Vv zc1R$r7|WfGHg>Oa72$BSO*TA0>O20ynSNEu^Srw{&4`S>Ji0UeLerEpYY8)6zp{3- zPO{NHJw;@B-!09Etr_hu(+|3@a=BbraymT$Bh3(`;&O3Z7&GiVBWJz+p_=O(2a6b+ zpVX|p@n%|f|L)>7XJa<)m?h#Asg})M(QXSPDT#9!YBULQp^$UTe!FKzQe}Dq7Y}9U zRJ9%w9D2evdo|A|)X5L14lEC=8oCmiJam@cLE~sxU{k(_Z(qQu^9j2lw<+8Qb}c@( zG1-#4g%FrEomB8~FtN)d#?m0StDpQz=JnjTgp?P_exhBk^y_pbYRh+CXL0CYyoZ)t z42{fpt3)5rgW;TL`VQIvWaiKF<e}AN<lMs9%}DoIu*0Y8s=?uhPnEiFw;Dca(rvk< z?Rl8{GV?-=)|<MS6hc5;{s3`ahi<6f0hMKoV-^MIFX4ZxUHmd~-qAbfw{nDj;8*|b zpc}C&r`QQI+f&pT*GTG~CgknO+a3kL$2;4#Ud@|x#c+Abt=8a1a<T$JevS2=Ykf}^ zp2k_T#4KFVSva44?V(mT<K9nQ_|g8|ybEi3a={;`k9S%@T8A;mUead0!!1nRNl9ru z=v}Ioe%Ho4$yDj^#!U5u<lJQ{GPe2C!k3EAt01w8(edbusT(ODKthP4%B5sIaM;cB za|{;-HcCpW`|@j)ES7AQ<A3pF>%uzcX^Q-N9;fjtDBPcwr2g5xpFXD}*(U&J;h~jV zb$0F0{ABM4g@|iI(aMY{^N$x}(GNnI*Me8J`I3WFmR;7lF|ayox~C2;h`!2Q2S4OS z^L2d8P>W42i7OPSH1J&!CZw8J*eeyoH8<(L>9upKIkTp2JTEzv(7W&X^FF0odmd7i zsiCt%rJzD3VY$hk?2}FznSR$Vzm0Xz`LrVKZZhFIVX9+iVWs_0Ksjr!bL_4w$`w8Q zFbkJgV7c$}r2K|8ms_{4&wS~g+bla;kLB^KA#og`60=@X1vGqE5}y1jYy84nZ|{-V zxC#=SmW@2qs@+Fxi7dyMVtt1(f}T8<avvgA-PS49ABf(y{d9?zmCy-4x43IECv)l9 zC4|(Z%i%qHO59H3-_}<}G=hI$X%#K(ZS@-^NVGc8&R<`x!d;z}&mFj;mR#okS%CXs z(AEZC)_O?AI#A}$*+iV>oMY-{alcH;alvr~PMe0L^?9n#u8Ussyr@@AqU_ruQK2MB zlg!ec=FyUKbEz*MDy_Cu6|K}o^0LQ3?uC@fYuzx8vH=nG6_g==GEIiF=h${#`P(j! zZ{}}O>Ud>Yc}`(Iw_KBajz+$ypyj);18H5JiJKYz>M;F~2mBs09Ax`?yQ-;yg-xnH zU5<~u)nujCW;k^35jEXYW~{$qS8d6*3~v{0HN`2I{knoWQK@)?J2yf$fO98y&B_Pi z!Lp$ezOmDu9thx_^#<kM^uY5YdUmRcX;ZY`Znu{aG_K{rebgqM^IdAk56;hZF_T_q zD&V{)+wYX~NJ=JVmLs-m^;@lgF_c)#tI*Q@S8<t&<o3tTHZ~`Ow>|5Qi)1tfRULda z^6BntzQTG`htjgLRAWz$>VhIe+HK?K&p!&zTySM!^I^h}N!<t4XZXE1S9c>jaEx)# zmiw2LSM9z2IM<dx?!)s8?)4j1$Fwd&%{yXmv|nSRy5p8r>g9T2d5mTz<jk32e6YN! zJRI3tKDvPxeFk+|HfJne=F9M_DmBDPhkj`POjdncttR2;SD{DAdR^iPQ^lsmiD9wS z`HvpbUS^y*<GM4QIPDhq*)<!UhAQS6r6&4oMn(oEtvS8ZMWWk{zOS7$U&@9h?7o%1 z)`C*|aQI9M7c;@4??vv^xumz+m1|xL9a)E3Xq$>TPVyQhWD+ju3hzppoA}Yu(AUxW z(}JV-0?GUNHw~Cxmf@A(q-qshbw0iE;!(NxD&&NS7E-qq<xC?XQ-6Rn)vYm+x--5b zdCw-Nq@-Kjtil$d8RmJH(gznU-2}$E;4nuQmA-&>CSy1mmu)L*b&5vNmW0xF?pgIm zy=pkreXqCO%~4rws&n82XNI^h-HIWbLc2gQYo)7SeE)=I)?ihfb3uC9tf-J#O4kx^ z1w_0<>CK>vdzKi_t4QT|%-BK=h@5%5k%w0{HlBX`{IayTy^H#4^A0Sty!6)Gj%$Ir zghh+Q?0fzzx5q!~Q=$>`uyfoG;@{MZuvWS6PrfOFo#Je}|2d^~udaMZkWBk>>}ZEn zcAz=2fa55>!bE1fv_kTwp`Q9{iMEH^9<Q$>-MYK)bMlJtD2qTN{`U&OiRlNt1MH_) zHa}e)Qn2mydF9tjf)>=Zm{@J;BRt1aw9=Mn@|{0Z<#!L?t?2sMqA<!%Wjc0LSk~hj znK;5hV!A^G?EO$$;?Qa41B^M5gCR+&KZnllh`?G7UFf#-u#w?98DSQDdikeglC3E= z^8JZolArl}SQv`dl{MyZ6vCyrXzgD2zFE=Ii^Fyr<#HE?&!3(5d1X+y<n4VoT#j9D zcZYCseU(72=PH`NJ;h|`OsS2dn7LL>azY~Ry2+7!-B(dtR&0{jzkQ}K=%C4a3j+9? z6L@b~RHdTlIYb+<7Ps=O@R(mGx%HEMi^#<t*OWV6p*(U8APPOSmPRDodU?uHL%h>h z)~&_kqTWwsCJeXifZ+*_p{tq|cIiL*(3;t@cdr_;B-*-(m_g+02(+pS@pr&1ky$%k zh*G1uXxf&5mA9I&j?U1wRNs=a%v?j`q01xboN~-^j3v5?uaP&JnlLyZW!4E}!2H`j zojCIHZuwk0i)!<$=i<~`cSmi=x;gZ;kz{-1OyI2MASd}H!PxDpODV)QE*|qNxrjH9 zsJx_Qo%f7rXX|QT;Q<;Zfo%o2tLRh{iA4g1L|n~nOckzS#^8fGl_r0wrKUCWErl1N zh68r$aeVUos1xA3%=}{H8Hp9HdUyp1vX+RmrZ%O`zq>K1IOeFy=@s(RtuCAiMdPKy za~c}XKQtpvPvvW@pT}55Esv%Okmn>N7Z1oM##=|;RQME@*{VBdd27*Bm(DrO^W=Tr zDo;&MWj-NUzta-8EMcsnDU{agf8H(CJGjihxaVUY+AP8E++tOX<O|fRk%NNE5{TeK zy^NVcGAr~R_MAn%(c8$!|G7^geaZ9EZrz?OcZk7j!qmA8^Oo$6Jli$huj$d8z3V@6 z#f58I2UXQ-MJi2a71i<4+FV2A%o&>Tkse#F)UGz4srE@N$@w;Z(^}^vQ^Xcb^J83# zrp1&RgIni<<#Xp`7@ly&A@n3cv~Ad~AYpeot&pnNd^?2s7^^YD@kaRZb%>l!cWxVU zE=g6nZ%|E0*bxwBQu+2_$a;lcyHx_7b-m_3uW^UFSBw_^h9Ih-gQHHZ-g)$Cm1TK_ za6zb5%F|7kuZm<|xOwB8c$euxzh<+z=89%h1x-tdWSk2<mx|31mN=&*X3dhQXt^wJ zXvj$kyyn~DASt>Com!H_#o<0`26N*@ihBo$mGs@Av<)%g9&Roti5YX^!VbOeT99+d z^+MR-h?Ml3G}~O^9&b-sE7#o1GCZrU8N8K$!R;^1eM%!}Z4Jk1h1`WB85!s&VIs^V zoVlBnaN*uKAD!apsD^-9YpPz`cyB3N{a|E+TFOBbhoa=F16G?<cPi|bP%`T_>5-Fc z6jK>u(FDydR%ON1uWMfv>u*ncr{HK$#&$!<_j3JQ8E9@bYVPAGzoINVv+lFG?`vlh zOSM3mWzT|C`e&XHJ#MnhysPC?`{*0_s<tYf!k;Hy?+wZEH_rVr1Oy2x-!r8VpT0Ru z*@u<#9$_-&7?_hhk;OR?!FUpJUgXKLgd~4c?}Nt!H&3}%><vB1=BQ2=kC&P^W#kN1 zWN2z)8N(98ko0g8+mQKrqthDOCYKorSWC5*?fO>*`n(UH%P{LS&Z1}yEuxrb?KxKc z#&c~MpYPz6&HPn4N9TO1e!G>gCD<vbs4pser9xND6!cMC!6!_YC~m+a#yjCoZQ#}> z@5hhcAAv}Tz&#`r`QNbDzhSR`!(Q($|A%3(3g)YR1&CoPMB#dqFq!y`Z!rCDb6Iql z<$3QxD$cUmzssIwei_#mgl7&*(Dt`FN3dKDLF>}fI4{UG?^d{asEtuLZwyr^iKh2x zQNjzrGtl<}8a+0{V2k#Z;Z-h+UKEamf%Oumiy5vVkPjs<?QEQlkIl8v>(=h6`@qX! ze0tr{Vf4|yP871f-AJR%i5e%2W4o{Qe)pd&9>t6ZT%G%lG+#s?Gba^wvZO{sc1rW5 z%FDt14fM)|Id&!K=O>>oRkewOaRcvz9h!?CRjNx5h&IPK$?*qAU?v|+{QGhBly{nT zD_qmvqL0P0>dwYFh2bjeEx75MdKMNg{9tX(c33c3n$4kU3sD_2u-J&_aNC386Uzc{ zY`;;Mbefp+m+_X(J|=|8TV%fg`1kX<Y@0hq^BU|AubG|KJs*AD&i_tg{b7@(V%Eu! zl8Eg?LHn5m+^F!!(x<)Ab3%)--*0o}<c}nCtyYW(6#Mz!;1{#uLT*9gV~fcc$|IjO z&t=jz8qJvJrnPMT)-lxgk4Osb@NieQ8#>g@#e8g3U71lIW_PZ%B;^@fb8Ov+p0v4A zR?>gHvY>crzTn@33;U(P`!fROt5!fdD_Ke`qDrZNzN@YB<*5&QH{L0)nEc^DBv4`t z#^z}pGKo5=aOZ>NOMh}BfX_>!{uV_<VdjpZPUeRn&cz8vR8}AH@XBA5Og+Euv@2cD z1&Z%T&C~1$@kkAskzCklF=sSi7QPD0;uMIYUBH$p*w7WRmafOJYQy|Avr)avb*n^M zyl#*eEaCS&^l-|7dso*A;uMIOhTFJ==%A6(YVxBpV#-uCM=?3ILrzPS9pk3;C=b5D z8OP~F9WF|m%jogUtEcSYs|qI%zv<<2*P)sY-EK&+<^8NXTrvNJ6~>a3;=O`<=v5rQ za?9bB>ot>YU*&RrWKNk(!bUR$?{p@~=P!QpiP}5eeGO8$WmpT<RD51>Vlz9lD+pD> zsR`@j_PE#w%Qr8wKi{=&!9M*<3rz^h>}a@3F0u9x>_McnvC4LwJ@6y!p{w7I_trRj z5C--j51FY5dw6zWSp3R8!=JK;CqrRsPHYJJ0~M@<AFTP+Ws;A3;OL%9OycOOm4?&o zyDDFqOZ<`cCr>vozaCa4<*W8nzBs|U*hu?NP?(*0jL@4Hn79>>9_T~$4EKj?5!J>U z*G4?mT-@J%V}pzFp;I;MC6@31bi~BgVALC8R=}0>xY|0AhKtGesU<H2{2M<O`Y=T3 zb1ciN!kr0?j~}wOluOudvW>6V9o#Ju*|bqZHBvn;;AvI*+hPa9UY?F(3zm4vfd7V^ zDVMsV=Vb7E%mqbH&t|9Qv%2<u;S1a)esTh75FTvM)zOQuSe_EV(v(`?b5vKY^+?VR zU3$i$m~D!$6)JRg0?~4@Gdt&cAJ#leJNI2lG?J+~Cw2OB^@x1Q!bO*!ESlf<I;Z>I zqOJ7s$1cSCkX=^6Z~@a83!<!D=b@Dwe*0kotH#Mlt2&A71&j9U)3ufv{ap?ynB~5M z<|6b4GrPuFHOJM_tL0*|+_h!CYxrZF-U&3VTGHGwu;{9?w(?-;N*(vBcTPqX=B2r@ zIC~o}mcRG$PSrX_$@8{&GjMw8gPA!c)JP5``a!g^p&ZQbBpCGzGE^I@k1n7W>l-FC z4Fsw{aKv4hDUTZwJ_b@n2vS(iCv%nS7`!NW?m&FeACg5ptAwW6HOP~EbPa66UOcqY zoB4S})`_m46f$dyV_&&~ba2YHZBrI@UN<hB?ztrXJXk|EN(+we4A|1N_Q|Diu4ng9 zC{gHsn`|YyS(pCMVHc<5(zou*Dg9a$u@8|h4NMNTlE>veN~NBZh00<34xP8ZgEG3L zlX*TDb-co6ve0yxr#+OeX0@qUT<;!jYH61E(sG8;z4j`b$Hd0X0ekkgEWZ<<rFu8Q zn*V9p_2+Aw^7C60Qn!tclspo;Ry8Y8^}5K`6TOHi1Fq=EUXomvT7L0Wr94`URfc_u zxuPWVKEgRA%l=R$4X<{#dUYI8`0(qP<2(7{x&k+wt#lR3=HIfkHGyVB$8|b2WhQ&E zB6$K7BEt3@`#3MRv@LX%U(Z8F^!lYwh!vr$6(hUM*T@_ni76h5Y^eXFVByJE;d6OK zY&i@m?WmZepC_(tb5#ERC+bNZ=@ksqnkjx~!vozThj?kek<QjRqlKBb7_UCWMcdo* z6q{Ch9Onx?%d4WGFGUz>mK<b}=3*?RB=*q+>H7!^EjU}2zo||1jXFD`;}^3h`*^^n zxcrq%>3$rpB?7I*cLtw6Q+Vm4GGzOg3PYqTZ~W0lMLsPmZ!pU=IKrBzB?Y=bOJ3w( z%+T?&DmO087c1{qGNjegH@DY|Hl6Ryo}(PmIp4QM`Dvy6nmS|kz7}0w{iV|br(~^? zu;#u)3(2hibSBeS^dp(NHqjBfNo~|G*u5#_LS9_|QiX*}w&m=edv$g<Ci|fs_Q8a4 z*oUhqfJD7$6P-Rq?ngcsLN*%Q8A>7VpsH3v2j%5OGGc~Z0m~BUj;~(z8L2J4Ua+f5 zS!|c&by^Z7xvh!gf;lBPP3$4J*vS*NM_s0u>s_1H@_u3N{=iv15B>a_-5do8@qN1j zI3qXq^=mW3!RIDe3b6n}oP^KA@~p~2OY<n@!XdAh_x<LdS$%zK1UExXPR*;&I*xgc zvAO9kANfOk<a@J(QO_4o9wsd5QZUoGyok7(`?R0hzS_5U9Ee4RDI$`zY`t>o;U&*c z#Xfk&EjMSu+-se>XHiF>A$#?LoC^oEPp9GMQ}r@!gmUU6ixq4dZTR-4mAlJ*9`(rD zb1Ge5wO`=$D$YgfN~XNCI3f-ZcHB}>wG*hWF|_P^vn0sjbXQcw`B_V+qcu7#9(B84 zi#=~BZu+Rb-$E|A(!$j&Bx2ghK9~8|M&^ip*u4JW{{Fz3d$$UfPv%r=^?kB1>1Q*` zPq66YhsRY?=YFP<yaXW@`D;ZDGjIE0_pQw2^$PpeymXE@wW}~N!tn6@j;li5+b&cK z4u<4lD^;@z^AxZyP0~WNs`d`8WjNE4W7|8-9<CO=m~vyE*4DWf3gz(<EtqO!6Ed;N z7(GYd|K+2wpeM)A1Wwh_YT?Icl8&URDCjAnH?K=*Z&@d|`Ps{-9DOlf(ynqRPiaRi z+?p|9UWl1ZG9^uANTgiREgCS~qoQ}==Af9idD1I?AL_3A{41-O5B&}6(*4*~1xXHI zP)<3am*e(2lP=H7@Xo%#DkG4wQ`~i!7uGP0q7Ku1UWX)viG+4k={xj^Yl?N}uRp?Z zQQ$*ylIl*bEyUu_D|HMi1+@LlqL)$=Sz=6TA;yGNO&P9yNuV)O0Dav(LWm>pU3+~n z4PkQb2BH*aqETR*&dsL*Zu9$&Cgz;Jf84*|R?pu0BU>c~$}d}``UUd_wtE_27y^L} zdAmI~a@`^uyt6m?ynNaK@gPl%zUUKU9o2)7Eh%-(X73nk4}JGO)lG|h++U>f7Cc#a z)5hs_y<eZJUfp0J&6=g$3*t)vD%hiSPD*{Up1nt=L}@3jf-c^U6B=|$J#doZe8%`y zYh!Dv!_~vj7u3se&%}!9FXUuN<%W)AR<k(YH#RxUXuC2nm{=$!7U#bh-4l#LXIFIY z5frZ+5`7-m+*3?hUeP5+8N$snq`A%rtUqurR3%#KoyaYt*Li^(!qoka9Mzc@@IEk` z)<vT1Rm6QzQuViSf8Z>2gnpK>B7-S8=yX{z^&;g4L8XcBJSkS%hsA4U*|=>Hb!OTe z=KF4{q}Yq4GwylqntKUGQy*n4JKpA#LYqOgZ5Tsc8N`XZi<G7+Hfl;4lY3%hq_h{j z&tBVg=!)U3=_dr$<&}d@t>a2sNGx()CHH<n@-syvk3k_ZAF~uYLW!f;*R_Z1AHDE7 zvEs9ZM$ZRwi@}zq3a6UgDsHhpK)7<PvAgFhS^|s5c3S&G<9u1Kn$uO=b9&}$tyuYJ zs&={wr)T@l>T~!TdL3}j*Pi0K#1V(m`52uw!58T>t4;@Xxf@X>hh%9URQ}IK+F~2( zvs`avzbp)Ydo*B|VqNXE#<r&`pJWfNNacpS?JYg2-B~$Tn%jDqK5e=5x|0}c6?4yn zi0bsL;Q6=DSTF`C^<7gMq*m`B7$>DvEVN5rbu#_^G|xHNv3!{tqY)WsE(V6us2Dbj zlH>I-$;e+}Wot`CaoeeqS3_p9T?hAdZcbi3Z!y}7ova0~5Yy8g%7yHz))*gmS^qNl z12rIA%(ViMmzd@`P-<R|X7X5;+-;59<!|u|`-+!c)%vCK`Ge*9N9$1V%DwdTHCmNR z<JOPF_AlKcpC~#YwsG9}WAidvMD%PnEz&LfYvWWB^S907KiR&JCkX`F93>+#|FWHH z=nABb6$@(#S%UGC^%e=n`wOfL$ot-Px!tNwG0u?lXS^1yzr~+^s@MOSzoWmiO>0Sy zyfXS08o4xbK=|YFOY;SX!8}}N95i5yd?f$g!Z)z^%H+MVA4)Z@Z|C3jwfvy-!V=2t zX7vjPp^6;B6}4_|&l7j@K8VN%xPCFV7C@pjmYFbKu3_cbRP4Z1Pk1m{O8u}lxPq?f zZk_B6_>YXOGmu+Hx!U$Fp04^S`J_h}_Ex7~Pa*ko)nsXK{o4e||KgpsW+8;;dE#)+ z2Sa&pxqw@ph>J>M94v_t^HLFfw5rZhpEG*K<gKy$ZxGr1f44x{5H8AS${;mjWn4f} zZmW8MANl30wtKn8LA8+SK56dcmm9M__zN!ZfA_M?Q$om$bArsaAY`^~IOmKx<&BNY zByZ6+;JQzc?lHLbQllA%+Y+uEUG@{h`yjZM<k^|uZ#bWfJlsE>J0o^aOKz=+xrEbK zIvYdzlA47{gGdF64#FIF<XcQ4tsh*P$ftGwu3h*Wo7?8$Zh1)xn4|6WnY&I^*4Y=C z5H)%t!zd)iIY_sR0Y_B34Y<Y>g|y0k#vK1K&)t@Nqhlz>GVUEt1Pl6tyc+r@TSe-f zwjVBTJNOXFzBe&B_}}qtys5xqH(3rn>7MFRZ1Qf>-3`Olq0vnDEC@(lPCk%YereDD zLa-^N%e?Zs<K!(>as*+L)rvFa28LojCqX0=;Pb5q%PKm4XX&6|Jl}Vh=nqWrpAl_> zSS<87J(m|y+KoPb*uU_lS%3Y)4>%1rCV36hYz6JD^gy%;LxYv;)jMCT`YA~X68-}T zb11p9v$X^huWBJsctzZBt9+tenM0ugAU0K+;SAS?-3KK+4iPT@8-H|GFVTPXTywGe zR~&Bd_9Lg$&9^M*yyJ$r7`#Z$92|5=lyA?8M4X8cpCy0gll~`krqxO$CTa29Dv$84 z$ZJVMC+h5~x4viNmFjHsRS{l!O#5eo72yc0|E4zgrUH%KRK$EHzl~&Z<z&w3Gbfw2 zLZ^SkQx9Q`uf2ARR@GVW*d2WSZ;5@$w)*onQT}Ig>W^tUnLL%g-MSGa;y#8tGcCe6 zeo*j-zLM6Q^gyRBO@px7zt()lLojR*kQB-)B>FFz0vGGE!DhooZ+iEg29p>h43bIe zo02g4ZoCZ<a;=V|*KKzGTtY{p$BO=~{`y)dA_c_`AGDa<dMXB5rtQniCKU`$id7)F z0+Fn3n=udz95@C|Fl0YZRCeCXM5;O`Dm!^_xp#A!9)-ZXzjQGC(8Nk_gDR9rH3nbv zmzlkgsyAMdy0v4n6TL!_tqTlNySVoL_ld_0aP%&cBt&6H*Talz9Aqs|O&W!)`|$a3 z;ndtR?aI4Q_pa}UWC%=T39vbck@{mIt?xD~J>su6GmKO#er=!_<AJoRy245Yz6;F) z$A@w!dwu-?q##TTWJ9u{p)>pBULlhzZ<Q37kJ6Vrht<DHp8@R(JNMt-L*=;aDDTp{ zHacK=e5uLx>BHo=DQF$va|^7fINHj3pXg=?tz1aeeKvh)IK;qy-RFD->(v)n9bPY3 z)F<iFt$3is;VqSvEuYnD=<HPYxq5G*yr9vE`-_}vX9eNuyFK>UL6Ro+vcZa^rxrNw zIL(_qkBc9L4j)|q+|-*~raEsKe#GM0;a4oNw{p$Amm<}dxeS`W*U<KG8bKdn<s{eU zB+}(+Mlm;2gR$1JHEs`uHq6Rp%v6k|>6OVgU}GWWr`LT3MKUv)H$p_kb*Rw8PK0}d z;sE~CTpzQYj@t5bjp>I98_i9Zl?l?nH0pCF4E7^c-$=<ZrjPGBE8Pt4;Qc{Qjy`E< zlD<>$8wT-CZdSq8xq`i+<+MHy78ja)yBg;U^Hvn><PEJtx5VmlscoKrJ+B~XaMgw* zj>OUw=abRtqL!P6+ly=7m_$6xV{FKaTyVrA<AZg|tGM{&KGsKWdzZb-@CEy-#auTu zi>~WZmBlyWN2X~`w0&{4PkrFGR5e)p?l4k2{Cx9Q#D&V-$?X@Q5SRs_s;h2L8Jvyy zN+-H?vf*RfUpF~umsB4Z;D@y*ij$%941Q!fhUtiy90o{ftSaL?nw5-bMA1n94Y!HX z*h!cU?K*$6&>qN?*KJZ~L!jzO={A2>*!{&`Me2nGK=px+2Nf33!44@He)LjK`0K7G zdghSvBQwTO)t1nc0%?yh*`$Qx+joOP2kuX<corR=G~NJO0BpoE;gmzs4zfta8q&;S zq8;T#dqWc47OCt8G|C=B^?@Fi0JPG6EIyoiUopTNs@uK|QWq?A#<G+pp|*P*(-77* z`59Wj^)c1m!jZjfIRAxv@w(&k%D_#88L)(2dsHa&-Va^ooFNADIGGD!M$l<day_sB zq)r>@-S@RqK63k$pT{Bd0;$sehSyV*dJ(lz95dP>&GP<;Fr&$}=YLv#Pk<6W0xK1Q zK%mV@vOgK5Db9etv671?wo`|E{%b2i1U!?<&i@Qy2#5)CbPVN*6h#;5VPG>;vset$ z==y&L)Bl5m>5KnWG5%FCzVR^7dA9!ZDh5V^;X#-5EK290c{PfeG}v^7t5QW{liZ|s z%Fr*}57Uy#kiNBS$E8nKqx`aCI5U>%;V1$_3vs-iPApm48++R)b%q*ir3S7zZFs$c z<CNReLwqvcZSVHS5mE~_#E+`%wCpyu7JWB+j|Le|Vy*^GC&CCvK3I7hC$-)k!F0CT zGP%pIK^tKsm{$OW#?X}mh5XMRGE0|g<0>xT+A}~TusuP`wR<7^Cb3ndosJBtcU-GO z+Ft+%{?>1Kf|0SwR7nEpco*tf>A?Sr-Xjf}Ck0jF@UL0h$Gf9WbO(W2%V`8mpR6?V zLLtjvut-k{*KCEQa}b!q&@Wqpy`#w_?>eHkyg~QP!i{!<^ofVw6r5dbeNK_a-IzXZ z%wQdW0O_vnjcZ<j>r5RFno=+!pC`0lm9NUf*4~lZ9Lx)NWD^yL&^rQh#t!7ngJj_! z<jlD95r7a=ga|sMMTr(bBpl@0eK_$O1SG))?G|4<u^_Eu;q#dBW-O1#VFHrR1Zl=n zg<Q{{wlt~l2UVs9GlsH4_WoTSmj}tYa()B%MAGdTsyh{Y*I#u3X;w9&lw2;y=Uf~@ zRDrMUmXY>(lbw?j0&hBz={W9P9#;jH_l(QziPqW(aZuSsZd)$HUzL^71oAI*LjMLy zJ%Lwn(a=dH62L%4z<^x*<mYj)<bKy45No3?RT>}%(!BE_X;cKUO}s$C=R-3cLO{#< z^L8d4fFQV03J6IsI3_<tTMbOKG8tDmK-rko*JT_wxI87y=*Wc2_)qW!mkIjI3?JqQ zZoouO`7nE<-)IxY=JCd~fG^+RIi*m7;SW@F8So$r$Os5<=|RF^BMF&FfusYk1WjPV z_<@_6<cC3QlSyrU!8rLtpW(@V5oGt1+WZ<wf9s_Et#QtjLRI+q_kkD#xIUS8kWL3) zgm9h-#qH8J-3NNid>dMUD1^`%=4+SVxJT6cnkEzK;14bW4>9Z(1}B(f7jg+h^RUc? zc7`eqA$eL39%8_RmcnI%YPU$lHVV;LfIKIA0I<^ru}@$C7Xps45|F?!eM-YYYXrKD z4}aETt-!NArQ%GLav1ND#z%-Qhpe0-9DPt?3?-n-V0(%s9BDQBFg}Q7RWYXRC8WbX z#n3`A<jGHpH|QK2dJtvPo~76Ws5XRSa<PB!MV!_gOWo%+Yx-hCl7n|<pFACPnr~{1 zOvKxP<@twup1>qU{<{J!Hw<(1I(V_e*`A&Z9q7{A(BmAE!#A=D%}eT9f*J5g17NLn zKUD5OCtXrPy*j_^cw*T!HH~$z`x_Kz<#$x2p9jZb#12Tt1*6>a;TWpXTEFzRpZ1QY zU*>}ycz`Q3he<oyII0XTbJCM+NG#!4QphO+YnPkt=m6|zJ1{Ix=}R(?EAFN6C*BC| zxj15b_suy`6WMr(2<-J8Ln#tiOhAO}^6QV}rQ|r(&&UZ&LU$|n4Osm67uFb4rL4aL zU+_Z+VTa&ADhBLVkVECWBop~wys@fI*Ai_u#Xnc|K$)L|phL%=J@TCSh7;4D{u&>` zE47}FgiOqP{p(-hO_eeVQYOZ$O#&D@_+;Ex4e^@Rfc-{kW4IaNDw@Yoqk?G4jdntR z<ru2BjKJ7qViC5eB>KoJ^%hfUdr7}tZ7n9(igcbGXmRCljyZD>nL)({*5V(Y%itT5 zw|)=E7JxmXzlrIYV0(P`3LRbpyS#1e-K9~dT`ecjl743XbUVNDLN*f7lRHql{ou7< z5Yqmxh)*#96l6}&Un4ql3-)W<fJsmCKm7nX=L^}wI<40f<5QzblnSPa1Oz<n+a<@9 z?C|*U-HXl9Nwxbyn6c3?+Y_=8X!G%l?W+Dwy0>O2^gs{uKa#xz2FO04bXi|)@T;Jl zrS^R<^4cYLYPjR~X140p^tAsJ98t_0biV)6Eid}sBqlSzk!NKm)yUWIt)Z?TL8|}N z^DQ|WOJMNaWG0tX5*F&PTwQE@!r@;czpVIMkIR39qG=JVZF-nPq=924>^#W7k#CNr zUg++jp}v=DISSK6@X4RGmYLj(UZouxYU8*<Ti1MifYoHGV#gHozlCzh-0{C&3r=+b zxrnw@(3!*!;3^<c_D7ob1e&%n4RF!dk6CVasfH0%DK^94k<zZ{Plw;qCnl8r6mUMj z&0Btlj2cM{|Mj?vE1)@K7|l3E9KYl`PQ$nJ{TC`3w%MI>HBprRBQZOb-e0Zu3p)KG zkS6As{ghD^!zFA5zB;*&@{i1{eDfs*<wwSr+SS!>3%ZK0a-US{e5!CQ;CxKbs;7^O zHw3=;4VwOa=JLBYy%AK6FZRtJcD%`}k!N+u`=&5m-HjRzvuY^s$JuwYRjpS6@&7*y z;+bq}or;E=rk#^kDDU&Sj~~BjJ3sRX&md4<*zO8swW3VBM&NIY>Nf~){!Q?)nQ#(p zEcj5>7zz>A8`Pv)%$%I_W^P71W++_cP}bA9QC4cPSEKs>JFS4oVH=ZU`Ga;*l&bv5 zKtJ`s+qXHEhEq2yY~+{Yiq~-WH+-HHG%Ww@H&h)fP!j(eyd1(I-z{4%cjZU8%x#Hb z)-Kx%-T)_0Dd1R;<9epU5W~jY4tHqnnf?&WFqkhmna8uA8nm6irJPNk1oVUU3u+?5 z&8?MfB{zonoi(w`d?gXMzGR%hi|zy^{!c;p0c;=0^~+la9&Q(KV6&S5hpG_GQd3}F zUu@!S$s@bkypO3WcNnZb0K`t(Z!g*N8|qrQ=Ub0|mbrudJK23e#*i14kjP7f;O4Q% z)|<a`@9E#@2mE~?n#gAN#5hDezWdK#J@kE5Wu>SfJ^^+d%BcX#G3sbtu-pu{VN-^G zF4yZYwSfsCF0e{c?4w{Io7`ttrDX}@mdHP?mgh3SHtLQ8KMlK`6=lN#y5(a+bD^Z< zNbIKRC!Nifo#uEnF2bt^C2swuo%T1x;?IrL33G#e5;O@2TxF<UHkJ6oMZd3Jo>9=W zpl~l!(wt4Lj+W4HwJg&3l^p+16io0dK(}Ft^&rE7e<YP*Ae9up6`cBn_rA}8%AZRF zDoSb`eEj(K_S3pGzc6$Elid{mRN4Qk#!p0HzH}b`(>uTO9PZqA*_OFU<eS&>#Dg9n zYFqW-@_eKJ|0uej-5*BAjnnqx&EvE^cbv94bJmC59o7A#CARmx_AlKPf0M7Xx!8V` z<h{s+&z;Bra`Rn*BRNf8N3@o?>XbZ^m8k*^{kOTg;6JMPBK9MjlkW$XR0P_lfu-;C zzSvhToQN<F+&WE+=L?k!ZAfqXg<%0$b+rGtHKE_o4JIt~SCMe<2fp{1J{6uVypKA~ z*d@9}WWBh1;)jOjKPC0m+P4$#a%!voLNoh&<`DGuo|KOF0{|;P%`mEbxKE=X)8gg@ zkpRJ1*UQPjN#uy>p!D00fZtU%5g+f@cG*9oC<maZ;#x^JUwtEk?c4kd>ztNeU0+mw z`NoKFqHWo4SY{xE{ww#*=Gi?J30k}Jxn9uP{U7A;1&`E--Z5F&QTKxto_ynRcf>#M zZt?xzAN)u5Xb&Q>_Mu&d<i<7Btpz8y=;nW3-GSKP|1+-|+XU%J2DPj|Xhq;|aXqLz z%paQ<y?D{CwqE(Uc?;UDKCbGMJz4+cf32)%V%YkmlMeueS2U+?NW5XAyY4H6Yk-rG z-EV5urg5^|=+`6;j0ya<zpE{=Ipu%U*9$>i*DcDO9#xPy7j9ii=S0|pziW<L|JcI4 z8pmdBj0`t~y^N@|PTv&Rx=V+kt-E{ard=aU4l%d#=MhTkl1|_m9}W1qjq<Ki>&0Pk z=Rsn{_wMgMXeD)M>dYYXhsw5gl4~v<&zqa{xl47C$^B?S1SukaL$5;=6A)2^vC@A7 z`~L>^|I2~>uhC)%c1`j?eF-n4C7A9INxvUj0v(%X|7SULD9E8i_stBM7z&L<AtC6^ zBmHeEw3f-eZ;|<lq^HR#ZsX%fd2o3Uq3CS<9{T?lq8$(Yvri2EAp`E=D0_H$Qj!}I zLYwSGKthER8D8Jg3Lxk@sc{t&WSNu$7X_JxU*<gI9sM#-mE(s<JIpgVfga+;jLJaT zEBhFc@$@n-%wQFik06m^h--bV+WL!e+21WmB!J3|%Y(@H9^`)hbW8^1-;wAL9PUPv z`zFs=`LpOhmN`*+gamTG8(ap(w4$)_-d^9*3ciH6gCJYr<(Je9L>>D2Jf36rFs&HL zx15;$1%Tn0JWS;<jjdz{NzS<XJ&+4AQCyxZq%|P%|MN+cAIE|6sU7kWCkDbyq#>}W z-pB<_E_?a&z%r5HuLY6h+2fI9!9w=OXydT+NMLzl^a&&*P71Okz_A_S$c3~N@ZPi^ z`%{FWVOiUrL!c8GUjhkrlXKvraNbNk$kRY_2EGAwD+KJWJ<}ScA_)NZW7r3+XxyF1 z!26OAShpMk+mQ6}`OElPO$ZMlex$N5^K1W@viV(m8BYha9hs8B8bIRNJHMxlOe8-d zxe@J1HgX6n_4-6@2is)bKaBO&qV->3r9%bo#8_VfwT*-6kpbw4jP+f0Vj_8kc*k=( zIJ+{M3h7(`kypg<$RFjjg**QUXAeI7$%D(;N7-iQA_V$vt}aZ<@r?YM*-02H`&T&r zD;)n7j;McyBa)yl8Akb6IBNeZ9RC%LP&`2Rcg(!RxA8>Z^NaqiI{Qbf&i=I=mH8kw z_$cVV<$r1j{A)S>YdL;R&;HkP1a|SQ?(lzWIU)l&AzOP_+!$)4!+s2fyUjpSg{{FS z5Eg<N9wFtVx~Y)Bxj(%g$_Rh{%PSK<l>L&_G-(Yy`v>CWS!jyN0mw|tB2atJfCu3v zcn}WaGG!y6#jz%V&ZuuXRJFp(+@2>(t^a(8_PuIJX)fmvd|20#)uKe~>%CtSfBy0t z*76gZaSdBVO~}et$qt)Ko$vF|$m-q0!wP+>)*@<WmR(JbJfXK*#ByQAJX~fA?ZOyp zN4*Xs1~W20jmVlCjbXWhgRZ`H3?+;q3zv?e+8z}$S+>;Z8y%Gr(WIEhmkI}1LeklM zqbo*<Ep}ko$05s{gJr69#!&fq)=r`|J1l>ILu+{TC_SrAVXD@ZFgcrJA}=Y!2lyZI zo=4aB98p_NYO3CX*7yjO3h$sGV{}Cok);YQ34=jS2T9qAd+~fqxrt{a-rH1ia~y6H z{}?}pnpIAKbnvyf-hQ0_;YXU9#Liy+Rs}uSB%aiM+p2y94c-+?9Qibj&hkx&h6lKH z{<Mgn9QMih9&>xeL3NmYJC`)D$I<o!j<qA4CA1ljYY+Wge+T-T_!<LvCVw4G@wXg9 z^_R4<#!#DS#qU)U2Zw!9ok@(fw&GBABm0pAod!nuV+V;>!ZxLru1Fw|TO&{66E`H? zp6$(Xr|R5?_2p^(?EA{0@_LzDhSwb4(I33$CXeL0ma@~F&n`Z-mz3`86=;3YilHQ> z0y6EW&||a#pfoUKd*@!3Zwzsy5H2SOsu9?C#lB@NS@HUcI*c>bj(R)yE=%~!$-t`w z=f=Ugamcxe=D&5LCIB9oX9MsVLyZGS6;3WTe)2KY_|ek{?5ATxvG7p5ZD%i^GZjxe zTqi$<dSD&N0^;mjZfc1Ua<{SO&gaW|uX}2kf9q<q5q<n>J1ZB#UIN?c$~XDm*RRPq zRie=FsNl(_x9>9Va5oGNKhu8nc7T=M=a}@5fJ-mcIrqnt{kUg03}dMQjxhlKOVWE5 zWEoAOa@BF5i&LA>|EIeXEpx+Ro!xTJkzj<(rk8@1G?!<-^Jgman$;Y9E>CKz*divU zOZ;)8X>xnG3apE&d<Z6n^4D7vy1b{w*yF7#*>4yi_NZcTI56h_cG3gmG!WD)E<KJ= zCf6xn(G+;z?D{vj0j)taoeuxHq#~IeMr`1--`~yjAoq$3!COt^Z}CmMRc`!}nwULY zb)r0$HlH=a<JPrDH_mx;q&@HSb0j`sL$4^?IqkYmp*x1>Dzt={P17jY>L|uJ{OsbB ze#ym3*5bfrX1Be;4lJ@l4-a8kJAu{<FXP&`m0^0jNQ^7So$Q3ePU~g;$OfB+@tnZ8 z1{(>Zb7cAGOypRQ$veCA4SHY^w0EfQzyX)7{tXhK5NKFWs8PH>a|{K{1jsQjjzCFg zXhCTV&lrlyf?Bd`*0s<UbrOpXXJ2^hlOa|*Wf(sTwlva+8=YedwIBm<6n$5{T=d*Z z<u!IR@u4IA>Wh!cT$mA{F^0;0(Sh9wbI~TD>Y-$DFLOtmjd}g&6Zt_Pt<1c`>qAU4 z2ol$e7#zM*m(+}*kdVPa+XazrU59OfB=w><Vn^o?NxcIEfE@LwkQ={RfZSZP_@MjL zx>+Bm^g^;6!z_d)R2K>B?s_^x8bd84+OQ+&UkDXVc<U*=wfE^rBD@8c*gEO)_ZCs| z#0AJ*v7TFx%S1n&n$V3739eB-at8OT!vK8wj?$z2@mlXmw2!V2Lj`YEG{*5M<;0tR z7fCPKk9)9IYOU|#Twh!!vkcd+`4O`Th9Dh877~S94S8nrxt?K_mco8_Y>4|b4dKzi zbV3-?)gTiEWXC^`rjUrF_T3W;>U5LX7$KnDWXUA-Mdku{278&D$q}va(bz#kz?m~u z4hhj@DUCTTN=_eUR&cOfhI1s_(QK-VwMe$G;N8d96|=Rrnyzn<iOLGuUqo<yb~0o` z>^!2$TR=k`;9}A3XPzJ^{P&Ncc&30z+V1ppguvQt411oump@QW7l<Een#FA5s6f0{ z!5E5~j3M7!i)+{Vh}k%X%ISnC{!g(SBnG@Lf*%za)T)5*!`XSJVVGRP5kRxQ`}#ss z`@WADENe+@93h}Y-!NZ@u_XCM%HzP@MCDg)X!|F`d!)(Rh_d0^{xUf}sM#gM(089r z(2b*p)9!cbK2i;8mv(Ing0A(-`2d1|rz~9eT{NW#h;Mr^JTwUY{H9c8d9#M`{E!@e z!FF_ByjDMq%ME7<&jIj8Ji`%aGu&+1I3qjLl;zFn6^95B5AY%FFywRda9P{&qw@yG z7y1?c-~VJx?eBMY;m`+;L)#_0IHC4IAM{rZ=D?hJWCbflFu9T=M#fNQE1oHNnaR?+ zHy1vylDXAy=%jM4Vry>v33l$GC!wl&f2~P2iF`jCn3>+eF%*UZdgc8G@ML(9;RC_F zU!aHmzOHf1mr=kDNLmp<Y(T}Ni~{EC!_QwYey{S}4QMY*1)@^h)1Qv;QKHh!n`(qc z-GjrS4eQQZysguwSx@Vz7aZW53|CqIMjoyYr5eG`b*JAJpB2_U`tC`)R@y-^ans|g zjB}Cu-C+QC^5U7N3IiCm_a)Fo@0-ApXnHWGV=@a>Wm{LFOrEb!L6arCqLk%z_dp-q z&km5iMK7OuYO;QT8=__M90(VX*%QK?Z4l8+B5z|pIN_TMABbp<|2bX>g@00Pf{S<% zg=shVh*=($wzO%`-#>DDop{;9f>@=4Yn9ACC_P9AMSij!^de4*>%-^w&DYwd?^(@= zjrEf};-F}CJ^bx}P?|kL_zwnvBh4Sw$_KXZeWjGtei#=2Ii6YBsy=5TdkL4R9~F|F zc-5~I({A+3S1r=SzaaR+M*y@G1ZXn2tX&=00ck5jAQ1o0$YW>w5TEl1ja4M9UmmiL zl~I;(#e}zDZC6NbSeoPkmax1U+@ae+#&w4EN0IHo$1k3fLJ)l6Mo^P{{!~rc8xXQ1 z20`%fIQ*#4pccIalY^&OFwrb8<^k4-7WJ2)cwtO!#8Qe!rI{$%Z?6ln&I(5``v?r3 zpP$ERocCGs2(Zq|P5j=p6CEdh<;fw%XBMG>^N-8lI)Ij(#_Y8k<zSaEITZtv@_RO@ zH@dvz@H_g*O!O5fLy?c$CzK&QU?EHI<BDbj#ik#CgbiRps>)-id-Fk>y629e-uxWP zh3<dyM2=M=$H7DaR9Z2t)p(kvG#^|VAF`$iln4Kuu}goUTy<wR*4fYqW<Qv5LO}W< zKDc(yXSn+HASfJvf%EqfoX3$LGUN#(Q>|{o2zLx??MoSal}J|k{OIYSyB;>bTiT+l zaP-q1kI_Fss3=ZSK5}!Q>YceVk$rF9u8Z2%?)ov}JA>D7wq~8Jn%J2r0O&v#c3|d5 zOfP(g*7CD^+wUsoGr^`;k@2I`J`;wsv5eCIAM9*^4;q2bF;EhMe&=)~@*{V!Qnz^= zV9~COp#l)$D@DeRPPdv^H7$|--q|#Z2Lr%R+!;6v0=Jlj6{gZ4IK%2lb%IpoS`kdA zoNfd|hUA557XWC_#Zli5s@&HH*0wF-HjF+jK$yP!Yq_>9L(v2_ZNchcdxyjF0)$VI zE`l}q<@G8I`4Iy|)3)d@JFWOBpWOTfgG$Bc0@~>!Xr}@iD#B%MQhb<G0jV0%Ecsus ze^;@a<LrMo4Z}L;8o{Ij0*XaNn+#o{1cx6he_>e__`=~t>`p()sjeCxlI_xLC$Sd6 z7DaW-l!tD<^V~W2J=or_+xO^fR=ssdD|B20?51sIodet)UluUHI)gC40~l}#M;rVZ z0vv#SjdQ@qNY|xpwEz(ig?QxdWE)7MGXW!d&@9E@Jlq~<N!GdK2qu#0gVzShH2xP= zU;aWbfn7zIERAH0eaytEjW|lFF(?f8oFbucpA4AyF(jN-9L8JP&68R#e0zPM>f2o2 zbzN$m>xlQ*@CWKwKnZ%WA+P^J>s!*AsBo@qhndlG3Q@*`g@Baap%hi-w0JCim;<s@ z06yj!=mFl3xZWBx!}X`$rYC8<1;9W^lv1TxurW_$WA|WV1Guc+G&JknD3LjO0Zv;H z|I5Q6Yk(DX&olb#8h`kk!EVe?mFN4F;Kku%$Y8-R0i=yf&wA#9HSJs9qLSjo1mTVK zGpUQmksrGQ`6>w~GDpU@7BPl8iqOjrkRdO-cI_UCPEj%&rxzj{mLc?Fx7Oqh2vhbI ziUA!qHfW7dK7!#^fM$56{b1p--Nn;!kbz5~R2<T62s~I819YBz&@Xm73$WZ}arAz; zg=Kmm*8WmEnZSoXtRWZ_#VYpXEL-Crx5?mH0<Bt#d(qKD0wwkx#(i~yCG{a26BJEN znAUv8l)77%5w{-j&+lJ~-Wa^V3`Mc(NLF}Tk+cCkRp5#G#oi!kDsyT0=pOLM3gc-z z9B}Hm-ll`bKDUgiP4&O|vL^EKb=F)S5qd0`+*v!@UEub>qLj%!hiS_K$wpd->)ZJw zoCLejluH)%wIM7PD5!IaNh#7y2EYUO2Oda@4Tie9c=}G7gjOtFrraQM^R1<(M=$z8 zh2{rE>slO{uNa5CE9-yX*+f01lu^0AzxAz>-l9|44rq<I_P(?(tu*@&81iEUpgARB z(m1*Vt{i7<5)7IZv=3?JW2q6rVQ^7?C##t-OaV-o<>brE$Mlk)r15P?Ys&la^;Pfa zn$Dcbm7gOAz0n<8iQvP%D8J*|%O`!tUw$y40FKw&AgW$t`a6NGUn0>4(Ug)f6kv?a z0Tu(0FgLOsN9HL4$L}4&aAi1aPAwnHB_D>gg<|YlfmvWFMRhY-HLPN~(xVoS>v_4? z#k;GA9r|6zY2YDa3LI*bz@!1x0xCRU<1z3jPL5BEgg#boYnxqdN<no+%=#**GnidO z8vn>M!i$n&@YzPNgtcCy`+I@e*Ixo5+6`MXMz-dm#bT(!)~r90#$SToKJ{kTS##3B zT*WYltZ;U%80S7BC>TEAfBpWxG^h(%;BqB@ThTRwvDko*(TAgVAwbmyN>w1R=rSba zY%MrS2^J(on>Wy|=ThJ|@qqb7VKd6sq!&(?yJWjz^T_>e>!RS^g5!Z_cv+zP0W!TW z4^{PE9MII{lUu27yGeE=fb4yQZ)ObPMXPRF_DIwz5~T!#EE@ni>-e&9xGXh>5(FFM zASqT0q!|3eti9)8FId<ME^{t0;gQDr;o_&vTo4rRK!x!{;|j%~TciXCF!;6iH5$NH z!BLt{AuycMR9SQI@P)$ppgQ<VFcyo0zc~yzu!r#YrL_R*m7w`ZZNcHN0|B@hL`<l; zBU>=QBU{*NOn@z5d`N8<aP_<JG-U=jU=>7IqcWaN1&U1t7;-oZ)+|(19p8dz)Lo&W z^AvHy5vd69_&U3Yw477RTECQK;3_<%MN>}w@-_&FOku&+I})LMH}e;b?42oiNmNJL z<n8eC{=<!+G_$RV91Bl#W4?!PNROdJiNFUgiewS`dvLwaU{Uw2fLd*=Q2+`sgjO6v z7JRs*C%AeqxT+f@N^w0O=Idin2aa-{X3O#@WDcq_7Nv^-8rcIt_S5m}hVe4+sQ{V_ z^S#Q%r$9DsCbtbc@-aBD0E-ZSg@iZUSPdW=_-f9BrssigQ|&>>=d5Ru(o|NBoVRpp zxW(cz)V`$J)Wki^^#=8nViKPsIQ}5v)5r-!@us=c&Q^NdbitYMkD=mI3YHQd%j@Pc z78yf+Gr_j}nP;wMjpogMTbf0^k0*R{xB*9XfMbw&5!YewYeYweGm@u5$}!y&;w&?u zCE6f!0^R$;%qaB14U7SSoNWRl9nP?kT+hUep&GVKesh!suEVo56P5?gU>qCTu#{o~ z?-;5Bd38!IsMY#%h46o<`pQd-=qJf*Z2PyNppudnSq>kc0%=vFtayBkvt(9q@OBFu zp)<Gn8K0JNzZQQ0gxjk7iXa;R_N+9yK6;on4bNH|f;?1wc}Npr&EW&NSa^@ofgxid zHP&MWz!73AE+F27D4pf>iA@NCZm*X`?8V|5;0UJ1J}~1G#6f+3I|gDJSZ70)dv3?X z4Ggn{CCL@TL=pu(hKhxAOOgwRiMa76qB6K2J;=5r{pd$%3K8kwq+~J>J}iE;R~!dl z6r{A#he<RbmP*~dzSLnd(>pA<g3no0;bJ2<FmcS4qKZgdW*UXa7$J5XsuDWKkac_f zu)p$gW8btml#=cuJG@nVmy2=ZaEv{gQjFonk=)=0!21~l>_#h#Fw%iMw=t~KVJ9wR zt&u)#37)1GHV-a+Ide5!0miujM}D9L{=Y)adIkrEp#uw{c`<E|+E~*F)EGKTunjcl zwtU=Tb$~)|CbqwsbQS(Ietj8;@4+3eI4qGs<HaH7Ce8=lU)~RJETmNcSjXRJB#gg7 zHlk^=+z<4j$rG@Pb9bY;%jT3RRFhU#UBWfhw4FL#yRid&85H38u!nfq1DYD+=PZ!f zW^66}Jhx@GvUKgjn!^FFIxbhhk?hIn5vo?6PT{8xH(z^EI5Z{;H`0A({Lm0*yN}RX zp&N<8Vby~pAEv3Y+y#)&Gb9PKaE0f=Uors$GI)i){}h};-yeD~@Se)I_wexEMcg+4 zWP>}$eKVYY7)Rs&crDu9h34jAaWzA+_^8ZD`;%E-Cqf5$X?o&t$M@XFU&|?H%phyZ z?+6x|mALSMO3;C<O?+0#p1HRS8r{p+!InKmaD{IwSkq+TG}2kNBedi()N8Yt3YH-0 z0;wIQ1oXlDTAFShPz@|OoCh$**SO&8wh(C+Snv9Nsw15KJz%f|ygY)uY#vj}5=@-@ zayk#Z?0_2vuZb7>RX?9|6P#HISV7@?__8AS2njs6w$Gh#jbSMmn(oB!u@k?iM7sl2 zx3!ac!SytO2RY!6bC(6AiX<>*y5<+L6x<bFl$yl9N_xdFskT?D27fCbeV?cXpR;Tz z9Oc*vCKQpTtK>zYXKqeDer97wQHa@9(Iw~llBW5&av?Z9R5}Q59TAo=ADPHt0`qIw z2>geKgHplr?7>kM0zIanX}V!R&-YGD>`a0oiJ1Xb>n3S>3oaAr%w#w~g(W<j9PwoV z<g}C`EDxrwuMLj&5Vj9TB<s_pS?6Bh>Swd&;WA?>ddz9SO4EfHD?#G9<-(tNW>895 zxV7Lf)S@7g;XKU}yoVuZ8jl1`&k$C5mw_GN_F>VmlyH_{$a!4*LOv#i^aahkJ>}iy zggfhRCo!&DE#c_uGe33O)ubdIzI@LU&QaK%%bKRn5`0GDQxJD-dm(pRd|y02zBcBJ z(9#&WV+k1YA!iBJIlwvCp`iVcoN=SxRt(Jo?TzcF+red*;E-dXp^Zb^5RNeuW*SGr zNsl(*M`vUKprvX1VT)N{@65h{Z1KssAcwp2K1(x)bCd#XWe7kNG8|c$5f%X;1BYz1 zeg=zR8*rmDfXZPJZCoaif?-Z=m;@UT>i~ap2m?-mYy|uuvOok5G<!E|QQhH}NZI83 z)bJLln~ZNqQz98a2iu-tdc9ynx#j7iv<)B1w;n0!&XS=nF0gPm%jnkIvwxh8`+?4d zh4G)HHWrRC0|b&U#7}_RNRQ3}Q9SV_*m!0PWixZ?Jy4{rk;{vwNPm42oPQsfTPu!? zbKd|ca<QJqBR%f0mG1S%49vL=r+f^jl!X6y88%=?XTUwy!<}$p$hyu#taF<{26kgI zuj~Wr7++;Qtm0Qsn+?=1pb6)ulkv>yW<Xy0Bw8rQ6J0QEzP^R0>4bshb8iocN!Ox0 zC<9r&l|;jmxN+@ErCC$oL$f&DT^Fdi<Tn8!g3%xDug>${zAfP<v+dZ{+3nUTuqC|) z%;@xL*isw<s-koe=M{9#%b%On6V|q5WUFz!ZRXuH$`$tnRCsCE7A+c<z>R5N{$*{r z@7euiALewpM`U}K+eu^{8XxN%=wxsxq=lc3^K5vmAMU_p!uE1|p((X=p*MPfA3**8 z*!$8zsMq&zB}tMB*-b?WMT%q{Dug5|vd)q0B-yu_Hv1NZA||`CWsfk)T9TcRUG`zd zGKN`t?op@cbk6Dgf4~3pJTJ}*FTTZhx$kSguj}*K0KRGnBmv&bm`d{P8$dh`ft*Fr z5rTPEN&_}9(2lS`krzSa21FB251GUdmP9cP<TfCx!IYEP5KZSah%`Wuf`LT5CQvp~ zK?RE0jUY>aRmME?qy~5KpxlM14sN>k66_iewu--&(P!8w96zb$cGxOsGeNB1Rq{m5 zyM@e9JPZLOZd`z$yb(xT&7>3Fe89Q$YL1j*_JhLugFLF{_E)6P3z-P~MKTB}p2&ji zTmzFHotQkc-+`XY+W8vPh_?b)b~EqG>5i8t5Q`^3VOBr#S`lLK0-l<DvjYW|1|O|~ zzX$?5@IVG@5Ut(^VwhIIC`zc|CyHbPAzoks!b$ngX0YN@gDxb>#fEE8e6KC|@Dw}( ze5W<+>vujahaj3bI?2RTyrvb10ocGPDx4M3qzjg0H;9^oJLHP6F9$O}<!km#hEQft zA!d&~pLOv+tae6Vp2ENVwYFRVruJ2#cC*UnU<>xKfMX9$ph8@b!Sobxer#|K#|d6$ zjPf%5UtXpif+?2+4>Cl3c@BV15QO>mFKh<ljsi<j1>SyZ)Zh|nLndOj1%VY`Rh?QO z09Z^B`8FCXRuP0~^}?<TH`n)>N(Wo;DSbA;1D_K7TuDp$h2Zt;O3In;p+rHAwKwg^ ziX9NyHnC+QsmIIz>Yf)xa_6r|F%_{_%UP)ki<ZZmIbWne{r&lIT*q-=L?wC4A_aL& z=o|E98VJPKG#%xXLgRINCw3U9&ij}gIQjPN31{vNxO7#nP^0wJ?1u$k@TmT@{Xx^h zg$Nx8z3{p7e>%YP`gbICcf>L~8a36TLD~Z5=RhnxcdQ4|nFP+?vwZTO=B~%O&t9f7 zMD##O468u9-zm-igkfSkqPC!u1lOP(T!Gm<U+8f66d487t_e&|iOK?u&b8pfK<U<! zeUAYv5SGwSE*$~CU+pNKgfqHrc=GqZ05gT(2`(s;mTS-l0j8``!XKx&00;3$L?>{` zD=d_msPFiHU(tufG!?(2564B3mHePnz~n860x;CoccUe_p(riU>-h~Rvzg!dEhtFH z7r?H6CBIOGa(O8pe)J>2JfPlq(7(6{C3{nVRzUz0Du9}r1W<%Odllq*is7+-veHA; zR5f_B-?DB~2FldZzK{ORf*84Om)+73=ot#6+*|;_H1qX;foWcaaW(r1Ao4e!2g<^L zS<T;hWWR7Dtm3m$21F=7V=-hU5P@WG1`oImP>$DM{(%St*z`S?i2gt@3wM};{hLUZ z2WyF<uwJ)BQILqgwKT4h5<myDmuXQXN;^b6KoVYu8Epx<Mf7f4H@Zl>78g3p6MT9b z3dcy96IIaDST_<m%Z#W4A<<L@bcJJ8T)tB>TK^Pi_d783>X<0F^^vbwQ+l-n2$8lg z(AnQu3>^CBk24ZzApoEnv?s13ZTJ~ILgMeR(3AyVgTw^Z#2bhUnEPDIN3do{l`@?9 zeMl#h^%eOWg6_8+LX85e{{lg7r@Z-c^k=FW2uPl-zsT*k_10NCqe_t!pqGGC@XG{i zCgdw}_SGW^0SBolKLENH7zaAo%G6hWkhPbqgOF;yt7I1sDD%XWABSPG68O;HuwX`1 z9c+H+GDj%sPAxfDyh(dKU^NmeLA;|wepv~&JpgR`+RN1?3Az2d;!|!6lpoB8g4=eg zAQp~OzLFm7&+m*4KP9hNp~%KJrZj`~mwN4AL7BIG8H1uc9(cCwhX5{#vN8wOP&WKb zSb)m`eS`FjggM}HYgQ+2DKGSmd8`(1*A7ou#W(-9p44#~%N!I%VgZWe0~F~#S?MWs z3Up=}Qw(owljho;S_2CW#H$L09cCnXDS*|YjEVk{+Gh<cH0Aw4{B(~CGOGsmf#awA z73*eHi^tawu>Lqc%LmNW34omXb$k|h;@=smzJPh3T02nq>-f+AW0I%W|GKhoP_{qw zAOE_t?=(OEy0Ue!iT}E?FH~3mx-!5<u?hw8uPXy7!dD=O$koxSZ@><}?#lkhWJ3SC zvVXI(ufg_O_Pu|zvai-@4PDQ_S=ql?*>@tnf3vdxrL3%lRMb0^Jp+I`wGiH%rI$$c zjD$%IOqNdomXsPUk<)k$tFv?nI{Os*I=D}e{K=QJ2o9G{De|<wp$YMD2|yJagO&jm zGV}M}E8#eZi#v13q37G(GHiF2%I|$a5bTN|TzpyjdbuAN!^SNu-3f@GLD8^pmW(o| z6b;Wb_PX!WYm;zICqzP)+K_`vvn+@kmE;w0b`+nG2kx5Ah5PnT2fx2KD0!h}?p+=$ z`uSgmT8`YVr4w?!LvY_%Z;1=dD{rEo?s{P^V=kGQ`R%JTp~N6u|KbEc`7Wpd^2_cH zH0E3L5sBYFmZhm#m!QEX{i`o?xo@xC4sM=dbfDSZWeGRaCDLNeQPEYt=S!e|MxRXp zpC6xTC>6KTOqWUh{Xy$i^$Yj>udey}*HzA+Q!t79zF;O6!9yEpYP+=GWp|tQj<UWd z5<k3}m@sU2=;H$EzjgKs5gZwu1k~I{evt(X-`D76HSFVaaMT7W8(YUM(*Cn8q35M+ z$*y{HuqATew<Pxa;{XdWC~ho{twL3#KVHz=rzMI0{@?$>+g$G31NLMeqVVuT-;v%= zQT<DuY<0B;aF$+BI0JR?k0cXHiB;!ZYI*)iYx(a>w@yibWcjXL*LD91n8E3PSwu=W zU2p2E;}r9SaQ-fC-t#D#Vd@lj9T&hMhZ_Dy+^h(-A1~S3?elXb(1y3Z*<LHVc2&OX zk|6`LhX&v7KVQDYZnr%-uj~5uko)~2@(9XZ`WE$HwS*{SzD6iPor(7}WN{Q!+5!Ds z{$pITjjHmWKJ_cH{a>l(y1%W#QoG)qI7Z5`sgewJiG;cI8<_BN+as-J(vg7a`DPY8 z2QglqDWK7>clb?sv;Uuc?LU3)U#*n(ai6|DyK_llHgCNW43@p;U%H%lH4zs9WMvJL z^|LloZNj*a)psFSuY?pEHT|a+<wq6$eivYjS4Byv$PZC8yx)f0j8l3Awx-m)&;eP= zlDBpRbikp?H{$H{zuOvM#aVt;e1$lx7>1~m)o|5$JFkVx>3Vhby{J)=8kTFPXbhMh zP+ui#wwgFMuea}NzVX_(TD!I^|Ky>6Y2z<<Gr8W>MRo0dml`YV`FgqcW!xR0GQg>T z;{G>S&Vs*GnTtRte%X$%b4ROAWoyF_BmNBYs=93746C183bmPO91Q6CZZ8<t62TaZ z6$W1UubHrJ0??Fjubji1^oJWGVa_f=PHa=1-7lZ5XX`W+=(9e3AfIWC3a|Cn|6RYL zK14aEzp8dL&arr&e$09J>z;tV4%7(fk6grp;{~g)nsVUhcI-dh6#Xg)=AJ+g@bo!x zN6E0LQN|xP1)Q3NJp}~Qhy{zR+gVP>o9TGhc*k|B_fJf`5GM>c74h;9g;x$^$LfXk zrE8>uoTeyl6*Ml~I|WWOE+ZDi)03qeEbeyP`YRRr5AFDxxGg7tH<l^~dR6}zBt~TA zHKFL5<hYc1vdg7)u&vD+AFtIv$xQn$8SCOb^Z(Fx9hlvLczt?%k48Sp4;wW{L>-%m z?IMcm>wgOp6W1N8ImC4zz8kjYE7rXYu$8BNIW%Pn&X(}o9tQ`T0zC>{G+i>kUaJ{o zo=I7NHAizL7fL()9vx=;lLY{eRQ&4zbDbAkYw>>cyV}QZ_wC_8tZ;NaBz8eNSbJk@ zWjBj{@h0Cn+qF|?WLY)ZV*bjVglYecJO8r<Tn*n@UHqVfd*4&`BrpZoE@ESfi#ev+ zX69SSAG+pran+gd{b|hq&#Xv>ty`(Q4YYOlJLS=8az;72$43fq<5-vcz$c#%G(~8y z_>(``l>byJzb6wyoC<b37$o5}g=WyB8jIdb=Jt&WL0`0FEnU4H^2LH7R7<aY^Piip zOMkjZKPE=&<Ac=*z`J({f<L3u17hNw?W@KM@}uzrrX&pXn|zQ#jJF!nP+ZDiBr5+b z=rFO)9HPD=*8x;TN(89NwU450j*WVh&}+>J?pIaW^xet*XfXqRSv%LII6tmWhV6z@ zd9f-2(3GM#p-0N6XC=o)J5viNs=MZdIFlI!UK1+;|C@2K50;k5x9wyXDRJ6_SLD;O zM`Pg+$`Y}LqBv9VT*rSmD(=*;+S~v(##m-N=Tp>s^hYP|W2+e?Xr<VL2b~Y203rKQ zOYG?Xm29P(+V!rby;ty|clt@S4?*Nn=x{5fxR$apYoVQiQ*jqYre&tZd^hvoqmX}^ zM*k%I%A|x}T;7yyg_Tz%&ukvO>Q$t_JuV(PVs)Qf3c_L~j&Z9=4cpySNq-uG16}zi z7B#1!154Y*OVI1yG(S`u36n0e|Dr7GSf3qJ-7<GXH+^>q>plY{U3)+LW!>V}-HL>7 zPZhOl;Iy@waqoftBjvN@UGFzb0SG8cn(__QdNoV=3uXCFgD=1mieBEL56$<AxN($l z-0lSW@fap^O->IX1|J21P&k6Zo^7atPWbTPPYou;s|fyjMyq}NMc<y|O{7el*QA8Q z<+`4;y)`$azPS4PWEs#Soc#j2Ao$gO{Z*mmA3RiZZ5TIhv6@D&@w+*tGQiuPhM4Fd z+kUlYl$BwrNAgvz0hv;0SVNGZCqM{QEFq~B#;?8Icd0RC_>$26&j~O7J$(B2@af;f zr^OBkXm9=5dBVSkPju6i-qCL@Z2z_dF3vN8hTxwG%fEdT|Ajt^|1mwque&nncCsuS zG=}ES6K~)H(>?jx6|?V_@6gyL(G82>3e(v2J~Ho(6tl<?xB6?90wH@N1QkqH`Y~!l zg@M?jK|5dafpN7@r!u;Iqx+pl3rm6?&g|h2TE3Bf@C4^gh9C}NF<v5dB8S`tEr{~= zRJQ0Wl#0BcW%#jMfSwQ6a_;?G?^{&422`nByBIEirn;?4RE-`}#b&>j?s7T&;JJ0T zJ5%^>PyOBv<MH7esfLAXQF3xT`4RdmL>)pa)L`gr41<oq15DckQ{RiREk$Bh3Pz;v z$RaP!dFa*ggn&iHHyevV9$L3?irfWSQ>`h@pn{;#MAJzEb0n*f%h{TLWb1Jt%Vwdb z=0HC>=u0h?1Pz{@u*GH2tq!PQ{Abqnk5f~+3j+}=^I*v26bnG;U3Vgr$qxnyCPB;Y zm&SU)C=Q$3P`pwL8c}ysZcRDe;zVX3RzxWlcaiDCxW#&6nzd&e6xdf7cFZ22ML2+u zxs(K$gIEE$EC6fwrjQ<iAFc(|oET_}HL_c6B(`4P`bc5Pi8}x7_Z`TT-guVA4iOSt zL6Z&?)TlQYkgiZpb@Vjx!;=Cw?{ELmbqoT86c8gm1-<uzlum3gQUKB`7-;za`Rfos z7jP>p$rVKoVrkNm1O3xtpl{y@jP4}TII>V0!`DqTq>|<DBUXFk!Og*0#x2lz45z$Z zvPke&{bTDsmByiu9lX9La&i7^Kla*=k*~e-Ygdz2rhiVHpX4e*d6&+$7af#lY^U$- z#?YbAWoj@e4+GosWG(X)81tYs8-JTNpfuhVgE_<R)KZ-kZmKnfT<bGL#*r^vJ>UAM zB<Cp=Z%TavEL*c7jl+8CsTMEUP2biXbb7BPm!ilFWum|r5GR3C#&K&st>3wozTN&S z30EcPum>klO%0CX>*|;tfQ5_Fi@ny7QO5yhr{{<dU?Ld25X0JD{?%EJ?@P1VGY?ro zQ_Mc45gY92SMsSZd_C(&TEN?zkQETPZa}(489MNRj<9~FvIQd4)L>EmjrZys6Vod1 z6^sO49hV7S8}Y95Gu3r47M*U$@B_osEEA9{KwJfW6*SBPVS%plBU1>UGA)P}8YUE3 z+55X%09gUgy{8JYDqTR9O|b%NuU844w2a1AmG4Qymwtb0BxFt;LZA&LaR4FkMAWr` zayWFs^2^A{8PF*I<+Z_n1KLpz)M6infs3;J-!H$ciQ_l@r`-C>7y)f4xda>&#urd_ zXKkhCrvnY0WTjM~b~LM<@>|E&Uv^|`D4Yhb^MyTZJqaphW!Cia|5RFtKpVdiky1uf z!0Q0nTBV-qfL5;3C4oixzM5Qfh`M&5NZI5daiB=ZIdK)B(?UR}863qaI!$4|`ZB&z zJi7~EZUjLW7iqtY`s@dX=U=I(ehzo9PnN%qC|jky0`_GM@zhVJ8Ws?9V)fwR-~}iT zZ&U`Fbr!Waf?PS$d5Xf6b`XewZV*@<K<<L&C%RPtYjqtleu)C5z6L-X7+>Z>DURRK z#aBmh)+V16i2-v8_ZW&g0Krx}c$a5iIosZuukvI7D}YxOvs<2|K(A<!4*+h;HCLqw zQ@NTYWd%iGw=oYa`sdpza6GG1lxwee-g@00A3vCdAnyw1B)bDxm;0*&wCk?AG@cuB z1A*oOE9rq+AyL{8lEH9Yq7oQq&j$ALDrE?m^>pV#{bk|ZmRzhQk&0E<;M$VhGzOL$ z5#tBi-%kdNf$86a&8V?-Fsb@zb+B~p6@_fML~5%Lxb^zmTKwT305dM@PrggcHT^W- ztz+Ta8E29P7Rl(<FVh8M73PINj#Z!wdkq=fMiYn1Hr8G=G+RO2W@KhwolkuzX3173 zdF9n_CdEVLwiIA-8X8g*9OA!Mj^A#lk@Dm2@gw4cCl($)M57p`#d3CCY;kaInyH_A zXLS4;o0L|}oH~gV>W{KO?X>F8>qn;!LzpbwS#V|cSm>)`x*sl2VA*45`TY;yI#_(= z>3+XR`S=*iiTBox2xAT3I7vJ!LEnOh1zYww+9-JlNz>b>W`3~hUeCKxixvf<NQ}I$ zhG4%y#U`Cdq64Y;Dz+0%GcX$h*}mWrLp_jgxhF5TW50^=qvWH$&LJOp`5%VcI?W^Z zDs7!d3St}4QP`J5j8#G!{`ak<%zcQbOjFg8dtejVCk6KAMLg=}3#+b595t)F_EF-< zM`|wO$ElV}lC5R2os)=@gGaeKQgpePCu(FC+{}79qXp80gvKLcrj{UWk6RV(m>Q)s z?4KNZKO&gMt-^m(sG`)AaDn{3d_!M3Ki>OE#Ub5(J6q?XBB9XBhdn1id~maK-V{>B zO<P+O*5~PlZ4C81`Even!HbY76frLjw|x872QTDYb_amCxG<19%`iMm&&cX3BwvbU zXn&AEUstL#YS7!G7F=Og=tuIu6LKknU1JZI4|Q{5V65AX7FDv{g7TPKHns6lE9m8S z&n`yyeDn^7-?&e-aX$cLlx9C(7x6U37jx%zoB%#JO;j>e^|@;lx1Wyo<B`u)tveU9 z3v~3#u#n0?S%g+gmZNl;(%Y6v+v7_R%e-*Ipr-nwVC?;TLdZ?5wxd8P!=T5emQryO z+oUe#rNbFE<qca&yTmR*BKZBBNJr<DUliU}J}UQ)nlo*%ZIPFo#{IH8%Y)W96z^c3 zj1f#rkc~rl_mqHx#8iUXNXXwQN4BY4?R`f_W*sQNBvJ|nxbXlc>&=&G-1XPfsUL*F z+}2;~n(PAtO>+~dbT#5}B|ta8ofZUP>#YZ}2Ei%E<;jfMoijY^S90I7<T&zri^{>< zy0JlXoBVg~R6F+aIhFI|^$q&~X>i%5?&4Wyoq8A@$`;y{IBbKN=x6k_wsd>;KBGR_ zKv6v9iL-z?y`2>An;eBhCVfw~jd680q1M?Y<s77OFE<TKBN&I)Ohh#50Do{4fd#li zYp*;6aP)~!68_ru0b^3($OpnwFhbt>7)j}fd7&##Ix>an^@qIGH$MqDgoj=&)L2`u zvwG>V0uxW}|HQOF*1ss=x&GA`T^D^vt$SJqY{%4!>1dd2=`P7I+;42X%G;CXl%%$n zIHsh;-tErm)dYT>xSvCUxClVd_*Vf5)?R6Xy>|KAm;K$op94OThqYz;Q=7Q-r~HB< zt+__2d`+dqr{=%0$S)o!SH$}R9odYh8OS-Db<4qRsAuG@-@=Q+p3RWH7Y`GFBeD|Z zZz(yl3_tMlQ}SlAvK%k_$=jouVxh(9t1<cSW4`bUjRXgHD{Lp7-Cfu=ElvT(H`j4R z?vFHkmZos78&=|3{4Ix2cmbY-AjdWigI&^RE-EA*V1KW{M0-ysn}@sVV1f4a!1<_U zgL!C?MUngY$59Uu?`x-%S@2UpPb<!(kcRO=ypX~El+b45YBky*=s;2&lfBDz-cI!J zr+8P#;!2akeLK%Nkl#E76X?k}>sA15fEr*VSeMcD5TO{24|+lah+D|Qh}uBUORQiH zCD@4V1;#Guzy+L*!qM*D+}qWsweB1`B)|WtAshAloty9vKRO}nx7DVLnE8>Xkann& z`(+!`L#HJH2mnv&-}zeyf&flRIEZmK9;tvaSdtUM%8t0hBa$Z^40;XfV{>YPj=kEH zBg=Ae_Z4}na2hK-Zw<h{2pm+Gt|{MHA`z{WzB97JgtJQbQowO7`HW=UGkZc3K!$o~ zQjKt#Xc9Ph&eu)0s1iZ@HgqUcm1-Ehl#^p@x_k4v*GE(a^&Rf1D!-gXbDqb9`sT;T z(x39vwOsMs*`wEUiaNvo)Q+uwPeiCT1T5HJ7FP`tL0BwWCm4#1F3l-#hcF2iTph+7 z7U^9q3h!x%js0sq6(0kNDxDR2n|uh~1kH!OYV_CB@FVkCu5iH^#AC179uU$$ZkcVI z9~2yQL;aS&(NR;ny1ndM<12N>qjPh8w6^f>2~pTgVV)RB)X}?EjM?=DtsAEg*{N&b zz$wh~q}Xpx9x~UY1EQME<UN+|z-VaDOi3`k)NpxXnS0K&$gZE$l~{34vU0?%EXa&o zgH~<l7Tw<JF6W+=Nw*WKxjw>KJX*H8;t1JBt98@l>%*uVPlfD>sOYme%$ezFlUJf8 z3r_suqD?wcst?*)t)EW5Nk3NdH`XW*1T50OX0v|X#23$gpJxX_{W>quA?%wy5m}g9 zD;C0@wcp<FBc>s&>C&?cBUZiMP7Z(fx``m#oB2f_@;4?55Uu}KLc6y6EsJH5bZ81o zF~hrq+2!=d?613<$Vzu~t}}ExQWu<C|NE90I=3limCd<jy^9eK9AZG6Ep16Ix~(kS zzz)FImkd=#f*e^KpQ@`L_dbyEe<6BZ?_$1KZJ|}tW?=NPAAt<=kGt#*b~)0HYwm=J zOok|D9J@a^jb5^xQsxI89qDJk5J_8sKw$eX2LFGp?qU?T9M8E9rC?AW)(Rcmqt+-& zjJGgpj9mU`!1J*297*VpPB&HIz)u8D1F!1%J-eZZ<#Je4GmOWz2bYsq*a-oKd+UM# z(J)Oh>`=4s4gsT=EIZ@m8EMKdar>uv?j#so?zMh1Xcxe-jm%tr&szoQ=Ih|qyzh)Z zpZo&DyvS4PXn?%&Jg2X*`-WSOT2EOKkx_`?K!cV=LiLT_ccQ&eOw-ZpyY~3kiRtBT zGAhN$GF)L(h+*8(4Z)o=FIH^>l42Vy7CE*5U+h96s2)|q<`@wx_!v+gTpvD(2gX~k zm?p<m%Y?8s2-*L?mzgKfIdKuvoknsnsMT$AA{`^|qA8sR#=-2+vR!Q7Z?d9su`2+C zW^LdDtV64U0Po)gf&avgfo9pz<xNnMlP_2@z4f7RjuQzOhgQ8Ud^bkVyx(@MROq%F zFSp=?R&=y2-J8oZX@8kJr~U63e*ob14IAT+hT#syFdPsVx!z}!d5g1XTUCgBCX2wF z__hAD;)uUBW{v-42f(zhi4bV5-2@U7Mi1;lb`D$Kr*ap!M>VV4{4*!;Agt+coXkIo zgF!(C6zxJu&Xj#-UY~zlnd&A#a!F<TEv$YytdO$L8{K$Y@{?7qEb|4#&0H@2ZT8gx zf9vJ@zmTSV??3$cR!1Z5%Y<+?L_Ftp9()*9#}ko2@d7=IEPr2i`Cr&;6a~;5tv7D% zP3{K{U@yV^Az9}`X$D1~&Fq8BQ{fQ>KLjl8?;rH$kMHOEh47~hcpC2JKgz@z&kG5+ z?jO4eop=ChT)=<cdBhD0X#Ajn_B+1Hr}6`&Wb!6gnOxVvnrOp}r%O+EJu+weOqC)^ z3yNOc*^f#QAP3rx-(YFc0f$J{pbmzy8+Fvz-JSl;%{tZl)ro1JmzZKR;iOh?3A<AP z<tE-qC^t=!M=R`#@RP2g<gLN3@0#&yuSAt-dt)@)w%sLN3E-;*n99Q?sYK?~;l(M) z^UJPw=QIZAGRDGu+v;x&AYbXkYj``**)f;tk%ZmaPsD8CPU=rUWQO*33oV0W<$P%O z6|*Y6xacID`cWog#nb!bt<;3`BKlLCS0?Nc@<NEkQ`~(}4^V`JEN0Vo!)|=0I<|xh zAkxF|2bIys%gkDOrcxNkU#EcUC^SE$pImLXl-~k<a64)xF=Q5kqF|qOJZ81@>c?pG zO^%gPO0yB5)}MzMH$yRWlDEndPN((-R-(y^cke8p6XayXAFQoKOMTQoWj)v-|E^y) zsOpnHe{$W7WfoKIje^vEfXND*Qrb#_4=<Gm5ck0F0*vS#pQ&!tR{BmDgNVK-`T?Ti z6v8qciC=2XH$sfXJ(5O9HYl$ohfLKkfn-gHWKrRW`UppB!n~<*?WEiSyQs6R&-GKg z95>%1b4IEnh$15RgU+bx47q(i$0zbCopDom=`N7()q*C>OZGy;Pif{s$qBj`wVk|0 zoroGhmORiIgn@0QVaAH|p|Ja3TuViFbi<)E;rpN)w3%@3qynPKXR5ukoc#(f)7oSd zy^cWc8eJ!X`{@`%hOX=>6X$3YR2!&lSV@Nz+*yONV`*UJZW{;hblJo<HG1YLu`avH z6@aKS262?VZ)9>MoRv=e*g_{x|Nb+T%Ps{bh|$BPtdK@BT}fytn$h3>)YQoM1#qGj zZ%})B&U0	RJK66WusT;t9KQ6-f4+YyE4mcv+od;KbB@W+$;bT_TjY1?f>0Ex*z) z55>6?GmF46<~6)1Vt95)eHyvgcuMp$m9%fBD`Ma=l0J$oC*zTUB1GTdpYPQzEfR*! zgZp7N>(zjwv2iDPQ)p{Emim?LlBY@%BzXZsG`t*I6SqBvq+ON*B^2F5jw~)GG7_0m z2NJ;Y)&>zl(RW5+E8+x4{t$Ss3%v0T$tA$^a{o+>DcM>5Jm@1&wnPj-Flv`eYcoON z;1=Q)RPDD;G5!02wkJDaO9zz5r`sXBjut-5NZMiUyUBrg1tr4^ZsksHuv}UMz`k$D z3%JT<%b_y!LBw<`#$n*vQ>P)34SiECtV{QjAKy8T^fc0l;R<qA-X^Fo8npYpWUXG! zWf?xNNhiMkYie)_iB!MpH{Hp6QE+SWZaKi3`9rC^90KaD7xAGr;1C*Gh46t3Y*c4e zds)W8RftRSij$Qa>3I+lrUsF<-(x=hR=!4_>*95mXRjRsS_G#jGJ{f8uix#<bygn# zn`)JK1E|qV{G+nA!IC#9Su;XNj#0oxS^W@-ID$MSzjYVg$o0VyzAe2k%=vC?mf|Q- z^$gZ8niNWpZU5^qT^!iO|Hwf#JjdS}AZh8p5Nl8sDn4}Jc&Ex{Q;P%V=|be6Jh;AP zzdkK(GSuV(TwB<*paGn_gaM75s-VCt-7fbiA;rUKC;CKR=C^s;$9HR3(&fbo1%5~f zm-ZWxPBeAibaa6?XJFpY30Vuhv*J&!frW?O(9k$ABXA6$isobmJXBqgQ!X+y;Zo#J z2q!dZClsr}I9;zSyL1_4zFw)y7@j|G)xR!OH0Y~IHM^D+_wH9uI1W&bcM+>CCIX0c z#}(C`psqX9z<XQy&;kGVCQgHwnc6P3B#Vo6Gg;L-{mm&0NQ8g6WcUYRU0;w`t!@5r zWCmUTrcL4`;a0T(x)CQQOS+8`#`BWA_qL2%EB>;WApgs+yKn8`-PRKFLmBy{IFn_i z=GC;2D-NWEi+_j-+L9$~rRc=|gP1^hoh+;tBc#AdH3*`3j)1~&8-N@US@$cKOJ-0h zhI-0eyQGgcGCi&t_O^*jphSRH<Lc?$e^4&*x$J644{Wd>#I*j}{oBo3oNV3A@>nHq zOzcc*>8>L@x^hHX>D_C98h`tEq5##%(D-lG9Z`o59$ym84oFs#Su{1x!Chj(&IA)& z;qRiK)7uZZ<rmN2VIar4a0+lMT=gFY;R(EKdnGQ76uZdf6*IKi=U9`v^F7F0L!T@+ zGhrx;fXMxQY(z0KM;JoPgT(Tw1Jv!AtWJ;{u|^S2adGNxH_XY)CWhju5E&8IW0szI zp(|z?AbZe}dERbP3j1is@jSAD+i*Q#*^iZKMo_7ai(o08JMl%L>T|emh4@5&2{VNr z8T?n1Af~6DN*L{+<V7z%dKPNFk4U}^Q&H7!{C)`Q{w`FdV67ImBSwh-V$Qq>QZB|e zT#K=zAoX_DMf{%r1hY$`VwS`kYVC<1fkz2TfvwDGkl3u_v)@735fv)sY~w3cOYkii z^3x$!!U=DlPxsFinQc3F3L<6TWwN<ccnbG{lqDxrhXb{R(qlYGYSBwksx2d^Fz8g$ z5|0fvPr2S!+}_HE-TtbYnua52z_mPQWsW}~ce#ka8+7?#7<&YjOwa53Q91D^!+8}k ziMSd3L(l%*`1gcUK6Yg+Gdbd=ry=@YlBNm^f{ZOihfxD@<h>nrQ8ftW3k@<w5h=YO zej097-#`-VQ}*%2<_L{EM(xwK^+#f!H;%R;j^RWXV|k7hs!d(x%{zOOoRSoJvDFL& zJucK^gj@l#5^6shHSm~+>bzVRmR0M)lIX-n(UrH0AS9`flw&ms<(Xm!Wse&dW%4!v ztX)PBteIw9GY06hQ=h4*VI%N->NrJ*K0a{N`xS7G0v>v$YetTl4C-b(<QRLVbo4@f zrVj}REc?C9wl{aM<8pA@^IW-0DBUDW$$cwHxl^2Ubh4Y-M|uCXeGU&l0$^HMMf>5S z6UO#i>E;h}I2VT2O}!e1=P9<?e{!)*@4qzq3)xj?EO4f?|HzsCjaB|uWy>bsv@OpC zjVLugIn}NNX`y+Nf}KoA?%w-*l+f)TLgablzvR>Dzno)*ex|T@2MAS4ZTt$I2fD-n zR%=;52@X!Ye#dJ44!Zz)c=(H(RzWFqJe7xJX<tim&-#06BJ7eU^c<Bu((9jYI$y~) z^UjqEBONZ!72TZy-G#T7$A)-&42Cj)P<Uo3^+1U}UHZW;MKSZoN0HaJ$SP2UDDrz) zSgPHR^-!DZ*SEV?I1fEh4)(f2wVc}(GUOAMjE5UaSNCl$Euv3@S!&pmQcWC+??9u( zG%F4%I2&s&K^~6$CO~|HrA6yHVfu$~nZp`gNc~Q9ek?e~5!q?;u%6>7Ebrs#mXGug z<EiL%lT2R(Kzkzv(?gqPd+cy$NpWy4ctf8scJ@{&w{_xFiS>j}_axoSxyF2}-A!jU z*&S2%2~mQ$gtSj1b2=+TZuT7{Aw6k_)3bg1IA6BUI_9(L6zSQp9#e6!LEG^qrzr33 zO5_U*QOQ1#B+4R4kl+K2Me&3Kh7YgLz(5{jdA{=f_4_z2txx&U2A$#UHVf7>P+Ct1 ztp0E|nlWoL)+jT>HFr9;`Lcdu>CUU4sp^H)oObfJpJ)0QJ?+U)V1u{8k9}|q^_6<J z1z$O7pAz{3KoPeZZI^r0Xw$i{Y@TGPC;ZaVG*MUogMMbxL!WLwAJO^k0XMhK!@BMd zrDS3g2i^x`sbOla1w!?~s(qu<r>}bJy<hQg?9O<vWD?9qti6xF5UImsiayX|H4GQH zve)~;+(*8>=NOcAysjp7glUqs;WVxg94B_npM12>b6aPra{Rd5!Pfk$_G{?N9}V-b zLnEDi10Z{o=maG-g^%<)+>=|vq!M>QUv<QD*788xop{?@RrBs>P=63>a6x7@FR-Ly z5*C1^skl(i-yr%%gE5~DJ)%EhAKGla7#GJ%qnOfN7Ng9{f-QGBnats6edB5C-QMs% z)tQDAbkBvk`XOH;Q##HD!&=eEiASC-XrB>RXR3_ON;G$IOM7YaB0oRUqAPrV!0`=D zyS5I52)#iK-0RSJMLgdY@+sGD`ULHgktxBN%Ol}=BjGjb4Affv6yX@o3?Jk0*bY;Z zXa~}UBl*y*m1S!(oylO@LTJ}}f}sEb?Na4(e|F|dQ2?hS?1`hp;(^TOyY}bLYv-DC z%gnR;51uu^7I1w`-ID&Y$5Ps>b^<uIwau5mH$eUl@8RB7E<Oo2!2QsN6X-fT2)!*Q zK@`W*R*LvVg0S#Zhwy&gFs|xDcFci%TGjjJ!j<>=T&Sz7pi!aiw)P9XK(5Br6lI|M zanxQ8`Ac&b%b{G__v|8i>Y|E?{+{}H{&dd+c=RxWk=)2pQ#@3!;iJWwUgn`z6i%Oc zuxg5{{AywC-b_<Ffid*}UESNy?u6z-&0%<<)M}J3+IkSM-#DMDE#a^YniRDu>=;m} zQ6oM#{LT3uUyz%n^(iu)KX&*PbaQ@x2xw+JVkN???<v>vF6YrqmU-C=R9{$)q)WJx zHt$WULua<0SuPrsn64bm?zXN$?I3gGIjajRYf7x^hZyPm4I@KptD-MXb0<8~Jzdy& zCbxRe>m0)tKEF*KolOz3Z5_R5NsJRw12D7*28Ii1dS8G^tvYX|b@Eo$LKnjRsqR>i zh7CSU$#pxmQtix3ozhM$ZMLh+u*h^XR%Du^RI2D!scHP%{Q+ls(OFF4o1Qmt+J^I2 zR3?gDJNAY>yBpcXO5WOO`RtAP0Hixe(d0(Y-a@QXhW_CZlUL-X+oFE{vSxm6p2X%S zG*i)8?3u>T4r>$>QWY<>7H~s#o)@({#-!QVWbac!&)AOW8b=FIU3KlH)7IX!Lt#%y z#EoKl$qB@W1xT5*C86JOrh&j2-9U_ADdA}G5K$10|Awc!u3;9mAFk=91>I!pI(gv? z@aDJ^?Q(nIEhX8vP!{SQI+&>2VqQuXHlW!^Z%8aZIH2d_78iz^QD`4K?p^&$t9VUs z5*rCw&Iqr4{^3-b=K<f-SoINA?rggQ>dNPp$b@Q%<BiifiVLIV{&;^()F7%lSj-Z( zqZDeMdGe-T+|?c#>5}CO@w!(Uy+V%lp`b(;5R$YtRd?e0D^RRP<E+gRk7&vh9}O!{ z^A`KoNAHnUecQLV7<jbuN}4jGV0f~rt$5(Pb0_TBC=bl9Qai%6;?m3V5*4o%ui8nr z4f2=RsBhBBuYy8<L-K|zH4KH~4>C?SzDI59JB}e0>5gi5Wa31$Er)x&c2LJZcourf zs0`yv-g*pEsp)5l*p*-3NZ$)uMhsswEc*4i^**O-jeE^c{ZfbJtnZGe#Z6X89@YJr zkLct$<B!WispkxnGV#;!=w<`tT^W}Flpn`$9WqRrAFLzI*&}NlAMS;|9#lEl_w3cq z2}4s?t-A@!S2G%~9Mv*tc2T4c76O@kL0eV^dbBjRA7|~qPdk$Fh%Mr9-NzVThWwxq z23SIXj*YW|BC{5Ig+)0#X4czj&}1<4XscS$i;&Sdi;TfDT5A5E82B=FP#HFAxlMf7 zI{QOkv$eK*S9z5JUk0UZHc$?@(A#(A_mdti`ZE%9+8k>k!LPH)4TfXW#%ZxSxGNa$ zH<DeZ_O=v!e1{4^|DyvTAZ{Ye7<Y~p^hJddw*|x!HW+e-b|ES?nUHygR$+`beGUBN zMwr6E{{0#S8l-&8{le>=?g)ZC&h{_5sExQGA#$n3|Np_C!;ZM};~qDa+F{Lx2a_YC z_^z`S2h?lM-=X(E%o01lyCR2OGk|*pb9A$7C*z$=qhqlLdle0rdE?5D2D6`JF*WBm z9c@e<Pk8Q_&5SoOd|CXwS=@u+<Y?W{D5w6z(ePd8pss0Esk~gb8h(pE5Tj<|!WXSR zW2f@~j~e!UolSiPN8XENNpjH~5zj2Pe%fBfapF`iWGTl$qN;y`Ck!7kr0Ylz+i_|T zxrxtyCcG}siZ$cywtxZK?)V~M3GW)Z?XIjuZh|P02ji|ZtY~;;LNq4!A}KA0o0zbP z7ZWPCIMGr$5KkkcuGB*iCFwW23&oilC>?dUUU@-9q(G$kFf2W%QUdKg&~S1vgUCDB zxMQkSpyn|8yuiY%?X!&~TUV$D-=`lh9#pe68m$>tk3=U$poODsnj%f+PE0G8Gp2D1 zJ<re0Yejdoyxx-e<lOFq=am8%E&<LDK(uvd<m)l9?vS-{s`@kLWvAYkMR-0t??nH* z*+!`n;o53g8%nqFe8|A>?Z$C-%YbvRloJf%ZUt?->#hI-^`;VUPdkFP=eZ8YI>*Ml zee~w!9;{s3<0^Z>p0i}F)2VsqmbE+t!-%?&t2$%+l`7CdTXIKqZD1;C(dTyOF@5s~ zb7*@@+t8D0Ziye6jA|5>cv@VaJ;SCHm%$X5;tqJ|!QZp#U292O_F~mpg1|gE@G1$O z`!Gp*vf)YH5wA0%BWC2>#%kr={qFPa!*L-WhI?MXb+m~2li5E^=^WYHcG&66Z-q!m z>BUEUM-RA1*xn4AeA3y)g6T&$JoEG99xP*WX6Q>j+|jRTO?Q^e<7K3-m+9FNtMc;A zOVmrE|9eZV_=t<CG#1IGOQ0QnA-lp>bx8-WJ}7%i(>Z)dUGRf+PQ6^!R<^j2n{=`b zPUM52J|u?vg6#hs&SF`sf;SzMm8|K!qxf70LYc7z#f1ht&_MqUa(`Y(412@A=MmXF z-CNywAh|4R#F6=un(fKgb1H-R#XfF_k@c~>VTK8anHQTP<Z7df41&dro1#6yaK#zp zuK=-Y+xyoa@QQyK$)I#ge;>(Mrj*`(hf*m9mGHH_|CVxbw}I``{?fhwLvuf+>zMM9 zr$B*(0*jI<;JMn_o;Jx5oDyZ#=@Od5I&bn}!^dcBnOzM>$g>8Pmz?_7ZtWO+h{&&8 z-Y!=_XTX^=rPH^kIe$odW>Va~oq5(6FMKA0AB(%~OFxDxNyUd52`K6uEDp5*6I*xU z!O6fdARD4kEnk*`ED5i2{tTs8k0;bgK0-q<&mEyN27q!2&^K$-`VhSm4m?&+3tgN? zYy@RN0J3jndpVkx=n5tTM96oo&t%&Zy&Il_I`$!MMnV*12^43r7ZI;3nm$t%gE<yY zk<U~tMk0#lSLMt+l>g?Jb}PJV{DqgCfMAdoNX!G@F8k2wIXO@kZ`35W0}`AyuddUG zoIlFAf`zUe(e5?qc&#OyNZ!5OmsB507)0QoK?i>uM|^xiAxr|i)!D2G33Z<DaO+ki zZT)JM8U-A>^C)&K1b)I5`butB8__r;xjDae&(T~#;R&vLIW@(e*TUYWHL}ZeRu!QN z8EY(M4%1etI}D=ZF|s4+`($G)IX@Wd9?9M-+@+<w%~(<9#*^D_p*_~x;q`;+Au&uQ z1m(-O_#k}&2b1rG642*6)9{QMd2MnVTy@Tt1gY7	KC>y?g!5p)*{NEOpy+0%Gqi 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≠i>)wH+I>DQP9k-f8#&`hkx)E<N;>PCOLKPyO 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 -- GitLab From a6ff863f793db81ff09473c2e83fce86c2030dfe Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Wed, 16 Oct 2024 22:06:15 +0200 Subject: [PATCH 13/52] Supprimer see_details_OA_data.jpg --- .../img/see_details_OA_data.jpg | Bin 227509 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.jpg diff --git a/documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.jpg b/documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.jpg deleted file mode 100644 index 1401a1bcd1397d9cba146459223dc10388271c65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227509 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%0DmBQ*swIcL2S6+5<&~{2jknd#LSi` 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[xGh;z_LQ3juF#b`dWCT#^Fw^`OpIKshEAOZIn#(s$5LtWQcTUZq{ZqAGNw zIfU+C<PstYS%W#Zd^3UvDGCGsyuW@QzIK?q2ld-xN|iC2eRwb0tV?mB?NFxZiue*u z@B4lS!@<Fk0?eH{z#+)uY3w@R2~;TL|DL+ep&=D@3#q9Y)?wMYY4lC@Hu_rjtUtqX z--Oo9bFzQ+7vuXnJCGig;eOU;hRtkDwL26^juZ1AFs!O(bk*|}Xzc5KUR^2VGJpSK zu1TF+>`*&hx~?h7>D_mYJ0IC@m^!q7t>SC|9M*N+&s|P3a2!_8-|l7!o$mT!+Cg~j zV5CK47*U3GnssZ|s*8&^S939rcm2|Mf+mh3-HJ*6n7TeefOm^>>Jn{}!})So$fMx1 zSdN=Wd``+3HD#7q^Xb*Q#ldWYCdA{G8&ZXO4d9{u(ZBoY8~XMA)qzP|=SvVj98B<E z;H8Ajm>6Be=f%?1l1V<Sh&1BthJim@O0j1fy-}k*)?P=FD|heOoWHEXfD@IK^*9Vb z8X0-0FRRQXc!qrH+-!UmNkNhaij(OoBA-)p{(V-pgiBlQLdIvdm&fCXxeNW?`hBt@ z<LTc5chncMPE7r*HQj%U=}j`Z?zuKU_l$rEpWMVB@E?Nv#td0L46y!%#dXH_GUesv zT>F9FueqW+twa>p)+76DDaQ;@{f;#v!&(PP8TsT2>(UzJ`Lpt{qsQet@FC3+Lw+_} za?=9VXJ=O^Pu{*jM5vH&PmDNhc?QmNj@QM&v7^$`v=kf0egfmc_Pwdo=1K!FRlxfK zY`YHHmUK-IC;20B1S0hSIxYe*`pWtI;CycLm|t9S+8@9y@>Um%Ah3i(82LUWs6Z08 z*Sz)dEo4ky?H)qCx(hu*&AvZ%25X!O+QMM+P5f-NE2E;OJ>KinQ*h1o3|K#u+&{Ir z%G%aI0(F}voje(iq>LH}HXfD{bp6eX_QBykDdkv4OzH$Dp!4$@N_7D**SY7*SvDPT zIew>%l#TKo3aZ~^fl*b{aN5Q9BdV!|l8OqVRj)N#vIT$+5rY^$Kmx#0jyQi)0+mBj zHaI+aGgDDYIid*<5=256nIDnNE7UwB2TT?AYmfxTfx+}YU~)Y-jlBIKNw{bC=^ZJj z-OSWzj0}2OQS)XyRLS<;HyMl}h+4A%2L?>{Z?8dzD-BjiwlNXBcHKb>ry5Eu=Fpek zS6?Lwm=Rm%!X|GDh=cwDj4-x33zh*h>JQS=a-N>o9A630hY!^#qXZH6^mM;yjKFA3 zbz5+Lz6cxj&t_|G#?BWUVCYI7l1b@VQ>2kTV3=20``hpRR2c8u?OX3F&W$5DJOR^h zC;~4$_OyP3CdXdxLuWm3Z=~(URqpNOGQN+qTQqdcf^wWbnGhU}(=YxF#R`W9ycau@ zuOI$~O073gnA^3-P}~V9U290k9pWwi^HChbH?7$7AjVTp8!@8R>vpSJDuBt?>Q3d2 z@v;R4=z2W=;J$&@L8Ockd;}u|{Nv5C*`nwaI37RF?cBRoo;n3|ectJPy=Nc;jU2N5 z_Q~T}gvG_l-PS!>A5{C({yNowM1Hx@w|u;CLPyM!?9pY1#-Uw}TGarD7wPjo`;uYH z&!6pvfGfrYxgh87Z{A#otl?hhPR~dTf6J)=Pa+IDy<Sp<j|@y*-#;Tpl67T<ylxwh zn9*5$L9&w_v4Wd^goG2X@tAs^LARz8M6|RSZE%>*GHf=>?MdRY$&QB;puS`0Tq$Wb z9PtDk;8-KsIxH#Uh801L4D@)O;B0+e%qXkm>3NaUZhh*6TfH|^nytUf4eih81FpVd zS{ey-SX_=|X1fnCjwHL?L96P55Jn)Z%A~{X8bGG)KgOM&dY=#Tp@a0c9C%eI<wR!0 zB4muAtly~p*dZDwxp6ZVMqhJ$f+^_uu6J&YJ2rst9g888{W~>e4Bs;sIMm(l>KLQZ z=35XMdQgnOJ64Wh%xHPJa~W#9$juvV4U@&2`y{|pVeI0#DSm$K{2ZaYJ67ul+<YXH z`~HX-_1^4TueAlliH0DD4Yt1ifx_Z&h6cT@OqEua_M0?)j}8o_U{6oakOnqQX6eqg zKr0s`@Qn89^|&E1DDul<RkImVPU_qJafIm;zt8o)w@e6PQEM%wvgLAN&-s0QOF3); zLI*1q4b9oKlk#uz9!9?hR$x?$z^1l)cU%JOGM+jFv|S4Lp+_R;6iS+#lMymn?BDhZ zxO`T_sG+=mZ$k379yWg(yaz|Y)8qfh$<Mzqc+1Xvy_$()BP&I1wp|-MQX-v+g~#Pd zB$bGUAj_eDivLPZem6cPnY-h_8&=`ae7+epcKmnS{^}&dPEm6`!K&sB<}lj_1Ggo4 z1}*0L=(_@w!JB*a$4C+cSex}mH@Hf<hN{NxOeZ6k)r$p}n6?@*MwCIzYU|S*9GB%^ zh)fPR*mxnL9suu!-y-f!uG)X{=Dr)ADC#*B&6Rv1Q$uh|P6^Dv8joOf>@S_s@tqlf zKl=4!tJ}xpCMX4quQhN^p6_eNfQXS1Y5F$fBFdlpYfL9>HhUuS_m`7yPUWj>vz$Dc zsQka#?cgn&UDnI>X|2TuZrmQ%3rj~oRmGGHVqCeQwO*SVmoV(qIZ{53B;9p*`rhA) zWUpR3*L`j$;2E)@MP{)OuP;k-b^^<W9Cv1h^p%LpC{{Ym7zJ{sLjTQ8qrEE(<+eyj zg{k$7H^}cka<2at*TmwrWb^yH?b30$7B}Y2@@_N#s^+qw<M{Cm^ks=QTQZ={0ld;O zliql8V>2%VLE;S(wXJ19ak!T1`!`HeO7feS5i^>&{qX>1oQ)e1+1>dD)Suk;;%{<) zQz9_G!w0pQ57Obm-W?aw63LfjFs9HA?mO??n*x;riDsiUw{8wng`zVFkm5|KDxlZ; zC1*=v>J99D6*24U%7t??Rs{F$!7Rvb%T7_6nLaI^z?V?t^Jz%O?Rg)bieVAb{jvI` zD*z4f=xlqqp?&JBYPn7z{GiIpnZ3(F^IUvAro@v3<!5j7J@JdRK$hWBOMTTF*Xz0H zLZ|!HgsNz6Z7!C8DyPD&_;cXjpLeAMn!ovq9=X9o*?!qoYb{O(jR`2w81#CBU2Yp; zqEd9Wln(48MpJxasWV1Y$AVuf0<Q}s8yv<=gOO;yl8tFpi73&*pRKiQNVWR=gJr7Y znw##$W^?i}a;CflO9*Z8)$<czFlx&uuSKmL8;(8L0B+DQ2qWVSllg5wW9r+1GexT3 zP;*_LA421AP=l!<3M~K4ZCQ;SQL@xOdrhQMA6x}8Ku$=?TAUNUy+3INhsk1gks|f4 z=g)~V*st8~?mzle;|(?4le6d*PtWKnJGGjtnlZ{sfAF&PiKZ^i9@5O}t@j-*aWmTN z7p=iA=;B2%2P+n<3i8_0j3^WaNdU#cb$AjP`F~Lq*?;%|JOt>QR%IofkyAfJJgvy% zbs-_|s82>7Y}Texal%y;)H{GJk)w}qCIh8{z$+ebh9&4z{b0i(#gPT(;8%?aoxcZP zBvi=;f`VQYf`k^>lIiv29Sn#`gW+e6@ga;m*7w{S!upNARO&PY|9O9jH*t$a^W-5? zlLFM~(*1@%1YfNKk)^^2_NmCwp~~xU1nh7;{db45y`t$&_Ms!9=+|0MpwUjkJCLon z+Ef(YNg*OMY7F;J*n#h&3je%yk`x^)Zn81-XfdLDYWkS?t}nRHklk1-9cCl*w2W*G zpD)s7cP*%?02AirUs}o7;-xX7O>tL?i@k%aZbILZO>zNc;dc_&mx>0atlSRuU?v}_ zSc!TO9!+^3XS|u0S6(nyiBcbo)MydR%7a%^p+@W5SY&^>3=S60Cnhj-bn8v!$%7k5 z8Ce-%rGW|X*9WtDIuUE<dEM1tsmZ?&MIPj@ur34Ia7DJ!<{O(xTxL8uAu?17RCt#A z(vf}=l)~6ZeAakBf&0K~llVdX?;~RV6M$f&(YZGJ*TyhnH4zG|=6SPoVf=IwS<6^j zv`&0Hoauz&($>dh2cfq)6**4OGo%ie7sakbWKnbRHv^?7{mG$BzZdMgGqwKcUmaM2 zrf7glTmn{lOJD$=U^*tN!;PiYSigMgPL6uxvpB2bMhHDmKUCP~l_Zu<v)O+r+b5Zn zQa;yO7JE#idaq~2Y*+Q{w}_GwAf~@Q?(}ePXc(RxH66OxfF2Mb!zijN3rlb3p`oGW zvj6wxa4NO8=i^;#A|w)&CZb+GE^teC@j67he%k_acxhCjq8jeAa8dlFBC9NSb7_{t zo>`EQ3bH2#{|2uwx?-BV(SQ-yW6;0^0GAi7$Aj>CVR!3Om4aEBDuuq*O+9xOL$|{! zQ&)SkjE?8~DF$_#$gluh<hT`p#BzFuy&M=NK9+nsS*pD2N9Y~98=dy|$zhj@;poqX zsVE9q#Kz#CcAm;`5w>E~=-}gw1vu8TO)+8JYyr-|!sfiMencUyswkSF0|n#S^@+gz z4hs2>;lk$0xCjH%9H;4?y}yZU+dL5H>7s+iQXIC&SLpQG!a)LWOqe;JqBqfaeZRYX z(mqdUy{}ddTQd=}JwLb^cpkl9?rB8CZ5k$uZnh0+xPEE&{mpzl7)+l{<*6%k?cQvR z9DbYgC~W9AOP-mjXUVygc}FE}QNY}qI)h5c&)eOXnj@jrx`-=|iA$@fb!j{Pg5q>u zG+#d1qUW3B(=f2_l`<w(K<j09%Dt?n#?oLrb7QAGtNWDOMA~9aaT(ezLVu1yrlMe~ zzE*E_Pp><IOoIQcNP5c*Mh*E3gg(E;ULeH-$6ENya0Z>ctZ@zLe5pe6O{&a`%bDQC zwXo<6CM$=i-O|(>qzZ3RRmCLeJIV|&JXmP@A2%k}tICs^9(u|=t%0<@_As{?6D9*E zYJq>1f{_URGD|8PEQfus(?;{$do-S1CZ)pG%nw<_-Oq77p_T}Y6KL!Dse8tOSqE&y zHb$RjcAussb8ZepKK`s7_uDoYHfUY9>#W}kwixt=Z<L2bm$ap#;c?JP%5y0nHlj>- z)I#~S-EuVBZpn+Pd<PnnyURJ;lnEKC{GCTguG7T1k$b2kmGzX97ap1ijhnt(M!-N) znz)Wy-Ph~<9$Gv%^=C_zFY7$}c$N%oX#aO})X|5F?Xe=+C+`oDU<CU8!xWuC%-h53 zrwB&-TYNWW$0J1@2BcGtYEhCp7`TaEqQ|#$VddtpqM>V*>fx|(*qom5&ux%Y>CC28 z2Qdbn((gWhQyl>Eki)L?l>v$GrnGw%4UQuu3NI&zp4SyXt0~qwcvUFm_UZ{gVx_2t zFE+fSENQs8bz$K=vAl)Ttd<m~iUzm}sT#=;qzFT!b6Ap+DwZ1bk6A2FPO#N@BJG)i z=K<tu^~cJ?>r6b&wOIT%U|ay)1ho#k5{uPq!zXH1ZSTby|A9<J0W$9YE<g3nkM-pR zwjos6<%NlIX5)Ly*!69(pFjAlF?dD())I?)d?qM7JtJ^#U$+9c6B!l^v+Wbr!;)Hq z^*yWv5~0lKfDTP0HgmcM9H!H~9Ow5a3F$#p9X2NpR(bxY1mK&ixa=GotLgR^EzNWv zR~5+Oi~;t=U*(`-;b5i6zK{QG{1UPeEzV4*lrEtxmoFW4Z8X>@lQ7qIZ#60x$sL<E z^8W9#Fe$$A?IQC`ns9=Q=Ur&YxQ4pJdBx~!-YoTkyldCTU3-!2<*7+%<j2@v74JOn zpp<OdweOnG)OZxt>YEOucs@~3vXar#i%<$a{ppd^>sOzx_+Q7o^yHMrqdO}}4;h}K zhmYrX#MSq$BgrSl<{+E=wziwvrgXRasHh3xkVC1u5Q0!tQBinq&icVZ60~ac%fcFZ zSI#8+!d=4bR=FsTICN@>dorf+2m=Vn+`ToKW0&K)eV;Tg;8?R`-n^tU3#%ixh%YXN z7RX^Gf8ha_6RD;4=Nyvu!fsllWyXncI=}P{p<oB>-Q?-g(e0vDD4!Fs4}2TMm6<X8 zgJY2+huW_Fe5bnH-oJ*_evg*8Htm>>9oMT51WNp!TT^h@)0X5q!wD__JY>X@ES;Pj z->z_Mes8YyVh2FXd7WY9C#)o_n;s!u7=|HNknM|LhzG4~D2W<fCRMiMyoQp_@X!~= zb@_1!KFPDorlVfrP?RK4lN$INHOQVTc)_yQprtS{M9d5ybUWo|FqF-|e2!R*@5a|K z#fRTAApsWUCh(DpB={0otPf2Mp&OH-BA+>kQZQ8O`L5-9wkb!2H+XD6O)41k;q&s} zi4J>nqZpX~oeb98GJ4x_rB)M(QU4?(ol8+Af`Yw1lfkjR0iKu=MpCqO!`88LGjUm7 zi9Xy}usN{%!O5}nsLXsV$IsMbrf@WWe{8wi32F0;P9g?RSo9aGtUBGH&@Tjrk_6^H zN&B~%1QiI6m&&-*u8de5b5ww2iHje6p(-a28`}SC(R5;D%=Vu-2#}&R(_;1&MUBO7 z+i=llQ;G?Xf)QDN7G?KXMRi;<XA0m_2i8A_I_jt}Hn4I3(2z%{R~kN_r~xui`BZOs za`2balUfKhs`+_#)GIRsQAH)av4ko9snw{A=|VA?D72L#W@a?!0^s^NT-19{*U>`) z^W{939qbdHRwVp;=r*&t%D>E8d@nqQmYy!Ux7W(^vxeZXq#S2r8>`z|BSovGJYI@R zUcI?X<$Ot6iu^hd*kbqWIykq#=ORZ8OtbwNGvPhMJtxKqE1<$SLsXGI4b91x8p+pZ z3ZAeXu(itBJ(;eZUdQ`;?r2!&I_YVW-$ot2wkre@zc|{Av-LAF3aq4~44*|GixM#s zjm66esn+^}i~D!)sb1^t%pO_dl|46)IC5$!8CLY`!x^uTiyVTHB$8E&s?x7EmF8&- z3lJPTM4mlb%vzBdR7%>EjOA&@a+?+7?jZb>x$z(+4D`3}?tIOO{)raRwl%tGtD!Ee z#!Oh0V@ABz+G_#9L}=jv4n=Idie~FN+B?d8IvofkUJ#GDZ}Eu}meZ%5FKxxdpVzsS zZ_H}$;UL2dT)S5ay*@64;7Fnivt{<2*ZpoJ(z0<*qg$Z}Oys*=mG$n{XBOo91fz(; zi5arttd@vu5vP5TNI2ILAtNx_2uApU$B8J14g}Te$Xks%XVybX&jpjP{1}^6{Cy{& zS?dmCBpF3McFy!;usA<fIYN0fUN@BO<=5q>CRpLT{W3i^JFXc{nyIwy22wFKABIL9 z6<7s2^0A^la;cU-aM#p#>GE+v4c3<Ms4tMcmebU&R-)~_)WJpgmUF%c3)-cYth2qg zc$~#c<)fg7{OZkb#Csiord2UAh&3WXI5d=ILmk?-&ut{Jol<3xn_x|VS7p>dhL^Z@ zUx$tp8*YT8eoy;*bersB_H7t4z@fe&Gg!v3k|1G)hu>$F+$#}UgjmJ(2*jyUd9+a& zQ|e*MDlK+@{;Q^h8?89M9SGxi_iMXu*JEnc^V7<an&?(kkr0`yr!+?#8g}Jns^Tms zDJ`oqeVxQ-<6zITq(Q8}Z<zyvlrXq;8G)abpWIYn{&^7DbY1TuEPO4LxXvpmLkTAA zmFcU*OP*Rv-=T?>*oDbZDaU-=A@juBz+z$3=R?KR_-x^*MKw>&)+}1W3MoPd;#)T` z0`S=Ay;c)I#rra!9TLjuWC=73L%ryc52s5=#n;BDWq@~eqkH$er*;w%5yl*{NUtrp z12SZpiypv2xSNX^;iy;mPmrwoJmh-)iIuV-#tYkaURFvJz2rP^l7xj0N#M%jc=uWP zaH;~W@O_abh6ze&%~D6332VkxFc(3F9UQsgLZ)!~5MK4HeK_?D$QlQK-X5Da5wYqb z{#Ct+`AU0QT2*1RR~yf<F9o4)H@Pi6I6j|So=h}!YP~y5{aceSdZYN?m_tiNm^7KC zGU?E%Na%Pm0fFiJh**3kVq?qstEWvl&d{OD47!{;m?euu^pf<UD(kyVn16cYT-=AP zcEhwndAemL7_VKiD!Y)%$aVYl#KL*bjuxFGT6CH>niD32!Nkiw9`7|(AK1c;g^GE) zlOAh-s6zX($NCHvG^#WL%C{N~!2udnwgKdzVusjy_~ZSsNXue;&Lnpd>Exjx^BLE) znP~WiGNvSU{(UK~c(DYUpSDoxN-1@Lkv!tKhxW=KObAh>N(?ypk|uG`aXAnNCJ5)0 zIR{`H(CiTER>c3=XUh?GB(hNSMC!Bht7^g8bS25L_zxKkS@Pdevo&b2ycR1Z7@Ks| zYO1U%^4bx;wdPXnK6T2kcBI=Vi3I1D`IUUcg^97Q=u(mtENT0i@f^#TVi(_JDrQ_C zv?}{pb=ygREC!_`4<Y`?0+=#P!|%@)(k~<(x8fLS9uqlw|Fovw8V{TiU2E>?yof!> zlgbelp&?WCIZyLfBf2tsG*tv`7OL$xYnK=<m+h2?Po2t7%uEWAD1L_#b#<8sOQ;r~ zLyOhIG>$=3QxopL^8D54$HvPRUoJsKg|OmbzcPn<{5w)p2Q_A3c=DnX5*{so2CJOr z+Wic_w1r+|n+pR#EG^o(oW(v$UiB=ZfjG?CHC`)W79@W_h4sCn>DC4+mPO1pIf3ob zR&sPCRnQWvW@$kjE?!8k{AK-E>sFc~{d(W{Vh#V)%ZZ-?)w07g;0sPhI!q9nBVvAw zvwKO>m-?nlVN<8yu9*|&*Bw6y)1$*-=Ain~M6*JktKY&azbWHjei>9#9<t)>ZjpU# zHKjhVT^;apj`P6uE%jt6$s4SVCw6aGw_eebCo86`mHQlVr!3HPYDBgu5*IDLwKlNz zCn-WR$+liC++^Z#-mo+gQ)p_?R4x;TFOp47Pu@<X9gkw)g|KcOZp?4|n5$oJW;RJX z!A{fJktivw`650T<y{OGXX#K;!wixqY!aQ|WG%Bg;4FL{RIHs4m8Sj7Uu<gfLxc(& zcv{FiR5)-y@k>eVg-I&`-EFagv>T~KixbP7w@%ttSca62oM2S8C-<B&gZ~=$?$@$f z>%-74)kw0_MY0sch)JZqNM_t}6-Y*XjAi;9m^h8Xre6y>^-qZPW(lSjfeLP?2rVm- zVj6L1wIa0+$E2flC^tusb`i%rL>C#E5chv=3G!^E93QSVOuBW#zwfkFkpFIbY_e7v zI+1SyRj`-HzQTI73}=qvQ<v;}^4-x=IQhLIxj43*zmUCyLZWHiw{m<Fsy@7)4$sx$ z0%X6T%8IS%sa?ylpLrpYws=E9{;~w0qU%)+?f$b!tt<>Htb8o>+Rf-x$F5cGs@GK5 zY;v;2Z@A3#aJC|A<0E<!e)-A3f}Zesy7lr2-ad4-Cc&w+_sJOh`$z{Z(_?=cWG5)3 z{8Q~2f&JnYVNN7>SoAd}HCE)&=%=3gAV616v`=J!imO0A<|33M-VcC!=&}z<+I-8{ zMvoF=LQWW1x!t<Je!>@HlhkR_gb<p;GhhcM;%GP9fE#4vc5r6fIv3#D%v2G*`}w!G zd%9jMi__th82X{(ub|PCBmPFaqoewg+g*KuYrFr5w5^$$vgMiKCiwEZH2v%<JZx~M z^ZG&iM}{vAkX{N8!~T44*Eg87x|qeA2GU1iok|<o43`0f2!|k}In2sm9e+}EJ)>$s zU0`xlfX!n^;^lIX2loak=u5`JV7AZeCvSTx?#9ueTd*zUu~$qZNS#OKSfA^OJ!s-U z|9Yor-Qke`?eP6^ZOqyrG4>(zX=;d&^tW}3yc}}47`$K1xOy2iVcwvAZ2irR-MrS# z1nGGS31sKTrXMhDAdTJKO=!z0$*)cKC&mfr<@gXT-kJcWynByF!b(I!PCyJnyRS*( z`pi8vx%>G<3)kiPPvZ`Lb7j;han@>xIVY0aPoyO%ini<v!KCAwgoi?l?S?r>Hg?Y2 zD?vh&!87b}z1q+$-bd%IT8!!0^9Ie8mYUIj@k+H?^u}IYJm4MH_+zV4|2=UFfIs>~ zN2WILJ^JF8P*PCTqu1fe&pOGS0%WrT0oYR2tvj;;VrYe1R<Pfg7l_`&MX-*s$jV9X z5hTmcYN~hp+HPAP^FrMJ%}Ca*+H9@&zG-t^o2df~R67E0Dw8W7AObVJ-1MOysO_%% z!=2+79o{p~QS?P_rlymoqWsFkXMS-}-)XrPd!1hof&Lc^Ie?jiiK7^|ZICrVtht{5 zJ$%FskJ|o{eG`I;uWIg$8v1fzs!GKA^jGzZOFEdvp2KN+`1KB4jpHpnXD-#%bU;je zR+h_C3J?5y1U~_%*TXp^waUA`8eM66dLEB!Mtu8Blx?H98$<Kwx70Tl<rpX{g<Pxh zK}gKEP|44GWM5Frz-2H3?S2qucCTUGOhM07-pI$Djr-6A{~qL<xsaR>zq0>SP5=ZB zPCDQNNDWv@<^hX^IwJ{(!8;YIbHOhW`ylN@`Hnjok!`9ODYTe5X%`=Sjtcf9n?el( z;>|J@W}~(7BQBLcu)+SCRUFCHS`*X6qRQ}NdK$0e>K7{@q?)M+u*%KWI4LrbntTzX z?jv90G`fv?@VaK4t4SzAK;)0;`AD<#md2_Tgwv=xmo#}@Tx`Fu;5S~sZ}q$p1=_pl z_zYRs(L02*z%1sW8i9k*?Dj@?Tpf`jN)Me|UjDt6()URFJ0ExB>1D<S_ucYHJ+@oi z*|r`>yDH9&4lDX<By$RzqY)782RD0glnp-b*Hrf&j#;S0FIX1kN)pIL2_sH`Svf*U zk2c#BxaDQTba@ZC1|mN>zVUtBu>w=O$arD$Oov(OJxFhOd>t_Ak2F`%4hYt?)tw8K zyzCf8A*EVtphv*xt7e18_cj5-0sedAasU-B@P6gE0sl%7l_QiqCQe2$VCcf)H$%ek zxjjG~T~t#~UO`3m?YhWf#KPM0ucgy88vN~E1f#?3yiuJty%e<tYzWLi{vG^Y(^Gq2 zRH#s`!7YYNFoIcM`ht0ILIbvAN6pC>ug8m`(%M*E@gQfld$0HVmY<F0FjIWDwE}iU z===x+8ln_PDwjJX&6k_fa-!gEZ2|}MT4HnrX5+QnjfEX=b{R#$@vuEp_2I|<{|FyM zt#6;H!26xkmtr~I?Cm}oRsfFXb3I$0ApCqXGn}FFYr7->Uih}Fd|7~Rv|qNV{MnF7 zryx7a*0C`Os5v}B+gb4?5bLbr1xvCz9+^Ckm_%lv0VZHz*Y)~2<rbUYk?V281+%Ri z57jdMP|quCwl@G7IzJAJAp~3wMUyS=AuXO|0DKM|J+C?Mj{@ikHSAxZQ4Gb@CFwc8 zVeKB)fTa)@s>yk=+}`0gEC4Zs%fbE~tRKsGFhNQX<FGTod-d!C9cKU|@_&TARa9I{ z)Gd5S2*CpccZcBa(7_!71b2tfxO;-TOK^90cMI+iv~h1-8|mBUeD}K#|I0rHJQNhQ zH$C>Qnrp4O=4{D_8M?zrA4JW`4JP{x7CDYQb%kS~w<mf)_oG+@3W_ZCXIQf&r=H7O z+n&d|Or#$PPAuKOjnvU-cUsI#ECQ!Tq{e7@h&5ezJm&l6dyh_h_Dc#o@oeQk$KEfV zRg~_<!gNeGnOI?sr$`hu(RpkzgE>BLMuyglsSednHQK-~`0q%#6k#;Guo8VLjG_{) zXT#<?hE3{sE$g*+P+X<ln{w^6>2YdXtPDuouh6)f%~WpN2?Z3s3dx3&9*#;Ynk`K< z%n@@__ANV}=1h4bND6z;)!36|dz@=WAbZ!E4XF;t5{=jP1*-Y3+e)8E@wU&BzI9xP zzm3-#58x^ZUAZh(Z}b*3?@x$4Bxp>{1#EOYu)i)idpu`7c%EiGJT2DPn=DnLr1>mR zi#+YUhq2hS+JQ9S9FI>l2Os`4B0E^Q+lxBarco#0fqWv156CSug`#b0S`%)j1OnH; zqDNp1QnKHJYrf`Vph|n}m6iN8)E0H7?thJaOY|3dqLxA7R*d%PHpBF;_~i22bpog_ zrv3y9g^t4V#myHh<BaxQAL9B#nE%$<lf?=@5DPwNe(QFo>*+bP+w`~)K7YJ1w6gla zQJv-j%5|Wedi942{#y4D;^*(Y-+X?#%L~=6^Qsc%DQ&Ue%$Mwht`G;rv-$fzk`Z$o zzx&|X23%{(C^m}gCl!XP)v<;5;fIH1MN9@|)|KeY1zYNzFJLmEHnOD*k*PJg4SHNy zFb28AXQa2Qzp%P1D95JeiNGy1@+0h-xhfo9yYT;mchh4guT3BviTniS*4%AegL`y2 z7mA38w6?O7Qjw5Do529CH%CK#_b}g{20shk@7#30ED5f=O?Po2h(p#f5=?1{N7Lq& zP3_fjrn}w*V4;{~{~DS9V9?br0l)-)J_hj17Y9dbHFn9&E)=>1>o5&*GV{AyW{!b( z8|rTYw7rWRAL@R^$#fn2qUSxdua(5buh-(V@b5t={NGEQ?R)M?m=Un<bgGC-AQUFU zry!3e>+rDgpkk;wjc4dHu{WCNaWm;2KC-j!`(TTWy~p8sEdldUQeLz9Rl{<?c@z1; z$;so=F!tZ)G0kC6Ybw(ZnI(fn@_pn2_yg=E>W*N@_PaBO5%t|dP>Cg`NxM7_+VFZU zcE@SPVProOKle3~&bzmdFLz|0Fk^-UmT-3&YJtyg%}MsACxx)$j4_i24URU=hqJQM zz3z{1N{VWn%AJoK{@#0-elG=Nmm|7%aCzUf)w51$!p+Y6VG_|eP76U-rFHPZlEIZL zjq$4?5SIv)-i%%I{juahEJwM2wLDf1jpJ+Gp(3y}f!7_A1UuH;q`-}W0d!h$fs4mv zF_#~|u)P^KGXI<2_rdJfXV+==l`EC<>Z<)>!SlT?erJ4u9qMQ4*dqEZ%j-v^@88LC zbIEgHYMH5e_XT9C3k@Hap?h*ZE2LDu;YP5^?ss0Ut?AJ|i@L&-4PEU~SbAzi5>Ky} zJJqo7lf|UPQ+gA%xzv<95@O%4F}aXWBx5f_ksg<I{wid^;=H=>dXhES+{>p_!?}*q zKU;XvHv<(M9BhY498HG{aEtTygti%fW~hJJzX%Tc@ZZ6fWWR>|P6=R3>%Qs8+X8Y# z$yfKwfXTc#-mh44m}nu<(7gYr?{3*p(a-OnUt5EpV+xAfhdp%sd2u6eDh%K5bMu}_ zBx%=fJUOR~&r0K8_7cdh#w)7(?V9q^G35zih3nDJtisA%q@q@Y?r-O~N*O%SB;F6- znr#^Yzu8eThWbreg$B3*uV36ZTsZR%EXsfU5d2Hn#SYV-lfd~`Fz{P*SLT;Qx<G8L zLh|hIo{;_2G}rr;OrP8DJix!bXK9=S!VYXalHcM|OLUc@E>sJRhOX67$#?>coT-FS zkolfkP2q5ISU)P3mPWii{x+t19O?2m?*B9Ep=Wo-LnNzM4;*4Bqz$i-rP9QUA`_07 z6Akoy?Q)Mtgmsin&cMC@a=ekT9T-~cd_me@*XkF!AS#(()|Pe>f`H4UH&F-Ml#{42 zE7uw^VQ{8-JeZP3909!$(hE1{e$F<wOhwB0>3f6O3asoXuYxW76p2y$<L-wS-d%q0 zg*1+=u(CeAjGqCEU5i@D$A1o(USLwpnwPsMtXtI?cEw)^x9`0#DAuxuEKv?_B6a;n z4p9!Ar?fevxES6ke*LaEgAWvm3cg+omR*~PZ)Dy$f^FBv`Qjon^+TZ5RF?Y527UjN zZ_JN&@#u%=t<1fRw}>zq2biAfsLF<?zp^Xnu@H$+wt!8J{?}J50!;Yf-!wjKm3ZEG zwOzFMrryh^?f{}Q{fuRghasD@JFmcH%#Umarh!QEY&_cU;KS&RzY^y0an23WZFmbV zdcy1*yq`l3+csXKsDXFNInvWvhi>XHr`@SCwUY8vJ%_D#BF`(V4u|^gj<dmd4rfP> zcAZzwLicr=b)9DkSq5ImG<vY_pVw!W!htpZV2#a7$a0~|=WQBRKREvfusu5=O5Uth zz54|L@ZO7w1(*}(#227#Qvc$fMrEArJS~tx=D%3MMvWNqO|<Gd+8#9A0l0)iClQ%= z5Q0g3oa5A(O<&8kdzY-c9~t<aG}V|o){R#u(-_?6<2g?zr_ReWJx>WF(xb{>qM>K{ zlXhD^F7>U!h-17tZO62BU3Ww-cmhHv`SN^TkBHMg5VfaaUTDnCea=ur_Dj-s%5=8= zcw>42>Oq|jy71*cC@3gr+S&)@71cYjpexJU{-8B`D7tbNBz^q}XXs(;!?eFh4}_?v zuX@9quc>{E*RCU)^C7$M0=i9hRpSRK;q!yO&#b#Z^}D2D-B;|nujo9<>CANN7_#sW zqyt=C2|?<|+l~)dug@R4Q<vZVFw!&dcDRAXRM0csNfoCZ4(kd!ACv)q@Vb3Cp^rnX zCd)gNb-gRz4~~<&)%z`*kkHNp9B5MH6yR&+*w`2gI+^eouRY)o+1rYs)@E0#JZo#5 zzW4N&KG_Q!+2fHk|HDKB>=OyBv<1!qhdXa-HpkEPJKAnGz1yxDa`sn8^anaX&m!n# zB2jg5rLf4u@Nh1Yb^l%vJ%9Le*wB;H+x<cehliI}TVGe)w!h|OF5_>DO&S;|<;aiU z6=&FlFv}!u#Ez=Aq}bzr`GDRo{wBQs3LpXJY>Egikh(2;-fWX~pb9p<E4ViQvHGTM z?x$Yg?q$aEsX=~6W0^<WKu4mO!;5hwHfwK-#QkcI&X7~DMlqqGS-^pyOOj0s`0JmP zLa=VoqFP4fna*!r3wekpua>rBj7;*jj=sL7x%o<$b%X8Pw9gv(2?WvvqqCDe*DX6- zZjrRvCyxk0oa|mEM%a7%1kd~Jx%i+j&Z8P#Mzue*4Pl!9)+#i|)lFju!#|7maid72 zvlX4)R7WMLncPVQ2G>AOskhI<+0SREo@1X$m0MQC%x!cauOeAWL~#A^A}_rD<MTNX ziTkrv;ndB_C5hx%pO@X2r{~Q9azr@!irKxL8`ixN1L*ExARNpl7QrTiXx(|*SLh&u zF~nN2$Lq98&uMgssWAf;Aq9TF1-j+V?{n)1^T?*O6ZF8qW)X70{CLqF2=drv-F}K@ z7pP?LzZq4&)Fgx02vp(LK>EnG%Ezns9<NL@yZixUkC&mf>6b4T-XeepdHcN*!v`-G z5$HcK%U({rO#hz^_gS+3GnT$hFlVj~E3OE0_?GgQiD{^J_TBBNmVwruFBt@;_v<Y( z?RmiIG1s)b6NwIz*3$>=`M+&mTt%;S2VV(&yNuf2iDcQ?d`8Da@O_a=gjpqA59dJn z-*)sb4t9BcBFIs%d~;5-ueoA!`1*KzUYQf9^VY!E0f)Y1FeVvK&dUPbV;-3oKO@+D z;l^V(!#|wN>lo1Yi1v2>ne1??<AO4V5;rx4|M0BA^L9V=>TyIQ<^5q+sHnpiukF1u zkq(CA>WnQ-&F4xccZ{<7w35o~lZN^VP9YNW!=rPnpv)@4wpG(*Ic<om)=F98dpGb8 zm3yXDzE|6NO{4?5^C?wVhPvSBXp!;pHP&p4MPrN|YU2jHy3Pe+yS`M>1nOIF%*b&? ziO9JNVx35u2ntjaTwI-^)yXqI{2(nx7XbsBHU1;%FvO~6Y0Qnu`5G-A9@BKi9I1l! z=j<52fnljwrH<$em80|+M|z@DxGXyq`^u;MTSgljIFv}+s4vTIZr6^sP1Dy-A2F+X z{mpHgMy|)+J;`eww18cf-<4=QtF>p$x`FbZ`TcJBVmlzSoG0pgkFy;pD@2l7ApF|a znV|^}oQKD7_4Cdf(rVuqbx!Tv-eIXf{U)Ca-l-`qopIy`ggM78Ex%7mO_%(W6(IRn z>!P7?q0GfV40CDunTf?UFV2Qn$v?o@v`e`Gj_mC;_Ofl-H=7)>^)W&EYW>h)I$2XM zrWCb+k4nWMghi#Og`mFkZ)GDxEyFF3czdMCmT|N1hQCB$@tPRuamm)mho$Fs$7RR) z@TWxzg{9P>FdkiqD1QB4YlY;Ma@)lF&4>=oqhAFhS_TG2%h$-=AerfLL=D#yzX=Mo zcT&lsR-()dNIC7t4aCB3Q7GudTj4MPlWnR`mpOi~%$?hdHM>Z$-e>qEQdue|cj7|R zB`Yo~JBknn&w%UfSf99Q(CvqQ`W-wdxX1KiXU^f>H*Cy2P^1-?kWkL{V3Tl=;WG%D zq0ul(WbkSVycKT;BcSb~8JcPm?1#wz{9K~sbawQL&z{-f50H<Pr(RO2n?*TtTjiP` z7!@V1ud5psYuU{QzH=o0Jj6a}K{Sp3ZGUE4+-HZA*XeSqLnc2cc|-o?&p4Fe`TlGO znc8jdhnabOo`dNTaogQpZTfk!z_tq@gM8fjXEB(SnVVqWIwSVX7a*#&fvBa;q};O` zSX)P02u=+xZnn2B+a`{BXD@MJs|*bG0~k5xF}>Qsf3`VBGf8P5a&gD13(h5*)xR8{ z&1tVUW};S6C{epFviTqsKri<BsIg0~*%^a644+UjZh--(0OWguhDF#dJ-~XgPEXpk z`O~c;_(FZHb@Ol3kxP2mm-EdZQ&Ls-QcNy{zvsG(oWquuKQb{lvpaK&PL%)pe!nK( z(vJFyTxlD`>8hy$J0^y&cIjGA%Ev92PFY!SZ^o(+jj?NM|MrFfRMKWnAFh0j9m|9} zZ_I(tO5{<LxOlq9$UV7%TxSs&L2!|gwqt~UC|<XJ1`lbJeS5AI62m}Og|u{AvBzS* z;to+Ee>~f0n5Zy#ax%CZOYN{6EWS6<@GV%B%a<b_VPfJzX%Y_qE0!t2#N32&_xDYt z(9sKiKYUqla&=Xp15c-I)c-9loeMz{n~@Spa!+wYP5^oJjYEFp11{d0c=o~ZM2&2f zS-hY-&#+Ov=)3gV8STA~2A8qJ=QOKbjT4^F4>xJ7KG~K4ux#6A5hIVQQpzE(m74;j zc?}V8U7vd0d0Jht0j~G<^o*cmh-g9ry9HWMIkO%L%6yyxO>5e>B_|i5(=)jdauJeh z>&^1}ugs5C4>hzsb~dCXeNySAWnyZ!#vdu8Nzbgafs3p24!k!1o>U~yx>G;Sa<F%$ z?k)}sNIzxRtRBuTqKA-&xfOPZ;@8z`&Guo;-Rl++7Xmxf7iK;UMBJiiB(WiCGg#S_ z9AgBqnK_nmNA*rH56Ez0+0@GF$vhOFI$#z`B*Q*vnm6h255QHZ$?ahoA|(xCBiCzn zqtQFb&ss-3rH!+uVnWje8yqsCkeip5pvH8ODvKwg0c?so%#C0Kw3<~~^(1N+Ji^D# zGa=L)jNvJ}RQEWUL-2Pu#t*dQhy&m6BL+!E<SXz4*s{wyB4*CHta-Xz3`YGg&Vm4j zM(Ypx0fJU0acPMa4e7g)?+KonPKuCOg7;jwGRs=a2>jHD`5~h)qn=wcLIkcF@*6bp zpzpwZ14iN0nA;s+dtY&9g;(|FmGZ(}!BLlxsjls3N`^M*bcMM~-PgLyqr$V&-bZcZ zQ38tLC08i|CCG}Q<VLBbeYyEDJN%{4wzaYsmjBh;gY)%5SsiolnV1w~03C}7HxgAX z^sK>Y>hkf=xPzcZh!0bLVDi3s46$HHlcUZQ>Jw|!r)?{};;aVa=K>P4>zv{aE`dKn za_W@$m{BJ{aB5`^)uGFR6m5(8L<3(aSK<c4gKSyHg<c5P#Iir!cTSQi)kiZ>(yv0) zDUWZ#ew-&g>0A(zn#Fh_8Ob;KCAX734I;ol_GTT(a{#H}gw?leu%(Z4-+6g6r{y!s z4dB6A#`^<gzV36CoM5#tchq#r(3jFN@6agwp@Wx|OZ?b%oFf0d1_j>g0!T<<^fdpM zhXz^83bKr6ibLZ4oKb9!jDK8)Io)ox&mMbPUPqg6fKz<9UwEITky``{GNX=W#qPAE ztc9CZ%RPO^ZpsP4RK_yn@(Ip7&5+SjESFZ5`sAQ#o8?^bmEVRI_tUM2%5#9bi*<=~ zUoHmD&y{}9TO>lT)F-(tli}mZ^30jWB}JA+Wwz|<S&+$Sl%*Mwj^!);j9qhBVvw2* z(eeH189U*K%k3Y@K5DQernulaYR8h4rL>fi!PHg8(+@3!kctx^19ae5#U+)eaJg7y z7Tc8IOjiUzyhHu>$3(C?(6HWVH0FqGB^%i#tP0q|*%r?LR*E)ug;ca;Ww~c@U!-h- zexoN5w~)-_jCOx#ny&R};{Vos#@TCTHx};KQNT4nY&Z6Z#`s4N@MMYaZSrE62vB(0 zJh$8-VAiqYvE3h=ER}8u=WynaYz91e<H}v;F}xN%PP0XN^XO}okYJk&v}>88a%&C{ zw=IV6e1Us9MLp+t`Q7vMcZAOpB;r<8=`fPzUR+hEt2}T&jANq;D3*3(%*IW9?Xo<R z<Z`s6w;0oP+_O(*iLeHL(R{l-+A<RsTnr4j+cW6LzYtAs=J--32T-tQ$wU_cLJLg0 zKwo-pTvE$eq0p>mZ-Kocps%295AyWE-FDv2w$fO3wFppA{Jv`Hk>$DULbUuUESS>g zsDNz$D%M{po4s+B8Nv8#vDT*tUw%z}M}Fv85$o<mm-pAEN`JKisc1rOx1X#3{*@#v z{^b*^Z}^CTC(Q`&5})S|^<j1s2&{D&D7i~U%E8pU_R<?^pg<)|^2GLR!~J8S^eRj& ztFn2R3Rjx6mCO{if=GB15(CIH7OL(!7ih5skoxa$qkvjD<?TjF&?y#6RSJg1ga5nO zP@4DjSKI!cr(o!x>z#MdlakF|ZObzP=U~$N(r7biMOFbJ><S+ADuOcHq;*<nZl2>A zn}hF1VjQ<RZ>)HmI}k67-IHPW@b8*o|E(GPPX}J=-=@aBx2iRgiE1jo|87x6Y*c(T z@j@}yKM^WSX0EYkZa?Ew`^`L|vPHVvhRqaz{X^1ui?2-3*>>EAjh!3ujeGa^-D^jl zY$}@!%a3+a!ZG``!aWfV^Q=zi&cDf7-2;#QGIuAm3#M<_F{w?PQKL<#PyL|<Y_J?> ziL<CnyH(f|L>=<X=S6BZlQPDji_YDW-&i~P$f|+MQI?WLEE$ipgr0O|87|3B{i|2s zHR8v?FRr6aB_B<Ln6owz4TuR|J)uR2uS$N{jLyTthXYE!tQ`4<4!hs3U!j;#bNbH; z8z|iRw9MO9%8XxzpqXcuyaAS8I>_%hI_Vc)S^B*-UCb~U3<9$J@Do&xvwwFEl;@rm znlp0{52}s}5WFts#i=(K?}Bj~g<*bsDgVm_ko(b~9}&sWE(nPm1$wUJ)a!p(iYl;> z;*D2t5U%D}yzTEpZnl&d`h$#<n9~T-)%zxhXYI6{cYeG_@_Li^rDg;Sy}x$W0e*^l zoIYybVrb?B*o(7omgI!AJSwITu|$P-{%#&&*jn?v<}k-5UK`$1Fs8l}pa!bqCaYvK z<$il%;H<GrhJ6{bJaV~CCiP?6-jK_&jARbzZNh1bEHkxP#dGZ9MER8!K9p&+W{T2A zOz!_`e=&_?@L(uhJaR9x6;S!!#_j*|qsGMaH_iOy7z0P@n>PPwy|>YZZ{^|<Z@KBU zngW8W)q3X3M2SC^ID~UkGtWQ7^jlO+(p#f#%OCnv61IicybQHpAB&F3QbzUZ>1e>- z7Tzv<^cqdViNB})Nj7suI;UIvTP>e%>;00Nd!j5pWbpPopWw>}RV^O754lo9)m_|o z`g`-+1?`^4=K*rDh5SU{s?lW<*Uhq3x4o27!348*@z>6&#RM2m{<Rk9SK_`z{QGui z&Ts(=Jv6BU&H+3sm(f}FwZmy?>Dq!%T^;G(M-6349zYi3;KG&ez9|wK-eQikFqKnU zFcuHb%?8)Qg)Ahp7acD?4TNN&L?RBEcaln`d?5{_FQ@8G1_SmWB2rKvQq+wNW9&Z~ z#ULYgJ_7m-WaW9AYjqCSM6p}l(IxOszQ0biUx7ejSHzi_HELGgxW<k%rHu8OcH`p4 zq#3*U1DsmdIE4IL^qVpE6sEA@J?G(SbV@;AO3FqhO94-oX2qXrhaWOfj-1#PEm_D) z^w7O2kGga<ScPQ&$zJVsKE6UN%r7Y(oYx7S)$1r!lEQi3<uEpXk*^xd6c~2pRrL6- z;jXsInU40AhV-vX{P&6bsMG2`v-=LN*Qnd<h-SdNeqEFs+*xycuh1(;VNU?KZ@-MI z)l;`H|9s5DtC+HRB>H<b>)$UqLr-rhOdWfBk6M^7lcHjnrC;$y?Ty$uY>yD~Xq0jR zGIMMPF027EM|ZYfBMP(eN*!M?2EQe3T0?^A12)M?4YRPBV=;!sYH|t_ZB>jNZ!74H z%^^4yau^yHJ?a!;xx6x8=hr2ipUJK3)nvFR!pi5#=#WH9f%g^E$RTVRJBU%Kg*$9L z*~VXWm;%X%&B?07ddx9&IwfR)+;1P@N_Fx*%*+m{B3*S6j05n+@inbCIKr?wWiAh@ zx|?&UqJj(nQXy?0B9rA!Kf>2l(F@v{5S|!(_$2>}4VULx_TU<uDeWNVGp}7&`7JC? zRfSaWg(0c{kM0taZX{j*tQc3Mke5$E2Wf*S+V00G>e9!QdHmM)U0v|4!)cV5jLohX zR<p_LttgEcPVA1(iWHF;O}wSri8#ZUkdPc{<}HyZ9otXUzkCvfw=lYjDyT>TQ_#wo zgTB|3l%1m`1b~&qkT^Hyqw4ct+}nwUd6K)r(}zZ-um#t6D$otNM_-+F{H51Cj}2hf zJO}E11pfcjAr%BwC*o))H5N$HT4C~*#lMCK!E!wL0M}JuN@)`lwZ1R)m*Wo_1N@Mz zo0_6y_vqhA2WECp%#%IHr5_YA6os8OAfBWCa^qok%Fu~+3DE|#mSzWN$;n*QLk!*u zvS-Kj3i9`b_Un@=HCy=$joXUJ6i%FdI$7)Z^%HZ0wL;rsOfJQ_25j?Oa%<eD#!s+o zAfu<pDNYsrkinDKHwQ4X@^6&&dOOy$rt`bs@NZ?;Tkj1d=U6gYF0%WmW`T{R+Q2R| zRX?NWMOFDXL*7&f^k8-j4a88+S)%(aY7*!*Rqn}Iv&o#~*o%zJupl0LroDG_$h^K} zc`_bvOWQHy;s7P_AN(+MTWJGVl#b&v3Jt99CGxhK(_uj_XIvE(MjZo(oNM}pTM~}( zjZnKy<^~}G^+NFt$J>b-W3CI%q%5B`yVOWM31=TY&Zir^_NsT${A%p@5-uHz6PM}R zm;xDSKA_qeTTaHC4rKV(pkSrXn0@>zl04MX=wdx&DnXkoO^C03<jjV)II9<-E`o|t z$V=GKlx^Y(5m>ha$hU$Y8CAj%9QWVoaQoRz^5*-m<~c5Ua|E}}n%%J~B;u=NdMKhk zQ_qgwel!-t5NlbZj%1i90f8BbG9+VAH<VWHHy*Xs)3c>3^uZQU)G9h)1X~ahAXF1k z4qLZ9i?-X)jUeqB5OwU9?qP7klw4^%6AOz)<WnbSF4PzGTSU2zMy#K4eqb2Spd7pD z@=Z<08krs1t|O6(+kcaEpTGYl$||>3qiTSE`wq68_V?1?@I`jn+=IrRYkAh7L~05- zrVYCaRroJ**op~x;4ex&1(Z?PRNtG0X}@ue0;N4mLmr1qHl_|LfbUE2(PZ-*)6sM$ z87RnUkn`5;3fm10p#5x)%>xx2UUG4(G1r*XBT!L*gQ?**GaB!ORPv$i&o`rHFlO!| zaEn)=JY)WDx$W<d1^S>LW7_|rsyDxUx48d)@O<$v5K-B^p!@N$>|en3@5uCBQ{eai zCc;MSzhD4Hr2ylEQ|A9-7BKn0Xz9Pn3c3HT^M6OQ-(Yy?e@CB7NecgGHP}p~1$5PD z!r*V9|5-Mc`oHo2%pHb*$**CJt(URS(oqQsXDiWMW3kun_E7;T=!vy)v8t+DokJJN zty$8T27Keg`swMK(8o2cQkkC0NtQH<QZS)FyP)Q3dGkSTl7m`?#89h+kiw?#p$F7b zDBp6e>n9t@@{`7z`6N=VmtqpSr)-5mO83BkEx{Fn=Vv$9D5q)7NW<gH7ONDv4jIx) zM+oN%(UPPe{Pi(e341-R`iQ}tk5z$0Ly^t5KWo{PPZR2T;{`z@Aq-9zV`k=&Q3trq zu2!7ma^eOTW0$O_z7TDkvI%HqbtW^Df_M>a=zhcfIGyLzV!}9+Fw66ej`Fh*)hLj? zl|6O)_eHNCZhFl%xY%5xTv1nzKIOfm+h`?Jay-_>OmMEjCtHfME8TCEb*D5c0=b-& z!7XZnsRL5CJMz?z*Ms~xfW)3d=FS#o)sh~z_j$2=ym?YXKXse))lZ>?Gn?uAqHjyr z=qQ#!h|4OP#olTbN@VMGmIb8dxG?9-mjX|%q<C@DqX%(;tYK=$0Xw^rcjaOj5{<ed z1EZYaP<8~+Lz=cYBu*V4Rj*#3cV&MaZISEOrAJ!)mv30y@S-v;S;~*4YUab*f)Gt0 z1-j{~cKx!CbAy!qj<O1{F1%>*2T*v4Lp#UWOr1$|FSF6Y*{y!XnviRm)f|J`V|WJm zn?P-$cALG0VtVL}Ja@%v$I~;FS2IxI&9*anle~EG_R<N7F7gsBQ|KN7w{ed!3^X+> zeoRflgXIhBx<wph{hf#1sCnIp)@UkgKHhp~1cP^L4P0MzK}U5fMC2wdtb9^x8o{;Q z&7(#b0j+P-EpSvKWxcDbKgrkWrC#8%jeWbMG4B6PnMEQ>P27sf1vND(nh+JaOv>;v znf467Syk27@sled=r(s0?b5KQxY~1)*UiqfDqedCQfm<0zBeJ_&>=2qHXrw@KV(uV z3{sKEgkNjyYEt+p8r3A1#1+b^YS0}LYo{XVk6|)M6*X)-a?d1_MWw<6p{V*x711oG zAvlg(xK}nq1Pq|>2H1qe@i!v&<;Grkd#Lc(19|5QS&XXt$&m@*(I!%=`!%=_<rMIx zQS<p){t)1-c}*!Fs**=g_0v201y0Sx>X|=%(7xxF#oD31F_B^}r>|=ghYm3Z(Ebp1 zJIii+GhUh*9{w2|jLspNi#S*Z%PJy$&$=midZJ+l;KMhr+6I|a#K&K34SHb=y68k7 zAG&1M3K%-Fg;}?}$e}0XPxaaGX5F+5eJvBi4lXTbq`@H<l|&3QlajI|Nm;A6b%de} z1X*zEs!T9&iZH{38+Z8n?D;5ulfY%TJxX=q<<sY_{1u_Pt4vNuF2#Yl8+8HCTJU`* zr+cVA>Q<Rl6{Cy!Ax|R%@iZH#tuM#T8>Vrx7`QXusNFa$3iW8Oqe$wS@Y$^~<eW_T z7+1OS2S>YUWQC%vVE*GQ??}2FQM2jF;#d3Ujy38?Y2=u?58>SIf4I!Gh85_3t7MQh znY-5cK~b6TPjx3d!T!DyLMioN-O$5)xVG>?bY6sHRW2?QQh2bGfOu5&3NdH#KM8Tv z0hUfNiWH<~yLr?pE&=slUO%^|M>_C9K7VVmQe`R+NLAu%!&#RQOjNWHh(WOF!`EeV z%GO{{5|v~QtF!L1SS6dk`ZRFFiWKpYq3nGBICE<sb-rXL6BRE!yoJK;v_`K2AuMbE z3!57iqjB8{zq{;Nv$<<I)w!d33%NV`KJax`*1!y-)*62L4zy=RV;>4r-)O_jR|@6E zyZpn;ruSk$OV?tPko#lqXMp*SiGyBYi#b_8l#kX+0QI>c40;1X?B9(|)eU(19zW$- zd#n&tB0#q&_(VA0;i<$19@rBUgvhy~9Ns)F(HXPt<g|3xj6AK`U26{nWu9W_`%g}2 zJ2cuqj43pOPqg*djLbdb8FXD^-ds~sQ|J6~@(kz5GEzWh=50)`W$9lkYaZsV&5!Z0 zf+wR%<>mE<2kvfk-4Rx6+g40H%hc*^L-|w?UgL&_G^!6|fprld0_Z7XOxv?GL?5X2 znaen50?FZ;8b>INbdxjQ<oz*r2<$@wb)ym{H-Bn01Yg+Wf!DpbyXpvL?6~J;yM3Nd ziF|PdY=!JQ+?rV~T-?7zZ%r@&2v!^uRfnh5Dumst8s$~dxAJ;VPKxLCS1c0N-bEPS zEg*EbF&`dfl7){QX>KjR{y|M#hQ_Qb`$YZmNUQe6G{d|OL>3@73vy+ZU2SK=O7&A@ zhR~}<^1oFX`F&fuufXKZgP%o3O0uJlGL>_uXj(dFg)X>t!Yj@xY^wS6CV7Io?v{`6 zZ5Ki0Q8VzXB>o7m4R}eOw;wU3P^&bGpLN&X9PvhkTUJo4d3*??9XA$T=v#KnD1pHH zqecN;i8$Kl{I;LJDm-m{6NAs+Ww#V*woB?OL6%|3Zx)y4aB^Gep2XMvA{uhzO}l9( z0S#Em(ZE2?J=^S0i=$kNoxf`n?|}Wx?9$=PcKUfPC>=9CZ6m7o7zJD$I<fcN0{OZk zqqD~T$Xf&q1G6$?xOw&3>L_6|H>hBZz^Acf>4OmzKOF;Pf)Ph8)a=7HMC_Gwa}|iN zbWglXWF-^4P4X|gHs<E~{ool+aY&?MLct*xV^CoEZ3lBbb%4@%&bG*OD58XxfH;+U zBYFw^5<}^n-Q@iBijV9LK8W+n>po^^h{pUxbgv=>NdS46brULDPkJEkZQceUD4$WS z`yza|YeMVwz0w7pym^H}--C>6ixBqFvs{VoPatEP-c$A`utu{{Ji)Eqhsd2-8P^_U zY;h3k-1YvnF?~q)#k@6l$n33&LnNmS+AloY0VtSmj88U9jP6+-V+7;b@rSqkOwB*m zd)T@vetOh{gjsFRaW+<!3Z$~{vahUK6pWV<=Zs>%V(X+&0v(&O0y*jyLn1eW18Ko2 zu|3Ssmdh20(Z7@{R(c;?chdNsN~<@2;m!Vl9Pj+F@v_u3I`V!`C&<xlm9D@1=pNDc zAS?hzp!!%W)3M^*UyL^qmo-X0SsAa6EZeEZ`A=dtAYIbP!h?1|Yh~nRtS@*oB6uuI zuyXIyLo)Amnlx*he==i@*&1R#0=F)ZTcMBSd~%8+*<KKZ-?CpaSOEW;HInp;ZuBl< zz7b7<fMB6sxA`)u45S13HEuMw;!E@=+viStt@p#lwsN!u=DK&Po9h0GUpYw&g_sqB zTj$JUnw6TF@V{TztI-7fpfB-zy7b)^<J5J#<`nSOBusD*o3rirlnmM3<N3&t_^Iul zVNSVO-DZO?$*KOD!_aQsmHtjCf<cXSWv7k$wd~Bksp@;K`PaErt^=M%MP|=X)9)9Z z0$lSO+cBdr9J}BcH?rcuPivyIBIav~95-p;in?>3n28hTc>3Jpmkbvf3t>SNo>$tM z2FYLwTX%Z@wI=>G>k7l08W;*KZ<qQHHtt?f{r>@0Hy6aB|3K=Cu=szF74eSXKS=69 zo%cWJS0La&l>7gIqyMcdR@wqX%rIaaAM_vm{U2!j`|JP1zR-VEM!MWX{@*X(;PU;N z%q;2m$fGUu%d%t3+X3F~FGeJ9nn(%zl8lMTR!ROAmR)=#LVxZ$|9N8gS(xTxMu)xk z)XWJ?R<}H8NO;}+0_B9bt9l(aeqYXxvN3OUZ(m&w2bsqoE1OqMCNppPPZmwhk+k%1 zPF;MraWlKIFr%zcl1>(Ivuc1_EVn%@a<}9<i*hHpQ$Gfkp`R<bH9Qpvl#gvGjiA0P z-u11Aa(u=KVn02Fqg)L6fk9na^?->=iK}ar;^sD1q=?!dM0u-}LRSE&g`p{{;HcGq zj4>LTN&k`j430T!`5kfFLEVOHj-j=*^!(jXRh<Gcsp(Es?%9X5)v*O%2&)MdVev>4 zK7(E~&ZyAPYMl;qB!#-URA)GWbh-#s6iyQKPYNH)NL$|72ll)=31dC-#bYj#S3e12 z#`geu9X(Vj{d`zgwN#Z!r;{j%;x#bH^_>t^(eX#bfZt6`|HQ+q^x;mprkUG+64TXj zBOec|h8Lai(&>%>BfX>R5KG_CkNBfh>_6pJnOy8IVU59XisOo>_gr!6E1}qK^~Fd~ zoy{b?iVblG`9%{|%!IkGx84pR`KUz$34-+7>6YjNj(pNrVj6lJU@T!ipVa5t@G9zO zV+<-2!~!N`kGiLU<LWswYKeGrjKSn1GE}keeGd_Z+Sx%^s95B^zhC~~6c`RA8>Z&E zR9{cr2mLa)t%}90GJ0N2HY8&^@pbI!Ll)m){WNsZOc+esL<uh{QL!-?Rs>}G`XS&~ z(W2cB&IEn+&Kn&)L%$J*TGD3P?I$r<WEzlC4B8oMS)05yoTw5XBKT6Pb%lsvOasB` zE5|}W%F<|X@%$+fOs`<oLX=CYYJ`d-Iz(9(h%4Fr?sZBs{BvZJTnFXruQ~}VK?pnk zf#suyEN5JWs|}K3`IRAj)0Q`EAI>l|Di<28oBQ$fi1t2=GuwGAPU#>5OKQgM>5+zn z+M%8-7^zC*Jt)atiJR_O%4B9jlv$>y*C=krmisUzBgA<)Kvb+_Q9;qPO`x(jH-`_> z^c(EBpLrfZ2oY6ZaeNtHt-+FLqC|x_%JoRcTRT~KOI%f9NbcKOTKIpq2~UjEsL(!E zkOKD6%9U(L$j#N5uw&xqM>LO!i_HukE7O#cQ#P)WvJ5=?teHxNpi3o5G!lwTN@<_- zLw5O!H-2oT@(R;q1gB_J{7OyX{cup#d5-XF&YGJI2LUwM5l{5YAfKV|u!bhHaYA`h zO~i?ZOmJJVLW*-q^Z~8=gU}~Jw7^u3TA*omNh2X?0%7)(tC`BXNE5bf)uhc)FQ7*E zwlRZ59Fvhy(F$8z!rJoo%i%;JQK#H(N0@j%?sTZsd{QyV*UDZ0hHVNnu8Eov<S;KS zb>26eBTdx7E$PK$<!_a8a{jaGnZ>t6CN?U`u=;5Br*3<Oxf+k|9bVKbDGfgZcqTQA zhp595E<%K!#$@7IkQKfUYm58$R)kBRqLrkihZQ+5gD-!UoQBOz4M}nPJgR+?Wqd8X zGtaPD_9yBP^J#5+BEXIUd!Bo=e}25!a|=oNu>SDIo+k8}PAUd18i#!z@|Xdp=Ls_g z4<0}alRlQcgoWm7>8iV<)!|f@*?D*J_1$zX+~dva4`*L>;rFOyLkV89V;L{hayP8a z+Ci7~*XFjdGggEO$3w}*H*Uop<}t-l^aPV@D<S%#D~@?_E}P{R-pK6>X*x2Hvel5C zQsAt>m`IQBxKYS!sj9TLj?^$UvzjN>QZn8K64`notqeQCK-JcI3jA&;2Sa1#qGpy~ zqMYH?b${t6E6@FjAMqqN0B8EKF+X%cD{mQpbKwL`vQXc&7Q*osHCvOhrkGL!DG538 zEK}aO*C$sQiz#k^n|j>IS`6@aVSEikbBWhlS`~iFnmReoY1}$R$_W@bK}yk$BV->q zT}%A!RlihrqblNMU2W<954x>#aZmmG&urI#2ob<ro4^HfROXJxskT<#7|VGjBw{Hs zPBPxjV=j_OLQ`^WT{|cVeT?|`I3<bTwys7q<QL~?Y{B3B4Ah?}>T*Si;%rJcO2@1= z%vq`t?Hr3r{(Bxhf#L^LZ52)qGtt`IZ{R(T%Tja_0o)<tsH^*mxok#O!L1&%JF}kg zc|%1vDJM<vo@RG(dA1mjfx1$Sm7U#68%zeZh|1<~w72V8fnZ`*WA^opRQ6lekzInF z^@W5Vc6|A@sk@B-o4e~C*fQ<DNHs^Aev5qHce#GpvAy~VBsqS@70{S?UoxKh5aPai ze%wDGI#S4MNK&L<m33;4?xb^)NFw-@th2G>yeL2#;gsl_$<mEeNyob+819=Dqf?$b zefm6L>&@{!+|0MdC{!hL%v@=@^KN5s^o0IY@C@}%7?uRW?zg^c{x20Y?9Tr`2kK*J zEd-WFf*quiS8M_@VjM@9SwfD4Q@H;xnUpCa1Vm3z*|)8EBiQuWK;d(p78Vp4)G8Pb zjP#1E`u7MXmG$^bOg$SU4r<FP>D+trx$c1~2}A!k1J!MFd1+f$maE}05t%cs2|anG ze%&&r`X3kon?w~WH~OQZS6@87LKbynUvf#wuJ)=I^Ze;#xuuNXJ!dGUc7DON+Qlu| zll|=WN05)={DYhV=$h?$^CO%dI(1^bW4d1!eU0kfQt1kJjuQ6v8@)EzI^RTEdY>cP zPI~CLgV(HcY2F!6eQ~L$<6BgAr&mr4sgRJ~-{V$$_sEH(jAMCti`2PwXryuHpwdE( z&zk4nIam4#IMCD2ZH_dvx}&r_X~OWn;Wf%xz|MeZk;)Xx;8dWW0(Hc#GFM>>NW%KE zn9v!J0sIUH^P|Ycp6a}O$J67CH~dK4wtt}~fYF;y4KAcq5o>LZDM3)97C#7tPjxeL zIX1mQ66m0=_i$P>_CB8e!%TwKT)J!OcGneGsO$mcm)dc9KPk7AQF=Yq^G2N0amPX~ zKN@%E+5OEfbRz2HZ?NzFX{lQVP)VPWo0$qyp~=zQ_<JL^(T{tej?BiMj+H~E`YmF} zoSxI%#`BS+FsrJ<LNUVJ=I@iRgt`17UBZh*Vo!U*ddte5>HLL@6`US)@-JTuWVgDP zYoOw*{t8o3*dDH#cAKN(?@?Wn+0sJZr%#NI(|E}TSF+7VHwDTCL&;f?m?Trq)6und zlB4Pb<#Sz?xRF)Xj;|Q&lF3FgbJUA&Tr6g(h->S?orzTG?oJ1d8Qx=s2{hDNo!_16 z?}zu@Dpk0(Mh}QG#!Q>o>63m)sHTw`$mrxT7ev_i$p>#l>?f26#Vfx}kzF@xLJ@7G zW4Em(u(XwkJ0rdA-;mvXUK!WjPg}G*_ud)2ra%=qSjRVsA<-JVY9ZJABWTX-J*#pj z_&+wkiU!1z6sz%24=-9T?35W5g=0_-4$ckEI}RyIXn}ry+Pt(jc-pa4P$VqxC-8o_ zJOI7QZ{C64(EQ4`67EguXgBqf3`P1JNu|a+th8zGnM^e9+TZdBK$x#j*9{D+7$uJk zERhdZa*W=KZ+w}X8eP%9Bba0JQ3^o&(J!@~=a;nG6pBM$90^TH4}t{GB+RU|`fDb4 zQMgL%5vc;LiH<*yt$}VX<la0N-_4t%S#fblR=>D=HegW(G2EIW2F4lSf2Ki_&CD&= zI!%Zt>c!7HetPVd?l89E^~JiY!#9avs8*cs<|fMo*V6pW$=OkFSSr5x2c7PK;3i-% zLFMB6g+zq~y8~O2@{~xvznM4IiwoRgT-fNo^f)ePw=pn=U+Lx#n|LUvbK{0#D4+~k zH)t?G-54We&@n3iF<W~6=7<X`>Ix=bGHdWF#d3gkZ&B8cn{sg}KOmBv#>7fXG^)PS zk}THiWS9S<obmCb12hix8&xERE{Wo@3Z;%`Ke<%<Z3A}9dmhOy+ikyppvaYz*4J=X ze6CCGwKJ?42O3sKiL>yRMMaHkV7Pjw!Vm4lhi$)ouJC!TetueVN5`aL7sbG$Vb8Yw z+hBti+p$Ag-E9U?6skn*9-beb*73UmlWhfqZs4&4jfFPC?1L-;+p{kRYn#(~&&rN( zD~$N{@Kg!axe@%H4Y^`=-eqI>2Wl=+L?@nLi}>1;TN?&|U>;fX+6fj;r5EvOpXx^) zT5pkk|NZZ9Pp%q6b@FS|8V-^qSrd}!2A-)v!Fhce#k6ne1Q($M=gte0Hfwi{zt5+J z3pYwR{5V9RJ~~n$FM1KVz!@)M;kx13#8YBJeakMgxIva{pim$y3q=__f+;MX-zLE8 z!bhb{No^lUSErE0%BQ!$kf?lkx5V=d<6+k~caM%Xk<u+cXX;$kHMfmIq;mZ5a~b~4 z*m`ggb<6()e&P~>1+_lYg^8JB1&Z^C(;jC-ohLNYQa|}r?ArIqm-T%Kv=@9>pu@E1 z{P(GygE6Y}I(ilmU|pC%D2rNX)hGMbx{P%=`oMT_DXygIC{S~AG%Ix0IX%%g_BVAF zKuS4E+6t9Qw<>A3M=>jZqATO0IQ#!{0W=+*zu}MgJfA;5Uh`fYEUjJa#&mpgJo@`Z zsrv3JY7T~4{oZ4SF`ogP!+Ri2{?W4@AKi2>HJ2mEVo2e~R#$T~<K=`^7{&O)w7YId z&!2Zv9}h+VQ(0usTon(*uy&}xl;vLCBZuK%@6QArFqL1nHD~`eq&7*+-ocRvy_YBO z8lgaaH(mv5&5HFuGlew*Oz-uhuri&c2~y=%R-@669I0q|Voa16e!~iSj<LTC&*<rs z20WXilj)mYIHhtvoSB<@{&K4bzj&f{{6pft(boZZAz%@*Ny~wbYSz!-BWaS7J@4?Y z^!NwU8TgT&R=j?Zo<%avQR*1rJs0SAYWbz|2?uYoUJD_xkP;d^s1raAhwzyhPaIn} z;jan!pG*3L467uE1*}0_b()xRf->?jB!#8W>!VLt`G`IM%A7OqXK1)VKbilTg@$sq zY4oLX&J8@N@06Xy#vtF3v=)lNanve$U~fKr@))C-f9~%lI7%c=4P;&N4BRA9{E~Jx zT$rXQYSQ9e?%a-oW3!Db^B;cv8yy<`zV^ij@=}&(hV*8`A}BvZ^P>#hie@eu4KaUR zUtdS8!>RlEe#+X#e)e;0L-#CIn8^s-2TZuMm?{SC1qxjm0*MVvDg;an)5|DWaAGk~ zG7qfnZ0((!qx4Sc&~xkaoBG@ICp%d(r9=N7tZ(L-Ct0#6o5j{Aj%kX4`Ctl<85qxH zS0tB7|LXTshp!p)niC4TxXOlJp)fT?0)N8jpm`c$2_}wo?wRkrx?ue0j1F|Nk3P8V zXgb}>4aQbnKApxc<|*Du{F*6!<djiKA%>FfXs_Kvv=rHzd3>$cggXS%npeSH&QS=j z`0*kpsG^0P$1R&v{D+y7zZxDKmo_)f3{L7hXNK${T)yJtoLoY@F$`jWpK7PZ6dO26 zqDi$PVf;R4*ex5LtU1rCwmz?0zQFtE%qB}-O#>H}Y2TAw&xNOFK7SAkZhKaq+Natj zl&9I8XZ4sIR4b1u3(Y3sH?bC#BNa)+f!}r`BfqU_b>XIqD`*xM!VuPPn;#r@Vgy@v zASE{|fG18n=wL~ha^|3#WV9}3_^)4>0+F_rk3Qh6i@g9k{qaPDn}VN`^XrzdSbxS= zsY$=E02eVJ?BhA0pSAl6KtT!P;J;7<t{}_xmdXN{a0%zSN=iHBV)#KW9nrU_>X_#8 z%Q;_OMKL&HK^btJPoF^3iaAhZW#8+?mvPO`pB1F8A}AXyL^h{q296c2Kv5%16QOR` zH4-M*j7B0mR0Wp73PkS|!p@Tq%di{R=i}IXUlEdA^g*fWPV21sYcSKVcGx2f)`OJf z{iKN6Aaz~xTVY2PlgDnmnht1^jLs^hgi&Q-yiWGNx1AX@Ya)N%5Ue{Dgd{%qk`LNN zPT;L7_NY#*>lCeATXRpuITheC_LuohKz%MsJh#=zCS7COey&{z4nw^jN*<?cyfGP> zcZd1wU?npjP?8%KHbu;5TmeO)niq!enE5lK)u`_Kku_pC6sY+G?Siu7mEo(e5`jU% zF}f5f<~<+s$<6BK37dIq&>17@tQQ2EAM^M&q%*5B=6x5L7PhiKePrKIYEXrrFbPwA zYik{94dily@xOoDZ@LEXzFc28cyPlL84LCOM(@D&HF&PS*iX2*uXmru>cA6(#k?l) zbcYe@EhOi}rSL;kvRFJ`aO08Sg?LA$1X#V!c}lEf1y)BZB%*4==@0`ZzghIoIiZ+S z_n4|ABb5j?2!>%v$>H~#j2!-o{<-0OUu*gBPVq}U_y^msd?Xi?6_%m7f0&?GJ>6M` zkN$qYl|e7AcCAlq#Qa`SqD;S~65Sg5uKVAON0Pt@>Qy0mD^^?2q{AK_q>sn;HhIUq zRy;yN(?*@~rpH8qsc&nXEM68-TSO0;SE$BuwKG31f6GtrR|-e+dk;CRH=m;oI*PT- z_dak`r_Sn!<p<f71X~6Po_EB;cFgNlO}&xXkLQOMc0Gw}=bk@1J_+}ZCeno~1QsuU zeWBebRxa7-y&-JWB~=8;KOYjCsMFM?@YTT^EBLb+`EnX{Et@th53B~=O!Fr)vbO)s z@t%}#y^nZ*w$>ED%YBY~(gxZAmTPJ0oETA4qYJlhSjcu9@6A5EKG~J68Da7|pasTT z-{f!M-qRDpRKSvTA1ioYku`<(uY8Ul-hNKMv_OBA$n6odKi@ko(cmTg4I1gZ{Gj&| zMOO!%V>~`HcxUt2lB%~2|HnNd;{!Mf4pigD`3q;r<MQlKC=2kk3)&6!e{}79n(XPb zhu)K2&I4X|JGaql%pa<glbA^p#R^+r9YMVKIF)rDKF8|l{nniqv7Npk5`p4~IPGeB zjQ2br3Z14)&(gvN{bhLn9t|Lj@kNQ<r-@6Yy6u|M$Y#KQ<1^Vfq%7J6ClO|XLQIVc zc1v8myGxo*Xy=X78oD`{2cT&Ne%ML!SC7+@soXo7BbYztljtL4(?BvEGO>D!7?K`D z%`)k&(s7LOwP^iRGraD1!G12{7t!bSXFSK7TQO%{yLQK+6Sl*BVoVD>$(!5SAnQ(p zz4D|W=erO1Ce^K%OjxLNyw90+twBatLgE88{eThw#O4dnf+O`Z!l;?c@zhD9X8dPr zS$tFk36-EMA^L<>Cmb!^i*3(%qJ`0okSd@b18I5x$tq!Xs%^?d=x+MuTdZ%8{W?UE z5d6XK3<vP1I#{x@mD4=YC8i}~I5(=#p6j2Y+275KLss!H;tT0ieP2Xg-_XaY9YFWn zM?|Xe>LOapY*(J1SO2$=E=CmCJ|&V7B1Nw_Hy`tJNR0+l+$cC^Ht8Y;MK+<fo!#g` z&OK&$|0DH-po&l|@vFJPy$Y<Dcm`C4VO3+9frm@W3Gw+`{FlL8F^aXKpE*v~t1t;P zs+>2Dnzy&ZYg1NlxT@xn(I)PgY^~kFGFPSQ2d&dk)POL)7}*3f`T@#-KFR+4zjMGx zt_;%b_;6c=KF(v1aG+)9f_1_|I2OcjP^?6;0etmK**_W207@<N*_hs~nq%G<RDsp! zbW?nRqA1%6i9q3ds1(ku+jE{A(!B00F-Q}Ztc(HVKq2m0ptCyfyrCa}t-s-DQI_~Y zm@1hVbTOLcKd&yMbv@j46jSg7&NiAR_${j)w%<6lPMY}~eWHE6@$e;2Xu&dm013YC z_Tg?{Z|f&={6Ty|Kkf}i7a4ET>ytRd^_zWN4-o4MM_0$i{=wQOr>DrCSWZ$`r13-j z{vze}i2a+X0bQ%Bk(xJamX0@qGyjvOT+&}(E6A{hkt_j_Yc5r10s4tqhA~(Z44mJw zBJ>xl@9}u&ss6=&s{fOw=cz7eiuI+xXFIvZgC7l4()upPK<EKU(|LJZ>9PWPL-OL) zFxrsggadkB7;)N{JWL=FxR<T9@=^t~uy&(KB!=^<SO~rM$R0Vd$N>iau$1=h>Dbx~ zabQGJPTbx@VevY!7NZm~6nOlH?B#{GPPTs^FLMCr@WRy4{Z~lqpSk0oIG>bFm8w5I z?%0MtDc5*XoGS$9hMUiT3TJ`E%9iW_{`jVOUu!^zgIAwneWayLrl9@!CsLb=_W=%x zFN~c-6qVI>7*g*gDkGzC=@&myzCozS_AULd4KKrq0OMp`V3L;^fS-1=qu~GH>#L&T z=(=FPB)Ge~ySuwff)m^!xVu|$moT`7;O_43&H#fAKDf)}U+do2`_K>l)V;d*>0P@{ zbyes(Gr-E9nJRY17?La8s8<DRLIph-!p+3RG}Cc`&^w^6XbsqOejsP*y!a)A$Up*L zo{}N6UkTUqkvntw0(sYae-jNvXMM`01)=A8FjP<oj?}M_&LUE{$xxlUi7#GV+pOr1 z0|LQsoo8z+^ZBYNG*&F0{I2DQxY@@Zgf2-ExaU~ch<xI@8+fz7c&vH4K&`6n$xl5= zFDgNwd#de-h+KXX=MO@?%q_qH?u<Njf#gn1IvB=_s(NueHoP#eUkf)sE*gIg3}&}g zj8(xx3OA0g$HAiLh}nE~(-*>w$0k=%3vwK<TxT~&na%&f|4#lL`BzzzI%S>m_#@}@ zCt-h7r@p5b^kln~PM03ln9zL`Q+{1`oaw-8?$;R959+{&f`sc5QD5ATvxh*!FY!5N zu8)T^5@l2PG2l5-XN*1k?|qbgf6=OI=B>F_T|wc;3NLQoc_os2GkRX#bKkO0+s>{P zz1I|b@<Kg{_7#mjBNwhPMJMulZh)_cpJ@&gEN#{!%-Z6gYc7J+2SxPxZRKXj(LWN^ z{~0IXWXjQ^eB<!hmUIeL<bz({?|to&%4^xwLe0FHZL|MUbF&Idah`5PMwDtJ>lv1V z_S<nfPDBcTob;)`<#A-DHM$wnnjwc7dOg(<?=;~Ve_1pWhygx3-u)7hc!xYc@IGY3 zzJ<c#WAS)>?&-R`WikEJA@O%)4g1KluMT@<BQQN^=vzNXvBpdfFK`BC^ykDk*#zh7 zMfw(GZrA}_DXJcRt>llkdW#c2=M$_@vi!XleV0Dy*Mpay{pQC;B<N{7+U5G@_TlGs z0jq2fQAza3m}P$s{`Gg~8g5@LwT=HGGUM3tS5AXlSFWL<=RjeuZj`&8TX*c$tw;Yk zzE<@Zo7g0QMV_MD^rBGdp`Js70z~P&<`mLsps*1UV5da@l(Gp|y)u*U2bTYQkM-P+ zL7=m0z7!I?nZlW;m09_ZbbDSamPI;>-FHix?2j{~Y~Q}2rOQ@EmVHj6H=Gs2fD6fX zKkk2YB+&(;zt`X}P4_7O#nUn*c1P#w44Fo1%e20itjv!7rYzF&_c;@z@;947@kh|u zWGBjLk#p-*9Nf#5lx@4r=KK%Q%<-G{r}$b8b5zcQ5hJt=1{+msO~?&yFxe}bJKfkm zZs`T30M2<al1^!8`pwSHZq`6QzoWkM#+N*Dv7|r_o9l<q8%f}E8DxJY@I26I0GaoC zB=8#cbx^evX6EMcal~Qg&y1Hy;Pt&IY4np9E2+L0ftkipvru*5rp4>HYFBE)$Mnn% zXN?c~_NOA{eXJ({vF7pNBgfP45s_#cE;7WN>r1LsZ)`X)yEclzipb*GeF-Ug1D6D8 zvpH9=vpn{q%ju<~XvMdo1=}q|y9mDg2tb1h%>h2-Y}uOX5OF1>^+AV^2$fxas)0PB z(ehCIukRY(btQoNfy@L_aPaWR8cf}BuIhGMy%u!ch1{(-#70lkZ~ERlb{bAUm{WZd z9BW%!rOIp~d~*I?b`v^+;s<Ew8`Qkj3yy7H{~!wGp<WP4a=cD>was}~9*bznnx?&= z5FZYXrC?pg1-WsH`Zb5RLj4aX?v<(h(2C^cS(abKsKD4Wl=Ym-C?V%n`$r_~lR6+9 zpXzhx7l2r#-KOa@SA5oucgHrrJ6KM_u+~W37740xd_)L+r*V89%ea~kyk&YHaD3<Y z-1JOd;C~ks=ehoYg*gbnEW$TO`5z<B;H=GaB@?UDia{j%pk#&Bg5)^`P6Cu_3RiTV z^6oKAmBPh?6OKz>17tq$Y?*ZG%^aQT!LniD>SlU#$o_#yo;V`X!I|p}K<A9darD5R z1=OY+cuDFN+tsJWpGHpv&d|2DG~T$T{!o6(Tw6))X{(U0*Q>K62PD)3Kc89dey4xO zd|O@C)Tq-sg<R2j?X9~;m=_vGSQ6*(G1-O`zxNRw8CNF^fDm9#K~2|nhnyAgtp+I2 zwP7ppoUiq?zT!}@;%fhKHuJ96{Wt{p(Uk2vy+$P9mbudNZglko=pL<k&ETz@wJ(u) z-J$Gw>2n8mWo_AecRrS9I0Lb9>yvc09<F9?mLCE_T3*Lqyg=^SH`id%xc^OE%9;-Z zrRW;MXo8&_WUi?~apG3QT+<iZ&al7wx|C_x6al*>uAz~0zgM}~7@&R(#u;_R)w}{d zSBb)yJOKJ0J4Cr2Qx>12EZJ@jjjShlbaD}tLii~U%qfkOoh)<g0#FL;=p60Xgkhxo z)<chT*sG;`|1OV7fJcF}3`9-tKIavL5<-rN#7^iyA>O0UAa&aCFaOeZu+ydQbjYF1 zTD0oo!ntG3TDV|mA~z2|a9+VkBaF%G?>|6=1y-uSV+!~sg(Rzb*VnsMf)kfbnT&tD z5d1>w74+%ROhmna*PLBVf?4tVN({SUDE&nU^D#;_AlkM%;5D7HLGy_&x-JSMf}K`1 z`+tp;f25~)kL?8OzlsVLwQfjkS6NignkHIu^*!fUT<uq2`p6rtmbxBNl=G{8jOo@B zXy$r^v@<FV==(VBKjMAtn%f_j_aV^pE(-y-1is6Xftf_@&?huR<%)X6@#fF7bI&iv zBB%_4@Gz#=0%^9pU*J>&HmSML`=R2q^`+6;t9Uwa2rrb9urZtkj?h1qMu}@n^4(MI z&n7rlX?7}3DjO13!Fy%PE*WT!tl?!7w?Ds#F7>b}tscQj`chMwYmew)FrnwR1kFtX zfAliHZw_T(a-qB=kI-FkzP#Y8GI;&scX5e>02?@j;4ZqWaGpe&QRbQG6l$BlbdUYP z6i*4eqeL|h4nMG1R?Q}0<ki`h67sA)>C4jAWVW@n4MKzZ;u!#DDP%irKh2%KTM-Ra z_1netJLKfOdI`Mb`Lw*~7u<UHZCtNvyA#24%H^Wk4Gqigag54)F92U>WrzR>yRYrH z?gJfnA_Ff1ou|@Zy#`Q463T=RF@(Ngd%{ge8!x(m3yRzX6!GR86xCD05iJ<f1xfj) zH$)!!FZ_4#%2XU?Ns%^7^mCo=FR%?SV@EDiNAw4~XurO{kak6m7&yak-|UaD!I^dY zKYV*Vj&$5#*?J}kIQ@8YCh_mnMMd1U>?5w$LdiREeaBa1YVoVosrJ3~_IqZ8eY(VT z+>=)A#B+R%*flq|z-n<$V*i%4lf;M1r8!Dr)dEGWVc~9{VxTy+xJWO%@=e5hLily{ zh9qNM6kM9ywsW($?aPh4Z4i%RdO1`jD2y@aL#0+}fGt_*1i5mb-f9~CDY`TD0p8R1 zp9|pe@ekN(Q{CSjx>fGB*K!ylzkTsv=G6iVadSMGWM5_k-jQ6io;rMr=vt3@hxA`s zEBH<)IX8n9iSMjP3@<w&lH7p%(v3}oTrfH<e3y7$2c#RI$kKV)*bY0AKx*Y}ljL#Q zSIa!0$byzy;t=zakmF``K3KYe(_b(k`_z;7D)2xmB2#p56=C%LEmpo4ue$wFf9F=Y zUNF4(QuBiB_l~%8B3^mdk7-~FpaYe7XeDz4vatgWxKVA}6MR4e)vaFZ=&nueu?Y4i zbUywOI{e{_FYpBw<I_u^=}y_ht>GSp3{E_|c5SBGc8o#}rXqq(-kODJ;oJ=_R(7Mk zf?ev(<o5d3Y(MB9T!rl^6Du>>i6IMPK-Cc!2^XyVcb<g2;;v4<_Z2FWz3u_B{_FP! z9Z|QyUyVTWKh_PAU{P!HFBfTdY)D_^FeX3)vS{cItsoeO)~kirlR$6I48v!-_oIaO zRMdb=%GdMlfN0#V$0t+<<qh#6drmkOi7)~jf(VH3HMY>hSi<2cEM(8~W7n+n9yc%# zEcAr%4m>rShPHCM<fcfbi3a5kl-0IRzjq}lP{O596gkXmOS1i5?QsmRU|CabSt_0T zRd{mq(eSYKrI~0c=cDXjhhy%mOMG&!i;Nsh*ni(R@Rc}*@sN0iPlxX7ZCOP}3_k2? zR_;UW@$Hm;hB}K$p+o&9!}=}(Uqahema!Km=xVlo@$apu9da(n=~&tU?xGz#VU69| z6g1E*t5Es0xH(zmUua@T%Qm+*50jC-wjzDQ6}i0NtvAsvp9s;;=}5}!xNm!Xg?v!v zJ*_jp&OCHql&`x^2TNS{ZaI^z`iHIP*CCTnPBn9CBVSiIdVL9ed4klremDmlTi|l& zj~6sa?M|(2H~EiYzMyh)aSeViky}Gw{TDur(*LP4go66++NT}uw-Y;m1uEKZO#mei zq**x@FR;rRH=FGtA{xP=Xk+KSOfxGjZO9>KT&xbpu&k-fY55lr=eO8q5pOTcUPje? zz*!vdyV+&882M5+MT|6Q=L{(6-8k}YO$P?NX^Q8S#EFs=NZQiS&^Wmuu3%}(lKP*q z=Wezn#9yyAd7^gQUw}(V1M)z@2moHY{aE{r)n@k?__@CRq>xA$MvaOlZ+j6Cil((> z+0itja-GiLjek6m=rE-q=|LB(mzB%JoCKtTdk+({(xB^^Y6-6#F#9srIpb6^7%KQM zFKDd(C{brN;PMX1>&k#^1(43PJyLAl0|Gz4b(b!=o_#pWvB+OlX<2!dr`c^KH_rbH zSD%$ZyCaR7k8Wa=`84DFreTm^^g{ZXMt}EIh8mdo@itZ?Q8u8fx6<JM#uoVMnRmb{ z^60P}pNavTQ&a%h>osnWbk7gA&H7v)9j%23beAq$yZ5ZXUHBfszrS+w)_?3kEi?&) zVn@EgCS3M;b`emoXL3;w(;k^q^38GqH1g+M=nto+e#|{+xMWK}!<QzISXtXus%|WG z&+Hcr1X->vD--$L%BzcoqRm$G)`l4Lm$M!Hs(J|+Kj4_M48{IT$@{gW5KkgJTqg3S zD)fA5W^L?L+h00$%CEWp{0iZF*)YbfiHkNjo~*`+Mr^4*a13~v+VuPQ^8QG<a#Onf z%K5(A^BL$jZMe||YPO#s5P5=Z?}leMhI-?6i8(3Y(XH#duC?g|>tbQ$)@SCX$0Fe- z!HL{db+q1Ya_aU}hOmDnEE7^iU@F0{-p~AF<31Cv${V|2gcmJN8D{C%J|)}jLrctT z(;j?{KIqeCtsXAwGopF}V%-{s6@4cTIMCE~*?R7)4ne!{(`SCV><J{jrf#mu-j93` zp0)tz_A%x*<kXuzvrkj}Lwmiv7;!3z!$CnteSbd{JxroSz20!_ipXB{I}t=xV>$5N z)6_$!6DoN+!gbiSGV<f!Sc!MB`_~8VcEwFN6P&K7;R~Izl^KQ3sY)cu&Lnq4Oh-+3 z_Q$K~s3e+nt}I>itsIBE^-nym@?Ka%3Y@3c>XQ?IPP9GGS>Oh+7qV(Fv*fhi`hOk* z#931`D%DsWlY@g)ggg$rO)G{Ib9*DL5AU#R4UVL+2_&G4$bf!f)Hf(axpY?2y?)o} z!(Buc<ENv|J%%do$ataxeI(vrUsdT-AxW-8zouY}daeMKx@}n%xi9(>V7lOZwQ6Hs z9;5elWV_YYq_l|)%<R{@r|)<A#Xi%;;?yzGaqCLRf#C^hJP5`}aK=xgWOt<#Ze3&b zE-ZWmb#spzOaN^ocXCeqq1aOs+dSk6m>)@SgN1qv>Y=p<rhRnM=f<JFC&sA<O^mYq zUVcPXy$pwIb)}Qz3c($aKqyA-e6_~MyOz$dUqCP;FR+ib=Yk+TxxvjOnJb<8DsA}2 z-|mmdh>lAbE;W?GfD)zBcEK0K5f>e9o`_TW_h--Tsoa5-v$ckiM+f(rv3Y|gqwGeq z<@`E|Sr1_*Z<oV`@&@Q%e~C9$z2BazRg*CgO0X6p<0+a<r`o{I`&T)ADh8p;k2xL? zk6w8r-Kn4ma5AG7)5wFcR@Kj;2;@_Kmwh@;PR`eTT2%ISyRe716V@vrWV5#oe8xBC zc1wnq<RyeaE#Zts<nVhd#o)PbQ|q{N`-m*DbLaKW?{Fp{u7S5^kN4x2bWK!b0l7g$ zfUoykg0Q?^PNp+dbT;+h4uaHedqpVlgxaaYdOE-%FcaA}UG|k2DxIedM3ZHI@iE52 zvRY>nuerBa;JLgB2>aS7g*fK50j}xsV#MUmaHpg${Z*CEE4@=;QRmP&3h6#4m|klQ z`S{3l+<g({7sI<(ffDi_DT1ZPy6*gFngMZZXZO8q-<moETJw^&zefghG}WSh$4a;m z4ym#4_8BR9y%!CL6eJBu_Uze3nAQ~xiyR8|jVEX7=nxXV+~<>&{FdDkkQs8j#+S91 zBYLBMvF#s*8gN2GvgR7=H0j{I|KDd^x5MsdEFp3HBJ=z6M9a0_$0aw4at9F~&)Dn^ znObJ;*Q(|Ty_&WlT2$3*UZZyC;y5e;Cw`-LPP?KtrL)A!#>2iylHH=bXR4OBBNZ)X zqrQ$n5b^8l=b!WZ8!epQnd<D^!uCdnpN2hqW{lpa+|M?<Iy&^jK0H!)7xG@TOMh_} z<0!2V`0Zon?X(9z%AybpPWSkO5bb~-Fxx%nvP67tt&FavrM7;@6-F>z)sUNca1R_g zl!CS2Hu#hmI2bG$ISbeQ5DIv@LG{m6^*e0XydBWv6A(e);9t~^)_U1zy-#AM|Ej~! z5yVO@o1hA<M-trMzl6ixGBx)TK*_0Ww_yqnHru?vB<c2rU~WDZjXZ7%CvXC-nL+ux z=A8*wbqv@s)}RFe3xs5p>L&p5aYWh#US3v#&g9ic*G*a_38A@l?WDBcN`BJj-7L%2 zO(f}FDe2Z2q0zgaWJNOtCF|kf#OWcIvJ$=y$K~xDh_?)O_)UVc77e4+a=p*8k4Qhy zbyz^;QL)DKqo4?m{BaYvrw>r$Z|D>(S5Pcqu^-`Y!(wV9RDvl73U^lUPaMwM9J$9e z!qgFs#qGA|SDIcF8yF|v_#@<n=7)Q*3I|2J!Us3feVB|Uk(uuvE|F{bIZRdQ>C~A* z^M33^(j7F|EWm7ioI>`hL?2*aU}5q*Vsj~q%9rWNz1<$z!)CMFZ1@YjGWw|4S_pj* zH6MtyBRhN<AFp&pjIV+{dvdj3pN&2TKf$LpT!XNF3P)R)67h@ou|0kFEz83O0~@L# ziFlu)@UmAjW@!jMHdTy<+`qWb0qQLv;AEH6IfRfTw^khS{dI4}41C>rAD#gdFmXoo z|Fi%I1LYgU53?O1tW7^iuranngd<Cz0IXX>x#c_%|Ft0@@5b?>mxQTuaoadb?4H|b zMSNnCeMpZF?x_}1gTF3%cz6jns<8L(B}SRr#;CfwfY#n6T>HI-?XJ9b*1tLdD~FA2 zO_zrmhJy(;FANV5k?A%<*~g|8p~&+J7;#1v)#cSdzi5kZ;X6R81X7{t;j{s9?<Gwb zYywrC#dTsV9ORWfqaJ@+i0_{2%`xlt<VV~4%j5iErSj>jZ}GTNk@7STIw(P9na_8? zMGI-)3p~MkP$LqEi0hyiiAB>_SA~_UpOty!Ccs3nz&g)L;JQ}@bZGGW2#6=*AAb{l zf;W17*4E|W84m~N%*=E@b8`WdyKkEaz3f&}Xujux(S;HIbFu@tluUvKBG+0ykUtHv z;?DSPkYE@r-VdHx**N$HrNP;fWkAp{BrwCsZvjxpg@l59xvt$6T|N_lW7O9hRF_%^ zjSBG#fdKswPqk|-r?QqleHBagqoFSzuM(cF<9Pq)jW~E}bf-|=`dFxAy6$c;USb-Z zYmiUs?v#aYcdZ>8_n(uSUo<hHcKyRBRp2$Mk?HoFJPJvTnr-8pb!xibE8;eI&*+gP z8AYHq=yC(%#|;Tsa@A3=ye$zk*$0W0{1%(_P&J4x{oaOcJsiOx_a)8;@r&Q_AuQVR zU8;<XwP-+C#Kxhtt?XlsV<2HDG`^fIsc35xwCi2Sthb=Is0>Q12Hk@yYX2nqSLv;~ zauwd$zhd}{jRee4A)LI`AmPAE)K4Sa0GO5YTCjD>@feLHWvKYS6m>*$sGsHef$8z; zrDWwYDPxqfx=njZVnxML#;zbjqp4<G!zi@m>mxi$+ZDEMTh@sdNA{SmdAb=?3Dq2P zYI(eo2~dFv3K5?~#nKKak_7a5Sl%2ezYaUT(r&#s^QzNj-b^?Y@HJnjvZ2@ccfS<D zKFu?uUe5$R8_Fm&>)wa8z2gI8Wr+Wa`_|H%5pwL4BI`-IJG>FtuifKGOGzDb(_A$$ zKio39kZe!5d^H7t?2X?v&&MpxZHtGdVQ|LL<c5Sq9374fBD&Nz&M?+=hl#$9g8yXO zTp9&jaaR(tTzx`Ezx{28-H`;LzU{XMBh%vKJq-b-`yyOFG5E+(Ozv)%Q?oM>p1x{I z&i$}MVb-o7T%+3H8sHsNi>OA~(vQ^a-;POTkE6H_2gEg9S-gf#aW8qBGgYYP;8?ID zY^>|e`Wy%EW*xxd8?{yy-oc}J8te8m9k|k{FQ^30%!lbP_HR-pDSf@2Tjm|3>{G8T zYrn*v?Vi_Lk?j4vnu!ua1D)~|mrlzsD0KZYO}LA7@1XS4f;we_&y>)}`#S$UfoVfc zOSjfh;SQR|oE3w<H{W=tN-arutlS8j6|0#7%F4E9qSRVlPM+Up@&TQvaGs*<)6#m{ zZkTQ?&<fOfV+v1U=}(`z&)+8x+KxJJyv@O8ey637o691>wT3`exW4%F4KL75K(sx8 zcdA_08V?`8VCmPKb<0}YDZJs+bq1#h_t>XxulLrBVHETy>Hf6o_rgph<dW*ns7)~& zi-cTfzkn0qv|-P+&K%LCoBcqvIulPU$mcn-23Lj8gxz*hKjD30k#V&%kZ^fC;~y`0 z(H1ko+Qz2U=wG4=OuMVSbFavtY#N!9ca3rKv5Wx1Ca`Hba(-v2cfNyT9Fh6NQG??a zMNFjC#$Xo>qQ3j7Q@qi&$9|DG98f?QP=`fe-!Af=zP9~tfJ=vkuTqC+@Ntm~oYR(M zTf+w!$=j5*$RF)6@`kSQdM~jv5)EmqHHr6n-D$3XQ(=_a{#oDnuHFsbYm$RvZ-xU! zLuyo>X;v@rjjwfl?=A3|-l5%!_NRQ~$t-&E_RFj&X7vj-eBNt=(Lo_|h3b<}ev^y> z;tc2VRS88w2v(qzUdn<JPpNL;AwIB+#rjMlY3}ayDhx)^1$1g8ZSR+r#L1nGA@}9q zUXCB4S}#CNfu(z2;?r+m{J-=Xongnf;lNK@$5(F{m~mjs8PFR(p)P%X4Y4aGVHStg zzt2Md0kVCV@v#H(o&gy3J#DNcB8K1<_NhmkX=X$%Q>k-u$E!})LXNOH9!NoT!mz6i zA9zbXfC7bJTqAE0hz~Gkwfz?yDkdEYGOnZE5N-Fhzuy5gcxCQl&bms6pJ&{ys!yXz z+M+m6+ZNOS-hm2y8aplL(U-Zw*=~O`32=h2D0m}oYj<8hWn8y?ya6gnS$5@X7t1fH z0H||}C0U)!<r*$_^)hW<F9Ix^jnT+O&`{A+6*7OD)|I%|QzLxhbD>9eLx=%S3xUrx zddtjZ0_Pk%K?&i#&{Qk>E-)Pllb3Tf+i@FLVsgz@m6sP8Mp*n?dfA>$-}w|=m%Is| zc2P-pa)E$WuNw}itmd+(`vlL>#Lbpdv=zg4=yL3$Z`34ff+~Bv=YD(XzWf^YDXvV- zmAZWwp(A+oxaig-f==0p&6N_n>h!3!CTSxP*x$|of1RB=r=RD(#49hi?bT7rF^*(e zgtihVd|J(;q$eP8e1e@M!i!zitvl27v~%gSuA#)i9vVCOCy_LlKg@)@Y`Qs?^Tbvk z!Tw6h${_loxhOOJyKJ!25Oqea&r-C*397K_<6A-SmsvJW&VkEIwi3UjtcBis<AsPj zYbAuDynsH$r+4O-%fpqPYQj*9z2UnfJx7b};BS?>>>>XN5c7Ul^YsXt75q*gSH@jb zWX7(J9&Depu1NpiL?kR81DKzOKXf+Qwb^kWk@VeBNvY*;i{N8-q`fW{Q=B^8k4EgD zhfc*~PfJ-gMSd2ql{oCM(;q8;HM#!?!C9q>?X7;N*S7Xl$qB)-Am6~S)8QYUD~AEw zX?_y$+aat>jb*csG!EIc;((cMw-7JO`QoqW2-=|<UloIqT-Kyt$eJnZg0wo6SuzHk ziQLdG_T2KzcIjbY8Hn=!6$E8}@BBEg*;QsG9I0czexjfzH18`gmbV+Rv}~VhRyHfM zZ(w3ZY*{EcE&UXiMiSS2XFaq?H1S9phLX+m3c1^8HceA}JdB1T5FMpl#$?fc-`z-5 zC`^rN+QD-98y~ZMg|1~?%C$voI_H5a=2U&=;djxx=U}(7OALAB4}f?E0<b4!2O__o z`1VBRO+nqkQ&vUmSoMY&YMJBnL8jPS3zO^&xkn-I<AhHGJulh;PYEK?)Z~tO`F@>b z<#}p{c*@Y;#n90%TZgezr`}VF)%$H=M^G{`AwEOIS6-#zUwAj;h|M>fik?v8KSYTU z&?H=!)4B7ZAA~w%KKUV8FGK}c6KLKllKqd@>5j{A>5ih-cfFP??Ywsc*$R^Q+0B<D z2ay-eNY~~{)4i;NN<2an>)H^EuSOo1;n-&qzDTy9J@}}_!+2%hc}QhIv`WoW><Wb% z_`2__V~<ZHK5tcd3zqfXUX%S4+XO7E*YzltZN&2cTIWvZU8SMOV6}f_>#YT@>qV(W zFltVe8=!>?;(K7xc_59;CZap!!L-amO3vCpsYSaRCFYMY+)WkA_EytsN9ZYf3-vjF zX>HwbW;k7>-}$}!J~+A6PczmCB|tWx{(BH{4zr(t@!ERYcmgH_{(%5nvbBXjOvQ{r z*V;ziF=m)JjIywEUo8pj6`sfp;_p}ae#*e<@MP}Y=e)E&zuNnq07MT*mEsVat46R< zNI%9=y<dBwNWC^D{$yqC4j8rPbdUfiCRn#5yiVz}W3IyEyjk*QMgXj!xzO}RVN!A` z*mxo{Qx~GD*wB;vDnRRPe+-}12nvEq_r~^HLsQQ-Yscl+pXVqq_mIyR4|mJ#FnKZo z0Y0gtFJ2dGf~|Yig4R5QsR+<iwaz*G4nj^xWcqF_1UenRkRLXEMPE=zO@SwxLHT>` ztv6dQkK-#n^89(=EU<75EiV_%(3sF0&FsGGbT$NR+I*%rC_yjLgD%-Cwq-gsu1Qq0 zj3#mO_`di0?!Iz!S=}|sB_Pv$!Uk0?F9Dc27zIPepBwA(BX}c@G}khvxGj3v*(qkt zh!<*ZB<m!Tfis^7*NNb<5j?0+|HymU%12R8dQyz4TaN$Kk=S8aZGrsf=zVb0>b4<p zje>-n`VCQSvPlfnt`#>><hBAHvp>Z2blrkTL}aK1a`||F{%~`dOUacbQ?AjCYiAld zRS9PvlqfD?L^)$;1Ja?<t+LQvZB{0?`Z2nZdd+iS8XT+^T%eF-F<_w;kKEvVhp=4z zGk!R9$I`&vG9rypCh;+;)flly+i~qIql4WiBo|e4=RVlf&M9alS19)0pfSztr5*c! z9d{9=Ks+t4?x3b*W}+hP^UZV}uIe0=fKYkhe{Jvx1S82))GkLk2sUdy_GdREWyB~c z&HP7m@42n(YM1%YviE4?S%Kmbcs$CO4X6Hs+Hm*k%HM8_8y6-2OE$sPZTm|q7&JAx z(;}eLOx0o+mV|7Jr`MBSU{Nt!ov?AT(`J7r5jFc#Rt8@>C*kf{E2L_o7cvuYzt_2o z&6=P;X87nI+h*i(e7udG)2j5iA9chlYhzr2;^;Lul<m1}+5LR3=ViSjZn-WpUr)!E zEHPbbyz#lL`mgH{PPO9eEY1~pstKqa$Et%QN4qQ5$g3i1po&7Df=mv#8qt2bPNy%O ztu}^;zCR)hJ@1Q0jAQ@ILD@@Ln617Ng!l@2ADdL5cq`t-XBbV#un0z;z8?TKoo@U; zdm7p2`l9nv4`#-SzopMmz`BNxmWJJ651D7{+?{uw-U)^H>DFeB8b=Cjh$^_hINfjD zQMQvJq7;P<OZ{A0MPMrTUSVXFZ6<IX9vB8!YJSUZ`&DZjHxHz1DGdm=tlVe&`E$7i z_3Ua$U*sq%=z9~lR$6fOp=i(5(CZSodmvIIP*A6((0^<R?6`lfoj2BeAYJ{@_xAd1 z`x#rFzn@|Bq^|#vw&7*>;cV#ACqpoPSofx0iH}d^2pAscFC%1yF=E%4ru<=N*bv)g z^p2j=L~y#yvRC((vU#^EauMK#>aMCjCaC}5xNTgz1UloMXmy(KX+K6m1M!6OiD=DT z(P72NO=K;sxW0_(uQ;}`JODjOKPg`Y@|gp$QSbWFY3pVG&EM1*@ymrRJl0a)%Aa-7 z<tJR<(hzL5|LirG77Rjza}pB!^k>P6cW^)X86CVh9os3flF6eZHds_rwrf>e76FJ5 zNx&_;$gL--#o8)fvpuH>yGjSp5_rPh32Le_S&GK)B6Baq4fJo`bRq)iv-B8mAJw9e zQ^sf#tu3VFq-*FqE&C8O;rqGx9hVAv`$4{JT_!W~xeg#Oq}9tKoW8U=M0!+wD&Evx zg|qB4e5%6j0mW-S2}x10nRMz2BcQ(0sur`2$0v%*FsuGxBIs_EV)gZZ)KzGoAuJiw zH^XfnxGp$PMfAoh-8`E84|!#BV#tSlv;J@OnPIC`YdCkG4mL57RQKS=<El2@J{8#B zVB)~a(X>{r*O`cDgDy%Xe^H)ZiNdZRsb2z4x#B#@HTD{B-ol}f-mk=27`5em&O?|$ zIU|xL-s#l8BePP=Sr2)7t21}oZ|1c8Kfwnjm*X|PFHtz+OwG_+^!gnyE9b4JTD8JB zWU0H$k)K%wx>ofb2ORM#Thc|}zIhPp!S{2?mHPcvI^Oz_I>JH&N}Q0@+OtM`WqSAF z(p13{Y{nOFg~Z=q3WeABHLB6ncd2=aqy19-^pP?#cM5tT5gi;(o6zOal2H`>E7;~N zO(gQVUs%$=DH#``Sf>H!A&Dr2x_KX^dOe!qAjSuMJuiVnRIJ`RCMc&DRC}3aPq4SQ zh(cV-&mUDIU_E2C5o6eETk~QY*4Uno9G7nh`Of26p3+s!gQQl`Ql5JK36?DMgd2oh zE3aJ(3Je|9S#agt;?!YBwB=6Xcn(~uAu|#&WFGN<vP`Z;+tF)7d*cayPVpQhFHp8m z+zLZ~4+}=HN-9gsUpo8Fq!*0sbT4R)`J_STL6UXoDDtN1K@2d@|86=kPCmU}pN=@Q zKK`VqZE}hdkT_>(o#LfwJr#U~-|Y#Oe0@v;p79F|?JFT~-zYoeiq$F}n;{Zzq^HJ6 z!!S};3pg_NT(2`;O2ucN;8{U*<5|1Qu7vXZKvK6e($)+aKNl`Cf%0SQDbz>={GP2$ z{b*0X<4Wl2Q)v8S=sMwe%BE&Lk!E`n6?LEH>PsBsrL@iW6k0yEHRCC{s0!BAXfpui zxFu|(%a|aK4o(NE=F{tWLOoaqJE~CVd*P3Yn=(jedh&s*Q(<3ppHQ>CbL0B33l%lU z3>@>i?YKR1u1Yj0bCZ2eNQcFAjg#HtPZ=i@>c=u-T{7t;Z>mTd9KIYPQzT!m0R>v% zE@%FVep!oA>-!KOU>LK-;?Z}pn?y@On=#Sg4E)JtGxw{R9>)c3pFj~tykV_Shao7Q zB#fYsAQ_XSBxc96JWlha!Kn2!bPx5Cu;-OAxM_qh3F3Dx?;-j`HKi5fQa)IUOt@Na zV#aIRISUfP;sOvy4-vf)Von_$(M=2w<M@ZlR7sYbildQ>s*r~8@BUDjwQds%IO0=1 z+nPBwywxu)rCkfG?2ETQr2q*XA@o;Mko);jTek>cDYlV`79HK^!A<=BODQp<#?mOC zvf$uJhx1KQ*9!st$3M%BFTQ4#SHf`+_fgn3_`naxkDQp9wegCYZtEmNPJ8d%NVO1s zhpRS1hWxK_w07_35s<4Ay^Fnm&gScC-p<6jXiPgcE7m(#288{D(xq!>yNS{GcL$zM zoZHZ7KivD^(}B7@O)X}|l$4Mepcf*m-$e-%DHDcFts&A>gsg}oWz}D38}@hjMalvj zE}?9{c+uCF)3qkZe;zi8kscR&U5<Y2jIs=T&Gwan!Q6`U*sqz11e~18+1a6BPitR- zn!UMWHz(nQW-Au6#tr*T4?z1ypMA@5D@!+c?keu9xqMNWKs>+UBtHuO#&8|6OEX!X ztJAf&0?L_y&_DvIPil+7i{JECb2?&+L%zO>Yit$z)OwQ6uQUlZe(r(G#5R)7Od1w0 znm_-z(7m~{%Et%>BtzkBk~iQBl<EbM&ws{^QI1@tj{KVf{Al}H&saY>RUS2lpB|@y zW9Rw4!nK?i6~$0g6zcEoT6osF^Mcs7FO@czWYS-G>by=}i~A^7N@IlwknB035rIlc zm<W?fG&oSmziJxNXqvusf=0y7jFsLOs9Sr;J~9wO=3GFIh>U@=k3V^?WR@TVA!at% z1HNb4Vs&FI{&JUriLn-Un#4t(#f4L09`J|F*+FPHeQK>P1iIjpuq3<Mx$wg>vZamZ zBU2L*+0Xk)<%o07x(Ij1tCnO-vh_gQb-$xx7t2h@+R&w+{f4I448F^SaGt~TOTo)` zZE=VYc-#Ki%1ekp{uv{&MGnrqHhB!6UAKb%VWixXRabWzJG&Tiq67#o47WH41?oh~ zuka}^8%#OAo#Q?hdA@S#X~&s@$QyZ7n!M<!)EAV;(<r{K`Zg-G=@{F!#uf?C(UZY7 z6?|Kd-9038K8A}q*~g-k9Dq9>xvx6DCw02DPAflQPrW{dKYq%^4W1`vnU^8Y`s2XH z_Fdw4?oG3CJc<8T9gPZ3BxF>m>bL^oN?upXgz{k`X0LTH>&JyaJdyBlp!fERPLqo_ zFRB*Ash3W2IFTc7o;fqOnw?9BoPejV*^b9?E3DynLi%S3@DGg2;p1mKeCuYvYJgh$ zgEJA~0*p(Q@SyCqJtOmC3frh+2^+pCFtp|1(#a~q3d8xg#oNm?5r1k+a98U$`>n8t z<atYutSJE@9=K86?=C$4%{vU|OjyezU&FNcjEUh3SF+`X^i!70SQNV_wuu}uHC0L+ zN;=LyvphX(J7LAzT;Jhhh3}?OMcaNz8!2<a3*YD{J$39kkm#@b?ALz_Bx%Xvltk-1 zeB&dV#_A2v_T3~wCvKrGZNKfM6RL5V1;X!s8UI^1uT>kw&Dyx|&xUN>un9hp6mB`$ zG_5!KllqB%zx+CpZvm2vI)`I2QD?yUY|le}@uuXe<%wlFOy9=^H58;_6rdSODALs8 z70Sih63a3@N5QV2toP@hQiNGJ00mg22FuBwdMu%C@A=pVM0GlMWtC9)EPk9K%7ZYq zjo$R--J!|EKdu%VU&(jRcLe(T=PmzI<1JJ$hg@5Vqb7)FC!uShpcaMInU9K$(RQ4V z6nKhQL#c%@7ZJF5h1ItnYhq;o(F2uHv7z{?aYP2hg(IEeM38h;oZQ~m4|ABy$JyT{ zUyEyqNqcg+ZVzdZecKM&;%vx^5y*WuFri^1WF_x^$NhA;x&NUCa~q~x?e6Jou9sY> zF7}NWH7gEBGF1Ax%-Fi(OK>E@Nv<$SJoQ|6f(5)!BWq!?=g4wrONroWeGnWDOcB(y z;Veb@*U4eN9pM2%8^?sq`Vc4Pvk0oA?(i{7b95R<m|!Wms1ojUD0_an4OE|hy*hLH zmY*gk456WC{AvfWO#^)Z#Y(cl5ad;floSHHm~&g%kOxokpI?v*cFDyMnXq!%0#Nw5 z(i1IVv-^E0(f3_YY_)3kXA2~OaRaZa4|bRot3p8%aB&uQ+o(wUR}^}L3oYr3I^zFj zUH<I|Oae%&=2Km)1^&0fon8|fiCSlQhtS@QmK4shKm23{9o0(;Es-Zh4|Td+MV`@s zi@o_Zm>SCC>sA5-V{_uF1UXYME0f*18B4KVSR`ea&S0rD@on(z{N`XX#smU?^9Qr< z#Q7`NnzfzHFsj7eG1MMuwJ*nQ1C~y+l#fU{7d3Ac!Nst-9?@65ka=gvfImgV!NYUW zX=y}F5rm@-logVU>VfgK0W4?E|H2dJ9}T6=1OJvrxRPi4${eHm_t{YyBd!qrP?Z1i zXdJGO3&hI9QzO`_Yd@#elPviU1gBtK-EAj06F9A_6Oi~*9&ZI!@y_)A7!LA9Nl62r z5Fbe;L=2ADj-!yF`G|32kFBrx<a<3gl=H^q1zmd`auXb-w5%dZjrUe~K5>e=`nd6# z*?B3&Z~F?A2+GkVY+Oqbs1P~4mX?46s&=IN<jra2eO$Kh^ACVK6jyvo4W`{Rl%axI zVZ`2DxGFZ`Arl^GvO~WUo98a#2$ZRw_K)(X06<0n@WY#h+9VKa!b2M#(No~Z&(9sr z1d=^7j9=Gt&dAJPy5#3%H7_4>16TYg3!^T&%!WOd3p)srs(yp;J!=BN_mVBNZjX~{ z5NBy7Y#>y8S2I#SG{ZlVh$va#bd9*U5`VkSok#rQMqS>YCM!wu{c|Tvq=yO|lz79- z2pcDJxM8WYAZuOmje0?aF=(Za4OCR*dY7SVXh-q8b%gh&0x>NAz?l2vLbQChL~3CS zVxRlu<qtCik;~Zu{eZCpIdVR?+oMk8d)6e^Q}`6INL6`y-7X*OG#C1NwX{yK)x=lM z5j&usMiEI`gB}{NrahMq_=hbI%OLaKx;z~BpHpi=8B^qpY>Bzh!C!5wWHV=UB6Nni zA~K&ZQZauK2VV78Q}Eg=?xwWt-S^e$91H7(FLOEKCw@|dWpTsqGH=&`$KVwraV)5n z3^f($(P*|(O1PV~;6Q{U&VEc9mkWLUs6w%^{`wv(!I#2QJ#R%s29io0hmy4{?teJf z3A;o%w-p*MLojX(;-f<s(h5Z+Bajp$7A?yb(fOgWWKpNS+k44<AxuZE4eZ=%L8IGc zMJPioDk`cpYDv#_r7-GW(@LH#Ml<+rCE75WkPCr1+qJ;T%1IEN*4=3N!Gg`t6R@eH zX12ioP%a@d6LEKnPe2sAZG+EY?xm1OFNe=D*soq=_t>xF$K*${DLCzJ)Cr9m{OK$a zhr}jgFmjr;hJ(O=xmc*i(%?Q}xm;<e+@?QVU-=uO!0HW8>LE)$&?h=cMMJh~&A6Rs z>S&gYazIj}Vo8M9_DW!qv)STDxrR=I2e%%NW1)r+w!9Xn`KVL9^9g0D#b_d^xOaa5 zljv8kQQ(zq=Xn{cNo)4N3Y*R}06^Z|-|TCsq^b=^jz>aZ?qxkIwZ43KuP8dz*H;)c zcGd3O7<;GiM&lP}>{mE`bo9M2fZyv3@4)3x!;C-*G9gbbq*uJz9vCeJ8sX|eq(@WZ z;GZ+5Q_@Z*myEE2;((@?jL`A&VY2H^^t-u-#UrV78v0`^4v-oOhSkxg_M#z=UE>NI zwBLh0fZ`?H>jKnmg;iI>jjr)u$3x!;9L{Y2qSyY<CS>Ly#=_6YL>EI(N5}L+Is|iN z31X4-ziYtMQ#K>vn}W()hT*C%!>6h#HJhvPIeAk;2C}36zznJV$!7jGlk>D`lQ;Go zLRBppd0UOUd={Y7NfMl|Pahmqw1+vorjC$E;ehuS37<n~AnE_UuAY~b%vLtSbkzEr z9V!J|E}ZHJK~IvyS7b?=Mv==(!+vh1X)buy<5B{C<j<Y^rV1_Rn}iEvKhx~FB=Ytj z9Jy0(0P=wbs6Qd8<O7^=7<srxooSSNDSo$v57$Mqs5dR2jG^S7`e#OGyvWE|Sw+fy zd4!njOlX4hHf6^o7z=3ZP+?=}amVd<K1{gQ=8LPX@A3y8?&<7o83{kvebg_J!~A!6 z*_LU3D3SZ=FwA4Gp3&spb_ZZ)(~Xr-8|4O8G!WS~!sX_#)XenK>j@((%5K$Q!Uj$_ zd^&UM34ew<i#DIvBOPnkA$0E<pZ#aCJ|;vfiH|3e<K+5C4=_E@K##Rm#AM&3gZJnY z(+8JHM6{d~8KbTCezDXxlD=i0pQ8Tye_DV-n1yY%-XU<##B<XEAAQkZtIx{&6J<AS zHF}8@JhouvU<F^5^hgsPde1ITHm|G5G1%AeV{S4Lv=;Y&uc?AqET45Oi_{yyllED_ zpM~3>>+h70KDoH@C@`69k&V%WrnF?><RZTMZayp4v?U{`f_BC%PbO$~nfuEv(VN$K zgGR8`_}`Ye0CBrKBv}mbknyCF_=8VgH-+A}9z=n$;OIh2U-hTDBXJ_>uvL~mv)Z%w z7^<zxRNozC*ueTS^u8(QR%3Y<;vH={Fx0R+RPYCR<<41<goK0r&H9rRDQHriQ2lpg z-CJhpS!WOE%$Qc-RQDY7O>B50BbLh+IkK?Ns`j*I47P9SNT-OCvQF_AQt}n-F>B8M z>3UVGOXd99IoqoN{Dku8?J2XWY@W$8Kx=OhU%60q$1PZ}q1&K1@u+NjyadoeFs0EI zI@(r#YZsSf5b^#9Lg}|k!?3&%pg*ime;l_ey$DWocoi~Q`0IJe43N6Dg_i(%U^#4* zU~<a)6n~w?VP27b3DHvcW?KX@mCx(6g082%Shv_}(mG9?uyJX_N<q!6?r`JMX;vjz z)2-_8S|9$s<yFtg;9Gh^oa&auF-0?X$r2Axa10Xj;L8!q$IJ`B44SNbi2}3mHHQnc z|2Tbdsow&9GVcj)sqE{B8j0E1e$+}lUc`;rP!b@<L<x#8RFFiA+@GVc>$I_7IY{C` z%`9)A75QV>5-zo)AePhHIZ|__WrfUps{@~C&6rth(qinx=4f)euoIQPhA;4Aka^b7 zYZ_Otc>%77^Ws>=9u#gWG=h>MdHs}ynnw5my0GXK&xT`E9DVZF{8!V?1;rG2gpx{K z?_N_0ycudE`C>Wwp4mr*hjB`rnj+QTHh$D~$rz-!!7@c@aj5}p;N+X`Yxq=2Xn|n~ z?CStB!PI1WZ&5kE6G1t~R9|>obb_kh!38BT(Y_m<zg(^@9c1)E7A6y1ouskGg>8ze z9>2nIIC9S5Prk3;{!x<bnYAXS`iW~;48f(KA@Y>$na3bk8_f-R-`ZR#Khj1hMjK{x z`e~6Mk72tkj6YevAT4^k48*F3U2XJ1nsXpI1yoxKOkBh_5~gXv(a@IRlMrylrlS$` z4GwY@Q4Rzr#&?fOKr3_U#~GW}kFOqy?KUfGdG-zdZ<Z_&8>OxMIyUH)RyS8L+D}-N z%kq{SH6}kSlR{I@MS05jSIagQNn6ckw>w!$+X@e#By&Ivv6+|&qZ>y_y9^({oXT!( zl}ku<;V&;f0aHo+*T#+L_>BUN@3FI8nb>4HO5vq*w_?7j3Qy+9uz*mXu5kM`EQB#; zV}ia(r4&<<gcL-uCeapr+81T_Qu*@zomF_xf-ey5GRwaj46Cko!&gU;DFe}W7L7>f z-&~lOoUw7#2gL1fqU?rdZjBgt?#cH(e>#ea3eMy?JmJ^#ROEZ45T^#c;_B+Y%y0f% z&{2w2W#<tfV&WJ)`#9RHV&_m(S!ID^zDgT$tC|}9&X4_;3)|!q3hGn%${2KXt-En& z)4>v&w$Fdo*lgXTM@Kq-;K%TMii}Io6fG?%0+Bk(`(u+dp}T)G29dI%TKW~I&=zJt z)buVjf%s3|ogs~5_%ToaUP)yMpNN5APp)vd==1{aE9+Aqa{pvk;)B`3HlSk<b0IcP z3xm-sU29d?1amlhY1PZMf69irHZ3MDM#)TEV&@2@*#jL)RzK#avs(sCT(1^M^L;XR zg*Y6rWV=t<tVHS?53^mgFyeaQ-BFMSvd-$bs#4F~5SJPv(Lr*NS(YkXdEc_->+Dq( zAH`}PqP<B<=ZEBT_%h%6P@ha$EA9DS!Lczcf|by7==%zR-b+5VM>g=m?wNeYAg&18 zhC)MdeQ22?pLBOBFEOz92Qd+KZ3<F1PnpzD!e?TAJLO-`#K12?yHh~Ax37AhlXz5r z{F2&EtywcWjwfH6QNRIyYYR<pzk;P{+s@!^=hr8NbMAl7@xDq5W_DaXe?}5fG=*2G zkE%?{e76?O7ZsvV{29k_L(AZ6I<C?vQ}E*-W+N%7jK|aCy0lF#_Mp<?3aqSWqJ)X( zi-<~jV!+p}iK#m)T_}oGoygNt<Z>o29(%iUsdZHvUprvmkNCP>s-UE<f-@)depTw1 z&l?uV|F(u1`aZjq&-ju&P7>?#OIGwg0NX$WPLrINFCt<fU4H^iOsCtkyUnZIDJzn{ zKBb9KYLJ1({JVfRh3Z0c>@10T3UV&w09#c^5$;c6MxL-Uv$)~E#P_YbZPU1i9>?o< z*{}n+XHjWlV7IDd;0MI!h<C)d5YSJ7{Pr&);J0ERTpXNV97ZGYrAn%2=(h@}#&6`1 z-%com(Yt75U*YFZTN-a8W#1L^^UQA_(trQmR7Aip5H;+$SwTN|<9j7Fkei<t{Q3^* zl5GDuKbrgZj5gEvxH6BxY>3i=7$NwqNVIzs^@$ePiKuuRpEf_HQlTiBP&zbmx0IxD z@3w)1mgFmc%I4{sG6PJU@i~>@STp;1bC?i{#o*mlGN<8K>3fyJb-#j-K!BZ^U^@gi z5x!i^B{;gJM*ke9BmuRISPrc~uw9844o9mgz?vym>EWM1rp)R#!gk~dB#wk0w~oW0 z&`E#I2XfuQo*y?Z$};H!p*^pB!eFS$h0uAxNAepyNs+NlLc*vBVu<03I1KE>>pCE{ zCSoRA3Wu7h4WI9dZYICA6$ep5f4}m|pBl&GNGaf>P3Mrj#pv};4aILYlPPy}F<WZv z7ANLN9rJQ<1qg%gd8B*XC!}%HvAW3mnH@Nui^}jM$`1TLpR<m3`yFL*QQp5yjo*#0 zX2bdm4OwNShEfM_HtE7)rz#4hv#IrE+nve9`m6PFC(MLKFGiiYWf(Ras_G8TCfT4r zK`DI?s<1-p-dE;x{sP+{<rk-A?QclJ*|Bw_!#8e}h`FE0mC3yS6Ssb1Eag$G;{Sn5 z(dhpH*-vyhC|*kTiKst;=jX|!#Q*;U4e?LPXZ-mmrUalVil3l5WCRq<HtgC^(R;fj zvMlQ1QedRec}UH&9WE@G1uI{_{|xJEE<`s-pS_nq3(-OUEA{C3jOH(;m<#pn9-{H( zO@p<>**|1^VcA(=JcnVhh<3b!b`M#_ll9h%RynBu>Ez^t*&ey9$E`8GL@vl2<8nXN zvvrFG{<0N~yA1H25`Ih6x%ePwEY8ulp58q^gu1wjSck)ar&^LsE*2@yu}5utG}p7J zBS#DFDl#G23qQlSb@?bpt@Eg-(Gx(RK#*aO@R=LTU@#9y8K^3OS7S(LdytyUFQsK5 zhC*EYVUp7s(dfq{w`Qkf$ZD_GqOn$#p%YME#ah1oLMNx2V5s0VT;ebeKd;9W{xLsK z%65)%n0qn4V_3UijE3kJttp@qvZ{ksToPDrUq<?(gOH5QMw6%Y3%yFY*YP<3hkoIq zLnY08xzT=H5!kax{qLLQ9BGXbYL=HgimHaT&${nHiY`X~)de%#G3{Tt6GiRF+#yl+ ziTp{yBkK=pS>842EGjQ@=JpIb8WL3L5k@q0`sCO9m8M1!x#fUBUqw)!A=Y7|J5@`t z40vKb9c);baO635D$n3s_@gtUaPa}7q_~O}*a3UPyP8=lP1hpbe+8*1as<Yx%Z}D4 z9^`#@_(vUI@O!d{#DF#;H!?7t&R0rcZ9y+kf?&6@py2HIU_enZu<|UB230XJM&Y+c z=n^GA*25K(oGDIBSuhTbiBu*clYQ?E8?N@|^^fO_5Qpuk+pOC7Ta(v!+`bFN!mA86 z>B6%thpbF?sP?zERjH`oZeM=>U36*g5Gwv(Q;g~X{7J);3X395?w_res+lgH4Z;8( zFyLU%b?RAO6kFqw>HN|l3!T>}nzhtLyJEI!a7`%TyatGTKcc=2uogl(jv9FRKUAG_ zaAaZE?Pp?4tch*gcE_05ww(?pwryuJnb@{%+qQN4eZTKk-TPNpojRwx>QtX+pS|{4 zzsFEt{8cb{9Mi=a#qEuhTVzvOO`x_|+WP%sQd=>fNb0xm3TYUvcdJ_>=o&_7V=vsr z^@`Enj+NXrQX4@8F|l7dU>^m!xqJ2S@&BS_j{V-AJ?Pb(afIs*3g5MOWMcfyMDtzv zpZ^&@dR1xT$i?n?IeHyg;zZ}ooaa5r1~eANfp8pJOUL-^gSd1kFvAiW0?aoOQVkgd z0CGP+rmHPG&*xQWTWsq^lKo6PJ)C?<IC0vaU;FnmNwY3I0{B}Bn@?bT3WY$qwTGw? zPKJ-450w|`ma8^y33Euzm9a^vYx0!zI_h&aUK(y1mUsl{J-k$_wz+O?fl09D-q#-G z2Q!Wsvw#{>tnXKUabR+pD0g-dLWjVoEt>HZit{sga1aPx=q1{m^C8(X1)`RWrnFI% z;=W~6AUc{H0NIJzCQ1mC6hyo7R<5V#jixrLzk;W!ATJstm8FO9r%@|>v??WDXp-3_ zEgf`&k0g&SjezSaSHR*Me!`^()FuSfsV7Ciw3VyW`WF}veqv>#9(46LK{a90R(89! zLQ72zwN?cA@{66uGbvchWBUd^9R<?j6{mqjeqkdE!~K*i>O^-w!!?7$O%K2(rG>ux zkscr9!hM$rJZR(Fm@}{5M}(Wl+8V&WA@+dqa2!%n@}jVEJh4&uw4$D2DemKAu9z`H zbBGm>p`PhXGfpx?5l}?H-@~kR<p6STFQTRfkVgnIj}_hr{#=S0IKQ$OBf4oQ;n6gA zsn1Gt`=$^3cLAr6)Kuhxr;=RAO7?9|P9h`{R-5C#EvMj@Ju_EQeY^15uX^3o9>DMY zd)iZa!f1t-G==5be7}-S67!XPcn-^Fd#@7l&Nx#0F$lHgOM;}b6U<~~#5H-VXtsL= zwX+{;5gKYv`cMdAus?C5Cp((&ar1#XQ`I&$M2>4E<iGPKmo2zmUtsysrU~`kg5eT` z@+i$TI5J!=A5XEDSj$XPMOey8(dGyR&S*zm7KSg$U_kQ!6|1f_D~qaZ1NPN(hD61{ zv|>EleG@NS(*X;UqSQ=l(TWx5U)7Q&qeNg8jo4UEg)X9>Wpb~uw7T!i@sgGN_oK`z z6TqGIHga^S+R!7^V!`2FGvhrKUIx_{SS%zg0~KvzWRy`859lR*t>%kTm?v>&)Z7Bc zD<w!$=wyvO3Y=%34~8faM3SR00Le}Db<@um3_6=xYW<*v@q(e@{G4ZZZteja6+~8_ zUDF3~qwCYiE<289aXk|o+7xy9_5GV|r#?OZ#)ZV}^SSTx%%+&<{Ei*rrL34ry%hYp zIQM10eruUedY~})E(hqMu48+Reh1imq^V5(<4LUdTU{J$L3Z|)p0itZ*T}e93bzEj z+IYRzae;I!P+R_=>R0!_qE<p<-hYqnV2Au~6F<6F0V;VQ`Kk54LdyStzKC0Y%6~4O zqA-C|4*5|NhhOuba@to1`yZ7ARCqB#^%kU=aS*HgSKJu?&(Z(qbWPAvkS?$i^glnw z0uTC<|J2twMPazajbd>&py#?*&R@j?$~s_Uv%sBWEuEACJ7d=6qk>vSR%zr94~how z+F8*L$!^w{4+V+Vzh6{RnRaCOMl@0dnc6ERxAHNc^QIJQl`k~IO@#{gJZglHmRK~* zp&|S1Y5mD8!w!T^gmmMX#q5ia>EUhlrGBs|FLM3ILw3r)=%p08q^q0vf$}^6VV&1P zIXKKIA^}1Z4X<$TK>s0ezSTEkFkhKe1fUwA6`eh8e0c=b^>JzXO*%p^V7k7FDfe9S zht~a6>is=@irS~x!+>}*w%n$hU~Wn2#=W1005`oBW6c%&anhNZhD=vNI^Bu&YYV&q z@pY=AKmveO_oR3%r<iRDc*iNgMl!8A`;d#zN!bd93`YN|@^er^Q66>%!xLoqN479Y zg?;0lb*X|`Rak5E&ubSVCh5Z@#6h7Ztl*YE6CM?ar+6sH{{@dvoeQjXoo)h%C07KW zq4=ZnC_3JwDof%lD8t6bxF2`4VUn<{8PU1;Ba(@|eqI$%$SQQfc<@IApTUBfDULk_ zo>%YoRHsX*gXoB)s4uZ5+w4wTFJRT2Mh$5#CCZg#4nWc`$vtKIiL6xcRW;Uc_O>$& zm>A-oFqU%-Tc}+|K1VnkXLX4>8t;(Uz=brK({|XDbPrzx@d-Pq7dE_F)7<KGYZ9x; z>g_$}a{pA-7Fl?;GH;BuyZw6u{wamSNE#M2j?dQ^CRVnUWS<C8$hUwNQTZLGAwXr> zA3N=I$!me!vkzJl0pz@vbwTi|bu;-IF3P5Ei(1n*po#t+3<^dz^C}ix1%1YZywj^F zq_k-Hi3(luTu1{d2#X$UR85K;DeHt!RU$&%AeL|0fId)=8~}{I3S3g!hld@5zUI63 z$pz{`t-TE#Uv)yE2Cp&Cu^*AyZq@I#3Md0?GK1InzpvT`+rrb)`g%sMh*9NRHnGK! z*8Fo3`MYsHazJnLH@bf3LnPlHnZU6kTw)k!$K=p1X5U*{)USL8dnMlLQiL^)S6AlQ z2rdDNJfI>v#A~cj$0dQ2pnlQjIVmE+#qt0WG-b~xLtYJNzLg9_hSQf>rH?gYE<0y- zrK+%Oi!dV2K35WG#?KWYUY;0=;}4tO{d*1keMNoy!se{L>nWi1J5i>o#YLBpnk+?B z%#C5Q7RJP{t)j*zJlp6pplIPV&e^7DzU;Yl;XH1Pw*(0GD!MXfMSaW78+@+uy3Xzu zD4D;X79ZIr2zQT3pEq+)g@HDj;}3mNGc&qd0hN*y9&RZSLR(UZCQ_K5H#zKpO$@PW zdo$c*Z?<-q6N!h@t+t~b-pOJ%^><pTK4)+`^N*njq-7S3abdD5CK;rxyhl`wYE;0y zeV}=#0Nc6YV*ySiXyRV;>YbyNv?wdb@e`MRfNpIoq>639Dmy-28Ax2tu0<8pc->H- zWy`{&93$->`-7ehUt!LM4Wxcd<zI-gNzOR&^HfR}Cq$NQr+)>tsums;HYl_tDM<Kr zdpCH&57knkp9imHr=m}c%SMV2hwe#<;XyL)`_>7lWLv5*@Nk7=@QHrSt7iWOpsdN0 z9Dp6*rKKG+@hD5c2==}?9xquC&$JFMOL^vyz&`{cZVEBwTbo^$D8)@j#X=vvxlKoo z@zskM<WndQ6U=b|EGS&EYic597EwEcpavg)7#AL(jc){-#15(lSTzthg9;nmLDkip z?2?W|2wabTf0j9x$dLNHHGN1394tB?{=5F3*R)*&HXhYro}iX^HM3oVl7Q-H%Qn); zYuBbjyofT@sL&%7<{DWVLYJkLSBac}dE(SmX&%FL==TrMjRQ@SjVaZy>lalkppu<n z$0(A|)3dCY*fiic%wZQR73~c|;^X0*X58K^VN7FpJ`6Tu8n`b{D79ejK{C!v(3zT0 z;078drJ9$Rsw*0exTs6Cw{n_p4>%_<5cl(pu;zhWa6r5Ajka}&5`{+=D=5S#I_=?U z89`D&Y@v!Q&fp&n37hw%xx;xCD?o5(d+_*b#ntVNL41XZe&d8(B+zpHd=0JagU0Hr zjewBMpNT!pPA0OW?|m!O)cfp~#3d|;xn<35wC}mIQ`>)VU^Mjp$-{idtJfXlr?@Cx z^5-QySsCfRAa*_B#?StI{rk;_Al{|mvv`XlsS&^L<adnp@MC<@5@FR>DvkItggwi} ze<?-2U_A{4RtnpS3q#o=N$IdEWF}tTfEPJ1x@#(^1TpuzSuakzw{;8Y=+0F4_~*9{ z?Ja9x-Xfn^#9PBKR}@M7DA^@TUy)05l->|^^3e&=ggx(asvNgATkFxHU16UYZj;#k z>+%v)*R$;CDL=6O?I~OyjJkIwXE(iv-E=@>-sB>bxVM%lz`d%%;b&7h0!pr$J|7kA zJo(S6NRR{Iek*v`W$o)K1a&`ABqzEcDR~(yp@UeJ?l%i{tMd9X&9pKqT8xfAQf42B z-RUYq?oD0Y!(}z6@MewY(R@rSZQjsDvbLW*qy)|7ZFQx!AkD7ql;>;3K6Pi;qbmtd z^h6kig_-QT*jBjTmiim$JU@%=-`NI*;Vye&s_VN)53aNEtefl)@)_5w#lB||Qy*TU zKmvvha9)>PL>ef-t6ebur^Dt;bXY|vBd@=agmDWhELT^-%@u0UA^7M)O0_E*jsxRA z3*)wJfT?nJ7bD0XK$-aO+sKr1RxJh-pM2OL=j?C62+Zo&an`i;hRF0iw5Y4CNQVvI zub&k)z+7V_0ojk|XKAiO&sL)yXUh%#;ftr8G#@^WvAO&!?2V_U;~tOar2SC$_cWyU zs#xaDZ)F&bk1U1Kgz}ZatnJ^{;PI!g&{AA|&}H}xa#UPyYN9rKJj|j7)=7uAoqV2} zKD&ay_-7R6=}FY)nGXRuFBVasxX>NQ)P@^IIZxc4Fh|?rs~WqWy7d$rU##vBy^p;L zC+~g=h`SFSQyAo@E!g~#$9{b)cx!#Yc2s~2`&rA%9tvQlI94UXJNJf&?HP4Em@~S# zH!l#C9Gw<)N2k#g944yXN!<MoaH*CG-JYqS2|d#~+_$E3-Uy4-Dr&v%%yOQrugnZ= zOe~Lv^NnqmQ1(w8i<XT2P|}}K(O!tdKJ(bOA$lgqlf7ZC9$k@!$2FTUHCFLVanz}e zQIv5$Z|C$6eeAs<&m?F)NL)VH<ZZBW{1BT2+@f&pJ42f~?@^5<y>K4pRALhu6Z&9O zlmip;8W5<0)DBCISX-|YIIgnv*vVa3by}Yc6t|@R7~f!$q|yYe1&XW%5%YG_(X(vR zVITzH%+ClK9hPlM<#@=tDwabfRbTT6JeWmF)D6gX4BUj%^nx^8-SwE>J7AJBRq?b% zQ5?+o+1hGbkSCq$kPhk=agCz_@i7F4o-XJXB|&AjtmI3z=`<%{eNFGQ^T<1GgVoSr z`Q>%IA1i_bxkG9iS7s0Vuc8KDGF-yo>81q~QuKmz^Hr-CWU6C5i*-6oAW)1pqeB=; z@IFb1^~sASW?Eo}oS}k#6@Q?ApKU=a+p0r;>|q)}TGZW$2Q}(Bxze7Jg^!=>!um2# zEhR;Vp@Rn9-rY5@h*Rd1!8!+HxhFRtw}A6?=E*3$aQct$3vbeUMW$sR>64c<b5VGv zM;X!guaF^%%aG&acm_X)Jfll0foL9b#x;#YUm{=47uS<OdnDx}!EW~qP32aPE3Z@q zH5NWch5p!BWor<8Q`HZR?p`c>2-Grg+TiMzokeKsUo>=txDtErrL9U@J~WV-^yNby z+cmmW43fL)FpX3D?5~zTSXam~2>@DD#h&leWUKadjuUVZi>!Tijz;5pZgO;t6&O4_ zw(#T-omJPs<WWX>_}@$PTZL9TEG`)E^s+w~ww{a|D1(kaUCww8nDWJXAs21pWc_uQ z)bTRyYVWSOyb<w_uAhI*v9hn?FX(C%)mIlu0K!eBi;@m`iKmtKS|XJ5k?RYU06U%p z^y*6XEwW2z<MXGoOQ*7OoEB`EE<7M+hsDXZ)Z15$`=+B4hI;3h+Qu5U+^iJqC>0t6 ziKYqD^0L2eH<Y(yKZ-ZuBaeXKmDkcEMd*gBhWAASGh!Pe7p|;BoHP^!2@J9bDplx= zg_&20H_w)L`6i*Oy}LqOiFuqx*VGZdKp@3^g*Qz$PnmD1lm=R?M3`iuSfL>aab}z? z8th6?Ujpc}Ry4>avYNbFgySYo&i)E7VOEv-dBR7*={=!^?(%|*qJa9R;EuYG#bXXN z;k?G_AdijEARFSn&<kw)7eemHvZ$BMrOO^mfY38sB`ARBV}-}b$Y8k@SI&ilBuodP z{PzCpGc5oVWhJtkru_n+K<EuxYX=JkS?v6!NFC#TVBm9HE{~E<@eK{yzAb}Xk~!to zwvn<launF)s5LdFFh~PA{LnAkYYayVSXp87ZgcRZ3PZBOw?&~B)a|u_7?C6m1*=<A zqJm$LQ=2c^j{=WmlilB%_}hYEzzntfXDty09@rv5GycY3W5`-0$&r-Tsgtru2zAwX zLkE5xU!vnV{E_aRcNh2LCs0~wUPCcBKFXij<JqB3@6VOcE#@B*R=-jc)$xaRA^GXj z<_69u+2S2wg7Y+7SC*EhusR>mDmz{1m)dO*Qk;}T@`9kHrVU?T@A&EsNeO{t$w3Z2 z&|0GC{x>oWrG@7LT>ILA?|ugsKkzqtm`2MZC6wJDzC72wY9XOztVSD3pU=9ua$Q`^ zx`X`eROynB1zp18v%2rrEor0<zl}yGVUG@)MFl3|QnT`*8idJ#A1~k`>^qT%gq9BO z%&d0DgTf?y1f+=oG#LsDyn-Q#8-!cP;K$(<4BV#k-7?#@m3ALN?MJ-bZpH5hs?|Xv z;mE|);o|f*ZQrwK-{*9!H||Xl%__*0t>~zM<f9~bh>2m#MW}|WbJB;d?z1&O6kS_s zvj+2HE18)bdDO^dnBwD{g^-2)WCG_XxKq7?ZWs7lVr%(mD@Z;vKMxaDXlN*pp#?0$ z#2U6=xMaL<wf8P1+({FTTWD(|WV<en;ubO#mI^~7MJhoeje@6x3qK(eWj*2blW&O6 zeHubT;Mi~2=8OkPVaTP?Q>xxSr#$26Dipib?OOsRIc&}4B||iIZO1Qd3Rx42=#z=E z!xH5Oqz6gJ3Q!8-VMO3`=p7r_F-ydrzvd7W()T=n9Npa`#Z>!zeam#m+b*l%_3&LH z4*KDEdIR5bJb&=d_hU@MDO;rD|9SzK>^ZV+9Z4Fm?UQMPYOm=A1pV&Zpd<jk%eTQJ z7sdrduzA&2$T{kVp;w<&V^h4@qM41?^SWm+zpTwrUWp0D68gQoE%lx7HsFuup7vF2 zo~yJyPC_?BQ&8Hy{zwt&=TTG8!}Fpa*5$sDY`uNPzH~!xj%jbcL$RD-f9u94XUQDa zfCor*dW~(ozfXF54nUe;zr?mDqs3;1k_*vJ3=dOX;8WwIOW<(D<5qU0S+&6N1kol7 zs`YGP)chG3+H$2|b^abr+Y5@Iu9wL10QoQr1vBrs;jM-{6kq*T&`5x$N(2vjX^(Vx z2q0R5@a_#4r=Ba0h()K{+a3r};oN=`fcEU?`p%|Up>`s;tWcvvky<sK63%?_`JB>h z#nW6W*PACyTLHGD7zvbustfe*Z!Dl%Sp8nyP@-0@RK74Ay&pDcEG9yY^S5V)vJ6to zgKPFM@az7HuiBCkN16h~P~IJD<{a72^TV3U{(<Ds#XVkHETdhgm4Lq-sR||u(t%&D zM)C1TVKG!5Z5x*z@$se;^}9!9o+6zw{8T;f$~0$g<^yG5bzU?o(alf#UmEom#Hg{x zj^Sdkq`bLn4XIn}-eKho0@?91B(b($F(08&*gqLq__PX?*|%fEJ)$hQWS47UgX!qT z@;0=U4P<b~P^su)))M0AYl_6QP_=PPF1oeNH8C5}rN)31Cfdu5{f(kj3UwaxA)x&1 zBD@Rwc$SVKaeUAP*HNYB$Xb;z_te$;RO1Hpa$|WezYq95f*JNC#!qTB>J(ZSBD}_$ z3gnsUU|UToL*n9p-o(kX^E#=3Vu=PdaJC)Au**rel*zNh0#>!VoN{yL&6D!5Rk(LW zWB$TLq-Ls}7Yn6`{B@@Clu2<b_^QgdFQm}rAdUySA~inuEz$Rzu`MA_3;?gY!_x;+ zUNJ=iAYQW}>7_iT)K(sgG*DFMv&m1cy#oO|k|=Kd6Dim948Kbf#?r3yg`r(deATd- zbu<n6{Z7y?;sJ@jw|kq2@Z(tju9(p$Iu`g0-u^)EC%i7HiMXEiEQl|oyd7u(vJu>c zdJ~#0+!pK9y0Oz@x){SAY<+?UNs>y-AqO3a2vK1|B~|@oe?^#%k9o0ZWtY9KBi6}) zbfdFjWm9I8h_$PDmFwHIeh*<bemZjQhTp&|S#Y(U!DATx`Y|7O&X;67_xN#sF{NCl z+H#$Qk>#YrY5d0Nobb7G*Z(Mb&cimkrQd~#3td6Jal#eY=NTYoS3UlD%h@U<*Tyju zDF^bu;T`iH(_%12spn@R1usJC`hStcnc+2<{BSr!zkjdPegC|46)R+(J#nk-e8<qR z*qgC))U<{G8N@`Poyii2S;~x!qp)KG`)4DnfV&$}QJAoyq-2E&=8v)0>V8icn@$7V z{Wd}#QWxKGD&#KX<|8hk@9Il;>nVGEeGAP+&{st*4!rrbZ<-@ZzA~LK4$U`;^5n<e ztUjr~NkQz1#;*?lQ*Mzh)8RH#7PoSK*Yh~E>U12#@?86c<@kYNZajj#^G9yt=1((2 z@?X(>jRMuO9WH{H^1%=Taw)@h+vEsIIwKSWZK*L9K!Sx@%y<_uY>Fu{y$Y%%PLlHN z3tYNO(u0D{07?S90ykp4#pn(Hqsb1jQWo$XNZ?_E8y+__GUm<Y>8YSwLPJ(q49EEa z#J6wX1sgq}2?ivKf_sXfL}u)zDYoSLg?ytXH(aB@fklZOI+hi;l%Wh0ClRx$(+{nM zth4h8=XZ03glnzhqVBouMA>93?GrP3Phe*)E-WCj{PKsMrgG!^B-?Oq^*mo(YuWF( zBI~e$bxvU<&9WffNba?>H=oK~1VvtesbW_)XsEqG`0YmFIcVw`5PdgSp2BOr`wx7# z!%+2$Ao`NvVeMF@!PlpNz<qwK^WDVOo^$RSG(+ogyCXq{vG)&122GG5`R1XkE1q!6 zSCH_n*Uwnf;nH%<bD*WP*6RSZJ_RCtJvx|KAoSGXJ?3J}gg;SPnMPf4w0Tx3gLH_^ zMRx^mcd~W`qQdXPGY(ZaO5boNAI8ucOTntBc3R|a{<ops+a6j_0j#{HKx+A9u8g`i zuU_%G;-8oR54E%wou}u!EcaVf5@PuJNFi2bDzxaJvnw>V-YR8Uz8StHKLI!kp#h`# z&d$y+B?EOB#8@+LZHV+bdj7BeL|pEhXEY7(L2TfTjQ-)YjC^5fx%KME8jhmY%+gXQ z{ZWEcf9Xo%qV%^Dk1*AC1mhpnj~5rLhU{YsLW{pW4SwtM9EM-`w7;O~o6CDg+55cu z(B;g9gf0km`wHVlr>e{$)j&;Qj{O28pTZwn{e23i7rx5Uv{`KpU646?DLg=d7v>`) z#uRT7w^YTMHrD#%-5;cHMP`Hsr@hxK;6ymCya1yf9~Q!8c%UqBQ?+&Yu989&bkDfm zu3_S(S>A#^w%}NY>Vbe!C?3jt<r{<x!r^(XiVB6~H~zf9Kaq|_&Cf(QzwsQj>IHDW zhow8$9QF(k!#KC{nk`S&xTu2qqd?UX`DjcI#;<JzormP9gyZzS(<S`@>Loqtrwp{3 zwYm3C?Je<L<#F>G@G)gJy8hE)m^w9j&VTsquxl1aE9Ong<qOTvyQwu+3p8I<0i~R_ zI}x;cW6@V%Fny#i(mDK?xGcv_nm|m3yR|*w^F-CQJLd=C=S@|mXc!X+w(aM*(k9ra z?(4*<aB)7gz#+U7-_5~`Ll*1^ol5&lFp2qB8(1`gh7=^R>A#1XsgD;bsa~WR;NGL; z%O0zbNAEhC%dfDAI4T>rOTJ;=DxTO_owgJig`Ba1Nix{62YL<1`2brS;rx=7_VQSj z)JKCCOn#VG$%y*W0t<ca+6Hiuy)dbbkXL8On|r=ka35$nr%R>9I4w1)(-)%8865>2 z+ib$<?d|Swjkahh0hN_*udi?Be5YE0$`KzvKFymog3AG-GJ8wRE|3EN$iR5QXY-`1 zY<1vM>QlADrH$7S!*+<@Gl%HQX)ZQg#)(Xea-r&9g1UvRf7e;f!0%_dn*t~1IGZ}6 ze@|#NoME^x>n0=$e=Z%)^8>`_LdGJD7VyE5Z;g}}9I29NWmWMZFu|fjX(24a2PIyp z;fPRHkKrg_d9QmjP*{yQ>*_=zL$E9ziu}c<)1}!(dKkNdT~r_ap>$UKRn;{p%BCEt zOeCWoE4tAzTRPsNwU?B*zCS8;;LDL`7IwJDq<<EM_>i4OE&gS{eF4iks`35slIJ-Q zTV0(cLxp7vu=jg=)A87$^>pczi22yrY=%Vk2uYfT0r>_e(uWxL=dM}<+B#og1wJdw zS316s?Oz1-_Yep_NCaE&h(m5oEk;Sb@{2w^>>3W!F4mRn;1q=9R#l5H^d)T@alWz; zorFh}-fvEP&d&+Si||GP*CSW&F<a|hC^BvBuj^>($#BLmaPdb^lANBoF^H5I6>qg< zyUb>#g=q_nWggR<Nu^C2=<JyOlr{vumqc5i2RunkYJdK1iM`(y<exLeoDn28YG2tB zh34&Yt-F7H%-IQlD;z-0Vd3^k&IrV};#xOv{0mAJvLsD(!n74Q`iI&?W}L;-s#z8x zS=9U8T^LLrJR#X1E*xcd9|<@hEC7<bUZ(W#NRAyV5}AxIJu<8&4m3v0f^)md3}@Em zb9{ZTir#FZ)KQstx<<4Jsw5z3<jW;0$=PPA<v7$!8Unf`Ga=ZAid8G|eP!#<mMT~c zx#15&r7~}tGwK$>T3$uG=9(Wk*_4U00m!wM{D{5~wc6GNnhH4(YyM`|6Bc0r&tt9V z4092%6pp2*kjD$~ifR%=P=buYrU;j~(1<~jE1g2aqxIy=EKznz95;{kXIJxL#?Fo* zhz~XJ8{Efc?GX<^y?gU>NzWUh>+`|ZX5*2ss`;Fz^S*e>dBb%nO@ql_(Ulx(BjS?* z7#mSZ3*5^E;iNx|I#w;VQW(2+sHK8!^&S)UxNQfF0P?}wSDp#>@3(rN2hi@0FPfA$ zA!Cz<2L*a2aguZY(kv{|<+lEUBCs|bz61zvs9GvcI*C8a<WRFE3hVoSMNh{G?NL4V z1uE3peW>9594CcvaW&EKz6I#H_TZq#*W?so6)>DIe?>5NWo8A%f)~EC8{0*h!vE4a zm`M!(77$<Cmm^B5<9wq@Wk~9PqLl}eAAE~JK4)I9^ch?=&cuKwWwD`JX?lKw8r5){ z2n7j(k%gR$lEJQV1mFOImS=KJxpK`%0xn;@*^nF2u_|?q88|J#QKog8XVBC>ULCWy zT9+-K6#_uhr`aP%gXYmjesH?%rIGbXbfW-zEWAGm?$0L1RY_)Kskl$;&u%5sJaOM} zbQv+}PZiA)Z-`Hc*?Jzc+rlJ_A@W#7IQg<9^j;o)h}xM9xuVOA^yz*n!azZXq|LEs zhBFZh%X|vhJ!ZVzTG>Flf?y<tb#>s{jfb%|X*j=&EaV;`pfp$rN>3Mmjzrhy(Q1CR zp$1%Sy;9n>oC!x%n$1lLpTBX|J|>|(pKQcl&p+O2*3~zK$EvlDhMtKMZGml;lt?TO zjQdP~0VXVY@?zOgqdnDH**_sWe={2Rx>NE#J-oE_6c*5N2((4^*u<!kNL-yWV7ipT z2KU135GUQ>X|DF6$z9Vw_}JjzY@m6eX1VtWV8zKxoDdS2`no4DBQr~$#x1J&oL<K+ zF2!q>%TJK%m%Wymj7~)-5dj+%r0GzgWQ>5jhnP8(`)O%INj`*6-oK9a9da8`ETBNk zbQAfhljwN$mGIZaxnh1W5>AtE@os_Y_mu#%61c)7fa%`>8qpOLI!3Vy9n)ta!M=|` z4;HaX`#2kpP^|TK<p?7Ng@#?GB>YEBHrNz6;g<7+g+kWjKS~^<rm-UVQWItIBPLu9 zd9hXva6<N1sCF#}n5(O+HMWr=hDlHB4x}$LBvoC9t`_uE>N>TpVbZEut1pXOa2RmX zE$8tIDzQ)fY9QOc6^1yC+09_2!p<rDqQlnS+B1mkf3u3@7w#;tH}asKHS||}<In<A zf=PyreaUdoxsBWL2B>p^lQWo?lz!zz>WN48b$g-hXk{9aOcPUhT^|}}*b9dF;O4k@ zrZ10?`Sm<wuhH%xaOL@7O4i5W(+8Qe>E?g+aZ2F(ww(z4^y~PJi$qVBQ|hP_n9YJl zeCD<7Icgw8tvR&Lg}U&4E2!wSSp$dT5{H<Ktm6V3(KJ${cefxB^Cnt<t1nZ}i-dC0 zQWBo98U@*dinwfnk4`gRHHpg5*b=%z)HPNg84;Y{(1u;HoQB2}YYgsM6x|#8R?Idt z-v%+CoxS&cA4$Ra{hh$1MXd3hkV>TXUt1<9tcNqstm-rkn9d19LuDX99mA3w#p*?P zP!Cj0qCp*^H?W3Rr{cK4?p2Cdh&;T$Xyah=d!%c;AOt&bSkR=5x{-nM_Otlo4?81k zN0vN_5fUQdlQR@i>@-k_;?K1X6yCN&dW<2CG-?6l>kO9tQqoEcqYMkWpb)Qa$%fju zvUf)^deou82#sH-67k5ByNWW}52T3ESLihWLqJ5ly+51~D`1A;=xdpI-MUFub?kSj zfAMM9jf3}CK#oR?j~bxFAG#?*Ns@^mmOxO<O<Qd!3|8*~8d(0GO}OBFOJ7Q%NCU^p zv|1=uRG~Y$Fxg8vdg%+1bD`|Zs<9zZ+F@bJ615CgfjpR`gW08au)<lg&Gv&q6b&vX z8+9$?I?VbxiS?6Ul(hkmIU@Yb%YyvRFDsQ8H-|+cS*|}ij>}t|LBRv&cAt<_=gVX7 zD;xI+G25Q(yEDk<In_b9dfu?v>0G}h#jFm>86&I^MoppDGA@rT*)SIX2&I4HQ=~;U z+x+~=bshD0c$_kE{;2Wcm4+p)>Z4V(w-~}D(ZU@Z3e$u*7ygJ%!6q0jY&dvQ+X4F! zg>?H7g$$>8zRoYDKoNwg$gm*fJ>IWS^xJ8Kyc|CCR~#6IRKdy`rxY0;F|X>MQqgf$ z`)}2}yxMKQ@*z#?3PI1TwsPF)Xub|LtG6D~1wKBEZ9L&mVXO!-5lrV)h7x7EIBALa znJ^_%Jgg=)(v6(_x;lJ0rauyX<7Sd4=V_PpaoySl)1r_CH9vDoVM0kC6f{yyR%%T_ z$k|kpd?9spEPyp&09Ekqgt2)i#2qZcX0fo2^u!ywB*e*<C;$i2k}EU!`<Gdnmli9F za#0=sZwV45ou^UOmd9CEPv9A1=W}42$J0?~pKEI6!H0col4`$%Rd@n}R;kB+>XXwe zZ29qV*iRrep~pYZEag7SqQ~afS!XWW0TG+BxLKlguTdj1L4Y=e@Ob0%`;*;XZRDcU z=ji~^`0sgE-oA`vXN}gP%qQR}?)-HcJ1wl%t_MM}QF5b8QaY7Xaz^MLS5X3rGgAZ6 zsccGc&oz}AK2#*4J6~tA#j@E;FCs~!gyG$zdS}ohG{@ZpZ|?Rl^Qzs^hOw|^iDxP@ z;)8fv?jW1$K0^Ya8PZEa-+K;6%7h&$3Zhv4ZwZ*{$xLcat;e35fXJD{EwOQuxtVbB zXnld^<Rc`+>yf6;EEmZLTOU$9!KR7+OUcMTieZ`dTVZFa)Skcol825>afds{<c0=| zM1Jd+-+>)lQh{hxGjV1|J%MSA<7;k+HGc~U)8Zg4rs>$oR<%OB@;xYfAF?MPzp_f1 zlt)>ARu*B(nwXi%xsML)8{Y~OEurs*L;d92nfetjOTj#lW$AXgGPb86D90cOXi+WF zpi!YorB*M8Vbi_1aB*>~HNVoUY&&%Qr_r8vbLm@n{VbWx!J1Ggq)icwnKOg!V=4~s zkQ_>GtMB-rDVZo;GK>Xp12ki$B=94_$EQXUm=?~(5r_#%)rxx2?lV><N|X*@;><>c z&5U_08zi+5VIq?_IhTEw8myrD8C|2#L`ZkStW`0)g8jr_PJy(~U&Wic1lk>DL^X@> z<MI2V?Q-vg-xC2z3T%xw4&E>0dPU+n%uJN|h&{`Q0XW-qs`~LR1re1BODl{}4<30w zOkpW$bMum5x2OQsN;M?{vOVIG6#m1XYC?3$gN<y3^3iLTo&lj8SNmgx-lU{2ESz7r zdaW!MzzY>lr>8*N=e}2Sk1Je;?%qmC95900V44|+Fo)-1f}*~g+%ZuSl%YnVWB`$^ zu%tP!Sxjl?FRm=w1ld7YP2n#sPv<^`bbRWW6hHtZ2-j&<At5O__}pJV^oQ27PqM4~ z?oA>rNW{eq6?m*~cPJ=u!;vzcDVL(ev#J8)Xaa8OB*0|dg=o);4OvEm!)uZ#+kbM( zc2tiE#;=-JN6LQT4&G^RGs=i_c|`H_5Z}4J&XlYbJpRvZ8jfCvPq&XYN_jMTdXY6V z;;+&uq7lUk_`$XsEew1&E+<hh5pPq!{aq@Q4ryADh&56L#@pjXc@v-YA{_{ACU4b% z1E79=LsFtifep2-?0BRhllO5Lvg(oab+049_OAx*S2_5GlMjACsLRlJ&*i*8()m{Q z1ln2_NZ<9^=e7Azmid!`8ln;w67KgRfzJwGiW>sJO*f2la3lq%o&p8UqyRZqs(?6b zc@-E;gc*>plSA2bx!=A3kKD`3(Z#e!*U(?i{gZV37V>ZZx6+CBs|R+jL0;#5b2b8z zw9k}=?L!c*ep)KpNv@FZ_k2Q}vJ`9;zdfX%=fldoTi+e<vlNLrtBRx{wAdO3PoH^u zz15c%*BzfExqi9zjEJ!91aZ-JH8k{Eu>6$Pl<sRnkGF^Q4QlyXhY%20i06CLjcM2N zgk8z=g|0R(U;DHTqyI9(uc}+;7L>B?_Js+06S&UrY7Xo2-WzEDh`4*X*-*IKda^Sf z+ccd1?S*OdWRSdN?~zkbNKN8tr69NhK%hr|66{D;&uR@&&uU3RSbK6@NgwmrPrq1i z^AuDYrr=Gmcd}5~x>K3RJ%S`a-Dzw7@S#t7=>^{**payzHjce6eL%Y1Ka}HZvZj1P z!Z&G-E8I;gYyEY50QO=;K#ft?#{2HW--u7I<JXD4=4NMZ;ZglrSE}<!ux#I+4(IE- zb^*Mx)<4?L_hmDyfVtSAj&-4!nAB}sZm{Mo%>}}tUZnCXc8-)xd+fs(s`7^tEueon zi+B_9x%kBXA*u{LdLbysG!2+8u>4Z^h~mcMgNSHU4YS}H|D7M;r_@uw4Twe!$f@KS z3Cq*@%gmQWX(lR_gwlKCxzrh|-`Ia<Xu8DqoZEaPyo(ySs+xs^&>Vu<dG8VXvLjgj zaVG*J&PI1KPIe-gv^S3d&uwYQNJ*D5^(jhvj{Vbc?b5dvJdkYHaZ&JrO<a9X`l2eZ z#Mg>DTsH0UIeoE++(8FgC1KdMeJ^Z}OYO1#Hp=2t_FI3LNFfzEJP|s;gG&S%R$Ab8 zk(S%ej#K}mU%TZccXO!V^2gnw%Qrb|KOSd}oG)qLrDv8}aTuhbG7=M&RlwNMz`nj4 z?P@!bB2xX<Oj&_fz<FmN*(|n*Ep|NzPRn8*e(J7Jie_XglXZ`XQ`=MG`2{4K*6%Y9 zS58y#J4z4tyQvE0IWlWu{|7bd)Ec_TWLkCPaIv`Af~qTj;a>6U#wNWX{f`BGP_TRU zb&<L9-i*F^;Ro2bbK<qWq#pTCbLPvH!L}eq|6-1%Q;cZqLM81Rtkg=ggV~n$H~X%^ zE}t(ofxFEm0~)nvI?eU5*U~1(-GsW+JL*B({V>}EMH%r6N^ocf*E>rY+M<x5rgKPM zIFcaPPOBgm_OvAQ_w&mkjn3*+?rdh`k+bb-uJyEr9Hs9Q&eJxf;mqv;HF4|#0dO~4 zUD{J6{NPy)Rs?5F=cYwE6gV-s<r2*>72Mt<Hkj=fsGaYT&@cUd8xy6QE+}=Z91Mo& z>~I*df_BT}=3DOU(qoX{o!i=;Ppdw~_>Ah@R{oVdDP$cTwnPQlSp5o(_Lg`aUa~hQ z(mx!%Q+Hli9kAF=?+`s!j0!WoHvgNmJwxC2a_`MR`A?Vb!fAb-t&~1@jFHeI1RuKf zW#0A3e-Ur^7l_<>*)Q*={0oy8y4GeH=wAmKy7Q;z4)oYWi;;+xDT^<#IkPC~z0J<O zOyVOMizn(hyuZJ4Sqt`W0QXF8xzPl2mNW`WK9#y+w&U$ftn}Oul3iRTc4ME`CD|~^ zlV$7dzXUKDbcS~!;XUt1qR%%wLOJ!F>C?qtnVRUqPl%V@9sEl<?GJXH8M|k$3v)jM zL~6uHu#IN|#QS$0CpEn}nl>D<u7GRWJyTO!O?LRa?&sZ(x_Wn~v{L==*Wqz|*Vm-y zs~wS?dUrfdg^-^QV_z}l>~(GCHAW}Oi#eVY7iCFP0OWsh^UVH1kBmYPEVfqmfAU`Z zEibU=+R4yj(IUl;3CCXx6nBWJQ!oO-`|y5_#51a`u*Mlv>2H_le}w}k@|BrSpy3be z9dFXhE!o*P;sf~C$i_g8EUq(cJrRn6Vg;1ptJ-Ac;hJ8>@WpmJQyoWDY3c{K<|c4J z6L_`gnuMPksi5D3|71(1ueAQ$az&cl*X4JcU388t!h7tsQEyNg5Z0&q4&}2T*L9QO zOBvVO>xwHdrZ!mnn{=_=tz<{8O#2l~W)&p8B}Y)8a6}|ZI9_HH+bq{-x#Bj~oMHKG zU#RPe^m7<fzvJ4Jc+csJMmrn-`+@&NExT!OO({sIF8gS6W}<-3kQl#pZ79@9QTVyh zme%yll|+6fov*A>gvHp8Ub{fYd&lM`c*o{E#WQD-u9eS+lw_Vjd3JRtO0(z0YbLT& zO}#a}xEYd^01k~9H+7_xV>FU5pyT(E$^9^|!u8eOppmk$?)~GI&G#4(U3ZKq*>l(} zNY>xn1$T=PYyWwTxcSvM77qAAMnT9;hE0Z;(h`7cAt=<L{<_wjPBvR9faGg2#j=3^ z4ZeC9R1E*}-sC&^pq?$NfnD8p)81c5%x9=Xh56&S6zpKA;;hD#Oikl<zK*xWZ|^S4 zd(=^)3k$B8Tu}Fk?CIau@RFb>xQG_aM)S>f;U(+LuhrEo4tx4J`NV6yJ5E*}c1Z76 z$(O6P-0hPMQXQvNxJqts>a*O9sr((Vj`W`fc?e_-ZP1b@7l6AF&YUU1&trkkw>8O^ zW%i?QP&&@d8il)5)iy~?5j&0@_(b#}x8woS=Ki{Dow34|m6+B4cqd-0QyjKb*0?PP zz!-Eof(|+^N;q%>LYpp&NeP(m5YVl}lhnvaQHmJ$U?Z!Kn3Vs%a_fQRPqg{@UP&-$ zwPm>Q4I*87;_Re&-q9{PeeGqIc@QLPVQ9lVB1I>JiBF3-omj$qTD=JnZ1~10(*2$v z9nyn~a3A#&MC3F#T&vV?wis8wGcUzdPC;%zZ@=Sm9DwtEuFFki+&?)#H!&d_lJCfL zY8eLwOdL*6(J~gl`Z<!3ke4=AMh@w<<8d18{9=FtLkL$MSYNjbRkhAbdIImMSL8U+ zwL3MED>dGnW0-V8c`f(5k?FiusrDb&Ljr#aG@Ag{zHN5+*7ADM$kQo+yDq_Z;vC;c zO#+|?e^=X)9)a&Utbo_vn^gbD{x#2|GLa-P9^B|~eeENz`aq_iI~iP2JtdKqG)p?V z=n9_Jng`%6e#$ph&<>dMx7;yV|7|o>^!X^$en7+!R;pw#%VnKU&ucaO@HW7LLo8r} z@5VjR89nbVc4`aH+jN6#1!5Lj0Lvnv`WFv&v6}1Y-?w;a&JZh9Pj?SgU*(XYfE;;5 z#QnHc5*)<4PK7No78D9~s%>tD(n{{%NF5(Et!qYUE>3IqJ-5jL-_E&~Wqz0Eb9-0D zt*ku$UoU`TZ(3(2Gpg24NNE{Ayo`g5=ML9rlxZX2=8VgvqMy7^9|dZo1OI?UnHU}F zkP^q5+l9GDy$DP4j`r3Y0;6U}6tHC!AIWC$*K~S>v)U2KKWw$$w2Y@g4XPx+x7zR3 z-p@xRC6-{~jgP3`e_Sk!Pu<X-!3)Fxt`%8tzEtlQVa6lYbn9v1drj0<x^k*Xwl}nl zJ|YNwwdmEbc0L>jL-6qdr!p1!29G(uS4j9tTiJH`K!$2avDMFbe1LapfNXJ126}9$ zc2pC(+7FADUHjS`t1Y6Y)gh#op<4f)di{uwx;{?vS?@B0cNgr$C{^CAvTw$$GZ@eB zs4k5>awE*M&+C7$9J%u+iD!zho^W7T61pPjD=$(kbL>qJAHO=;4e@(Lv~N8pZ@)A> zaxh>T%XSx><j2i9%-#H=nB;aOX3KYk9swfgugnxf2_QGG?w)nEhnhb|C(x@^7Y&tz zR?uHZbd)H`MY|}E2pHU^@i)&>UwIq#<++rNg!{LwsZJB(rMC;YTQX&*aX&KGgJWC* z#OQjDe6OJw>CSo*FrWBZ5~~qP88gj$!_nHQ&_=jaA%>==9Hu0ixA!sd1Suu_ZEGp3 zJngQ&rMs*WO#(ne&4PC`d~#~ET_L|1Io?+xQ5KW@_#_&JOgDt<NA;YZm`}VFV7&E| z_CT$sqaCg4pOzAf@*`@3t<9--O<SppZO?@Gh(NLH+^$cwT+h4Ueo~Ic%AK%9tKI=4 z<{)Ir?_W}LtZkW39d{S+OH;m+DfHT!tuEAM9$=+fJM5|YGh7L=VM*nd_G60WNlIWj zEAMpXSzb6P$VDpDEGKN?VtBu|6CxRQH{UKzM>02U+&a<6GuLFe(2bUI_{Yz5Az&mT zK{}(jp4(3FplBckMx@hXnKjo(Qew*sw4l+M^V(0m$%L?p%p_XkpcYN{C}~m{IQ=I# zvt!(!y%@+~@;rvjqzgF2v|^GJ(hBCd{JNH{ZL24jHk8<r2GUZLd;KJs#Uha8a^+e} z+Es*4avivS1urn`gNe*5CfI~yVvKo|^mG@mqwz|iJj#xb59YXKdP89WC0G;L0~@h6 zBCr!fTOV4B{MTebbce1Dj)&4Rnp~xQ+tSf@QE6-DJu9V|S!IdXt`nX17qk+isj|YI z1vmY?IV6~mRf_d-@IV*x3JUDlZR!Dsd|3tWq_s=$sIHem#%n(0-ocn4Pph*#o6Q<% zUOW;z8NF6BNb_u`EMaOvt7-m;dH>4lqV5|Utlv>yoOeoGrwz;XUD$}W-Z{yPZOGFU zp7XJyAtcl~h7Ks0?fWi>m%Ij9u_Ae7Qq;1DV@l@ZzzR)g8WFf8r(+BIy+Fd&c-&2A z{xXxKyjn$C*k#GcB;<N>zDlo`bl?T_naAggkB-M9&Y_EGH4}7td7iTC&+(YNnIDHT z_XzvT&JJPx(1<g+6M>j?#{j1X8HGKB)Xt#d4ty!yJ~WOzX>nV5USHTi@X)lS1_xz5 z)EcVnGMF_a6IeSWjx|@f5hT!tzvk|E29y7O9Axx0`Mn@>ew^w-aA4&&WaI)*jOo&n z$%J06t6}Z<qr;)!4(DbPoFCRmEqZ%*W}O!uX1ifh$Tj$yA|I=xE39C62NSrl9}&~| zaAh*Jt#V)-N6N;YSE~s33pp<ePMh(TvPn$VJ{O$CSKXek&-6!QFMSiV3D-r+4r~7K z4oK>|6FbkMDu8kalyb8K3MnBCV~00|&xz|UM_!+o(O7XYKN+{L2)s}gLa-TBm)q^b z5|7;Dq6QpvChFSW;#&vN)(}bPJT`)@pC7YvEzV%_<MD<uPcEfU5JIISZADrKEom{4 z8}pPa^1rDs^VJCs8E3j*cdF+GqGAfR`GIzuL%g1(ojl-m7Z|61vfF)4%?+UKrJoX} zLMOqDRH94P8&-YgDWM=hbo^*oy3K6!ohro5?XIQYe4BKS3;Rhr$T>~vBTzk=c*BLV zCIJo}7^vg&xZ+P?vNoQ{*;F}IsneL`ebtp3`0;T+ehC%j{->}aJG<@4VRE(GjPq;J zial)T^a@2JZtRHL!9eiFB1uy>JM==I4zt|5HkKYX=vr~rXy;s>gTJfqTqeKylO4<H z6B{&i?8=RwVS$6uPKY>T;bIXf!y~~7SFGd;qL*8MBu6MoFwJb$N->2zwBL)y>2H?$ z8`+PBSy|uH<w5Eq+K}-RZ^_qD^*3!V)w)-woH@m$^BZCZ%<hUqZBbKXE&^tpmcwa+ zCSKQb@;;pSI!MX$Jm=>+CQW?1Cg=>6gR?!2(F{-?A;xqK8|qzdj5gIY!z0hbrJC); zng0o2Q4@5Fu!{@;tth5EbHX=!Sn)swJ#Chdasw)Lp^2;QUszd_o~7Agi^z!5|Kj9^ zIb7F*piCD)JR~9%k6v*+(PyRKu`j<W3aTw8-!rK3T_L4mz60jI*6(y)Z;(*umEke7 zrVjxX#bi5T3C^3ZSW=KV5X9v1Qb}6*2BQ%5m=o5?tU^v>^n&6<9v^2_hlF1z_UUV^ z&=l>b14=R91U+YV!R=cE-lf8GH=oFw1mFLStf3&Q23KmM`qt|3pcI#q4#>#!#4L<q zIS#@OIj+C2^cSBUA*BZj9><~wC~Q4rw(|ZsZOAauF*eNH!+N-#R#~G~<4-`*Y`Pq` zWlC-8x-^A?{6*zNo(l3D$om493X^nGy%+8GTXdm8`l=2l<FTosJFYIiZBZg@FEM=6 zp`tKpu+8i<x$Vd?1iTFe87#orLTw_Z2H04(X_rr}X4R}A)-Xn1N_V&j&9UQvqnxI# znc`Gky#Jw|Gtik21~zd%`NMGMC7%}URBPJuE`F)vA-;e-1wzJy%FvJ+OMN#qDV7c< zX<Do|!Cl7}^Xst=`gz=MW5{|+SNzK&dP|@tF;ZSH=vt@qu8s2fK9i9G1yu+53g~=1 zgMPklz`9*b&5fE(u=U{<s`c8WBa3jVFbk?wo9Fu`te~9*C=(&UG?m<fv5q-A%xvNh z!hoAwoasTj+#Ih!vfZhzQ^@B>DPYasF3W~ilCt>`B~(7YvLaok<14IJ6w;@IirAA} z)f&aBz#A<_2k_R;AVPSoF34BH$x$Vlbgl9O2T%iwS<+=QZ+N7IwRuDpCwrh6I-XHq zUtf>Y`El#Ht1&0^htY5e`yBBhP-ep+_?^9;7cQEdSH>79k^w3ei_48Z&|PnPJb+}l zB^^)laH;!hi~H>CQ1zS`0qm;*kn0Hh!xnNWc|K_jA-5%5lEZ%J7g3NHobfu%0pX0V zlq3KR=dQ4#6V}qM85SaizQ$CsXn_S%BbZv7jDBn$FY$0kQR-PxTgvh@Nt!rb*+3e+ zoT%u_owz30Onr-3UbEFdwqwugTPyFZs#SwAhZX`-6Kop&`Grxl#^Iu%?XEkL-S!B* zH<dcRU?~U8?dvAn#x**2Z2C8Bk1mK=q$WtiCdFZpVJb09LaM*8D1n)04%V!JJdLw7 zaSwBH?^&FG8G^ioOjNXwE^Eu#C3X;#s{1B$A>}&+G!g<Bys*WpN_;Ej3|JCJs&Rca z(0*A-aD3?YP+LsIdX*KsR<zH;F#ls#PNgRjFFd9-pa^1E8Il*z%;Ai~O|Uf{`1P%2 zM;HzoTIm4Jt~kt%Jzh0IRRIYf{&2R&;(M73l&-TwdC6i-4+byKD8PTT!)d^&^ZG^M zX7i~NmzvVqy|WozM?6aV8tJMl<V?@!d#pf1a$p~MJ#vtZFdHfb0RkE(Cj61>^xA@i zH-$J4N?&EFrKJD|7*SvMCi|&W8jkYN4}&$bJ(`>5%LsUnsV&eRPXf0Xm=8F@IkYKM z2hPB4xvJe_^Gb-Q;I!}+;4OaD;i=5z;hNwVewUvKy!UI!@&;$n5CxqvFG+oOEgc<g zkgX+YRB(-eZQ0AE`DP#N(1ZN8x!K-H;5(#$3|Ku_1wGhtEvxz@>w##7lXcJ)VpEWr zp?a_V&=4jns&E|8vRySLXmF6#kevR<r?d=%t}S{~D&5I;M-@-t)kec_zmI|3Yq78c zUD(Pt3wCC0hcW(4k4vGH1AJz^IyXqtWSp<(t**Uuv=o*u)&X#Bq=FzKY^1{9jV4K& zWiWZLpiZ|wJcumDfA7fs=IkwZw>kKZs=Q<QSFFOuJ#G;BaDU-Hzg=tsFCAvTNxDkD zCx}EOaswXr+=Os0+Y@xs7NBwPgo86ACq0OEvP(Uiu90}_5_BZy(6Kdct<59NpuTNu z?*YD34SSI5dWvJ_?!G4(Io+Kg4*xqC0ssl9_V8tl<!k&6{^8@|&LB$UvDdH!QeWOd ztwyXpGF-3&9&|A~|3+Q&<KLxftCQMRbL)48u_BfK!_zxQN7g;x!;?&G+qP||lZi30 zGqKIi#C9^VZCexDb~3STz5RUF_xJwO>#n|i`s&=OUAyY+DvU8=Yz{Z|4_TzgLPb?7 zUHD7i;Cf`Y<$f{F^R}QqVX0^=<6rXkL7<#7)Tv0SO}j|fl~%)gA0CrT8NUjFq*VDc z{X<xO3!N4PnD>)*Ql6~jFkUV=u8&J9I7uidY#;&r$E$4eS5y+X4jjV|6hujsHF2xR z>KHDorgSizY{$9hU0RsMj4Mi=CxU!Gp5bNSHT@Ld2ZfN&2kpd(94dS$OellR4`Ug4 z9a&Y=pAf!JdE%59k(^|^EO~K|+Hc=F;iPGGmkm4A2}2_cju;Fo*^<WZ-h>6mV*NNL zteJ!|QnKp;0t#R(LocT&u-1@AdvK^zc6y_A9IIG<9JwV%1+TbU42(z;8ctfy0A<^9 zFDH>%woh?Q_@4PaKBHxeM9X#zg6HstRn@FHWz|!}1If<`nf~#p>kjw3VrJi73m{Lc zT2#&SiRFVPZC`aa7_j@&@gM2nATw{#pzdz}eW$h%M-dbnL%K~fz}vgipW#Ba!LAe{ z={2<V?Cwjd4~|q7)|5e(hd{I~!h<ThQGT*m#Vz%pf1s)RrIE#vT}TKLtMwq;*2hOi z_``(VEnO<g<cyMkHI`$>(31$Pq+6+oxipl2x?6P+6ll4miyKwEwj8_6`i`;r$5Dxw zqWC!k_cDbnNC-Im@$osTIjDprg??_9i2AyT!@k<9RHR=}QDB%5Stxpr#qVcG^6*2w z)rm2h%IxeC!$vfnv04QRbSS)yhZ%oH%hfOYFPK%`G?k*Lvo?=xDcKAU4hcFCF&H+R z7Q@~_K8jz%6Y6q4LK<o{33KT(M`Cz}6%;r_#Xyo=tjYRfc9Uv<@$C4!j5U1nJsOKX zh%pl2V#Xy2Y!suwBeTk&@D2~97t`z(<J5IqX*Wk9g`{Rmmn1V?tSc}4xqpi^D*-be zb3Nef`+gaIbUdwooRxgo=BvfT?+RPP>y7&jQv<za5++#}u$rEyn-+lm&j9!+9TFm~ z<=tn@q}!0B($*Jn$)$2bBWs;+r22Pxjw!o#w$B3zy5ZnYokWt#`Fcx^nBW4{$ibK? zTiu^*V)1Tl&K&y0DF{#gdCqi*HeG)?D#X@CJh7C&k6oZ%CEPuO<IL@;8r}CkUl-sS zw2x1OASJfJW=1pDNn^Jsh5?E)Qf(1ntC*ra^xe_qV8T2+y9LB5X<*<&E8=1V1`C@6 z?dbIg4YK{(5am&I@1KBP-Q;RHjPLI<zTBKXWQNrV@B&36*yWAC{>j(aLJauGH>Mex zY`l6EpV5KReQ9zSd5nRQoH5gf8J(gzfrhG0#ia|nYY9eNS42DW2A@d6&n>ZULYw5V z1VTs&k0eC)g1QV%!;hcJpO?aRMmHNoc0PLtF4R%CRWPRN4$5Z#Y@W+je{*>Yqmi*8 zL6^NG$UApic0C3twFco5(#FL|pG-&B`xyqQYB1iTZfWzwhB#BIjIJR3rb857jYnG* z3xE2$n?%6o_#Vs#-;r3URTl=}u@S54eYcJ-i2^^Sa}Y>TDLXxa;#Jd?uR8p<AV9D@ z=vcwS3B6qQZ^4SEI`Ws6L?0>I4NtgcRNSvb1<LSYv4MPLW93K-3ge;w{0|&Dd}vs( zsHBR|Bfju{LW9CV6Lyu^V!nR;3)?39fG8gw+}z48#|vgQ%%3hOMrE-CLZZB`Dnwd5 zTF=8RM3`l9evuLI@$&CoxL*En34Uh`{F=E9^sMC3w}UEiB!Gqa?vml2?oy04-BAsP z;^{9nIF;I2K~U{U%1{+$VC9}gq))Yow9fYp1#%^^*A>|{wJ)UH&9k>bj|PI}0^Rb2 z(Sbm0D8^^*`xrTCRZ+Hus8L4>IE+Fzqj4cCI292rB5im9%a?E2OrV9_YzIh5wJ6%G z2{j23p|!R>=ON5wlmX0Jk33E3{RRfU+Fc9bl_fquf*wZ>D;lW_JXCh9BE!@)Jv@L$ zGAG+A7~R7YJj&p+H6vz`^WZwFvh&N^ib6T!<RgeFz9^$<^nfzCN?@j3OMH94zDA9G z86s(`^(OJl#paX4+zqwEhwC!h{`%?bWFu4t7-!3QL+qnirDhw9clubo<y9~}05s{F zA0e=+S4%!09HS4WJA~i(W?X%yX^Qv9Eb7E`_?8-vsFb6q9<D5P6_sezMjAN-J0n=9 z<v7&9iGzv{E$Gxk<=8-gG~YbFQK#&Q+ZVEo*TT$>QLOCTNGsifV!s6^$QJx%qSX~7 z%={vj4DiSgSlFra6y)-&QSPJ4p^pn2uC*a2hWLCbO&>=j%#H~ONRpv;Z2Wg)?tVMa z(1C+frc}06x>VkcJ)HWef}@!JODm|5f&eKmshBaD3@b!}LxKT|6e}7fGDJp-oFYLA zRhH@>MLwypZ7=lc^+U*13|A1#uiU7o8Dh_>*}jd|<j-DbnhfgrF!bo)x~B2GU9yHX ze3;w$yn>uSh)+(JyF{t{A}u8qXgv1<3qrAU3hs5W(15t$AB5ZoH2cL91U-9xAyNNk zc{&5}QQ4ylnjfb`+BgHG4be^njqr_FVFv<4&{e8sYKJ`}lZea9&2b^2n^|~x!J~^l z)?~$U>nwSi4CG#O;L7plq$Y4Br2&OYfO4~*V-y&ZRh_k}X-Sfx0Cl4mKZ7O0qv~OI zB~pnM<_lvqY2WSNEYi`Dk^qmDzB_co3$OZ0Qg(N@Zz3h4u&O^S+bN22TS`J*_y%`o zP+sEMhMhi|6{?QJT4is}n{6jfPyfyAkS5J(lKtMq@h((cD#r-0;E<Kppl*Vje<UE3 zXCp<biODLqplg}i?-7YY%!KUFS7d=2r0C~Kd&NuDZ~ufg`Nnlal`cpV{Rhtq{6Q%O zC8F`*#q43WM9O25yB7jrn-KXiKXKHgEN$<^$-DD@%_rvo#U-Wv)?=^BQ<p^RX$%e= z`%-h(>%$H$d<@e}XaW^IX;CxfDcg)}L(8M4?UceH9N2J4n|t$5dMHIVqO6Z_6I0Xw z&Oy~)6g>VD`>IcDK-{_DCn&bQvQ~pj2cf5j%W#o@J+q<-XGZ6J{&T1mjB*C$d!isW z)NLSCjIvTQ&9!Wlf5q~%q^@t{Pumv_u)u3@h~!96D|8nN29JvJFJq~TXCDY0dDSM= zB)r-DT}sP?wBM$2d-;=sAyU1QxYu^w6<>DmnpR&ZgTs8RZ5%^)AocYFHsxB+{JLIw z%JZR)MvE}RK(X^}8}we?X15DJHfcS2Yf=Y{<Km#WA$CSO0C;+rdcF{HRpR41%Qp1X zQ%DgWM%qKr1-<0hlhO#^rQD|VE<OF9rPe;pRQN*|mekDwiy|ovwRG?fvF8=8=WIdb zAKo}NC<PRjww=<5qF2yAgUWhsk)RK-MTy+cn^+#v5-GA|DZ+wP2aMgi{;Z{f2^sTC z9ctDCbaXPyIztkh!2p)?TXtirVSi*7E!-XmNw6a8onGLGe9lp~`)uio*z&N~{8A_| z;80^FVT1c=NJoB3ohf#b;BpP-t-s6dX?MZS%SMBieqka$R6Ejezmtl_x_oTT@A`r? zRCegU+PAuSd4{<be5fGc<|SOoMTFR#e8#Rla?dSiS(u8~I(l0<Kh9z4S)P1M9F2vC zYp6GaurWu<Z%mfYz2UO`MM&A$NdCrH3m8Ro|Cr^`iIwQpBAB?1pSr4>=9qHY#cyc7 z;!#!k{S&Ck7*{1vSN&B%B0v8V%5)`Z_2w+~6)yHKsnTpyZLM0tj+>z_eV*?IZ_lRV zkk{`=B8(HRY>M$5)?c0bs`s9^jx#HXn`U^5@?`0T;ly@XoIqisOgQjdN#_nL0)me1 zc8#aUXB|-vVyeXL?(}rOQ+#o`-mhJn6`X*fe2ZZ0hGR@Hsv(!>8fI7{-EFXGcHHk4 zD|8Q!)Dwz^m{tZdY~SKaMbyy~yE{BL%ZguW;I(`Rc3Ac6LPRWr!E4m+rWr@t+eMJL zc3p;<L`;#MZ4bH<S;>Z?fPoc;mBW`{Fy-H11M;z?UKaYq&rse%;RQObP*O4*Q+f3W zE%JC%C+AsPx<3E#F`(lqLbNG@eJfNyn)ES#_qTsEV$t`%wTXgQMa!1?KBR0I+E>U9 zT16?Nuqnmz`3JM0L2y*AvllPiHuS{C-WrEj)vFjXR^WkyUZc`f^hy^r8<fR%X*M@E zU4uPuxdt?!pnIPt&wyU<Z)VE#itUoC^VdN%{su<+FVkEt%L9i&t}{v*2ul0+9?+*m zW(JaZFS&MyuIJtv-Sg2$6Q347eiU$97$Zc2qiGzt(J4QMTCF`QlTt^%Oe26S*<*fJ z19cghxEIrkweEPbF&6(6xqTmD_UU;{5Y~TY-{sgEvci(5K<pSWq^CC`=NV@wbG*=< z#l}8BoKk6Nnv3hm=fLeB@JMAmVRJ|Vi>@v((UWe=0N)-LWXdNo7;bP|D_lri5EqQ- z`(_#X4Ot=PInXt<3ZilEkU8uaIR&(($u{rHMC4OnI;e~9CJUp7uvPC=m;+I0QrPkN zmA|aQMl4(M0#zVQq#s5W7;eqmf$7U~aS!Zzst`jdCl*!Fxi!5<lYCQH<vzPdPj|(U zOC&Re<XCmJraT5>6Sn5>tsJqwGh6o~+rkeIGgg2`EzSqendoh9_-68!-D$lK!}Kjs z#TqF-j5~X%YN*BI`Re5P7EwDN|F^;G5f)JS2ELF>{}EgEa$WzrF55})`DWdLYjJx2 zjs7(5l^)?lOWGIi#pdCQ{n~fw;yPKt-pfgM$IC|*HJ9RkQQepJc1K8H-A9g4bXJe0 z&SNnm>if*;WJ^e<ZKvNW2k>Ij0x82I=aWc9{wnLU<KicTr1%~OQ}+_2sWU#F3rT7* zRJeVdX(dVeRD=AwGECHm&7w)$JgEsJhZyql&$?#(;KvEhl{89AI0N({MWqZ_$QLFt z{LI2Kt_ZCqI7)`b*eyZdPgnG>`K-5G$QiMGpOy;890kEpf4qvB=-T5bC+znZZ_;;@ zxN5{N#5~VJb3E&<s9e}&8N2p9Al78s<jD`O*}g$EtU5rUeu34$&WP8o43APpc_8Fp zz9BW|B?;?y?&s9!{rKQNtM2)B`Vf!j_s`tf$iX5oGI2@30rQ|jP%C*BJjyJYg5R@Z z@wwT${m63@<12Ml6>h*2m<w@5IfF+C-#CCE;R`;Ed2gxW(<8y>3UmrM1$rc9Q=jDD zz#ezs^Ez_nf>0`0jp^Thca1%VoME{8bCAv!OL_NCvkQCMnqP=TK(l)4(p~KH%@bvo zP&j{#XpY#EvFy<US$d2@)e+nSxine(XA|N^o~Cmf4+6<VX}edaX`+!Bg%26OnDJlG zMYrsyrJyd{!6}3fCMomthnz~)t;au~v-XV`Ar2D0@27=Rm4PaRnY0yKzM{kFQuG!Y zU%30!E#;g3?Xm`be%FSl!^AGS%Vi8u>PO{W?yIr<g;6BC$X>*3_P3{mBc`C#vuZ;q z4Nwj0dG!k=%GJ7sd*TcdCVDTO;z;FJJBhQ|CBZQJj%!hxWyxZBzHXV3&dh5&vH)?q z>>}m4+A8P%^}>{pklUmrf|)akAe}zUaG=xT?pMA0){P_9@R#4!ovyI!sH9!}!IrIV z9qY=Fq0L_xz%k_l3Lr3u0{|cmqJRL9kOuj{GIE$iI1aY1ue6SIjp`*ZR%9xaoK1gz zdSoA6Qj8y8n!>ys2mwdyi`F++x%m0n`JMBVA1G&!gfPMrs&i_$iA9$@!n?qKl*2n- zlnJ8<4Q|=KmBx$Y$`o)lKPGm9QCFh-sRn5~Ur~$pNCecXsOl-E^iBO9gN;o=Z=(7F zU|^!J36zoPiNHM<EG%#o7X6*^G!I(CvyZSgKxU|r5oN)lqMP5%0++Xf=tpBjlZgb% z2P)CX^5BJ-h3g9U=zR;4qKN2z>bJZ`qJ@!m_2c(rN%it1Ay^Wj;owBYpWn~D`!u8p zphOXq-@{CkKtYg#3Bh;mDd3pe5+TXIW2S^eRIAKE^COX^Nhi9BJMJWp;68|q)(YGv z-j$FKtR@MwOkAVG%AxKNo})96gZh&nV46L7#vQh{CUtwaNpoW31m=q4=%a!bH?f{_ zGa*dtrBfl92Q^8Pll@zRoH97ruHTYzHN!CTa}7_%Xzczhl8>%e^{62C@1|M!lEW?g z7sWC66xtxe_KXBjzg+b4{xg(J8NAz2j3HwI1>wZM|K9vlW-gZ20FVx@Org9{XZ|@V zR`TUCC|a+xuzwH<fp>}@;PsnJ5wYAVPuh{mlL<azfd}=sR8P*<W`y=CG2e$P5izfp zf*R)o2OnB#m2DwQ^P|ePF!frKJ7m*y)MKKh4o*O38iD$;cgtV7**Joa%?|hd<M@JB z>1YX2mADjnWl^p&gG-2}xeT?i*ri<3(nS5hPqjnED{D1Xi))UAoSd~S&S-{N3k*e* z-|rju#<jr(3B^)^NGhk6nH0UX6c{k^Sr>r1U$CXmfnbd^t*T*xNi<Y?5&y3iAZ)0Z z1xs>pm*v5{Z1(GA`hA_r;0iYWpxL-C^^7-pPHFqn{1bTVlsO4bPp$Ja1s{)QWLj3I zPDOPcU?l364vv*sDxdR2L5ZIJB$DoH&#a&!XaMwXA7Wa4?LG%mMK+)Cy^!Adp)p#@ z1OWH?OzqC@U4%>AH%qPp$wXniT*f42qwB?+Ugv#{OkRcrF<Nc!&vhNNEo>5Fm@&(0 zde>f|6g)UdBFJ={EfmZy08sa5(}x%QTHQcGmE-t&Udh+EY3aA2^Zg~2iW)uZ%SKXP z{RE+pn`Q-R!W+M@5>KOB3xgi{!tL$Ho2|sNmwLywJ(6E>qEH416bS(~*w{I|aXmdf zA->RFO3N5|Hq)YZJ*H?14?Urde(?^i_0JBw)Vf^Ga8~I^-rzV3HNqcn_eNWtu{bj| z!h-Fmqqg&|50fN;2%jBssBvr~B((2Gu@e4JY-8%^Z}U|&DbtT?aeK`-d-&5Oe&!l; zX2W0GyN$5b?GA7%+9*MLpA57j=!P2VMDI(21biyt{qfO@D9vb2yJnzM{30eN|L<H? zp6N2fUg^mo<OpWc!oUC1>dNRzf7zBgPyWGhq~TR#Pl1*(D7KwVskZFJYLZ5qMmj|j z_yubUQHa0>fHR=njN&;lnEZhFS~l{UZgLR&Q3RFt=O1k#0^9Q!%vamK2(BsUX#e{# zQ2xJBxEFH&ebf7e#s;neg-a0})kO&!FtXzZiwg!Cnjj_>nDpPE>z<&f-~ZeC-+#=2 z|KIMRfj|GZn*yS6KG}|pRl?h<&F0=ls-%BlcB>I}XwQgLwUR8^tp}j05b>eN#cG&g zI~HVqe1WX9eY;&^vzkinsh$6t72^mfJQ$Z#cjkL^@Cv6=R4o7VSnLic+*NxRG3!y3 zqe%dcm$0iVdJlb7BoXb6>-xb;9-Qo&T+rv(rQJWp$vyKwG+nFnI4i1epM2V!0mMYu z`m58Vb@^bQ?kBFze7zcE=xPdAv*)V$J6A&ox(k196>5AjCFC2RD5j>B*DFxGR}BN~ zV&hf>$d#Q;Xp6Elm1QZH{G7chi4$frt^F}hqPteBk>alxv4TWPZeD(ZuczKdWY<(Q z@deKs%vQJZpc$Qm87U<bd>jH%=j4*o=%Om`E_N{MG9OgJKPXlc4pT_<UZWq#_l(`j z!=64CtfkXCN&iR+F%iiC*lAQUk475bax_z9q)+#96xPYOh)$Nl4xd|e#jAXaIkRs) z1v-kp(U|!C(;dqUypN{z8plJEVId&J2uI<BvGX<<eDdXE{Glco0PKhoJek-#`6mc< zC2YHTt)laWHmK=*(qu0aVh?wJlPvb#)T=ElXiG-^xNRlTzq{t1bZN$Zn{Csgm#o`= z4vB~1UY;!a);8K7<K`DB>ribK8*48BZw<=Vk)Cae##H-bxyKSb4vjQ{L@E^zIeg%} zLjtF<FkgnB@JTaVgq`e}vP5(a@;fg6c;fo<5g->Z6ZD5<q@_@=Sg|KBJdrG$hZEOd z61ze&3dlJ5_|RldL}<xIM>;D}UL@JqTGC|23Yld3ICT`4SF^*V5|qm31c<CRd9qU* z6#LrhdSE#2+sG(WHX4Is)9Vf&^?vBeIH!~u8r0?>jeb!?J#3dR<*a%zZ?v6bMxBHf z3n2Tafvb9Cb1M?Qbo%}yFSl_9VQ`FEPTl9D1ez35S#2w;B~DRzU4mt&z;9bf*Zo1g zm5@ms!&={4?t2=`<H?nt^H*V=SNaXnUVTCkR~6-zOb!rNn0=luNAt(Kja+di%X2J- z_L`558Ud}M7!;H|%=;$_QYfLM1#Rpfh<6}js4D9{_UKPTI}HCC+Nkw3{cC$#h|gja zg%ZU0`f$1JsLx^&&^7{TUX|>G%$z+j9ncR(1ONU<qB7uPJEu}pL0^=p9~!Bb7~!9j zCSte{rv*%aKMYa{xQb+$1zL--KL%ceS{NBD1V;cVG4JZCW>7wHs;w=TczcW$3X-(r z%6uy<EQ~aSHb=x{^)`$In)QqTMd1ugC?q&y1!bMDsDvzDM*4_*#~%1^8+~}1pgz0^ z6wNs;AUL=vVkDgsV;KvrkuDNNZ*IsWol?>QZ#2i@mYIe!#@voe0F@t1$-F-b>Ymin zQYU=j!m^Oq%tCfo<lk+K!4p}<NCq%JRfv*xr!impNdfD>9mKvPH>V~+0i<|c`gUC} zSoN8_ro5Gwjn&pfAKi~L%-7t(j_v9}YW_5~;o665*noT$5VmmOQ(5@L_tr>EFa-3c zO>IGPz~&iZbg0grU@L#rvKNMpjnR>%7kV!<{f?Svdg#KBhRa7q>|o6E6*p8zn9Mhu z!+&dPOM%=4V9@rO$xHu@gCIj~zS!uGP|tBVs&Yq}&F_3Y#9v{=vTHrGZnrCeWaeZx z&qYO$QB&_t_;Vvkih^L$psh4F>PY^VILx?33q`hGyN2f~9`No@gVZ5A=9vQtpuK+U z=gC^)nAS77;@k6P<^>x~!p|+EO(42LHKb*jkWHUiTcdgLv`gZ+fA}9@AQAqttY7Go z!zQnWh=D~RZU4gp#_C2%GcNg_v62@uK)VkE!xVR&HF=RNzI0*9YpqZih>t3PLQuvR zHE&zO!kod!jIsZ#MAA<!V0f>9WEzsfUG_AfE+mdlxlH*C_Ig^w;IP|%OT2m<v*7VA zZ(5Hhe|7<bgnKxR?c$riQji0UnA;yg%h$bo84wDJQ`S}R?z@5{X40R?^d!Cs^zM<o zA`;X-iIK?Pxr40LR3mu2M|uev`i9hjnZYUOT2n&$d;Qm70$a-B$&-hVsX4Fmq6-8A ziYqDz!-Y{GnWN*Oz=fiS39sBY<xpLr2*JT`(56Hum&Et=RUVcHOW>rBh6OR|a64^p zy3bcxa}#;r%4~VsbGdK%c&}YpgIg8F=J&arU@ySc%mPoX4dyWfvO)N8-qHXiTFUYo za&+9Wm~uxlAI+d3XG52|YSz91^KL2g2}kJutQ4vz?9BWBM@bgS4O`MR+tc;x6+FOq z2v6Qs1R|E--9=qd-}QQlVe&0^+*apuiSXW)h4fnfIG1G0r^LL_Sm=7)$N@i|(S6RU z`D^nAA<q9a`VXw*^w~8SHWV?D%0Lh)l51%(=_RH)d6qtL#AhAIq0FdMlvH<zZxEya z+hprp!*iRLeu(<>UyRE$Mh~@R&|S@V5_1$!dMBLL|BVAFnDJ(}qb1y}Tf(ZE#tlVt zTpY4K@Scd`3Gp66DRgI&T2bWHu`=7f9zC9Kjt|wd4aEw54+_aQ+DcZDh6h<sIP(v5 zIB-3{T0>9fZD1(csf;|pCa0z`Y*L>EjT8fxT3zZ?K4-!2o4o8#-&fj?w+HjZcGsD5 zHz{L0&O}sb#qgB_TEQCuJ>vP+@D@TUF%el#s@9xa_TLiX--Z<zZbQwp5B#Nxc0Y-~ z!mtheg8A&fI||CvvAB?yFi`OxPz;Z?%vLUVFR!cs#0!u+7GuQKQw4VA#+vQ=_iW|j z4}+F|c{OZhcB_6KsZ~+=DCV3EYTJY+I@7<ln|)Q()Rc&aBC$Fv)t`xr&S1n`A75qv zJ+d`D<xM=EFX48^X4;QN7G7vFNH-l^Q}i^y)LpXQl#-Ceu)LkwACg2dn)dg-XF3TN z$<H%VRS(!DVM7yw)QSC48gom1iu*0wkvWlpDeuad+DYB@D4)HVekOK{!GS-Cp%V+g zc0wW<PU(vOUKXz{-Gj$Mz5Y&*Tj*6Oi$Qx6D&Bd0+r#62YkKQ^mrIB=brDd<%Ryni zTr=;TSYQ2cUy0Wcvj`H*)Y4i#Jd($*#%W?4L6Rm@BjShpy-mym84cHW?`aiFEJr49 zU@RJ*`_F@O`g89ps33k}ai3PiJsjg1Tom|puNsBR9wGesuJL{<Ei9@G(c||z9aK<e zZD8_{lb<@^BjFG+Ok8CFsTgcXBEo_}K@k3J$AK?SM9<e3j>Au#MB(OYKkl<G8;_1I zhRw1sEhOW3G=IO0X1UOGwEh4FEM+=fGL}gXXRb%MWzz$l{%5tADg-`A$+93;xY&A` z$%p4jT;Jp57YFH##4VXM3Cdq$n7D&EP6shMf~ryqdV2VZ#kI%X?P|dk4`88weAve# zl9<9c{my)_%Y)JhDLV8CJxsXaW2p1ZD_$C>NysPCj&P%t{A5N*p^qOgQwn@!Iq>8j z=Mv?cT)GFApx3>HdsaLEqGozHz96|(H|FO@fXlE&zxi>+0Chr;#PyW-mCF21UR~V{ zd<J*gPG{3$!?Z)|rW_tORs|i+#N_TRym_6q0WYV)@7z29IYO9RAN8ekuE7^YdhzVe z1GtjsIS<;%sKT_sAJKIjVK)X(Ev;iFwo&5WDu0V@b&j>>&?C{FbRvSpEVMCTZC0DJ zgo?Uw`F$YVH{I|nma6)(VU(4Xdwcss6RfCFt_x^n&y7KD@o}@`Sat2J!r6U#2VPW4 z<aJE6w#$du`4BkZs$n3Xy&inB{+Pp?<BEh515s8j=s#%HYd3HEQl*zUfz6%p{4|fK zj(VZWi*IrJ7H*Y5E*+z!tGiK-yI<vQ-te^J@7D5=BQ{uP!T}jz+NOJqjNOx}UI?!b zhZiuZ)2y=AKn)jAN)`^M6cj+k*|%#dS5PL3j)IATm0*FVa2{T}YE$}?9y2)^0HM=j zPfbl7`o6I-FJTK+B|hXKT|dJivv`Bvs>hT?3<xj&+YGvvr7Hf2q=ltrvY>!`*uo@< zMj90>0%4#ovpX85BT+GK2PHwwu^F4m*)uqp&}O4QyL61$$i0EZuj@r=FQO7$kUl;_ z3K||>hR5LxHV&r~gn2Yx;1rLG4Ef`^FxbUyq^19gxNMq5%3K@BJCPC~&E}PUk6`I? zLR0Vg&zK4S-FUgf<uau)&*3Gyo7K!m)bg`qH0E}j{f8bNW|3gX6Gg@lqU2&_&vpln z7g<JT+}#2z7#^#oN@AFbkY{kU#rRs~H<hn_yjBFS%`>-QXvDIYD2~)9ByA=fT`EyG zO^MG&=6Z}-quCK+Bp$-%H%n&o)4M@&BuKHjgVV%U76XY$NFtU<Fb<$cPm)*u%7fIA zwUK#lMyA~k=iHzx`2ef$duQ8hyB;Epk!!tdr|Ub)Fcd>DYYa<0goYm8V<8pHPY<6m zKDzaBKu~!;4N{{>WdRD5?^-Y!zs)eL`Y=Dg10R#Fq~|HRet0LGxfNuTqMs-te9gX| zri8Sy#k5+gM0z^oS&x*8EV_uYc0)&*-yH%;4kt0!154o1R@{$KDwe7Tt(s;k3b6}9 z5C+XS_x^@USSc#^AHB6Sy_-_tQKH-z;EF}WB{)dz1-{&+x$Xv+qV*|9hfRlK)Y{Ec zwPRxMx$)uh`apyeh~^3luXOtI<8#@G&2yM#`Vr~zyNikEOOjit<jahn#|nu>T0{}? zqJc>SOUU4ihe6mEV5f`+>(#|g?KSL^m@Itv$&NMbEV<#d=d<OYzH(`wrI?}Vh9P<y z1jVu+p+-Z}%BT{BL)-d5SU;A(Rm*yj<v5N79KPSFnKoN3obV(m`eP^|J$!|@Qf%|e zMy0>HKdz-8-qdOmh*;@@7VNdWpRP(qw+F7l0%!6QsydzmCPfQc{I#$%W7`<ziHv6_ zcw|fRb(OYfMs$d~hlk`dV4=kk@cA<FYuc!&)S9$qsayhi$fIEuwBMh;<td>^iuDNj z9<S7WSAS@-p<9;~w`EM3Zii4u1v&OXn%~?6;lTp)5CBr8#({nniUk6{a+^;nPGB*t z=tA7s0z|qZ_I)bx5RGN6=NT7MI%}X3Pr&>xh2wzykT2hq%=|zxfJa%Q;;n-k;q&m~ z*FDpP<e&K%y2%v*FHy@VX*PXQF*I*_70=FeX(I2a%S~^Gbw+MdjNXKUanI8lzk}US zAfP7!tpQ_;O4ypK`sg{F&Z)sUjm3>2iys4ZT^a4Pi%4N%QFWs%mC$?art^ggE%-#W z1e}e^CX_SUkR@o*s<(QL#ia5=SY`Ao`xRZ@pX6r+X55C~Fd@Rpc1mi!J^%wTKsh@3 zY`MYyO8@nN>DSydyE594^0!X_M5IzJ9To@aN}aoK4ue6&^p*K(VFM1YOX=stCeAQ9 zb&RTSe){frXxy%luq2z6_F%$wcVqX`{rw|0n;nvNm(ztQT*Xv$6I*7j=FH$9DXccv zhJUJc$3sLjTF;g;SjB$<KiRCsd8`~)!TR4BDR&KFB;h#nu0P+A9eFaN2wB19e@|MK zoN98)=b_wT`%YA*VK>etkmOr-zAvpaJbS>J#}J2>YiqsVpxM2yE!S!>0(LgroNv7F zH9H*1i}X4gd@ih*GWnX)1RVQRrz5}Kv3c9H)QE(8bGtuMS#4jji$9*A`+ZpKg+h^t zi=}1Ui{-OqyVt7>N--0AU`*a0mi@)>P-B8#3dwG4cTb8rCR=?CP(dsSGv;fV(W?vq zER?R?<0N_+XUz{qQ*Ft1<L~z;pTzugflUrlM0D_*!7ZHYGqXGe!qKTIFc+|ju1Fn= z*WMoBJeAw!)+BG@R6dDtjwC$xY?Zrx5C#Zyiu8Em9X7PxVej0%@jBeYfCqzaFq`if zZzsDu)4|J&F2^1?Mw)|jQb74D-yxIc-`O#^4F&9eXk@cnE%QOHle%;~BEMT&D5TTr zkL^xqNf_YGI(4e&=gWS3q~hq0;NOJak4h_f-xWHtf`9yRIvzpQwWBVOjwv#zNl0y$ zQe`1%q$G^syS~r)5>rb=AQsAW+#4<^4ae6RNb6MI!iL+edYUOyjsIj<{bBS<OEJ|N zRGL(&|3rJX>^D|tLOn7%dU!g{WCGY03e!aCSfEI5wXm_m4nl2^#hw-GMZv^ORwJw_ zHc?h)z{$A;39V(p#b4J`>m8G0AOyn%^#zfmVwCj=R8{i!jxAQSy)|dd1{qfpl82Q9 z{i@JV-rm{myDKrV++(aObBu)R9k=fkJ(|jT+5LDjR=-aX>W4<yxg-`CDCe{`0atPL zC7k}cBi4008AKqO%ZbitxxO1F+FOnl5CgjXkrAq{WH{{kq<U~AqEjF^(v-(ck?)D? zrW7nKdmw{Mx>y_KZ`d9*t5ea_8Fw}4_%quNRY2-_(zHy=blK;A*^M4LImLhFHv(VN z*+&e#xqAkq0I@E&0|uXBfi>~rdsNpgDW8%pcAGR8TZA*>PMtSX-VAzO5uKR~mmP0* zSj;+u)Z-~mHxnlu9$f-A6FHtc>rd=XJKrE`oi?HLeLjBK_3Vb=;Lkuz=rzXO21=)S zZoOdan<)dIS*E+M!Of#HMj(%}=cjnN4+mNibbUcE?bXMp-RS!Zq@>MCw|Y;~2nHLq zp+YFGk_xC0baw;;uE`=vi3AWmEUq-4+G7eEiN(BY4qEkwCCQwUk~LUdweIP+>%&kU zEVDO!mO>C{KnIf#bI7FC2YrX_aQ3k5{FyY$pxGGb{~d}1(zK%?9;W$fUD{V3QP_Lu ztyFB+!2UBMO?5i@K@R=;DMjCS;MypY`xo1=_386XK`h%xC;VC(bRU6vy7dTZ=k=Ji zM;D?lj|mjKkp9Hg=RGy>ra!b6?&DwHm76cH+{()1E^AdStJG+t6jhhw!)M0u%0G~R z#|bB8ee_y1aKwp+hcM;x5Y#tD;eRh>h<<<EhT?+f^TX8_;3)x3KkI`jJxQ0%glaRQ z<M#f}&*Un;e_?qcUmJr;K65})mDzALB6;G?gS9^t>FC0JyFf<<)^%~w=PkP<gSKv7 zD<K`lr_+VD*D%hyrh9D03qTb`{A2Y}(6lWJ;dosUo8>oXF-+~zU$D!bJ0_yf$vuu| zJW)V(=drO`N1%qjU$pSY0k2*6B~*Q;LJ$T)dFg(N-@9Og*~CuzIP<VwU0&Xak5ZyV zM4$7QPy8-<sN>#&MlN9V1_~L*Va1ljaPJQz!m04L4n`sYIlR76e{$*61`kwD^<hx( z!z}3aXuNkA&7gS;!lpjxs#NkKfR%P@Z062)Hf6~t%l4DvjFHKySx87Di^m{|_=w%_ zR2Fc-utDIaZ4ErFU*CGXZjt2#&Dk^zylAzMLi6Io*_|g15mDv$f|vDwJ+!+b;LU{Q zi9^=`O>kp{?=YqX9(C&VV$7nLwK&-S!t{QMOM5s^5r80&EDc(5tF?P!dA;$X>`*2v zRW(?+#EapUPqWRo6bq;ykMr%{kL|u+?uA`$a)~A+1QOyXFi>%5K6xa5z)w%FCx#+} z>2A;~&_E#2m=n<HW7qx2SFg(?wBDZOr6>q8Zw2O0)j8`iG6r2G{*&v?&YR0UG3vAP ztN>CMVls6~<7YmZorjjKTn$TD5EL2;kV<jpzj@4j;?dR;1-kXD95IxS*|uy<^lWGK z&wAdaasUOE^?_~Kb|Q2HJYGrWU!U$oz+-9`nu(+6Cn3YF{NN}eu2d10k;hH`m(P!< zc-v+9G<51H^Qre(m|(Hggtq1R0e*NP<Kgbj_nYM&qv6LaiF{=St4vI0{pL(ee4)L! zr_J#>^@`^MV!zmusebY84=(YyN6HAp>29a3Ou<m2@2?GYHu#EyUmD$>>$XwEzz`x^ z{o`F0q4b`(3Z{;9BwkO9{dSr${IT7!0tT&y%#)*RXYJVP4F>G(?mLAsx6A!e^PGab z(cy-#SL_r64){>3AE{l<d88KiFP0Y9J5ytlxz~O*Jwr33;y9chG-wVhHZCU%X^1*4 z4p)Jo+3u)81iTjIbET0$&y_s}xdp^%eJm#ZzvA03ND38*;rkAfkc1I%4w_X9o_H@$ z=e!8V+p#B!)1t`<@Wt}q1GOU;W%U(^pvRt^H-DwD)@smlA|eu$mG&(x(*f{0qmyj6 zM-Q;4#gc2C4(Qrl&P^rWgygl8G&uvx_ZArp8X}-CJ5qLiy%SRo4*hdJlf<QCXF7DA zR+6;<*RLP%@8QEI+PV|1vnHu`pKs3vcsk8CMpxawE+=!r78HH-HJwwjz-y9CJ~s>Q zvQLq3l1%}QxUcp}iEQ9=DM)(9FjAb^Z*TB&0?rJ3QqjN09~oUPX5uTDyJ2WK&2$}z z(y1&gu37y~(1bK=zmYP6BtzqK1fRcYtC3^C)#g=3<-flNjZ`J<2aZyzK;m=RA4*KZ zR(HNTG2oPxq3j=Gvf0lXD67FoIQFNA)f(=SQAOd7`;$Yj=yk{Px9f*;$iYOrKHQ(o zhnBDL5xpK1YydwHlO9he>Fs+){{lbS9M(A0<k2wE)M0{(twkRRc>wbAgoN<?wMK7T z%{J>pe{A{N3{N?nbnPg1Za8m7BQWK1_$Z}%jM8#zbK_idY<IGC?0%gF-O#A)<~vj0 zt>k3?duZ7<9tbn4d~+eJ>3YB_`gl`q_Jq&kccEbB#}5yo`uCL84;`zrQG`<=`D=Er zh{2#EWFwOy{T*y58h4Pp$B}ya{o?9;wJYUn`-?Hc$r((r@T)EzeFFIP9f^on)=pmt zpUd`e3E$52broGXDA#^k=>5cgy54A>syLH3PtVFC+;F+uDck3DS}xlMNdrVMNX$Q9 z<Yf09-Jv2u;jr59fQONJfZXWF_~cREmEiB?vt9oj!2n^D0g!>1?ngjhZJ!qUPJ#mS z4<5qvcJ(L>(E2h~bMtJFoo^y44Sb3;P*L~IG*MS4u((wP`9fDtPR#@aRi;8Be(Fj| z+HD<$or#-sMrP?cZOxWX_IDv-^C%oJv~)4i=8Ls{+<qytAd-l_@&{`$nUWa7=$lCE zSAw7LDHEwv0fUh@Zy6}%K-?LO-nYA>`HDv5tULIbMwpJL^L!F!WdFjvx_AqYv0ia$ zi_*Itr#8)IFU$|wA9ZV$05K9*gUY9)Y4YLZ@w+dN@Jaq=hoxsnmot^hj7mtKW>0o@ zD#c>^SSHhsX_L!<!6-t`2vOfR<MiziWV``<=dFUF`M>n`UGg;vXjCz{_&@9mEkK$g zme<_M&CdLRPzZnL_svHm4mv+R395VkoigutsuYGus>48Jr1BY|oe8b~Etbz{`zY4I z6*LyP>$ItwWNb&j&$yc2-SO|=$HqcK3QFU9(LH3=i&0~Y!V^G<qbdI{0-_Q22@CDM z`$nl3ff`{45IfbL%O~56@_GcpeZJft)@`_orOIDx3!^-DHa2wh1*2EyeXXpTEUNj( zXJly60Z@eeE`?J%<8gU`aVo}5nzLkhoURWTSo{7#YwccQc`(uX#QcvJCR3elK6^tM z8AUi&$i{F6{SsYQf5FI<5z9^vPxao$!@u=9P!#Vj6OUOi=(ME+c*fkXI^je6rA!i2 z{CXacHalDnHH2SKyV_l;%VqSv_7L?w&*X_ZkFpEpwsJzt%S~Dv>XnlJfC+th$9WDu zQuZYsiq@JA!hvW%kaPSuYW@|lp4DGxvS_p31m7_!m2)Y0yxb7P9)dJi&<PVfNdL!a zbpjW|>>wAe_57dK^9N9D7G@U!!A@#55oF$IogS=B#>%W2I6WK?o8mA!h;7nq*gtfI z&8#=pEgoud&$){X!J4CHztx<TA4BMQFuCe-wiP^;#aAF(3c|Dh4#s(|&Ko@M{jb>F z768DfBXi9LJ3;=Z<ixD3qV*Bhj5t7EE^Kde7C#QV7sl3*)aUbrb0@dG5LQMs`*2M7 zgVDrDJjh6?Yb5?id^u*Av}-Y`)5c-7KmmxV&DNG;NyXyH%Zq;({v2fXwBPcv>v_Ps zY<<)gnVZ>XkFqE}tEk>#UT==BC*&_JtJupVRqg+OwE!1S+aQ0nHT=vjl}`s}y<BOu zF%rMw^Rc|@dyK-|dCx4^9DzbmUcNs&4E#}|ki~noVd>Ls`5lxI|239|Zd^z6_H+Un z(H9>9SMX(7O`Dfznb6bo&SubYE8FchN_kIrq5ukI%_dvF$y-I?a78IVzDNWY-dbSN zFI5|@B{`#LC;4^W(rvc8QVKJ3Hycm%lO{WO72Ee;ejES{kG7nEw-pAvQ%<)9_S@3G z7L^|_*QYr(^kx5SN?l!U@;Xo8a7gZ2NJ5sE*PDL<xh__w{%m@$G<zfGIXo9GA-dzo z<(AU<|BmI}_R9(Nd*ea=c;%i*>xt_O@L~7~k9U0z|CQTa7mt|1t+KvjG(M%*`8-wu zvbMo}?*f}EG;%epU7rN*SRkgR&UzY%_W|tZpyKs-W>FuG%_G%nH)GUsJO8&KWB$Ee zOO8ad&5m&T{Z2Cb`OaWPvpJfzKza|^I`t&{_U={*#pAnBKs*Y!t}i0D?}v8G&!2T( zd**7(iznbQ>XP{?sX4LvFj5Fa#`{Ba>nE!P&_;}7*}l*`x}Hh@6tY+<QviAVNW?rY z5P38VIt>XqACKG{A3Mm;4ztE~9gkkcigrf&{PI%{iw}qbAMfx81T#4ucAYWX@At#| z`-ivt+t~**@v;gJuWG^*oOr%K;Ky)@17H2~tb31ijh$Ya%aYdlx`6@>j<HhD=aBA6 z`kGLeH)^znnwokpj^alFn%mX(bcpTxbB~6B6pSF6`#*v!zS<lBMMNBUYz-=G5;4!j zVHUrZ#?PTQc<kGf9-(P>zgtxh5>$Bl$FyS01-c2SFg955NEy+-p-5-NrXuS1E(BLo zI)6?4yh7qZT%6+sO;FTPl=U(VzWYyhKhwnRScw9kFEF~8<?E$$_tEjGJn59`kUo_m zCuO_UrVLc^ke$Z$he&bNZ=sVzPu-r}T^+8_q_w31cO`OW^M`C!r-JQ2|J=))776}1 z)?CQj3|R6*!$q7+f&2J|7$oL%KkLKPanA<43l%2C9If%YMyct3!RqmQ)Utbj<&?wW z#4D58$`Our&ET4?@J2==uE<xkq)m_8Kia?E>XQWVq|P9Mp`gbvV7;a%JAp~>AFFrJ zs@a(j?dRGL7W-YXDIsezqzcYn05z{qW%}|~)}*I-&Sd=}y;iFWtj1KP3<*Ks+1>4x z`%$gs*-xU@w+v17WbK?->aSOg2&dar4lf3-j9{JW?vTEBvd^pSntU2K;u=lSqnIol zekTgM5_Co1?-_2FhO4KT5`Cz}asv4FzJk~WJb}pAQzjZOAecAOFGs+g{evk}A@(1W zY1>9npAo@N&So&mfO^|?7|8z2(yF}Xt^P4r>(bK7{Q6Uf2(?rpS2*k}VZ_M%9pn(l z72Acy<*Y(?bP-TU%cJR-v|+>DTYEVTiV2;0{Z7@gNM(D&NCWG%tIjuD6iY<m^nD)? znX+7AkL39xZ^c97@sg5~aD+toZk?S^l$1(^DHZxVu>#df`Sj%<ZuaDG`0-{CjvSMv z4A3KjwAjsz<J)0cD}0#ccVVEBiHv&x4JKWz4l?^)e`iSdT<7p9EtCk`*JGIM^f8f+ zGTkg@L()*YuHv^ls+=WP{+$km3>XEOBT(cew#)L1-~IaVd{q-8d5DU5`hCx{kP1aC z?#$`7>#h5jg}k<l*6;aU5dh8U3MwKfHXu0Tw(Y})Q}N9Ykp{j&P;PcOPidi-Rn(Xd zZ#i{;%!k50<E60x!IyR2AR~fG)vjNC78bomrYA|c`Qb?oSK>%**4sh_y&u_}Mo5-y z-=h>Hv$Wcb1Y-qm_}#APkLJ?YaaLNG(GXL{!zKLCguI>|#QeW?Jf+<A{iwOVYS}W{ zuSLz|{{_Ao*|FQWb`2$NvtAde=lyv5Z@eZC7qz9j=hUh=(-rG%sU~#vh$L7-{jXUA zn)7?gOi3d*mpWvbQG>RYiN&St4_OgZ8wUD4!xy7&;A(Q`=hQku1+V|S-LHiacBMi? zkotz{(f&>?f9-0erW(9LsNg}tjE^7`+#7w&f4M!X^@AOqmdzMRWf~^Bo!+<01Abx8 z)F&*4oh=<Z%O*ti04mIEzYorcNPdUGL3U+`Ous2!iMm>c6Y5+#h(1#AJQSo3!a`HS z9v}=U?Rs}sc!4y&HL8$STSCN`Y<2rN+aaTV-_pf8s1pUvPx|x)9-r%PdAYz<d?5=I z`}HmJ-TGe)+T9q1*?Uz#hLJLbFLa?EuN3w4zE>>!59X6WYTEwfb3Gn;hlI!7Xklgw z{f+_IG2Z(pYu$16LN3FNXxD<{@pUC^Ns<FkQhokfmJKeo33LCXco=jIhL6(DvmB#( zEn89RdBP}RT^X2gO-)Up&>nuqS&>PvDdGH_fe(w5yT}zZG35JR>nG)e-)uzkmi9>L z$7Avfv*`|cX3CckaKTQ-LxKv_)iW(Db`0!4@LM)VV|!eM2O(d4_Cn6eyodV#Lxd>? zzJaB`i*s{`^dj1J)2%)3krf?E^TAX42O|`huW#4woo?<=T$qkWDjK#Ap<_Q2WX!Wi zi?AnhTUC`OZXVUHq~*-;MeE%@yoh+eeDoL++J$3FW`}b=ZwVkFUv%9U)d3h=UQdE_ zF+b;;ypap7Og@I9T~5{z)sk18g-v^@$FCtj1RSoqf|_V%Yb7Koi@LnfX8UxVwh*uw zb*3U~x`%qUeBdJo#b^jbM0W#dRULk{-2{V!9^?=L{#c_7x>mC>=UL02I?r*e$E)?h zy&jJw)&eQ901|VT;Aov@5|r~TgQ-hF@3zYb`q9zx1LB(Qshf1Gp%}bi_1R!45bC-D z)v6Iz^i8ZK!nps$+BJ;R7nG%8ycoRtddCQaLe909p;bsh2j&0Do2)_neN>i5F|a=| zVXa+TDw-f%q@cJNR7Z1qdYTT4_p>4yH4u8X>xZK;_MDil9^uanLdjWl(H~$re{2sw zAn(HI0_4}5RXBESHemQLUCGcEpAQoKDDowF{chFX^HBK5#>+r@V4#%XK`2sPkB>06 zTw0$bwwz+bXqs&2EV-1!%Y@Z`NE6GqJ_xLc(q)3V(0*FQ#tu7H_yYmtz)GoLgT-Ag zR^mgi+Mz4TXJ(EEcO8_}ltlF1u$V%l6B|<DIXG_X8|o_P^mC9qBo98<uX3yNvN3aj zV~17irIkXWfi0kr@$qiw<LTyZ*iZ2#zMlrbWwSN$<o5^z6Fz-Ky@QMb2ibPrX}R&- zWUW+WI<V8*`S{3hLql(}KSNr%{*3GWcqI<kyOhPRthCZ(PCWg2_XQK$ueQ9DM+>Ju zOqa%cKwu`9C97AEV$1Jd?>KKZ)@*BjP-4yFy<uV3aU%8kaK&9}e@(_I8k+ADf<!b? zc(aGAy9S*{hk!2tG1IW2n9UR4nVGqQru>^ACF6!%dagp6ySjZJO+V+3D5p|?d~VTN zDJa(<NB?~vdb>npndzR9ad(>eJyASaI<3Wnl{oK6vk?w6(n?ev0!w|D-+gm1tT#|q z+gmJfa6F~K?as{Yd}FZIKk((1Q$wlQmEJs>D72BzqbnMQG%Sd`t|_5)gR)&|?}n@1 z=|UU$G9#{8$dn$+5&iY{G;Xumoi#<scYEL9M>&2_SZV^zcZkh$))#raP{+RRc1}e` zi3NrQvEBL!B@WNT>-0?HEcBlMrS$Q(&h)I?UDNVho;ay8==lmhzaablolCB`=HO6L z(;TTK4a8X~L3XRaG*AtT?+*nd70gau@EvAucYx~gezm;xy7tyo#|QKK24TvZ#Q~x$ z{<XyJIjuRa5NJlPIOZwE0eA)&m-U8M_lAl&mTm}hJ5=wlmQ&6v8BTq@zO7U+r4N=G zk(X7MnVWm^T65d{Rn-{&a0jAGD%WZ<!0Z5iQEpKY^V)Hjqtto07Q0QFHPu^9mhjlP z{i)KQjM4Lc-tBr~@c~#_?|ni4M}eZgg1TQd@+<ip`Mx>cH5pKIQ{z+Yw`RRRcRV%t zJm3kfccvM#4CH=(qyaB6&VS;6cqQGwnP(5?(*-rb97W~)U1sXSs8BzMVh_0;9aCq} zX-a_BsQQ=LK;<;vWH3xMa1?ga{^#%dal!1>FsOB{m2R*JC#S$m%28=KZ*KuIFohvB zv4Sa6vLrxP=+%Rjez}^Gni{%8FlDSj+T(m$(Ih_Lv+KvpZuFB=esPGfz#YPHj0QRz z+0PvIPr2&0d$g$>CnONG>5bX+4ucQ}(Ive}4bypzI_^jWf)m7F?+iaPq7@`1TeIAl z(s;8@=BJ8Ai3jXd>$Ivs$w@XMgMnH_&X<qp03bs-W^7A5y6Z#bW^Md;>DXGEMXM<y z;h2B<`JhY(CX4SHN4ED(4hIKULPqjpl&20OR#3hnCf(B}5Zk`<0jYwk%6#w8w!NTh zrU_sYg1mR8p&M>BVA6J(UQw%qQOGgj1|DRQSBjOeZr_Tk4pxZ!K;=p+^DT=HRQ+ac z`q=prMZlLN|La%h-7Yl3@n&papV(IR9aF_}b%D635GWhp&Mwey@{~{cL-TnQ?JrB4 ztb=xy91eTBvUwDQ_~aH9sLYv^_ID(RX#;Bz&K&=a{1tFk)0)5z>Lg!B{1voly{x3C z8n}6x3j(7i(>VU?yEE#UVj8Y+<WoPb+v)EdoOrW99ohf;A&cuAMNk~Z{vpd*=Uv;e z0C{6j5{x7_|F-)uA%j6v0Ok0fT}!LJBYUxL!7rYfyj~cfq>$lCu4vu)byvGP`Txh) zS4G9qbkPQP2=4Cg?i$<)4#9mOxD(u6g1Zyk-66OKXK;5LoIBrt*L}T@y}GBWyQjKp z*FO8~!%Le5o=GXFH@qgQxt<Bi?>u#zEwQVXYpu>MiS0MLF}2`dQc|4y`IGrQufIsb zqDWz@rl(F7vzzhRP3kbj<@D`6{Ah-Mc|0FJMjx!Gs2T(`YNY=T*HX*O$Ts95B*4J# zC+6K$G*t3agkRDy9(?xzme4A9{}8|&iLv}FkOT*Yq6FOwtw4bCC`b-@n|LE3SD*)Y zSCnwk2~yS923v_iN)Ow3B;*{FvWe!+C*{)DibBVbxWRr853XWu56Ru^#6$@9^6rP+ z%6vt4Um8!0D$@D$okieE2uoR61Mm_6BLUH5o#G*qt#D-|jKKAx)A$qWfrJ&b;fq8$ zgD2zV#ZOzQ@--%;UiXjd<b=ibFMlR5j2W+F=)lD_BN!7$8)kRv`?8fGnx~{cj;FJR zL{Eh|8vjj}xis}mV?K6^+BkXv`!0O8_tv?w{rc@L#ux#bz$^@PClQXse9Gz!9$M1% zayAgW?ELUp$++7AYne6_yIXU`$RgG+N+nGo-d|JH*NOxs;ZPO*{@B#)xOZk7xQ#Ix z`5tId^a+wq?i3B*A;3yVaU)1@nA}@qk<&9V6<1awMv@UBQikT+{j_4L{J?@MK<cbi z1#9`O&T0(7I29>;q5lt(B}ZMrXVdY!V>tX%)%t#b0C2JK_VCE+?C~CpFbVS1*4JCc z>3s}ijA487(ax5Tj_I#*y+wCd7+An2X(E0p=P_@d59$pJ3Nlbv!XtF-4J-^|;=(GN zE5CV>iT|jwec?K0caKq5C$J<9q~WftBBT>-`YoU$+%50TQKv#W>4`HBuTu^Y9!FBL z`&VrwmN?ip-Hl6W1~KRNmBi3Wia+5EEYyY<u(fSBY2tXJf>Y4r>M%K#v99uakINPB z!*9;au(JMdM*ci%^f#~XZQ06(l<xO*4_mNNh=?Z}6&g&qtyn=n*rfb|al<#`5`wyj zv=tf2V!otD(g-7HE-!97@%?ot#7~C_2|}kRpu4mu#5*h;5|b}2x`ji+`Hv5d+#7Z7 zZ$G;E_;y$RusGN2A<B~N&eA@mE^~~!l*gn$(l%H0lRu|kKLr}~yJnpah-ErU2)uNB z(Q5u06+#aT__fwSfTdMX?1LuX;V~F<XZn)Q5H|ZChlwWq#-?omE_OSe9=U0{wUSxe z|Fq+IyO#Lte=^EJ+sJVEMdR?}2fsQ`^iTgYhs+@H^Y2K>Gr2=3+J?bPre<@rq>c6u zV8zXwE8SnKjbk;}3xmlh?y6Ov?Jrv+G~kOjJFqx?kH3z@5=bk%r?LFOb68sP9&<Fi zpnVia6z9XU7`-&)%R#-pi#}FOD4O|czqKdK?pHTie$(_6;1C->AR%1Tioah64mg~0 zSK*5Sg!nI?x}u~6Vw%<T_e%2VvSg{o>rZV9^-{Vv3>q36l;vsch^mDi-i&p70K@^F z`?!1;t612l<Pcngia(#OO}=zs;U@pi%F4%yoT=vbZ|080!s^JHa^CgK@cEtI&JEbW zqFemOrK*}@aqhBe`z$5Hf?*qL9RwRc?NdS@f?+Jlo*7EwAn@}XiwtAQ+8Q}2&*%2e zG2_~#Q8_TbrhnobO{BP`B@VFJ!S)!#et)TE4?j;!%8!Vlgm~!x#!kwtrx-gLJZNer z_Ss|Ly~7lRg!FgZo#!lT_4B}P`F~_d%UO-p;iAif5uu1Nq<Ho6#3t}lM7YCkr#|lu zODiH|fp*#>Gd3q8-Z_~yq>zq}*f!>fDsx{2^%ehUC$n_t0j6%<VZ|YBWra52173)P z6wnGzuIrJXs{dDPzO@_g^`5i(B=It#26MbrEvRka%)Td+D;_*L+QDq$`?TZpw!<5* zc2ses-RqO>2%d_9Umu~&&$&tZ$_RPc9d|}k9vMttycX(yP}7c9Sh2|>2%s&_Ol3E* z{Q94aIG>EMgmZnL86z}Pua=y*_$Nd)pL%Y}uVM&@0O;_Aw1!{#+7vdn^G*U<hSDqc z@*=%%?~RB`AMh+z-tMX>fk4uMlZKMiS~&{%CrQ3+_j_5+G38d}-Z1$-(t(4fA-rTM z^`jdyEOBLboG3P;T?`@j(4WSOv+yrPZP~Vy?E>r)cKS`$>R%CM>IENk_$}{^13!}N z=Nd|U>zqXT#lEyIjMWuLX8gQ-c4hj@X?i9b1c6dU$z4*!hGV0dEHyxY>a$M1rzc5; zI9DFF$?{b_vK?(iMQ^M_DNoJoPp0(5@A+13)*iRBi(e$n%tVRsN~X>JA1`v|zG_s~ z1eK=bSW)?O3^+(KL)I>sw(u3RF$egQx)c!<^rD`>rilf28u;tVEx`ppf#0Y&*2Tn3 z8!^n(JH9YreuJp}4?Z;S9~`PBWSI@+&4U0MY%#WK^}35Xe2|d<qgW|!P3gHi-LbUl zvuijBJ|fina`v%5elBTlfq$2=MlPC~bt{|MXT9Rb1ToMWEh$#zxM=;y|C7IekCo&^ z=w%?+Z3b|EdhRI!I&K-J@dP@wUi1-ZnDudvGr0pauv!(A7$xJRwjHCkT^Z@rscour z*}c^&z9NTdY;_(A#L3ICQT<$77g;mw=uPj<5nF)XNeCN^>(Q37>jExL!0*k;!AqC( zIeaf9kfKyG?6dxt7DhwG?M6ZZ9{jM6XEVHxJxaYF2(F?6_qbrI=SST*O`;uKG!ZE^ zBY%ngx|U@Lx<5$q->bL^<6HfP(<DZoT*#>E%OSOtVy`l~M86_~c?PxAv^^ShbxBM_ zHzU?g&?Pw$!a}nPZimN3&=OlaFN`F7bZBO#8I}iwO#at6DOKh)otO?wANlmM#*c+x zqCtZI1^&5a5=VLR?f7k1y`*)I>ijX%{*xx2-jJ46cY|vOj_D~)@-GS|CeCtr)In<< zu(!7x<rHoZa-w$+`Y}nxuwz04>}6H|6imdu<tW`yG(!d;J@k_P)IcB-9weUyxV&K7 z+EQZS-G4&|OZoMgbejnZ3Cv{T_T#buLlo9&<6_~{#iwU}So@urr%FAf=qLmPzWYb* zU(5gMq>yyS)f#$}bCxNW)>kB+pA$J7uuPIU$cC1uaB+dt@I0J9D3VA1oy_ri@e!1a z;gYe^c9WS0s-~#YDJr)RBSWa9YxA4XEtSapJW{5MlAyyX&8NfFTA;s%DHJP?mDD?C zl`_BEl7)`#`SLwFY7oG^#&wxDpIs}3lWeV=>`F%z)JhI!r}}Iah^qDvRS>T|^{f*V znH8C|Bl9K2QA>n7(hY6Ccb?i%jb6yq<K5@T=UQ9pMS#j$YK(xLBM12oLueZBrRx#X zcJnJf1G9ZtZJ4%P>#`D>m_eDCMu<q8H#fFb$cTfmXfj$`rMFM)*(`9OFg5olzhmpW z^BAat2u$W{kz~jEXUXJ3VO1z$yegU<Z!=`M<bzpd{o^<zGaTuq<S4*S*{ov9xlqMH z)}bJ~uz%d&!?ED8z{w;bR69R@ou3aK?UsIgOUTRnre*^1igroeIva~mJhfijiNaTu z1mX8u_xXc=^o-#|dksZz&NK%xR*76wYuJVt%7~`Xf48c)fIVW<au}fSo{$DFgo4pJ z5xF$)e7|RAsF^Ma%r(?|n{F%hB>4N&YOchL#aqY$W#O0KEfTj&!0~$um@)7Jr_0+= zhMm!$)K)wY`0xs&B>h<e#U-hGNs3`W>h6`)_0`D~!z*yGzMH8jme_85Q3s6XD~bQ8 zq)%SA6^IGVkdgX#*i0Y6WePoPn-DeksR8`1-%>6Kv1oZuDx%j9&K~f3;q9fsgTL7W zz9p%M7!EJqVCpmJMP}&tFKTkBm?l!Z(+S+6AHK`gDkUal?NRWKI!Ilnm8(PE^hMtE zG;QvsT~H_~DV!=wgfD`L24gr0>##Ifi2}OvAXPqDBLI#B{J;*I_qABCJLg|T!n4sy zl_dj(#I_GHczgx(idP(NQLN1PAo4Io6ne#-fnv(`=Y<38;e4gYL~4itx-SxQj-Kjv zJ=MrlnfNVYm>4iqY^3Q`bcv~FhMIb|Ltlz3KZQ;r97oo~DMFr2X}R|#Og}^ULA1?z zQhqd7kq?aR@4$LVa+b1asBfs4q-B~XxW~4XsgKt+cvp##QXCKI_mwvdCryrsDfRUV zrJu|&d?nZfdgn<iDR^Pb1!qp|pqhOAcZ{)*V7L>lc_?Wy;CwDv6BRaIY3uF!Z=w9p zhbwU?%ro*O@2?*4HqpA?e0l3#k%;?W#7NG$0mIKNY8Y?N>lQ8>goMM5GR{xfUcuqE zlP)FBKNQUVw7cF0rgG9D_3>+`fhR!)S39ntn(5D!knSuQ6m@aAvkjaPvhreuUh0bV z2(}Ll0(i5zQp7-Vaa$R`u~)K_2m+{VfIRfV)kyaB;#W+0(|48TxbpgX*B6iTEjbX$ z=1>0fHX>!2c%tFMSc_~ye~IW0CAY9ukml%Aah|7_+1r%PH}%u!5~fOkKf7@PRpr<o z_)fpsa)igm*ib>=e3U8o#>98eqWO@!PHkw+h<*cZb<c4zKUy^Fqi04uLmrEWkJaW$ zUF1Du3g?srvEm(qWxFfdMsW){!;>~g;FWGB89GktRLO*Enku<~vVf!jKRit2^NiQg z^kV>A(7n8>x+tG5&vC<(G6xYUmKrmU(1fIJB(TEzaA!9A27wLFL17KKC{uPr&|%64 zQqtD_sbrAKZHp4)kfM2)!sNp5BNIis5MKI+h9;3a9L%#9IAy^yMb_#fbJwNAcks{P zMki#_zg_XS2*n(aQ~gnULERU9BMD?uxx_Y*%Av{O=kCXEgyjjHMm;bgEs{O)4%!Hg zDz=Kp5Yg=pdxt}tEo%I5-85}>?iv~VTA?~$Eyxocdkb~I?w@jQ5V2x4b)(`=6f+a? zc<rFUw-}LU@{{gRGU4C2d@yQ7A%b+RcvLdiR&{IT&~mI|%S`oB@ttbo$V;?#Qk#2H ziFlcAy0b#&J>yTAM=xU<hf=KHiWxIij5j_UdAtDDhVBc73kFsc>bwMbU&_{J3tKWV zS#Fvo(%PDSlSUH~5ti^^f!ZUiy`-nc`&TmkH)Byg7zsMCa8K}jrBPcYkvzhou#L0{ zaJbOyR6Un^-c=_0p*Ik#A{$5nqcy5h=RQai_nlZ0@!GpPgwjO#x<HMKhKO3&>L+tf z-{KksofMVO-SW|F@&2?vU@yjG@Oe{XMpeV3vYqp6Zdqayf&YX(_-W){d}U7O<Mri+ zm+xJ!&wr7*!CDgkbY;Vi>)oo_VOeWHDL0Jt>Mk(yftDlT-?IOk$Jne&^h{pmrTMZ_ z;bDjH*|FyR*<IIha><{~Hg*|+nm>z39#9rH37}sQqkm>RW$3fM{%O9h=+UE0{j15) z2+eifcmMt~dqY`+OpFXqg6!m92`8kuw1tKJpKMe?t)(SdDi|+*bBp$ha-q^sk<iBC zXFjTRT=loNiXO!a!!x%g>>uCpaL3a><76#KGrM_uk{IrWW5vDgdM(yZn)4!y-${dj zSF~S|M-FEfwuf!&{rw9TVxESL=9~3-ahP;Xt#vc)#9f!aj0s*%ljFtyps^BO)jpjF z?ibMMzSQ6%BSI*mLwrRg1v?GTF37%l36P`zdArxBv^#6xEsQ=%NS*?-Y}-zqEBZ#$ zV~Y3p5_pz@%fOr|YEG-9tHq03)G7(!B{fmSA9)4QM2N5vEXV?~Z;Vx@3&+mw3F^RF zd|x-RFX4mA!}SbY(8SUAP3)spRc3i(<IXPo$LO2Aa&)f8sv)A=W%c#!7k?k{-yF#) z$^2H?LXec?PYDUcPUUz$NqrnitiGvTe)d+qo*zw$WMtTz(;|E&BM+=YKu`4h#skA@ zTod)`rY#07zE}n7*kokE{VMHlpehA32p~g(#*mf3z-UmS8Jjdu<2<@QxvT_|Zu(7U z$jNs2{Q4XJaZNzO=~8*Ru%sdk=B>467J8b4!$wB@B;@G+7IWHfG+4CWb%LtKl4;Qw z?!~ozKq$~{{Y=J2^+~QH2*e37w7U0icSCMD{NW@omKG{~(SdeFo~|EeOstfK|4$1r znZX_1R%2#^A-Q&swl7BmjPsR@s=3Vh1MG^F+Zz$=+HlbUO9Ch;Gc&g&?#?#@b%b^R z75u{VB|bQm$6$LpM}C<YYs;n6CAxf?Wa(wI`^N{!IOVF^3JV1vL23`R-xKBu>ikFx z@aVo|90^<BHM5&D?86@8s&&$o=Gay?wx-KlS~h)Os&~m59N@(nG75V|<C}5@eVr4~ z_s<VV1k7ZfBbpl@T3+SMJi34>C&Qb$Yb|DiXS@I^W2Od+v+s%%6gl#9|K@{KlU!zm zl5dJeHI*kKcn=SX#yDPH@BXaU1%hMpJ2?m|ZT^_0CT#AL<qWO&`cTyQMShIx2pBhb z>QG<1Isi~exyA!Kjg~$AoXDHXgfAXeorSD<q^>B25NY=wCBA$sF7Hc0PdMI38y7PM zG!tiMyeV>SZXTG?C+3YifP87sGjQ8FM!qN1Sku_vO1SBOCcv+eFxXotFCIr5j{$7i zqqmaMUZ2wLzePeqQi)AKOLz~Ur=lI>aMJLp+gW{TVO48*aH-;8r*FHB9h}{Aw~U<v zBc;Ax`PgB0mg*&N^ULHmKEpVF+n*3IkC{fTE8ePG|H?RLvsKMf5^07Eu+gl1T5Q_v zcrF5KTr>^i`lGt|w<Df3p-&34kvPlSkjQ;?n^um4tq^BakQ_+0sPXdxI>!$9uRr}? zBK%b3PQf$&usnImZXBHd%o}ZPadR^aHMXIkPkr%ldJB&wiR)M1&m)hDstRcYPrn6A z946nmwKea!93N!8Z80mOD{DIFO<`qC1KO)J$cmezZ=^fF=rwHq)G~sN3?MaJZWXkY z^I^iBGT|TuJ39YbuC3I&(8|lFxB_ZiT|Msh@;-wOOKIXnPi3vDWciPpUHh8s5yN)= z=5(^_5{Lcp@!;+4zJf?&GK_-W0&C>84Iaf?>}`$$!%23VmyNCVBXFkqACNN%Y@JYr zPT^VQocOQvDU9iE<45zh%PHgX+Y7+P51v;>J49`%2T06uF-*Qc>0jgX#3cQQ<$tjh z%rMnk@0bb*v?Nwduy;5R#iD4SivYfc2I9Wtdr4913%1PH7a?ILKM?YA+Pvww3ah7n z+NSe(aeR8b)~;-=#?~Me+a$`<Oz>(qo^XLl)qPSGkwIyzyy2Hv!Z8bu#if6jcBhVn z6un2+Ut?eVLdKG53LwDaPG0*6Ri?Fx&1)B$3r2-ScgXRwBWuo~$kXlJPIkgnbDeHl z@XS8WmJeD<S4S@<w@2jm*?&!@1!IuEi3#66#d9`g03+xbDc9s+VuJs~kCwyc?dcYX z840b<pjdHyzA_SYgfq9H`i&-MCqWX8yyC=KK7lp!?b?dB5wHO3?Q>@hZ(5J%ax}Rc z)Hq$(UJ;lcvL%uDE!R5=%qKhDn>1z!`=Ao?I_~`I3{V<<yzo5^LgM$@@|jIx_!hiH z3H`RS(|dbfXx08vS<6w{9IJJ<?D7!Hi?PgYN#e`)rMc!-zupoB?fs(Gz`39LZU47u zncI+TsY(XXlQ4pl^8&rJV*siAHgrr1feMq+(7@4er+4jM`N?i}b<L#IDx-s83s$wf zF?RpYF|Ngb>RHuj8!d)z#V1>Emu1b>Fv2)R=7g?~kJt0#sc(lpKKOWaP7g<-@hMTC zuNRw4I!{EIH7@<SRyQv%%O~d-JMVYO<|7aq6C;UY4GvbM%K@O*7?P!t03#3Pda0l) zKwIKrxW4B#D_Ua2F#l<JyHKkqdT-AW383qc!IUpK-bUe2^c`zLyC&aa2%bgYQ|M6i z0qeqW^KILT*JV??M?!HKj`;T^ZuEXqMP;;8(Das(|9y1cU3<L2*m*{H{;yoqz^nJC zZ$uuG_1T`gKC7z>gTVn_A(uTYaiX^ot+FSAdlql$^~Lk_A4l4)b4%UCRp!oXk+c{L ze1MQvWJqfpTgy*+jrQjja9-n2$h4#wpra_4c7`kjZMO%BX!ik+k*62EpRlm+_9SPd zoj{@^br7i(?7WDCz8w;CY^>1ZzJ^Ze81`?27#b{aENcI#w<DA_;L$}fk1bN`>>tL$ z-iGt2<5RCOaO4j@ki2yC`91GrQWTeo3TJ`;=w5@*`;myM?#CELuJ?-#SWP+zH!awT z;U-H*;&Vu!t9#9*?RRs>^$#Vt?jb$SCS${Uz4ouU`ecR+p9ZbU;fWQvKxt=IqLLCF zR=f~<9z;>!@KKI}x(ZuEb?7VU8|Gb}SEdpn@7;x6jp_Py&c;&_sle(cTE=j-$ELK) zx~%{GT^9dwJ`~^Wb^9NqI|5qL0N<sH24S<aM~64J4@%#|@puk^Ib-JiCDs5r9I@1T zM4B@<OwkZ)fSaK4$9<XXh+B*OrUXR}S&X`-*y|%INzNx#wb=++sEnh?OmO_n(KPTq zPC?`vf+m(U99qEVrR_QGlk&Hc%Ok!Ocy6Ft_J5^0Bz9qPv6@2IaBsG{2)dg-Dr?;s z2vZ_t=Wct{2b$z-{<tq!^ZhW>=J49^1iah?ENrfiE*ZaI*ct09cw8yBoUin^-Rya} zE!m=Gh*Wo_QiX0$zg`v9*GIA%JR|JN9l_2mMkcr21-_P7j5$yJ?&*6<q{Qbh%+SB; z3XdZe#M{)2ub>ibf57SJ5a2&+T3Br<AyyLidHtR#6KA<IaKwfjtiz+Rg)@bV`1WMg z>U8nDSBmLSwnXfDAbNsLo(4>exNenU2t6)pG_^FbU!|MPrWRJTq-8W()?c^75C!a` z2fogsg}nA=DyB`a^n@61y5V-fe!7nh6Y=}-Y;Hcc7H`7u<U19P8+*@%`kr+H&7PyQ z@m4p6BJbk9(Oo@O@2(7@l{MPYvUYW4x0huP$lV>LcIPE}P!DW<#g}#D>`K6BvH5u| z4tM)ES%t&@oG(t$n?=6w>f@Fzc~oh4n_fd)4mFblCNjULCRa(nr7&fCZZvoQK&#ei zaJjb7@66r*vkd6+ls(vf6!<Dflk9t#oVQKLyYcsR>(wZe@Dv@<{SkCi7EZcL`P)!N z!EcbIbl~43vvuZn(A|ug`9y@XK-x=(!1r3+iNB@jbmTf<*rd1~z(7mnrRmjpIFH0) zdIK($dw$XX{W@CEUy>qs`^@+avRyMOl$Gi5_4BoN-`4KwxP)~7Cg3CaG8X_ul!rk3 z+#`)47LFQ36TzeI#|Xl%GLk0aJD<(atVQ@;t0Q+Mme}%-2hjTpP`|<2lZi)gbCD*q zcCaaFZVv7Jd`E}A-pdM**N}wLHh2?1Bo@Ynz-yTb_;?y^YHq$AV`QPNIlI3<T&=U< zT)iihCIx}c3D^qjBMECh7(P8uZ2+BT0Gjhw(z4taf7C30vPjRE=NabhgVd_$$7W+I zMLR;Y&ja!}{!2a*pVK^7(4*7h<lyGV&&Tr@L|7yo=G{zI{|qS!kHRLpzxy1rC2em5 z(fGW!REWcia><El!)cGqF*X46xjO~VpU=+zP76w0hYjWU%4t_R6#b&$3`b1{X^IRw z(j@J^fg{`^T8!g*JR@Wl!m-=bS~l-}YrStVPAwrNKZZ}a6*IWTP-eC@ugAx+xwsb9 z#`+!(CFlaH16i=|4yP?HO&aI8<P73F*H`CUUuq-3nxeb+EI_f@I?qTfiIPC7M91?q z7qwWp2G9eNmh@9(z8z1GdQ^5_DymNVNq|I6M31SfylaPzPZYF;9p|#I^_A!EzwNZ} z4@Np@BWNw^u52M6JM6A)qe>zqgtVTnY+78F;-W@Ogr?>=GW2*24(7C4gE4=z(T-70 zXli|DVBW{j-GtF@9X_XOpJcqyz^KTZ<092wjP;+Q&eq>>pC7!l+Zziiw8YUav*K{| z&Qk=urc6SuPhL@B{n?VJKP9Hn+IP9VcFlL$a}*f@lZ_`&p3$db&yP3M{PRu6emswB z{m}&poVD5?vc`)}KLB4<iY=UXyY`MR*T;}pyZ@Hp`u<wegbY!VG^1Sa5Nv<Sb{V5e zUR++9Z*L@27#GeKRX^b5qh2tdo5#)YSy9~W_@Y$jd?9e@cP(z8-&+gh4>(BMX!F8+ zmI$;0gWkbA(!G7m!-BK8-iq5b=<?GIvr`nu?h|>Z#T}RDaoip;KbDE1$mHj%te!!H zZ^Q@3dN4@8Su8Hj&f2%LU1Zx<k9pmiG#Ch6AMSswrY#p=p;K+5s`4F8C3TE+6~$5f zmN!X>n#}zPf8&X)K!?L*Af>NBX!b2`cMI;b4}muOmqVuO`LX%JA+utpP{ms|{8*S0 zIKGsuNF+GIpI6#f$7JN~1q1#{cFOs~1s#yY!QVxNVv>YNJan!>-7lyzl_K^mC|<qx zFEULr`9(#+?TuEL%Z99p&NU8zl`gR3xza=V$Lkxdr}LbI_p3J@9@OQO6s^G1<3-Ma zzfNmOPJl?~ucG+$XrAL7t*uQGE5U~_QB8kFx_ImYtPIbX5E4mDz>h_f4b!S93CxbT z)3vvN@sr=z0%!~bE}n0UcQUgAkCR4UP}+$WXq2gvWp}BAnSWztQr^-X85Gk21ra7G zWJOV<xN+9n9-Vu<?u?%tj8rgu1A62^$f7g@*R{gojJnL7JL98}*x%!{SbWO}%lopN zCdPE6mms2f88nva=sszV2fe?=N|(GRRL#nN;SBiZ$jGcYZ%PLpoo77GIm1GgJTa%E zKdLZcRO({I+T2c*Ar&*4=O5)8Aex~VhFzt7w>F~G#MSKdZ_KK0=V1ygb)Jwx6c<7- zbFo5;#$h=mG=7)of8PEhiMrE19L;a}X#a)Be(e{|LcJ<L=34&P9p?BaG5Ln-%NB`9 z(8!_X%gd{wapLyS9&m!$<1MXr%Zak(@H}s*36GXI0Me@K6N|?Iyv8P)Oue8iS~bQH z31{Z^2rbYknyw9v(fxQ?tU$hhSXkYZR(Q7cet2~P#&dGc)jJ3ZdOWgO>{4M7WVN_o z2mdz@no&N+u^1VAa9HK|V*I3CXKgn?U0{0}oAFmRl*GK^Kg3Ic`C*nSpWdS6D5CP( zf(lMln^p^-DWJ)zK>X01DmFblOrqa%SxgiHo0NJzCHCHa>>VX4Q;E~HI9!Oq8F?LG zPyWO_K0e=V>AaMpO5Sk4+61S%1e7_LGoo;F#}IO6x+n{~v0{{0#(X=<k)<vlE9N(S zWFiT8!O!)2<c|})h3BF_-dvTO<7ht%gaf-xh?Xj)4=gC)QYH*><&>~?i`ltAIaE&# zg@##V>~rYedlD(E9;?qUEDy#_UrY)-sk$1vlybqeyN22GL~AO;_D*HBI{l5ouQ|CQ zItH$6O>4|BiNW{Re<R(KIj=r9!;^+uX!&x)|8YA6mj8o{EQy`i7>x{vRj%5SRSewm zPg0ca%)rA!ci^NfJH#RD?K&V}d=ejy6D$wu@|3<z1cxxQeRZRv3N+qHh$-F6FFp6R zKrvKZz8==8gy?~6n!?fK!1sc}*2+8+$BssCdV(H96|hJf0hYDZg!=w;t6ftiJXd7R zZ+$6m!;Pet$r~2#5#<p}ImnECU-&X3fIrI3s|I1!L$mA{UL$<M7^U0gJp5C&9f|&P z$(t$WoUs-Z{&(1DjX41DyZ(xlU9=^`46VK3W8wnZ7(r7#Hbgg;ZkY`UpdbM8*rf@B zZLFRz@Kx&~e4D&DSri#8mNe?Kxe`qr0T<1B+6xxCo*fkGzUH6y{*3fJ|1|8Mas1@I z!xcgjGg#nrpEfaY{*b2Pip}+9ZDALq$&lJUA6#!4v!TtC62Or(fnu{5@cejd4X@{x zR_ymL8dYUTecI*inI5WtRnym3pdcwLC=KIO<`0!(;^A9wBJ^wKNiMCfSnVFQxck_P zD`_stkd989&AKWpv494nLd#DC%rD?gTs7Cy;Y!m_VXN#XBY_sTI-3Pc5&vOqPa0E0 zo{1&nH=%aLaX;G5iN-xoR;nmsLqS!E#PI{2>o=qg?@?lF_Wos&JN(NwkVvlK3nVYl zKWon<;^dF-1$T;S`n;vj5l@fj1^50ucm7GrB*y!@SCkAogd(1BW^fs?tP;b~_#<Ge z>UGPFod5H@QMbnyrMLYPv;jH_w<)in%#C1IrTZb@Kh^p<^1vo9)7o;IXWSd6t=&D& zSfxz~&Be>b0hqMTyVa13B@Y>>|FoYLzSB(WYD+PGJ6yiUzE#X?5Os4y`J>mH@-5dt z^W;_Kp!SZ`?BQj(yt=|{+N4qEZI|QYV+C`P-yAmYb0{^2P%urszArf712fFTc|?vj zS+Q7-dZ8)KnuYKid}t{W0ii81Yql!b8RzM!Fccml!#?ft(LFc7gg(OnCBro-wYJ9m zt(<2D1cRujFLQmopmH<Od1<=-=)mOn6Q2`JB!SiU+^nn47r(db4z<Vq-OcyVjC7~_ z8|jo8(#IG#uRrEO61cmA5U(qXJ~r7ASFX*-L%=#usYO8_G1~Yh!B(u$Mbf1S>pLq0 zy+D`s(2jQBQU`6!<y{xtG>SyPLDhqSY>pPoRdE!2r^j{*N~KSZ`5NNEAubW%GaU2_ z0sU~5vEe&CY0YP7l7%iZ6nU|rM{2-cQB8jbtuIi}%!<!PWsRl6<Z%S(A|2uUTJQ=W z>-DRp?%rv4u_AqNYnBvPXT<`mp1HWpEB3$Lm@Rn?LU(j{+t?%fOE2sJH#a5CB!x`` z6v#Jjn>BBDpX?0V^z98dg}J!--iW1ZR%UxrS^e+4Wm@C5eU^d0P*>(l{p{diie&8+ zkhn95=wdIoNKOfC6VqH<*s$*JLATA0e#xINhplp>X0l5BRUR;4nnh$<=v~uxUN?$5 zT0g*tw)T&1q%KF~@Gcl;aJUUXi#!D)iS?EBK2ifZ4ha{R7BwAsWm9Iw*IYp;vpPq^ z!4>25ho^q53Rz9!$J4X|EmzyLyq`fcevge*Au<jQBW}TVvO5el&i?tQAKyK-7uH+d zt`E*?B;^U$8#4GzDDs|<NAb7|BWt$&d)|vk8~g`5DoK{pJ3cj0vjt+0jC}(ga&qu2 zBh8s){FIn6M=nR3=rz)R&IUHMa1}+KVv)VD2#J~f$QM&wkSjCAijvONZHrLSZw*S? zch=R*%(AhuDd_ei+!XY&2H2YaD}YN@ra^~)d4-cL#-K8-7pv53Bl3QYGS@)3Z!@dx z>G9(1?f&#{X>u$P(I5Pi!TH~oy-@*YPBeiwSC-9fm+Av3jmuV99ebH8@+C?pu_X-$ ztFGRUQRe3_guPMp1!(nt&Kcp+`}Z=A!k#(5GG*tC^~>(8BFkyZ+YijurivW>tB&Xg zz~Zev%>;U*mCK_|+1-ROFi4l-rup;fjV!PKOkbew%mdWuJ*9_HK}AdALu8eE@4w6b zEe^4C%#M(Ut-}J^jk{T>XPe*O?a1*jZWNgqE}%nxiaooV)0r*;;pyLUt=UF7JN$Ao z*FCYj$AOLYIEDE`lrP$Q4Fd^6;E!(}wU~!w&|Qy&gf2VdNXM7w9?xermm5A+(^(oT z7~Vdw6}4y!J$)_AFSpdEb{ZkNk@_uEK;z;X7L;+;fQ|L)q$GOw7!2-q*X<T@RVD&i zgjGd~MJ|3-w%HJ6h6C!H2VM`ayyG+0B-tTZssW;B?ECx2<f-Dw;Q?r5wflSIgeeQB zOPME?m(!Dq9KpNAf0h!Va%y589(jU}Va<dun_i;j8iVw6tDCsq=TX)A|6Z+^GH75C zX)-i}*w%04>0obpGGdI_6MWlyvgNc3@bK8iEHU~CJ-X4KyTo~tsV2o$V33jV%sC<% zMl13Jgg)5VR4J0>B%XN@E3kmiK+?Ol4mX1bQsW<Q{;%ya!IElT>n@0h(!urux)mB? zqmK@g0k;S&A|T%o-hy_=MK<PLc4G4Ee~2*2Qu3oM4z5bymUEWMc@aKuAB}&mhW<{F zr_S-@2E-7SnaXV??5j_c{Vw#*z44X=XL9@=P*Od4lj|6BoJx`wz;|gChn~*~bwA?M z2D}?#Rv8=5L@iaVI8NfBrgNkglejc2Fro}L>D;~Ofys-YuLOIem!oa$W|21RSW!VH zs!VCKuCWF@;kdNZav8e>RtFa;o1P7`Y>LV0vk}7^)kWevL(=V}-BA3&-xcLmnNnx> z1lYTsai(gK8L);6r8x>H@5k|psQX%|B^IvT8)0K8O4TIdhyRvxT40u_a>>!`!J~L| z>O%;q%QiWy8$0q-OiZRYVZ1+L$uE{Jcpi~qMRlo3>G4!ZCFxMa)nKUzftWxaHy*xs zcFXgsSuU+DSnp6YCyI~@Y+u=PJSQg-lr1KD-V87bxZLm0&Bvk@Jl!q`1Uw!oRH^oU za%3Qb(|s40mgZD}VhS3Z$+U_T-$g)N#h)P*dAwtmdw{Gh==YKLE9T0sRG)x;s^6%U zK3zX6@&4+YbFk+Ln6VZAlIW45A(W&e?!{~ZVW}fTNhd1`=rB+^CQ_sp|B&UN7sd+E zr<V^?5~${fRTujxt*&#((xk9vpc$2ATBTVD@{~a8H#SM<$()TGC5s5$Ph};*sn@YM zhqKWqr^8{!Kp<8^>NlbT|NG|P2ll$F4){QnF0f9LADM$xd7JJM{BLwAha?b<-}Ufb zdG|g{0f}GRRo$V62nZhi2S+qA<PRzwWy6o@JVX+qxE8H8pyHJ+T}i1SKrw;mqiDd* zWr~FP(t2_QKD4A{_xu9#GsVlydpFf}muN;Td3gdt*xDehD9~ii;M&8PPR}hhs-Wi@ zKo4gHQL1(A;2A6%;Pe}R>Tal`hQH<FF?V{=xGZGqd0ACKd0A~oJ<I;yP$F@UV_lB6 z_F0qEU?1fbyw<^1CC0}k7<-aTtCpp(i$A&awytLh8B8gMbO24gXddP}2W!u9V&0dQ z16uygnl$T{RN;gx>hsE#RKZt~PO=+SZ))Y3Xh5UZL-8qNZEiheRrcBGbGvvrf86nj zZSIBwPSfD>4FBWdFu`dZFJy}2vEe~W$kRJr{B8-QY-*+dxUi7`^ERO(DH%4l_f24H zxyGM>pz%O+D)0$hUi#Jg&&;kzkQ3|TPN+_^7Ld&qjjj{8By2K{)M0;ei^d@?I8u>9 zAS~SPR(6}a*@FHqO>oLlK*PWA9r+%Y2u&Rxs>qxn#xycBGylYwXq6QYc05e+uUtbw zzLa8gqP*9gRsu{*VJna<BO+Px-0QqY?Kwx7+Ih82@G*GCaMScxra@*p$+XnT8o!ty z9a@s0hr)W|=2t-##Dq%G`z{pZ34kYP$lwz<RE*8)P|>tw<c_r`#Af|9Q#}MeaEF== z0I>gYp3cr>^aAM^=6&<;ZL2xR=^HbpRK!<uJ_;xsQpqor1cdm)&Q$s>4rO*n(|$_y z0|4~LgxyY<flUD|BChu@-@9HIpe)Cpqka5Di5PZBDE8<iLf{=~|Mzo>S?+#tVn==P z{sRgjh`R(H9a6IW6BiM@cBX=(2Rwi+^{p6qx7y(GO>F8gOc)yQPtk)YIT9Y(?N7?z z)rw>&zS>``TvlgLN<HDq95}s@e!lQ_ym)65Y7l^VEdoPKaA1vmHnv+>{40GGJUT^J zcZBQodPKn-9+uN5>E{>uSylaLiTQP4XZ(tE#8)EuzQbz$)wZ9U+Z%ON6H5t-RN!jw zRBL$AU&#jqu@eLD-HU8{*d{SH{krKOI<idkDt4d`qOSjuXC8aN!4z}a@U*t>d8J@P zLU+_?FyTD1cY-^Wf{*_z=AE^(`KZ=cW%r%4vKd?T{sBZeTV8>HJIf#u;s>E5Ze|Dt z=3B2qAkkIXqSDi(X_DP`t--eh?)NLWUmjCy>;6=`f9#bGSdhbKguD=J?)T+?wQpD> ztqVz!X)~K8*czHswW^Fu%+qGE|9HA#%gp_l54j0WhWhruR^WFEx1`|_Jd)ffnR{D4 z+)zdDRin~|8??VCDU@Y!*zER{;E_vwfrnlwRV-~4ogpR7QCW|mxomqidL#q`bu_*o zvxQ{;{R3Na5y-`UUsxUX9;b<mlMp^`?nO_IH>T-FNmZ0+44O9K(H~(#)E6x|!2(v8 zx6_(V@Eg+@i9bpveTJ{lnVho0@rtLAinyMZG$*@&@*E?<xPb-<Jz3@IH>A%oPZ@Yl zug=Lxg?J!W28-r;Zm>^gc)^ER%xh|^NGz+#b`8avaC-gkp?V~cvDB^e!3teB|7F*l zf%nRNX(YrWKw4$g%^vUX*=<s-zkeBwI!%_EKyTn85c$60u>UH@eJ%t~FqQc(`7YZ& z{Vj<+$$lIAqBpmn19E5Nn({YP2X^v+ua)<oTefNv$h*Xs{)Spn{k#Y7S{OuEIlXte zUE0`j0SD<uo*%&$Wp5&WY0Ryp<CEp~&Y_IGf~)v%yc_0?56x~{j&<nDN#@kB0X%Hu zHaUY6acf$SAidJJ+>Jc^>CW1Jemmy96h6v1{cE5PBt-Ud;K14RIMMFXS*u@J7eU%( z#qlNE^}VCC2b=@Yj<4%2oV3%Zb7w+(%kSv})b)4g!9U^L&(T2Tx}K58UbhyUH~pN> z5ZLFQlze%37zqhpMqD`{D2O&C>ZKS`rJj5@<R#Q;JFN;-DRK}q=T@r}RGCs_%P>Pu z07uUX#Ts(0Z(GU!-eV-)W~-rvqrFMzsvTTIM(Xr*STb`Isq*K|o15Ycbg4{9W9fpL zZ;!o$#th;WniQ$X3!jMkK@M^l1sFU*7L3K3RJ*Ak8~Rz(W!W=XX^`N`a=|TEbaV?% zb6h#y`%!+9De^qtOkp+8slqBRIe`u-_PgxNQUkK#y(T(TyFa;@voo2nkkwDPAhWjL z3RJnMU{#v_pB6waT=BjtWPnbGDj7klJYi#Cj`)P?Y2P^UonaF<Eug)tOfX2INR>;r z1cThQ%#4hHnsa{zrUI)ZNr?d)&5cn_KG0^3DoO9l<{mR8bqjNyL$nly!Dm()G<C#i zFs&^tn^NdkNMRYV4`tJ>B%30;0VOPAWJJ1D#oc;7y}yiFVJ4U=LvvE;^;L8PIAbA~ zG#O}++8`{YqysNex)3|wr{C`dZ^WCJ%8zCh=0O<?G^RUS^5_DNToHF(!HP84dU6MM z(yd*hP=kTL-|=7Wq@7pu@pBk2Kp@<|2kK8*Kj0+E@s3#&rb=$?$oQR}7|BE<dRq(8 zKaARg2E-y2c?@K1OQ1s`f)#n>4xT|HKz(7kGT#DOo@C^u9_9k`^x}mb=%ogGdxb>B z;R+|vC{RruBL%tI9A!{q!FBh>=`7uJPR-dn|F9c7y;!G7mdf=$LC-l~l_FKK@R?^8 zmNJhuY06w|1v=T!>OE_QaKB;4eAEU=mL=B-CN+S@R9O?M_?`YKZU_9}$4u*WS_iqR zIE5Ussv*K6%9PhLeo+WANjIM-$F;(UDU=h~i}ma6_y%Rqq;Hy06Nm#@YC~B<mVwOc z9+MPF(^XG8^m=fd3m&3EB$PM<V$Lx>!R8c^rQyjrfe@qYJ4|tJ-s)Y$fm40I8r$Hz zcwBa3!1PWCy)jwVSlGO9ewYPs#AEeY>d^?s-`n0W334!&{#&|GK+>cxa^RVta_C+7 z_+2#xlmFn3y5RspMC#Qm*q%o^T`OCoN0vup3J8Zry>YZiB#vOSEnA{SM3*?`O;VnJ z026j3?xH*myIq^0UZlhI*L;AUejO*BI$Bde2Ja({nHZ{Kt?y>c7(Ucwmq3<0wb-P{ zj-dW4Y?AZD=mVa&qT1HoI^$;)2O}0$WQf@Epf&vtfo!BI2^EawNRJAt1wQ8f9nGrZ z22gOl#IIkhXFskxp@SCua;Lty!*A~0&V)UX*&w&c>!B!sis@MazPGp%CXBJB1yVGa z3B9kC_SBU)y!}99ub(NE^L`Mn@fLdovO62C)EYq{QnFAL=4<d=yX@$FJh+!t>R2dQ z={4xlp@f~GL2?|4Vhe*_KVT8V8u>7^;sU!LdMky_`hLkVU?ZLMW9)}p@V0f(CPOd{ z9Or)cMjFtd%Y%jpP8TjKC<3J<>6-Ns<$op7xVh~x$%Sf*7(Ns}Hb@`%Pe->>ILJvF z3V80dy<K3Sxa|nbj<cu%6J+S}0N>+95i7Wg9p+SjgZCPFAWKH^_=fUYh39*I6na){ zVI7u$0E?9CjeCssxH(4mgR3f%z6LBPD40`QjgXr!SPD3$Hi;7@zPH*3>@_Kcs;c=+ z9OU2U<oQTa(n%;&7ZC<~TUk{&Qppl$C9mO>QvO<+4oRHf@IR(2DX|;?&|!f_-{*^K zL}Cv;qQ7Y>+shurZNAi*Y3JKVzr1LE;q}q-5?iD8IEUV0{VJO>pZMLFZq?%yL$*`O z&~O}tGnIeKcW`#L(ErR>SCX&2TJWr|J_n>V{OGp;Heo;eOB?#JZPKSK=u>N`b0FI~ z_aA(NkRFs;OR}fgsk$gQCS{xD&e0UWQS}hG06nD2QkxdU;nG1!&^c#N)#HUE`UNVn z{FaI5_dD%01f7$}t7&JU)^}emQaUW)`;f;S@|i6+5;AFLT(qNx-l2zoI=RM6V9MvG zz#=yBvc*9IR4Pn{QnAQVj7rEJ0Vqh+<52Q^zJrnoSOnP1R@;c<?^KI5aH}5S90AlD zA{)({-DrGT&oxqXFb6IBDITv2zmwGkk{eYstI`L%0uC}GwziQ+joTO-<O41?UkmAv z66y{g0_fVJ^blGv>fW#DzA3$6o9*2HzIC4uA0!p?k-VzwwRHtuyfR+>?HM$N;tf>> zCq|$Wq6Vmy_`J0rbDwyB5&AGO7EEy)ae4vnTm{(mZhU&Kab{27;goZ@5~uKM#!v>l z<v3qvW1Yg3M{VKZ1O$p9?f;^SHyj;+UuC&`E5Ni=Lo;#|<k(y0b6$HG4__A2Jb5!Y zA#puAO}{<75|(6330R^1y2P1Fdg~8j1!-<cCU{pmqMs{h-hhPl1`r<ggX`W&5APgB z7Fj+)YGRtHC=UdS30JR(j{n+TwG)T)@xm@wkK(&(Eoh0h2>!ipTZ9O3cG8Bdmy(D) zrjqq?9)PCAQf#Rtpp93K8tuVIh(gMf5FK9@o#JVr(*qlu9E^^xWTarh_!)faKh*X0 ze+NBZ9qRuF<vI}(1F^`1Sf%vs|GVHCAYo4S---WF6$P^Re+S!0b2$3{9d>1b1JB@= zC7OnD{?{<g|F>ZXlw#{Fh@es!0)Tg#U%1IZ-V1J@>c^lDlH;`C2FUMaI%SwQzO~o; z@!iLpQ#FU?DCcDhI5r8imlD2l2Z>KM`B4Eh$wDRM>+A#JGr(3~hzn`TyP`X+5M{}p z(=v#Gnuwyl;R8Ep>fQ%~*SNCO_4a*Ao5y**Qiv#mSOK(h)tZR(Flo%Ie)2oQlJZ9r zP1tk?RiB}d)b=6s3G(e%tat&ey7>-_Omf!X`P1-YUJmD65|;P_amQIZ>g${MP75<u z2Qke<!9tG%qoR_)n4_P2U}^SaF;+THPp%JJz`=EEPJP++Z)-1WW_5Z+g+Taz<FDT5 zh$X567Xjb`9{H*(>TMU%4F>1+hP2%r+d__B=g<dNaU4E)X1IN*eD3{9I?+Swkb)uS zf@3n&Eh)0}b&|KO)s-KhDP#Vz(x0w1*m@vYdwrAj9k=+Veszq6Qu)XCYY&lwrs`RV zo8^T0fu=pOffB=1b(7U`B|KF5r!y$4b3|<r-wbAUK<X9_gVZOZ$5xu^;Z>2tK@)4m zH5y_d1<$PU^^G`fylaJd@)hrFh$Ii)WD->#@9YM_`_i^~(r@_5B-8v}ygG-S3jVV9 zkHS~3{`}eT18yq+TOz^s;?N1>Q6{;!dr*xNa*FzxCHPW60$ps<sId*%+kLMS3NlIs z74;zMByfVpK_S#c2l+mnaK99$#ey=$itO1d+~~tS)FeoqXS@aK?l(O0pv1C6u}#>n zBbLLc>>P3A{Q}bX6iu}%p7iLz(gV1b>6=1WEDf?Nv!XvBP`6?12nD*u@nb7l9-iMF z?kqRZcMddAOfXLP`dnzobuK*Ey5NY7T9Sl33``bp1V17xEYq1-fk`IA>`L`N;WVs* zks7E#W^C#~8X&2=2@_isPlu6|Y;Q;SZ6^<Npu;-yS7lI&A`-Q@tl;8qAKfZ^fr-BO z2uo_c9bGYXy}Y<SY-E_pN<OlpaN9XlN)!(yl%Ylsh?AiM4or!Nb3zKr2z?xQ(G~|D zO?JXU9{9ZZoKJL67GFj#EtUBBt?0sJEdHaOlk`kT`J!-GQKeLXpz?mciuH%e%!5f~ zou{Ho0S2&MA^u|(*3E59)s8Q+uOWJIsl*_)8>GkZMvX|k&a&Iu3n%%5F;vsbRx%Y% zA!xw)*{86#^*ixQfodE`ArY+~2<|2=wuaFb%s2ASXfUm&QzvH{U_jn@bbW=ACM<Dn zIFX|Jcz=ex(TUOIz)A0foJA~FM@agK(mP|ENUB;W%aTlngXC>Ls|&+G#odm@F6;?p zgihl!Sgl8(c|{EAYj`zWMW_)h{xZ>0Uaio1D8oiaUUx1M-h0a{t;v<bxs)1K-~&F} zAQ9&m-z#V6hgk47=I{0ic9Fhc30(JhchG4;d8TM?ruS&aM=q_Nb*=3Z{a9i`)-b_? zZEoLwFZ+sx3}qq712&bsJYh`%uUW3@gLA_Dhb(iB35r8<G>|ob?0GV#hE=K?RWn>F zsC{R-T>+m1L&NFU;%eCPYNdiuzIub))-#QQLqnMKmW$Ke1ov=<(0{`0qN54p0Ok_P z6x4ydB%(>Ikom92$`&FUzNsp0{$CCdtnuK998=;*A%KQn;l1BKR#l=?15Un1^+Fyv z;mD(@^+d&w0u4hiAMjIJhx5r(oL^b^0>WFJ^F-T{@C;PGe9&oMhP-a-FT>d5hPT4g z2cRmTRKI<^F@J@9*YY|Tu%?HwSVi$_lWCt}t<*XqEGnGLZXw3UDOkfr9Lj%$8dwlM z5V=?T_RLP)j>Pzy-|oyCQ(q+&+N-jPtEFMkZa}xWN5B<q&P!+Rw8<F}jL83}sS8MH zlt-8axN+y6d%EEIR9juIJeZ4yTsn=$EqrXPZ!)8mw0A7LD(P%u9&UEdRNp(9{jT(? z5(2!Rkd^(xOS_ERvFaSdgeN!LqkG~f3D1Q-Cm&H;l4RUDS7H2GxC>wVM~XVGHf1vf zR|}Z>itA{b#5Z75RLA%LvuoT^wmI+bq0voSX9$7N(OtIjO&ze_-wM~i$C|^sa|4=# zgDi`=Z42LzcLoONd>|f-8F@u7(+0%*tbD+=cC~sVqlO1qER2wTHhh+!W(42idM2x< zhXxKx=2wo0Kog1@t@l5KE%y}pbXlQ!;}wEuLIT;PP0h<rwkxBKrO<^e)TZ$j`n-S} zeU*n-#1Wv{YeQkH<em25E-MjIhUz<O_RlMOw9q})@q=PU1&CK;&pQ>o53LtkbK*iF z$1A{=-=KQx49r|>=i;uzZMb0Co~F9+<J&3em2jlVP5iS)I$+oW1dvr|u!j-MsS%1c zve8Kc%P*$vH<}_*2zh4b=ESY6aG!f1qM%@?exxv+p4t7iY~<qRo}Hfu+X0&4ak^uf zjl|Go#I!4h+9hZqQ->aP!=LU}U&2gf08+$kFal_`glj`v36R=@SoQl%CVXIvKnF*{ zmE<#g*;+$R<39GVuUMedOW*}1tV3@l26m}$iD77CVd4NBNO%#mCI*D9{ISGRb=4Z( zyZpISb+x@^95n8q3TNX)Y(gI9ix#$R=3$-H|120?Uf_p|nrnnQ(%TWlcA-7t1tt&L zwU=?BP1b84y?gN+IEj!YJ$mTxzN@z5zpSc~6t^PH8;T3c$OHrg;u?8I(&l<b4M!X0 zcX#KMmdcD=@}~WKjV-CJPL;!?QOl|#&ygb!`C+9Zdef#X0#rGQ1FZ43-faX8gWpzS zwZ5RWb@|b(B--KMqPQQI=q}a{_&WksLdKdaf>dBAl7#txAx4)2Y|=pc>DvqpQu|(9 zr*4-g0;eU>P}g4k9uz6x@Ar{7@?>SmElo|o@0+?4uI>->8#-qnhHc9D2#AUcrG5%< zGpv4*R=HkjR{>XWi_5%Dm;C>Srmv1`qwSh*ad&rjcXxMpcXtRB2}KJOcXueo-QC@a zyO-kb;mdQszwiHKH@WuO-8pmS%-DJ?^OrBqsi_W6<18cM>}|y)T<-k`kgnr~Hq6NQ zZ<0ZeV+R3Gf}$m*rHQD(XN{oi(5nQckx9djiMv}kHSJ5StIs$}I+!CqmhCm7(GR?M z$8%m6q_<eYL4DiY2#Gq2VTQ}zD?pCNf<BSwIlGb1TBMzW6WJ8^C)|~f6pZ)(0jldX zd^v?+wP<F;mfIIrqwqPd9`8loOu;9#``@813dkJaHzAwzB1dBeDb@5YzjI%?x}HO0 zTvil=wL5!#j=clvz4xR-*KeZkN2&Sye>7G1!4erP?o6aM@$>)i-v4mi@0+wE3rq|X zgPsu2nKv|2zE7je=V{hV5%1`Y0x|mjWw4|5>o~B%cMtLY@!p@h(!sq;6*13P0sy!w z*nus~QyFbP3_bCj6$TX8v(Jd!Ni5fFpyA7+Ly)aofO$xXFaYK@2c-SrNbLI?cK)HQ z=qLP19ss7}co-YI%HV+j*EoP*vuyfsD0y~o^+45T;g6)>;XJLHom^?Xy{8~x=gxmd z<iuh|=pbOZ_wn13GR$z%u%h3;OxwVQd31z^b}n7h55Jn8V@9KZaqB9RMwBZi&HpXn z{}63RWU!$Vh&ig(I1m#2F=-nTp{*z~@*F`cRpAdN@IJ-wsPTNzHnmwS^Kt3C@Ol0A z#`g)Cu8}-xp^p=8f&N{F0{i5o_u15j*auFq<JKA_|78mI2kpMl%d=_Vb;C`~Gosn{ zjqJ_VRX|L9;5p~}%PeZb4Y4tQ6*acL*_F}z=k)ZmO6o9x;VLkSjlGiM{ft7%Hx6#_ zJ1eTji$~Y$;<65P-5;<tYptO)cTrWa-N--_ftou1b5pyirRDlw6L?Z-3Sts{?N<h$ zb8ypZu-ORYN?O$3j$f>`A3<1SeX~!S8Mw+6m*Jm*`B%Xn4!Vq5zb9ZgfscAg=(nW^ zQrwTj;U+#%TQPsYjMHV$Tac-tvkDv$?@MrY-6H94OWAO2UG_159GK3>BvO#dp#`hh zz%`7aw8(&&+a@JCU0lN5Z>YTxAtcc_SS^c+6v!JGCVUnYB=X7gnzS$CIIw%l(Uc|E z_y8wWBB3xp$ibKcj?FKW7O0{Z?NZO`XInHi?_5O4Xd)4Fbtb|{h5!Mgfz2S203#}; z%23VhF!(=uTi+6HUE{Vlh-28`1Rc*sB2qtZzY59uJNCug!=EkJob;V8&U@!7=s1ak z=UeLBA#shpL=Hydp~1Yh`>J`Q$7)q38P;T4?eVYTILn#yOr<=oxL87-0;)K7@K}a3 zBC_%dUh57Y3}PIvv-dBv=&df7@gvfnlv)#S<aE=ZsQ7YRmx$ehT;@$J$U)tN!HRyc z)BuLI-<GY|iY~+^WIG%ZDqc&}&M3Mr@$##>h#*+6tGxvaO3h6t(nRuP^yT{yC0eUA z>W4EOtg|*n?!i23T<aG_vWy67OvCB_*1zOGh~OgNI~BFNEWA6m?e+~7+u|Ix=4+|e z-@hyp@PMnYA;=QE)^2~l^ye+t7*K`pqZ*jKcw-L!-n*`Cx&kq3`Be*DMX;kqa{A;R z@;$#LiGXO-=@w480zU%Pf~dkJl4hv*K7MMpU$ktz?4bf9><w7ZS$~w2sErk;P^3?P zNsy!Qdyk_1LL1s?JqYN1f<!7FBK>@}?EyUy>a{pQ=jLwRKOomx%A!uD*X}PH0w=B0 zgHoCuO#mBiuG6V63Nmpnma-=(w%5<6kbC8<J|7wbFA~qJjgA{8zr)R!_s#;pby>I1 zrnoIMg*h9-M<J}bhEC|-+)VGh{Zu16CqD`u>z?c;x)tFANO1#uz4;E{-6kTAuO>{# zK&;>im>i^kt<mpDl^^C~Jq(i}pWxoV&aj)6XuwYT5iQxL$0sUa6F#RS4Cw>K=V&** z_sv)f;sd4fqwZDrT!tjzmNl{#ALY|Q7$*$~w{`TldT)xqtN#u46%;WRS_{r%6djxs zu1`7@9?L8IvVntFCV|-rz!T(_r%~C?$7VFOev2dd_s`)brOTPVCvY*=X}u}4vZg1l z_u~S+=e~57-G9b>=)nD(&!fi$uZz`wNz^%S5Jm(&|HZxL%RX+c#Y=<koQ1oI-mQ?T z&<oN@o<B-9kIUiP=LaU}4E9q}nMGCzeUvHl{^aiOx1WeCeEI7m=qXB3QYkO~H3zyY zRmG*=RAtQo*ft0z!$G>I^j?mc6D$pRCc|AYn%6C<OU&Ten}BSATExJ!88+?&bgmnB z(uG%_&%I+KOzI5Mp_Wy!T_Ak+Uw#UwLraf)Kt#j1?x?GkQRfhS&+7Gw^k8G2Q&L@f zxhtpZTB;ptpr*zwL6{`{nM8quxcE76;ZIwhYI=$NnI7w0nb5$f#%DQd->cDSsx?wm zlH{~rd;VorkAnyZO;=b)t=&OuM~u)owX>tJ{ucJdiJo2Z8gMuZf9+_f#xdwOsAQPx zt%?R3NZm?0{TpA`G0K&@F-N^v$uH-3A{R*wB>~WTnHR<enXMIMw!Q3z+@|X-%p10( zBe2i`0q3hO&%I(Dux!q<J`a7m9Yi~=)VY9KXzF-gA82XKw70FDE=Hqi@<?()G|rz% zwebv4Y1H)iFzbZ+vI8$x6eI^-cQXgCXRiBYuBN8jR0%Cq$>VM-uC7Pmmk+h*>-=<% z&#NC8crDD$^(|Ku+d%~RpVZEU6=`uj-_we!08Lq2cR+;SzTGKhvBeSg`Z1?}_D&|W z9Fl@Hy{^DFLC58)Vl}!sj-t%sIFS&}8NOt2#s>t#Ae)+<H7KsX=w>k=6w){=06EC^ zC}2%bUB`43)FKd76Yrukvxd2m^n7+z2ricw=uMgUnPF47>HAxpkcz{^ij!>ZYyY56 z+(7#tfdTGn%ia611$-EtYbJc3kG)olgjmPKP}FxYYf-OEC<#DD8YXitOj$2g&G}kG z&c?2UY^>15YaF*|a>S1tjD-zt@{%*a#a+TBo=G>V;Nfvwcs=7FU-9?vWnpziP<qr* z15=n99sT?Ldjg4;URg;=YTd;y{xmkkMhm+lO$)Y>PtI_n$4HzS6dK3_S%+?|*2T2L zlGSd*#4kHZ{Wn~b>DtpF@A>M3l9ZwbL&uTiE$`2y<W%ElC4nj^xTq9}4WwFsCu_@& zS<;cdMyGIVzmM9NGhnSBc|B9zR9%N`v6a3VB9b{&E1OzISu71!1YX0@QL&%wqq7>1 zLU<>aOJ;PEj>O7<bG?3<^!QwzxAd^sgJI%83$ua@Jafr+t85<XL62AFx^uxhmGQtQ z3bLo@OSp3XF!j}zmDUSAi;$WcA!KBH)3gHfEHKED1-}9J0v<(cq*kDfjk~#)SNPY$ z=l`y54}%|sv^cB=5<zCc^vUIJr`EWf?gOjjZ<h#zDd(%(iiV29-<<xoQ;r6!BXBtb z7_q`7iW@5<k4L^?MR#8I<ojQ?=Yy^IL-m}l{HqZDo}ZUj&_|X*Y25j%8A1pkNT(Z$ z;1PYV!@l=Av3Ht+VY=!|n_EmSuO|=1j5WIS&cab34{tnfDJ?2*1<%dVumPd<(#*g* zD`)3*{yNq$|3-Cm%~Wpv=6~rL76jBtizT&YYIJy1$?QxU67sf_vWrk1B$Q=mR1bLd zzCW!f<T)~>?9n92Qwz$=#VE+-Y?I<bbhZ_w$SRR|l>K0Dw(@id6jqV$34i#87#WS? zxQro8OB5E;6H<F!0=?)<EfP`lz8$jc|Jl%`%8X8qK6PnWHw$cQZ2hn5Uxa)Twexy9 zte7sHf7l&&z@A%LQq{Cn-fbZ9@p@b&(tFHZ#wIW}_RAs&oyao`Mf1A&>p7Zdw&EGx zDM7dSRDx#bboH;eogE3-`Y90`Sld-l*%)6|#uSQrafuwqlA=*uUY;KjVfInJY1`_Y zod=>o_Rds;NwQ~zc|`<M9q=PN=IR{SGWAl*$_!?cap$=IBLZj+o?33r?om^I*t2U? zI9wG2LERrP<5D?R6n|H}C$7%v6DLQu>PZ9My`PZOk`*x*2VYn_eNfa)v)xaY&8)@2 zS2VpWVqFb(9BXcEN%hXnOH~*6xBe|ndO>Bxa`W5d?DG&UC{#7*AL6F(!Gqnv9W{UD z?J~M|!2J&EQSoOGzI9}Y8k{!&^@Tu%{E&B&JhAZc$4sc;H2iFMyWk%7QMcA&(x%T@ zZTl1G?d5{F6(jz%3*Pn@<@wh<S{dI@A7QpK^M##!+ext2+U3m5{{%&#v-9-yqA-E9 zzzpm3-)UiCPhN)+aR&}%;-9E9_b@@d)TE5EqpCV)%*iG;g^06iCC&Uv4TV3PWfgIu zkNE>7H<shpoOTAoYS$=ij9+=`Z?A}HQzQCDa0J-<7N8(7jp?1RSqb&!hDlFECztZu z#!{PGnTGWK1JJ&N*Eq)(i(@tzn;w&@&%K71yMHui4hPeXC$K+*_$x{Pv}V^-`)!T6 zKx9z&StMP)D4HZl;5oTdq9A2toxAq#<MY+k!9$;<?Mmg}KaWmFmVs=9Y5sjCEMjA0 zCd2wn@Kjtq=wW62<j!gVf8D?ke{FptsCb0qu21q;WhHs~IGb78^Mv=x{KDqQiO8e+ zRFZTJ&4pIw#ODUH(qd6<Z~nC4tKWU5tvv045IFR%{Yv#hZqnv<NS^51HThJANUoJo zoKDY?Me3Pb%O+9#pA<0$`Fg7a6)JY_?+FlGh|u>~R0|Q-lRAlJ2+1<M-Qj@*|Iypq z4qf3eNuIwLYDU{`i$6!!Z1ZQ7c|o|Nq)#F<f}ct(&wcGb33a<ukMoY`K0E()dI(GP znK{a62l_ne#96N~nY;^$eh$~_b-!|h5mv3oe$<sXZdT_g@u849l<0L_Fs>rCPL0X* zeyO5<^Ec!usicZG)&1a)a<|vF9aYOf;VhcXuwe%^=&X<o^w9?9^;Vx0N#p{n_MlP1 zqcru)R09AaHG2H~AGJwS+^zv?+kBNk4YE|S+&Fc*%qoNKw3GDiAz|P%B&=%o1U+ru zAq@vkSCb7TwBkX#G;5;L5n9$^$P@82FVKVbB*%?Ud7AQh-nsXnP7>8(T(Oexxb76} zJEnj@oh&6VxY`oY+Bx~3l4c<LXX~68K|o4%b!p~VuRC)1!k4G5Cx4dS_XDd2dlkOD z?x}15lO~NSRkm{DBs1)hb9ft!@<YY?7Ey*K!ne0K{g!iVl9#st6904e_4W0(_ghrY zvBF4>hUR&GCPQyCCXToW*dqe2i7mN}jzHLWksGK<Q~mzcdP_d1WAhx(b$mODk(f!G zWcgCO`PIL9VH%hEEGNukzYP^Kr9voeW-JENe9+8vrzn^vB^JH8xWba)zIXanx{2Uh zI{TwGH{;7Jm#(d6k8&}|*#1MyGJ9=;Tw5rwFXL1J$Y0Mp0*9*bIr$F4EMGR2TP>3M z>5#x9=x`!_^HD<2e=NL=ZO>QP-;V+Dbrp=WXYnjl*>hvrbvBx?yn+7$;)LulW|W)% zk1kLdF|>1fMOOR&S^%;O7>Na*hA36wV{yR0MN;#J-_29`pHMq5GpKr<Hq5ce-b7w= zUzIXB!r?J#*gUilnVBhn)mBnxDx@D+(NojoM1zH$bM@6R%-OBC>yEWI|0*l}Zc43@ zkg)i7gHO9Yhx`KGEp_JvJfIZBbZu3axcA1GzHt_WNqANfz#zZ?gr8xTYYj)=j;9ZD z7F8*e706Ti8k}EY6_hd?M2ig!jWtKueN!AU5yjGH3Jsv0)|bU=YT_;w)92^cq$QP+ zvmh{sS9;%wlcK1aGl?RnGWz!-r^{Hfy_9SCBH&SlTN2_;eKE2-zqK9p$nsfl8(n_$ z{TeUQ`ZKgl)ygU`4J>Dem+YU9R6f}o%`dewH1a+6N2izpSHE^O)#iWx+SGjBKoSX9 z6777Pb{oCyar)kdry4z-D*F8$m#)%#U}!9h1A_*;37^<5xt{-3_<OlOTc^b|;HWw} zwISd#c$~pa5as=Y{5FWFqQFI-G*)2dlH>C2SaEzqb0FbH%T+;bYkHEs#YVws4&&C1 zRLFW3fq^U+r-v0GCaubD)1vB;qb@KiEzJf7_DS~=Tk)#JfXlC2|C)uy>3nlW6?lWF z5-@x7z7dX_ZfVUgK0w4;P*%`fpE;q=9*b<q(`fVHuzi>JRDj5e9Vx~zyiXmowzf2$ z=xO6QDh#+Aj}L%?cG_H+DMQX~+v_-^M>=f3LIv)|iN41X_S{;Jv^HrhV4(`P2Orpw z${A@2)n8kSfC@cd*0zAq(_piKn?JOeIUHATCIQZjl#Yu=Znuf=ZLYM=-ugPVTft@a zMt<}5o7bX%LTU`Jrw5O|A$247W%sTYcR@~?c=Puk0$_z3foS`&f{Cv^wCq%d#`b+I z71Mt*sWsm>A-N;F3^frSX00`|g?T*AvT$}w1HMc@tpO)~V5`$OcskbJsY-m2%gdN` zMN9nQk5)T7ZHmq#5&ZzPW6ZUTTZ7lfZHwW{95k+b-=Vy(?%Q{djBin%)xdE@Rt-bb z(R=yi1O@j=;$G@xl|^ASv+4C_F93kuc>-kQHN&6dIbkpNHN2=_x7Uwy5+wRKBd8Kr zJoUEo`!Y%}TbGck+M|WqFwF@c{J?@Z5NlBuu-yHU?Zyg#y&@($z1&4Q_C?MRB$Vw7 zcJISGaZ+qat+KPOZdy2ItLUuU7X9sS<Ad#Eqr(C7crxp&+qk8zsw)b10hzt~b5~_N zI5Ywy;P21(S=E@iz7RH-RgwRKw6fy{$*5avt)Yo|`jbEF+o^u?T32PH@mA>OO{eT% zd?ojZB7Q5~nxjKY8~4dvV4pnlEvRy592|7Jpi!J5)RSh3J2e=$s$^er9J69HHgxk~ zRA)uPJbeJCI6Sp%(DTxcN+BG%(et2>fu22H&N_sSk-}^78pi(99LW-IaD&wKRR1tQ zyOa#RU^qc3u)Q~C^FiE#ZZc`rC&P^{%vm3{4iZ`PgXZfQneNX$wE|bS;Hm>Q+mW9+ z(9*{$nHA*f7S+|5FBg!gWKCvI+uc?g`XU|=+(I`)2TTI5cAy8+&qO~@ThBM)r-U0J zD71L#wto!(_sLn;((=~$ie#F*g|k|Z&tl;IT6((s-E5EyN4Cw(&r`au@!f49i}9ia zivCp_4Y{8m7sX)*+CukJ96D87W9c>BKlnLm(Q)v5ZW9&lh;@gTl_xV74Q5};bNiAg z%iX4?beO97EWUB3*3(TRFNG-$VM!QBF)Q;qX=0;iaOGhr`WG|)=8yPq9eg)-t7F9( z>Mjo*i-}a8Uz|K*mRJ9I|0?9x(xIwD1N*9Et}W7J3jLI@XwW-h_K|QjAQ-)A@9jkS z3ZBHkh}Qd~P1APTxx*brpibofM_nnC4}NqUqs6koeD57vZx8MwH<yX;R!-#OM%8Tx zve(vd1LZenY5*vCh0}V$ssmQT%gc-HASE2Gn$I2N738@ns&0zD-`0-F_icttVtueh z!sv4^M!(};I>`Nr5iAI7&k5MXxLvLdF_P<d705RijE5}E!5hRIVT)jYr#@iTNf^0a zfg%6-bdR|bl#;*s>KP~KgI=EJfe>YfRe|;6J@H*kKU!vhj;pau^(3pZW?&#kFm%^I z*)oth93k=xSj8PL1j4h;3BYKiQ9f48?;_Fl)6>YJDp@}mw@vrh%cP}ny9p~`Kri}D zp~P{)(b*gY+Ga_sHJqKCOj}so>W@-X+0F00mS!kYSMs@m#Md58$^UP$pA82xLbxK- zB^B+QUBE~FB#IXSLG3&*w`THN3XC!tjpbx=!beg-`!(IIRXQ<ei1<a<PyGnU%^ipq zN3+_A==e<_q}u3rrUSN2kA{)}yGKBaGi>`kR)m%C%a;jD%YwC8Jg)n(&Dna5_QVL& zA#0rN_c@-KJbnZ%(0TWW19pCB*~fb=K5_ru0(jdhburlQL1_diIn^DjZ-`gK6}e_B zE=iEbicu+{60Iiu_lTl@R-w}4Q^x&vg6@t~6eLA<lIfCt=zgAXI3H`LhHhKgElW=J z5dD~u;+iVO&6#{T$s3;F-QGPaRct@o_KzC1P|BH8(9}d+ELSP%DND=CBXMwau*0)e zX_j|}c!UJ}8Yw}eYuXH}Mr%BovAB3ep2`tGhW1^zEU3)~fr8fk-~MiPXM=;E?KhTG zTwQq!eW4d=RLvJk<a7Mi;guZhxo8=};fYtkq@FEo6CaxE+W|KNXpw)LzNN^IJc34x zx!N@1TIG~K3u2qK7PvSdGH$BaVHp1#n3!EjJx0<WbS&3CYvSwLe#cwT`^V?LPL)0| z?h+Ir_)X7HjfFHFWry3OscRe8Z++76^Klk9{KRq{thVM1Crr>TEe_wzF-j`Tu-49c zmG1MTW}pyitd!$JW-+Z^w-942(N`>Pq(Cow@i9;U*Ti$OH9`6-z(}b=O%9k@|FbBi zQX$anaCSFy-RMONvUH$CODn}6SU`|vJEjXI$~Wc9*p!xW2YkB{#fuO_kzyL(f01>c zdM|btj^74}Y;ShO^6qR-9jJ;(+5&iUg@uu5G`aq)sAv8vpunLdh{8aLOw_<YS!?GJ zUeUU}ygWOIeQ@*(^ouT?)J+&KaVLuO6;jbI3h7uUAQ<K5_#C6;JIQJMRarqngkT97 zYLBaRjU<lN4!=uEpeLNe%1yvH+IbY$D-+x@R-T2I35$4;e^2*3I+Ys?S}+b5P@8Q& za@B}V{wle&5&Y<JoOgX<>gUN@O99hR&bJQvdUw^G10enJG+%-T-(s_nE=Y;%&rI~T zyQWww+RMF|(XPRARr&tLm;@T=oZetae=7ZiU#BDf`k6j3I5?W$a8kqM3p~1smw9b~ zRY(`^|0quI?>Wb?#;Sz&XsGOJH|2Y@rjx5svKfjA<3X%C=qOph51Rwkzbx!_ken*D znDGX=Wn`?HMQ2%sMr>n{{Bf0h`+&VqN2o4670n%Q50TMI@G=o!(1X5DUvHPP&n+gU z^UI?<5(Uy|rg-4qSB6VCd@pbI`=p#RU3Fp`XDC*W%i)f}PcBRN^`j_kXfewWbaEop zdT-r0E*XqPHK1P8b<SaduIXn8_uX1w&RkP}t4|W>8|*nFki4iO6s1R{#Dy`O)KDP0 zBT@Vnl}L3DV(q8Q0l6XxFj;caohYSTZJjamsTpSU28|-7GJKrK1nV>V2OTq4+(AN1 zpLVH_%gC~~@j@n&4nB5wGmhUjI*BBQKgqp_J(H-!uCI(wiqZVWj^5EROUgFPZpXyQ z$Nq?kU2zKBj)R%6sN%SU4s3&LqQcu#`a6R3*N<UW7l^gurat%F2J858A)*y(W15e= za(ALus@Hi6TX%0F<z?@B&ZFxZusX3QRjOptur;SDl-Aj_VGLtrM^A-lMI7<M)lIQ{ z$K9AClPON|v;o%5IMRzI)=RP26z1THzoY>lJSBKy6)($>{9r8}rEGUCl&&S9%n~>u zceheIMaIUBJdq^avu);B%SRE*E?%VV4q?NW0#gb#u{b7{O(@@o^Ir6&nrfX<5^;%u z8p;4(X|rwy)o1?R(X$s;;~7!|>LbWER<*Yv<A!8AdimuoRri(ZEASk<3`pGeCS$ax z25Mw5Ci)m;UQ@`pG(yh9X;Ywdujev)sR1<Z$1dF?BU$L9A+H61UVAN<Q|yCY5``LS zCO1zx`9GU5>zxUuwh8v>Md__~qaW<&DD)<=^OoVNC-H!Hd=q!6*sAI85KZJ?OS#tX zQd`Y02S2tTL0#f+mbHPrX7=5VP!mAFkrv4xD9@F)cIm{fD@D1*@+3R$nN92n*pCy| z(Jz+1xSRk;3>mAy+<523h`3v;cv0AZHQnXSVJ1DlZTd1pO5QNGY)VhycuDqCxr}@- zZw|<UL?YW?jgGpH(bUI*TAc*#?_=pgEtNqiv6LJZKj=G>MqU9E<xdo=$lgmefe(U< zNl-{uy7Y`O_Lv%V>^WWhM`X=LabZ4%e!1AC9r@35I>pCe;`qpzwz;V$FB)a(O%}%_ zJFYdQv}j+r#Fz)V?J0y1B>`pidy;~1B?62aHtH*g55Wd}@gj<AXk1Y^n=C~R{E32{ z`_iV7X`6~)aH)R)UrM=ZC@X$MlBbjYh9jru(ohsC4FoLrpNh`GY`Jp}Xj1K?Tc&D+ z$O#SH(<l2nKM+VP94D^?g%zJnQ_qPak~iY0EK?``==(}HOa1ks85mYCtbm;6r9Q!E z`40K?OLnX!N@_xIr9dcNj!TM9D>|D|G$F72$Ef6Li+94=(@uoUt`+hA4O*IZT;@)` zAU2O5t~omZ8m(k;O?`UHi9u3&*zPzeLP{t@aF}`SD^!ve4JX1Ycc%IrYKYVNm<gwA zjJx{Lsjk94-%)(;3A|DD58W_@ZM_ir+sag3F`#?HXdlIan9Q#R>vAQ=riGz{qj42w z97O}E;{Hwg@F2B38Vq=Jlym_AvXSnqXD`uHRlSMskfdJwrDAsP+D};_5{Zdh9@|W> z^^@G&1QkK(GoKsJl_@WA25rzLvw}hNriwxly(A_g0sg)$a|<zY52~LRe;uT#%ZnO_ zp0>~$J}aQk>5QWVExh_i&Sd@hTjaaHRYqHf&~y>pw6EzAom)U=Zp<U5tV3ZU#J2a% za2V5gJ!1U+v-IfU)WY{fE;p<U^eI`$^LSKGU4%V<vCu7zAYNmVA(6Ct4fLPAbEUou zckHmmf3u9bJJqL1mCcbP-MdK$UIRhs#TlJN32FO(d9UobZf)coi#s;-iek!zcWh0z z(~4IQt79Rm6<dXlH{dTBQ$fK#6GfscDsfMfr9e7i=_kVL9z5dDvxWngP@D)+Np`xD z-uE8QioD6Gg6#6{CKE_e^~-$gqM?iHLJT}0GM$bY9<-~M;-)FzyB<N|M?&|eI`{ND z{$l&7X|Ia1GxGE3MQB*!bM)U0O2LPXkROu48a%XM+>f^{f|uRt+Dt?;8Ojwg7~dCs zd_}`iGnfVL)zyDP?gTU^`*4H};9zED>$9D}9na(`^I4pf4QxnKbqW9aKcH#BPSY$C z*{UbLFc=iK=L&gDm0Z4eifg*xFZ(%Ga)YVw`$s+J+XB24B{~>R3a<Oyo-d@g-SIxT zgVt=_Z*N8|5ff3Xi2o0?{@i08FxO2;VS_Ex+4Lvv_V?#M!qj~m{kpv%&~EwM*q;&4 zp%Ov5<HHzb7e*-hfKTAySl`U=@*CZ*F!RsC6nsovDcGD!@bV2?F`e~faU~#3ZfIth z=x8$Soj=d=f3*%C$b;>Fzj&~$)D9@$*d&2U<9BWNInLO+GoFTP+V|Jmvi8yyT7UEi zR`i43vut{|Bi>Ze(iyqsQI(HwI^tqut=`s^<-Mb&CgQC21J1Kt`9u`>PT8Q3o7`Xg zt~NbyIrWqKzls8=$mfKh5k$UdmCI%Bw0%>^=m(;0#V#=+9W)i>x;~2}DJd+B;#3t0 zPnhFB@&f>Hcb?;cCy$+1#~YtF!aCLZuo(f;<WN^aCr&iV4oA9AJ6DlI=~*Ne|NRj# z%D;8X_%JGy3T~1tNm2Bkl-l<Fhu^TZ71_GM-sL>E+!Kk-sOvsVot`0JwZ8g21?~NL z*^vLEY4Q1lH8AnX#G4vb=oXG9_E$wJ3^?h!D`N>vlm@Q2{2>?eH5M32Y54z8om?{^ z;$&4_f~;ALB1+aG>^H;px3_D7j@9NM;<6rX5K3WepjcY+O#|Iek^HGWF|ZAnjUBsb z?&L?xTc=w4&fOE66;c1}Cuh}z#72w^+wNZ@WLfH}K{l3%5m7MnhMVKfQ}3o`IGwWY z)_}6LC7e_DtS6zs?zpbS<GK@F>CIwU`Guko?Mmp4h{W&xCM19Yh{CvFcbD*tB9%D# z8%pijXOu01LVb+;xcD*K(Uxjkz&9;ZBIW|L4?^)OpX-->YoN<dr^(km2?o3YvD<;C zAy=rvC90lv^pla1SjQ*~IrTuq?9zh1>NyU8oD3(%=s7BE$K<R_>f|1Wm-J+O8yhy7 z#|~7$-e~RXt=5r8H?aW`2edrWo3ULi27)S`mK>Y)Hj_#BRS?4{Zv)_f2MQ(aF~OkN zDE@w1xawt))NgObw5VxfNkRY%F5>B;4G!9S>lRuaQGbxN`IoZCM8JGE#COfUV1g)# zqA)3YyfLIo5oRd6X)}Ro-5yWGPwy2=G9#zl;i8`eM6hCLa@BKH`i*JDI8&ra=gP&2 zX;NSEZq+o<ng{Kw@rj7&%xEOv23}<A%ok-ujo<SX`BHak<=4u^V5N1HV_9c)m88`( z6Tyr2rNb<fEnKLSgkkC~?tG81wop-r%=PgJejOeQmRm}lu8VW02EvH`x<pLA*bDAL zk&*m8oR^M_km?Sz=bYmKW4gI!$3ZRa_m5X+Yq5jE@W`3w+UXG!*oL)Qb+8a+LJb{+ zVXh#RsiFCu+Y~DxTC+2f)@}*J2b)u*Hb6-?;`o~<<4ve{Jwl57n$BocY0qWyaQqIN zE-G>^GEWv|oSx_F%QxqQ?5Y~1BnX2ky{?SuNgcOse^!bm;ju?tQ|rk}Mmxht0YM%o zG6U1WdrMr;L;dojk^KY**Vk+1hWUY8)2iD{3ClfmaQD+bd>Mh6Nr*flNSvHJrIs5J z6Yk1ZAZ;Cz-0yGZQPs{mxC7v8BCcA-qbx*llx+&4N;i3O4Y<GMjEYoJpO?(#ZL0+a z%ke1{6+z6xW3eGinCT}SkI3-2u1#&?bE?~=++GXC?>VS3;S@6@nwiz*|C{(rUUXX> zF%HB00o}*sP&UyXF0s$Pu5@MjydlQMtHf@6aTk}X8HGkrA>1^pZ=gqKexb?a{Y$yK z&nB6Z`^>x@e){%T-5eOjMt}b<{_PF+?*(BAfJ|O>hpc-XX<RG9YJ@t~U0#qRQz<Qh zd2ZbaCJakY0<D3X+z?#xNDZ3f%;XNh%PLDcBnz)6_8(tgJCTL;LKzxBkVqKzq$(bQ z1p-`!UqMChKE|>r#8Wsk8oO{`*Kc{R1x7jjvQ-MDnbq2l&>rY*sTYFkjl4jD<}C~2 zOE9tQad6Ii2;zpesFll?W@OFbH9aOtr$}+&T|h<!?X$X{!OzKO4LZz;+*9+IAXiU# zx1CJQR9grjZ<gp_+1l7x?FxYIOlK+gJaX`<HjN}kU^fS$Gqvp-8-cD&M{8;%#=HEM zk{R;d+m+~$^I%(q@58%u3&Nz}`^6^qQkSxQgN9|6yW4Y(JD(PK*@DmfplZ8m)W?g8 zPi_+d`7@jH&2q@=txWXfb<K!&JXgv$eT#}OPlUBHmgMh$b2kTmQaI@I8L-Xm$Z9)7 z=h4-w%()%XqJvG<G&BvfIU`Zvw{WvmgU*ZjRB&R;x{D!8v9z(HK3WWQ4JALtL=Cu7 za$ADD@Q7jQP1)px8l?2<{ZP+ZFD*P2A!BTm$(T@bp<R)HTWb8;G;+!2g*R^D%DS%6 z#GQ`~K8AwX0I#{0^3a*fpjTMU7v!oGFtd`M_CjCUmxiOECr9sL9nOWIYTuxb+9WBE zY)zI~=1L~dk;*RJ)l7jAhZa97uQl{bUaF$zrzUoM!Vg)wutBYeVk!p9FbN*?4H}|` zA7M^T8x&R>V87n6WhJ{`;2>7))=JL=(rq76({@mIq%%{gj_;}+(T;^hRp(zbPf{o1 zX8kT{Gt!r{?I}8Q1;grq#@K%eRO-Y}F;lQUQpI{%>T^A#WLLC!`%r0RWwvI12u9V% z0<huXj7&tcmY#;Nin^}*!`Rt+ppoqR$0to=ZE43vJ_CZvit3sY4uTPs@Vekjt1RHl z{Fc!3AgkrZLTknEKpx1WB06aMU+CKBCx8TmbzT=5^-MC6nzXoB@R817^&aL1y{gu} zRA3QAG56JT37pp5Wa9dI9uX?>gY>|1nuH)|=Yvk1pE`u^`JdgPpU?5xzO$XIM~bE$ z=2*<o*QOl>P!lLAB-?t?JT6zek2|8%i;B9OH7(Hx@mbUUJANFPhX26LRQL_@5~vkz zaN1J3^M(J*)dp~K#kDQsHym9euZ|;B+z+t6130KF;!b_@D|Tp_vj*iiV`iY4Hq+3f z@CVn5_RD||ohI_Uq=K)}K@SdD$r}5=y?V5W?caLP0wl7<ewV{1`o8z`Va$Zhy*Crh z=t={L*lF)0)_<G(^^kX-&U=;XcT5$fcaf%};d;M0a67iPc%Gv#`dycDSFLqKR?hNA zLss4t$K?BWx}Zc4&f$g67q|H!_<gF~3lV_r>#n$Ve2^JPzB$m>R`1LZ61L1OuPFiz z$ipbm;lbBJT+%z_HH!h`hOVJNul^?IS$m^d<|V%%ke*tnfK6MD0aG2L9&Ra>{oikf zUzI9qy14~~Em=}R5=>5nrLr*9*)2x8$wW#T+Qg){P~l1QM7wOEH31uX{;s5x%U2W^ zCGfEp{el^iW0>F}ui<=?t+BN$zL2ZU*Dn=SvPBdM+7vS0*3j66XwBN%f0jn0WQ(OF zAvPM&7izKTuO~%edU4;O7UFmmLb%VfLi{5!?2HtlU84fnWKL&I7?ghe+<ibcY`;AF zoQy&|ncG^Fro*C8M=vk?o%CBO=bu#0L^K`tJY2nAMzmc<oiip1KJ;o5203+iw>%6n zrpn&8ETv`g%!xVC3@gCXmkj`*&i#yK*>zi9^^<J+z=7YTU#aJLUQwUT5urunr)!P$ zzQtzax~>JaVdsL-<9nst1sU7$57bl-C^J;5Mrq^>n1(otOs`m;k~>z$c3alK4M2nA z5`)R>nzL3bSN+S{Ng_UMti;<-ihsW=az&EM{2J{u*puZ}k5NrO2(nF$rM)KZA%9`W z@IuQkYa>zRewZ}R3KOUZ-B4Y&-HG&kY+c<|z6FgouLNaO)`H09<=XmY)R_?BiAF8i zPSuRKFCYxUAe<Auu^{DnTWS65r)_#}Lj~Ke52fFCNk#e(Z@l$-5J%K(UK8w^n(DI{ zGDQO+aC6+S2JZ0Wj*C-oub)?saM9o+@sw;lXUm((lEbYyoDHx-+=guY{dr}Zc#4L5 zY=^>d>?#rr_6y}~g=O~BcZm_8=H+tYW>jF3SQO|v^wYmv6$bmvivdhYS$kgvcmw`j z;Van$YF5}wL*&hY8Ey0^tptK8F_l!l=T5{&K@4e{v%;o<C3B|+UkMBQ@W`o7rm*mG z?!07b0)h^JoUM_O?t$;oFqsu6OP-HjivwY8)z%a)i)e22uj#I3f*w%JC_i8x$-zQA z|0^t%KbNzIIDC|Ks)Id;D^;>LzLIrfLrzC9#Hjm6JMIu9)()@Qz~+`H$IMt4fX#|{ z+Kk~0H;_0J##6iI4~_mPV{*`Uoam}bS@GU$YuPj*T}ZjK+N}{);0v5SHcjG>daG?N zpGT|Ab*=H(6(c2Mia0G2$Z@17DWn4%)J>8+Q{RoY^haSzhkbXUYPm8a21bd&yr5M* zUlROTO2Kp1iBKgS_Kc~+zoeOwT*6zS;COB_Vexf$^l^_rkTFin(v072c5ZO(QV`r{ zNlncDh0(AG9qBE*Yz>zYUsSEvg+9i)bi8UJA(hG5YFH7Y&Zd7|z>uR4pkAPZO2Z0s zLY%|^v&AjY8V0K^R2VIA`p1?VIBC}C4a^d0WKM=*66EJ<KYo<9-RC6Rx%{GWl5fzD zOu<TVJe;)=N=ge&`F?b^E9B&4$D)l5Z=;MqOUo)6*^vd6D;((LdS!D~)7^A&Y4(w} zb$;=$v{Q6g%pt)`K#}Hbw=E()>=E0Psc9Lm(6fb?oNHb#?B4{G@<a1f#_HIq?v!nR zm5xF7zxwbAXREh2jgq8OqOI_n?v@rGiyJ<B+0bNZhXBTcPnZ6D!J~1K4F-!p&?EPB z;bL-8STu1%m~$=n+-V=@J~|@rXzY^~b>-<GV!>az?5W56jrd?|+a@CR?DWfbW?SIi z9oJOecN~(mi0^UTLbtK5>YPCkY4@S=k$kL(CK*7A8G?%60J6`LvSx1zaPNcT#_or1 zTF-=T&n>r0&kODQV7lvJG~<pkpA~+uhYJvBW_PVT-(L}#*sO(VPWsCigB~hv3YNYj zFXn{K#|x>>`^m(BfI&{m`IeRuVuC7<THHWy!ER=dnee-^RB@Cn<=b`0fRdJEZ#{qb zp!(};GTfwUKi{VJ5s<omj)2MBCxvog2U&*}!`EOjUrC)f)^d-$baPZX?fmMb!%<XW zvTY;>o4xK@ju}sm8oZz7w6rV`5m{HOWBaZk2Fn+!;N%M7<$*wQD2a^%v*8vL6aCIy zWB*RLaHeDBs)N%b$8Y~%3y@1oDk*3CGl`Cgi9AulB8FqLS;A~DK_|;U&t%+oJCI>% zo~;1RkSDLjEmcA;hAepFc6x}vGmY&MRWYSS4o<1hIxnb_$uZ*kikAgO|D0s_hh?lN zK(SVVC5*q&Vy_dZ;L@+V8h)SOkBdgxW*-_94y?ZRE3o=O#xTfKbc7|dGC&GE9qot1 z^rKSmvfQ@1{Jg5A2n#KxRxs?k$`2aar?j0j!WM@Q$5;;&(>vDEkfUF20yMnGG8?%~ zun$Q<-$aHVP`pd4;IFYB1zAb4-z&zVrK$FE(Ilg<&r2k$2vRNTgH@{%xU~KVW;j;g zQ!q-QTT*&Lj8;)sB|Kk~pf^ANaEN%n;7?`fg&vRP90{k6lZ8w3IUUx>?9!v=3KrTz z%rWcxA`OccQe%x<rK!<L(OJD%7-nAANCYiBoB!jei@#>w`NTH`9Y)S+1Yf~0X9B}| zUErfqdLXNQ@RVqQ6@CdyH0bM;OxTzN44HFk!%37hmVX?<@`Q3e4+TV85>CODD)(_4 zcVV|wMb+6a+EGvvbS2jKh?;yqsrw&MYoY4pvI2yh*l@mHohZZbGpzMg#?T*R2YmE* zsZHkZe}Bg<5?TxWB8bBnar!ePMZvyE9ayM4f-o=SOySAO2Wf8zH@o*|)<kyt8OI`3 z`+U76_9nT!h-rForxRb7Ps)PFV6`WDch5e4{LU65D$6zEk>J-?o82UOW%v6me=srd zy7F|}eHEDQe+lCL-_U|#tIGi=@YC<I{fVUKEf;9MH-GnWhPqt?kwh=e<?zB2x$9Y{ zK8ZUrr&pqZ78{Yc-j*>V;)2rH1O5*1-8v{>mh|~i6;{8?jOHZ2DFG8#iIRkKU~U0H zRi1-BJK7D4I?@nb#tr#v&4N`!wBD2i6uV*z)j>(rNQvmp<CZwVmc+ijI88RQ#rubU zK#%CRej%Oi`jACcK6G7p3-y@2mpa?o9FCy?BHzCyz<ukbhNG!$!ECu93WDZ$O>9cr zB^`-^REi@yi9|FB#Qj7xg|IKfk8xB0kynhU-wbi4Y?=C)I7vUk;P=R{)ubRD+=MZe z2x5^mRbqlM2uADmdaJYl>4ouEr|M-)?YeNpERZy(vhUCLg;>2n{K@$@C$VQmRHQB` zSurO@V>z<j0987oYKL?+YLWJNNO>3Z{SGPtiH019arEBVMxCJ|YS>Erle&qFELCf$ z7$=-(Ch?716dEU#ULisFg-5I)jE4W$582QY*2EyP)ITC04Q4lW3BE&W1(I}ya(*OR zTe*4*V+`R^z7Vt*NpKr<_C_L~&maD)b(XBGRYs#vF21aZYIudQ&Ao0=P!KDjRh3aP z)eR#%H&_$Xi>6c0VDx&DFm6*%$pcq@ezP(l?T;1<^K|mY(*r+zgIIP~`uPf-|Iz2C z*YhCpEdI|RGo$+bE>xct<sFG)rCUmnCGiIp5z1>i^vWUen?Z)JdZDtD!`Y#I)kae; zWmz*?%<5{|BX*RAj9BuF7!^Z3v-r)p53`YV;)IR5oy9zw1`bin%5mT9@}tWLuNG#^ zI<$-U+>P(dIa({1ck>b)`?(f3L9DTuW&sp*wpuYAP4d?(=w_VTw5?oX;;9@hRW1ig z4+I_ax1>WlE7e56%eq@XyC*ew-nHCMSDXGLT+W9QOE)L+$wXPSidyM#>dO3p=zigg zU<%<3C~O&MS(WC#Q&K7oZRL_4k@9NP3+}&$uQ;I^8It?f+?{|6^Ov(qd&iAo_$$2u zK<^zgI8$L(<c$M7wFSQenwf699IMVeL5VhoI$&G)mAQy}3?*d-uVz>HVfmA#IyM#T zTF?2s1>EYJ{(NUQ7+JcWHVhi)UkS|qd^>p4@2QDJ;*szLyA2(Jeqg`7oSzUdd!9o4 z^q!ze_1ODj$rzxR3YS;-%a*58@_YSej{Cn%A<(lXQdy(O-Q`C7V=b~Bu3X8EDZ|C} zn5C-w<!N~~JneP-Zrl{224h}eaV+cSUx1acW$w7cblD>bC7yOfC96>8*-m@LLHUv< zVd83r7=TlG%ZRS%ezf4v@K=c1_Th$y4StVxU+|3w6VfdV8Ri_L#}(EmoivO&cST2J zb@`)uZ909M_nA_FN?Hp4$?|2^l<4YYr}Wb_(-Jo)0R8J#nk4XY3tJSXC;?;?9jo#7 zxG|UX9%8WleDZf?L3i!WZy^OJMF1rs-$Z+QF?)!ExR*^lWg~m@K2cq@)sPGPIQRFn zK9cGA=#9r41&P2|QJxJYxHE=+KB&FMI8)}jk9Cmbou!Vy$sCX8Y;L53%(x6kmg)hn zydS4s0ZS6EI-4KFuBbQ<1FF~E`Fi3B{<6o;e*LC!+XXli=QPsh#tN3wdF&O5D?I08 zhOrZDqQ{(i;~_h;1e3dKLL70UW(=Ba1{kPOj80fQ8u)(n?g*E&ldbPLh*Jm-V|*|- zbuY+K*Gm|{3;JF0L`T`f%gvt7Ncrj5c1P~-kwv@3s5Mh0PDF=2tS@HyyI({1F!U76 z=n-kp_8yS41}D~qQc}kkmbT;6%-Ts@Y!WsXXw2%$v$NbE4mn~j()UtC-NB)aII^`G zBntLHK4-Ij_w%DK4}ra<9W4=xEbVCIT;p2NwLuqWM!q-L=c{XZnEY>VhpHCPKdYjP zCGlRH*#sdg?qXmv!1LHq)Y!7hj)yU%Lg}KQ!~B=m^4g+e*I-A`X=K;i;^%nv6Kiqz z?899iloQr{u}5#_6DFI{9t&T=mXZuLmjQj!8WRo3Y$tKWu4LI)<3-hJQ>43siTHya zreR$)9JdYtdM@W7z+?7q&UubIXuG)VoCkZ(7hb8)FYd_NssiF9E*4MipNG2v^;YBT zT-;pG?&|~bnX9D3BG42-IPaxpVJ{o%_1WZ`N!s+g>CQZ|gMpzDf-Fp%li~=bsD3#Z z7FJwcg)p~|mdHoG1zEc>3SZAR6B{L`v2OYVr_H6|=Lm-Zg5>q@Xq_Dk0XJoxYi-V` z2s_NhvG4|mvV1H4efa~VtwMpvf}ZJyeWS;=2|5-fs-S0I5nZMFd?Uo7v6qI~_nViu zV2&cW*YMf5;h7C{&kT=KR=g{XQLu}^o#)DRoH}9XPN2wOt3U*`|F>69kC8(T4s`tS zs>7McJWB^h#4CXpI<PZs>gLV0r_keV7Ln_Dd{ARsIxlD<9r*p6{;|6=Z^T=;;WwGI z9R7Q8=*cSTC!8p<GL@6MspfRHA>a^4FE=K1+^~DfW(GVpMY>FH6u>Q6h<Hhy^=AJp zdtB0K4=^&OHUxO%G#P9LZ0*o~y2KCyKbc754%ibWBvg99O~>>b1Zx$ce`@`lu(KJa zk!U70M<0Q=hT9*rg?snegYwbFxm!(KT1Qkxa8}YTLrObGaoNV3E)2C>(5!;NkAOB6 zhVWY<(O=6(g+lQ?TmERWv$8S+C9iLu&URd(-GNdJ3<!i4pZ7?r%Gy79eg%@&+dN$g z+d-wKYH#{%5DR^7A}ZzZeQ%r<iP>=J%%#l_$l{#+Mhn=w@x)=t0h%$|e3zCc+>urH zVzUat4l;fAdO3-Piv;&9kD4rP>MA{hcSK$o03z>Pq8)EfIiCCTU7rKV8QjhAgt4Vl zD75)g%KPT#M;X7}x)7?lAef0@8d2<5Xfjp6c&}u^zG*><0)4-puGt-t39(R^#Lt?T zl^N`gfPGJ`>E-3EZm2(qeL^x@YRkeSatr~2+g|gt%^hbJ?Ty_Ld1oW_oh=QkCOe5o zC&=b;9!>*OA_h*T<TKww{4aaswP>cnsXvk`GOw20_e2IHex#ji{rC6f_P>?UQb%&m z=zh7{afydMyR;Fh9vjX8QCoCqZYo;DC&^vGISGH{z)h~eOfKYR?BH;jLaeU3Z?Lqp zuEWWBy_3s-hM+&+>nH7N8tUCV5ejhzcII&|2SNffr`)rURNmncuLBCrF%lnbi7x$Y zm~ZNa;XMuPoT~^e2t=<rk$^L|Rr;knxKwd`83A||lY24qYWP0EE~swu?X$uiZ;^5R z-)p`qB7mh<>w@1R9)ELBE?@56?Yxt&zj9~|6&c+%8`}M<B}b3(oFz5gucG$!=(1dA z%&|PukH1a9Zc*QSM*Nz0vge0j#s6^@;_?LS#j){j442i^6ea|CHTcd@5h2I-wngCT zx=MFOk96>PmNjwMj`$Ls{Z3qeU|wUOokSpiyo*o#MJh51&gKGZaQI)iI{0<>pY88J z#5*A+_38uA&M(@mMolg1>qL+03lG(QVE_8zy}*`PeVzgHTp{+M@-)Enff|O!nVl*` zO%DsBR|!Yrx8Gh95`WYRWqh5lDJplyC6MF#leoFaFI89m3R5RR4kU=vxkid);}-~4 z8p(hY6cF(9UOW4<ysWORJ?uFvI_sVP&ez-a!P4TgHB)-k5p6x0XK5rkO<q=t^*glb z)Mg>Jwsu!DJ$FoY+Yh1_Xv6;`)RF?u5{lxCGwnMO@nX@;s)XY>&1%EXjwA)fEvky- zN&Rv=VXq=ZCWt9F)t^M}eA<6CB0`Z(&?pcpt^n@lUhS^FG`_4|<qddp@3id^Fi6-; zJc8Ykn!F%Q-{y_AbVm3A<L5c@-~=Kw!w^T2=b)gV4dZ~fGSb`rN)}s-NvIvOO1-9C zIf(8N$p%Y+AYjvz_28ew%QN?ig<(<^;9A<~q)jfEr!zaQ<aoM8Ma7s8(o!-6kk1#n z1Q4C%y$T3XHS*x7<~9$>!=~YxNf~#CS8A#GK_UOT%!+xQ-g<~N*dAS#J#qtelMp*c zVs<xrlzsZ|>LBGs^JCXAd^t&qN`k_o%9GINsiCnlUSZN=JH@@HSf;Q}`MS9m9xjDQ zStQZ8&eFKOJ8~4f2K0!w=xHQ^8-mYs?W4DSh>rX&E@_swTyf7(md}&H%+T6Vc%6bB zft9~{gAp^>3-cVeJy`(4??|+yg7N;OK~cl9O8fW2o^9vnmWi(y$@9iv(wN<i!_VwZ z#Rcx+s8XfoIlwaUPC@mFgB_Q^1XGcBgp<4=q)HwqNkg2Q^p(W()4k1P+}jG&JXx$L z9O+@(lyEyfDN`T@^I`r`wH<OzIi6e@c(3wCCftCz#Lm?gOI+bll(W{RM!#3zGF7}M z9JN&4?+tl0sR~KIevrPWsqdm$FDxUSUr=ZmUc9wWKdozeHD5>|+U0O1Zntb<Wf3)o zLdta-eeTN51)-3<m)J(T@r4}lt+ouOF&oO4YX%&yJM!I*QTiTdo~$(jSP6FmlHHMG zP#}eeHJqnhH5h^Oi*2iV=-G?7v&X`=tjFUk%Xj&ocVE&2j(gi~Bu{R7?&4wbQ~Z{w zFqXQm*S~>_ES!D|5g`{T_+l&~VSkF9w*go<g)BQsD2RjsY4e-?3Fh;E=La2(GldjZ z7`_bTKeWTz{x(rQ9~EQz1-;13=ySyH(byD<D~gXH-1IZnSRKqvZ@!9x<IZLHUw^&) z@4@cNB*TyiPH*BdF>R0TKP0>AxR$_~&Ua<vm5w#)lN|9r#MpZj?Ge+RC@!OL!s5M1 z{1N&5?@i_C7&iT8DPOoRa>j6gURFs8US94^Hn+KNfj~CQ*F8{BmDO;12yE1_q~*3B zGCm}kHm+yF1(l2M88U(ap}JnRx;%Ul-!svvDv;%#ik?=pBQB{NVjr72f<Q+F5N!z& zHWpUOV~Z>20o=yW>UeCG(y|rPf0cN{|MQU{_W7ZJl~*@iAu05YINP5T+~Lj*q!0!E z^{Z*W$7;DEE}%VfzZsYHc*;*}@ReC)tNedtePvi2!M1HeAZT!RclY4#GPt|DGdKzE z?rwuiaEA~qxVr{-7~FYt&b{ybdGoKno~iDt?w+-3)!u6_<Gx=TdoDvww5{4gR6nsr zm&mYdQ8bNIcp-N%yuR;@ONn3~QLk@ayrDNT&3I-IWj6`KzkHm;U$KYyh)KvK#H&HE z$Z*u$nm5m@4)zx^t}kDv+|Ig={hp&Z+Fsp+OG>FHEpUj3v8+gjnR+34&e^LvtljXx zP}bJr!x<qvWui$dJKSdBUqxwup4udh#N<cdHUVBA)8k#{1mkDaF|6+QG*|gx+Yb8< zpM*(zQ~q6lIFnvkx9e{6B9px&l(W4IlG(KbmmG&kIJV|D`;2e}2aWXz@MXuw@$3zH z7vhK65Ftj*VZ<H+18{PU8Lw=!DfIvZ29>@Lc#M@UZ$zW#S>b}_Qb;!ID8p9&jwB)q zfuNAa!ABq3YEbWE-le{a(3G%_Rbj$vUkc`QPKz`4FbSB>vE#v|=k8{!-q#6-NB>P} z>%Js|&7YoU>z#j+&+-0qMFPG(8d>f*Zdnd?J7uou0lTz}{kh9S|CI9}j1{UTa~5x& zI$TWzt)!eRAKweF<EFbBqSZ3eq8P=ST$ZkNTqaLCjGJX+w*w8smUce}OP2(FE;V)} zYY!-tVauN`nL48hWp!zOFW^95Xq&b7lq=nv7VV%AM-x0wu!c5kNt#K<YHUY|h4#1( z8ov3>K=5=N%u*j<MMENF#@r%21HBEO{jKxGdv9>*>9@B$+!!lRxF;vvP<O&3J#XMF zjlKz0Tpt}a=+Dlka8C$&)Mm_BrB<uUVZNcodkQskz%XZ1m{D(Ao?2Ya(EN~G2*BRv z)T)0Hx##*PM}6q<v9!52ctY^?kR{)Aall32_nmECV%+VLNPYcbfI-0#Z&)YV@_Ids z+o!XWH*iFN+tH!8y&`d_5)!4}4B0nx*-Tn_eeAJ%oDQX#$-VV6Bn*HuM+%hv>&pra ziDMVw&!Eoqj0_teVXNRIJKsS#mgbOcnw(wZ|4}2*pgFHxZ?c0N`jrYs^xvrn_qW__ z*qv1IUomzO!++ZH!cXa>_$>69UH?(&POqvD_bc}fg@oDGwjW6hadE5VM(iFTo%;vj z80wAffhPp+|3FN}bN}fbRzp!$g@oVu3ga@8x#%YY&!#w7V8pDSlVnA<<$l({EE#xy z<tS4)(25rrMtKMC`tAD)|I3-1Dx7Wzc*LUmsfxef9<E^{K#7o~KHcp`bHmb&8uUr0 z5S&s3d45HvyN+lLU;53KYen>+$T0JEe=Nd@)|US(6lb;1lA#=LbMb)KiF4Q;C}`H` zP7pYCef~YL2-bgyjCXsoNN2UVeiWDe-GgZ(T$boG0msgIF5b+{JIOe1>fpEkvw4CF zzoiZQ<uExy>#E;K;J2g|BZPiSHBC3oYt=j6a6c#MRPNpf;AwvP_e=8Qw{cv}O?rkA zBNe!0;@U&c>!IByrJTF0qbVF6JsdTj$zTj3V@wKy%Y)Y0#0x`35Lq4q9OyFn>QgH) z^rG=w-$H%p3hQ5uWv|r8;GE&yKB5WQPDi*1Il2=+OV6&Pv-?$u?quRJA#OIC^Cf57 zwmtP&;mPp%J<kqOvxLW&r8$|8Bywb~XiIJt4Bz1}?W9Q?9j3h)ZLg8=BkEz(G{Hoz z)Wq7aXCD|j2BPm<em{=Tto<IyM)p~71Zi!}w_HfbbVr7h(btVfdLko&iHOm{<X^qB z4~1}GdH#mK&7=W)de#9ha!~&I2NI+R$m@MOmlyj$UB0f8%%7r_<mCkp84J#!-^DbU z<doZgb}fIsP8hsi@l5^ldgkr@TTBXf^nS`*bhQ*o+5jN4uBfBTl$+tt05PLU+e~z{ zDEaV|t}HGpX&EK;#UTEJ6MmbRdp%HQNgg-<YspogFlZ(0{yEx`JF~-lum3sRD&I=j z&EI_rRpK*#yB1#j?jB}Ie<RX?s{vWYw7xQM>XR;=r82=(@Kh}XB1y)u4)X?x0=*)K zjn;n8a%DfZP6cM{;wVUNKT~}VgH+#ZV-h^u0u7+U(<!`Sz0_hjeN%8O%Yzsl*ZTtl zc+Fj||KPozesqRAz2EY1F7Y&24?z<8_<kY-#t-TVap@(PUtaz-`4QveWS1?s`|~q3 zTJBYoqh~Z6(N0ry+%~~T&n@&|&}54Znf>_fAqcQ_2V230P!l4PfkGFfa`}NX3k&^~ zsZ{`7HnSmjp_hlHoA(DJQAT{S%jaEZR5Mz1>fiSV{KTMo=01%>lKfMK3_g6t?NbEm z(290Tgc)70o)P`ol?~}F5p-p`4j)*EU3^=No&8>Ws$QG%$oSjYtAY_0n3W$0M5jDl zrTJOlj<#y*XZB^QV?Uq=yn+JIA`*v3Y#N;9T6;P{x!g}q&;64ltLXJda6s-tw7??H ziCy~^$<k(RuAidLacBQqXC_Ba+Emvm(d$lq>e>37BI_SwZuIy((QpUf7j0h9&nZI> z>aC~2;_CJJ(LXk^+N<JZ$9R7MXcOBeWFy<CmaO|fkSKoDJ72-Y(sog1ao|iGDAzez z%*04B^P6C+Wmkz3q%Y6%bpACrFb&AV3^mp}B$c=1d`uH;lsG>*qoFVh(O680!%SM@ z_DCA_(RaI;ffPBTX?+8833>hlGa58T#`SP^2jel?9O&u+qdFvVeo?hQ7g70v4_=Oy z#ieA6X2pLeB&C==$_G)))bSM7BgYymE90nTW4yjcTKN4t@SPwF&LLW8v*vN!l=LN+ zT233F;7+DiCMD*kNrLJ;d+)dW;_ZDjfBa8SLsKG=wjplpUxN&Eoa|3yF*Cv7W6`g( zHq_jUH?Iw;gup@JA3vhX54wPa{Z^ZSLdn^c^-aNlr1s3q@E6H3v0s>)TyPL;U{nFd z6+U(*pA%(5dVZ=qV!Vw<IWX!qVokZhN&k60i3I5fJd?lQEpF}7r6&OV?%!}!vA#W( znWLZ}xRHD3!G=h6fEWqUVdz#ik;MQU7VM~mOjzSW4@j1Iz>di7h~e^lfzbEd&Wfys zs2YW(yi;-nk7V($#iY$KPNr|qiq=dr)M^U0L{o=Ok4Pl1zh58<^IwuTrul0Wl%U<x z$Wgf-w-<2*+uYy$aXF^;axk*1LAz%M#KlP8_=r1wh&GqoQ?X8gSJzQ@T^*i?c@R;N zFLC!kk&8`!6{;|kr#p2x&p-1fZQRm2Dnx+mPQ#_+Imz5WQRc*-xVzCeL5t_&Amhoc z?P*i^Ix+D5GfBsh`AH>%PKOUhUA1;U7fybkGz<R%pz=Xu02zmpSuR7uyRN4`HecWt z!CxmC?z#&GqwV_4tOCi7np?fW{hT}Heku+=vZevD{wMZwgjf~)7-52^=3c6A?#>UL z!)GglVp7T$j=cQ1pwhJ8l=QdAX}JjSbiZ|d3mrC*#h{_Q1wcqj!OxTOf{NOt$#+Z) zd^<n8w4pg{<(l;nbnG?$uR6RQIV*`BI!QWzZAT^ryU#984pHjtDbX5S8j$~G)N?cG zHD;<|Pm+ho8<0myIghSew%BitT=XF29VWUPt64=U@X5-HV_6S2r0Su0<}By|!KY<f z*Y9(216b&K?M~^u8*C{NBG)Y~^JZi#Ya8)2oMp^e{jrywKdMgwkbISjmaKy?di>!9 zRW&p+`=8j{V!9!W!&~{GtQBksjfWY@DPcfF<i(>`6tYpA{hvXYd;C?k5oWTAe0l+q zS*AYU2pu%Qto7D0KYua~Ph=0}ZapDwYy?Y)la(rE{tj8ieUx5HWlghFBN?}63Twp~ z==loc7~Bg@zam4B7;}mq9rjrmYy2PHk1t{f7(TNbPO~>927TQR!lT)~NdxxT2diI8 zx#2y}&#Cbn;MP<sP0_XFg@>?^%UIc9F+glhgw!eJr00R3*XzNGS$Z_+RW;Ob*WX;x zv`57dQI-~Symw;<P6*&;-DJo9jAV=o!tyMp@qBMuRLEry^*H5L)k)pH6auRVJv=F^ zXc4K$Jp82*Veo7D!gRYot#Y)<-rIW`W7c+vqI^?d_r^m*$Q2FA%R`IS_8JwZbJmyS z+ht8qm|GM6n^$Yd*Wr77CYuB%ByX7*mu2$XYiMkHOo3_QUP7P6Ut*~uyW%}0lD_(5 zr+LBJ-8rSC%u!)M=pRgX@9BX-qSZKcW06`~RTjQV`?}Goyt^rFxLxW?{H36$H0t99 zc)5E<)rd9=^$)jdGGLf7qLbe25&4r^-}(R@5kHV!jV5;3MPE&UgZ}N4Wd@H8A<(L! z>A@lcU}Iu~LuFrt?f3Y)`v|@?G6x=hx?5Oa%vt#%vI~!h7%tg3bQ4(17h0xeZ*saR zG(=UT?>#CIm(8^aEv{C5tY=)@W<KH`@VH&I{`M#*<oulIl{R>-*s0xGlRN4aVx?)n z*A<!^sm*HTiV@GGHw<>8X{agAfBzXE<n`|I`Uu&w-2hd@XCXB?<i6#!dvQZ4(&C#K z8bImU+S2cyEw72IdE_jmI~6txkF1X<YI|l_I9+V_9Byups^KIkl(v6_Hs?6+VU}_Y zTuE4K*H*H<f=Cl|F|r8~O=OjqKDA&&<P8WL%2ecETWK;wvEyzv(MtmSrN)QHh|dr! z#!5s@l!<VrRG_p+LtN4JgrkF5sV-`v&#EJ%W@3~#9r1&wK3*bkq>^DUN*lQ&J-7W6 zS4S8jF!%>p_SxJZ-ko07KQ?iyStC_DjWYRLN`iQN*WQxMIh(f_M=oTAXj=(MQD&-0 z5tqIs^))gIx60NQER6Z4^tF_Xu0HgB__vrY`dU&5Q#3$k$DAuN3NA8=wq7PfLO_n! z-V8oDO*Bfx0Kq)6u)H@g!NtP^X`=9M@!XIRK2jp*VlzMl4O#a6G+*f7k~W82LFn~Z z>*HvF(>eZ0;!oG5EB{0%Et#K02+0a%KcmFw-vO8)(tTIwJ@hLWDpVxj<~p6JJ+pXG zJ?@sWs~~erU2*}~b3U1|Qj0~Tq6Lki8c32J8qLPqA&pAP3u8fPt@$=Z8Wl7h9$%}Y z(=M1MZ)Y5mJPykf7++Z_cT!okyp-xmO5$n~{Ue`#W1646_#j%$Hc%{cccU4;PZ=rx z%iRBs1?YK(f8S3t0*^O%2-MpPKF#Yt*^vH_kc>I#pg&M_vappGj6PJh>Km7x*U~b5 zx{yzXn?$j^x3ieYULRi{naCLU2}!m<_(Y~H;KUcV_<B*F{`3fmA8NqVW$^hr+g2;? zX7Eibry2L>Z?&KsCEhH(OW%}mL+y#Y&CianlOL+75v*pW6l%juGwMdt1|E=bEncj8 z+8G(RHTH$y1}N;uoHtfV1)v_+{Ca#B#*uLP1Ba9Y|7EecoL?i2jrU*5O;pvWq!sKe zrS%}3Ob_uaBn!To?fo)*N`lV8RuM~kl@lFtFtMh2+|HpOkkx_RP&x>M>d{+R3R|}i zYj`Sm;JL-|BGBba_L^_z0$-dk^TzKsiIAz@OZ}d}C5rWzTU*Gh<Tt6!8f%r_JMs{4 z1C`%n&6eg!iXThnFws=Xht5XOGz5lt>=#I4DJ>S3wttmp$U3R=0<UP~_%5uxUXSc| zwOjpYjL-U0mv1n5nQx@%??45XiCECP54t{5<}1LE+WzKC*dP5fwYtqK!7oP6+5d_T zn5-gnuVEUU-MM$5DB|n=m!_YAWQX(vp$Fq#zb+yyL#QyX+g}zl>f?PMW8HnKSX-67 zwl>O(GG-BfiQ}TGdN*mra>UXgWwb1vYlp`xpjYN1fp^fq=-cN+{%;JQ$e?GT^um5Q z{9-~}Yxrd^E0fjF(Lz=4FwG}HE%+PQ<Ni&0Dno?RUQGjyB3m&%SJKc-UqhVg^j9wh zTHB97h_C4S(<1_8y$`EhZvtz*G>_8Qug$GJ`zNiGIrsK79D&SL2W~*fkqTuAgBAo> z?Y|Qs9JUvsFEX*M+TmQ(_|I!8J&`p4KRjMs!5)K})pE~lsca(}OrncMFGHzw!kdEq zQ4$h5pOv;Mr&+fZRYujqj4PQNuYpu;8p<Xk1>_{OF-9Oi)NlB?pt9$!h&vYbl>Qs# znU!4==2aTdqleK<r4fnXd3kQ)Xjju~!>uV;Tml2LJeDfh!3!h%h*)>kZx-@NIqPeP zrhDtTiSsb?#rqi!uKku`Lvgmc6;5z>cUuLgm`ws|MP;F*D#JoDHLK&S#A;eykPLKF zXi}ds%4vF+a_b|VDfV>Qfy?XB!KKSeCo>s-{OrntS_`rx`W0Ic$PO0^<`1P;RKef9 z`5}aW*LV^uD=ieg)=To_yI&=c03)>cu!<<@iYhtO=rFiYXgFCTWnqtI_z(D4hP~f) ze&sU6hUTKSgX<%A`kq6k0bWzd>pmZI5@)P&h|O5sR?K;m>B3;cWG;=&0`TH9?}y7S zZ2R-X#=7T+nZVnLZpYVINZ>{==ycUJNaO3<sqt`mtT54_&hXT(^oO%YVp=-Xv&ZpR z3XMRKjFA7ata<V=RHKtg=O~UNY|-!@Zo`!;-i~~z$Uic8#KGZ70}%`I$>OoaMn65+ z-6{&dlO!N(x6<_jO8&^K$Jz|-j>$xNEpKQxu~#C&$CkK)lOy?lhyC(OUl-VemeHOt zE=zUlu>%@EV?)0$X2`Y)b=<*WXR#;!aj<yo*BP8kjhE+wCA~eb>50Vi3uGtw92?(` zf%l`kj031DxQ*l;ES_IDZxz;M*Xp-Vn*Qv-`8of^CqDX!XW8=UA+G49aPg<>1qt5M zv--i+AF%XP-<YMyYvBDRzfxmy+rzu(gZDLu4UpRwq#*?-OZgccD&)5|>F*zG>|bLX z+UnShf3fgh@wwE4oBc0+9qcLET4b>^%)gMsMlvGFh`|^B*paJJY~<iSmZfp;4!r%Y zoRPWVJ?X9a`SkUkqmg4O=c4vvPQw85fx%e7X9=8K>3T|?vMSQ-lfR~kKrAJQ?EH<2 z0BsUN0xgj^D22^{8iqC&i@j^Muoq<K*M%m1tAt)L1h3+&Nfo;I)h<-3cyK_1sZ<?U zBV#aZPi1ZKDc&~6P8F@*r2ngKPrmnUQYf${`&X?=D;PNyvY<hBy;B6%FJF0&z$kA& z7~beBtp^~XhvM$4R6wLwTh@$UQHM6Y$g{1UOiZn`m;zCfQ{S<_Xoir&>DYQ^7};|0 zxBl&hMZT_>3QS$<J{h!zZ$C)mZ$CO#9*8ieGY(tNsSZhNc7h^7{<d{}4>TAJof3+F zmdI__jDC{JR@_Z(yEAX>R$Xydn&U>V#v*5c*5sW>f{Tf7{;YzFCV^I?6y9<<=NRt( z`Xh~G`r@(4pF|iAE;xb|4%{CBk_tC1{1FQ^(1FS!1rPI$Y3sT!|AqO(dt*Z26u!*) zVwXg*M4(Bcdpm`K(4bt&?gJoB^LxFJs+4+Ih2BtG0uA?H-lf6BPM*KIEtXs}f?-9J z7QG5BRv&NcRQbZr``Tq+e)i$C0g&D8P;k3%ZtGDuE^u{jcbU)A_%DW?Xp-vH_8Iw{ zxHgGqZotrD?Mk~hw|$PQ<*bQxxn8KLqvOw50&1PLGAjo@^k<m<^>rvUf+5nypxo^X zV3Z=Ia-I8iF_w0Qk!k-tZ&4AmV*h==uC}%{E0+c+`=<=NDDCT2SZAA)Wm-i&J&n`W z_<hZsI=!Kv0+maHu1P?B-_Qs?f_%iVAI0{?#!LHY&zG}&1JlBl0t{#gl@QG+(?SuD zzGatgsbLL(1;=X^Z@AGPV%OxVRk$k+9U#(eNWL;r%fe_HTo+}{MM_?z$y92;a&DSN z;DC@<s6V>XLc_@9L7OtBF7U9K_L^WhR;F2}b{A0-%|KDZ;8*oHL-f-2elM63MLY;8 z&{W%=8R)f(m_aL6j)3V9F5}It85s-LJcRLh;o$o;igIbZ7KT5?duraIkVcCmKfg1O zG@^)sCA}7xf`|I!Erl>k&)n7)9YmPhf4kDhL<eh?o-ui~nVfZSkhaohVvpq@o}O=D z*+1lyFQ8M0BD;>)8Ys-$`u8@h>6Rv(=g+!*aBSvFT}HNnY5$Ne<9E%uOGlFXA<KZ3 zGK^6B-12{jjN?4ZtQuwM4TTJ$9S*neX@7};1m9yq_V=li4PeTa_%&4^b0DK)uH(pQ z1~W2pt-&==`&sj@#YGo0@UAZZFo-69@OaqK(!M&ya(U;Ot40Zy0HJvme}52!+F;Gx zeWsT}!vlUy=5afTn*gJUNEG9lHWli#kNiS{<OqRmY$_xx00rutZ-HlxCj$f{ylTO5 zEIY664*^Om^{L{~4nua53O^Onnx3Ah&CIZ3A_)wK6-bL7M<1MaoLJu2eJu}c^ak%^ zcT?nvVRj3f8&lwU$FyIuv|WI;)l>~ieb|w|5)lz8(9v}YjXCdZQ+1maYIF-Vt5`K_ z0ClMq=?v-&7L}>w3$BT_Ac^^7)^3+1*AW0SRt08sia;oHO51f9|Kr|a&yeuzlU_!x zbrei&->|8SqsQbVlf||HtcUYK57}lj2KLw(lWntYj)nd&-NKrvU^%LBkeR$%&PQ2% zHstX+Y0koEsK3eA7-7%HZCvtknS`qETGvUJ^~pUxFGqLz)irNwUp@M37&`c_<9*34 zwWoTZKOK99k);){j(_-ylB|$p=ML9myOLo<-Shi2q)Xdo*Db|jLz1Q9VFXSBqLVwQ z$wF3lIXdbdD$uS$hh$0|QICh8dszf!(aJSmRq76hbw?kLg^20BLP;c4c_dtQ>0D&F zhI<Ya#kUYrXYWjXsmp(HE$Dobzfs6h<ttL|TY?ErmH6F<KZo9`Y{6JJi$%d;4ePoh zw4_n`%c$mK#K}SuFTX_n!p&05cb#EvJh~Ys=?-dryKemMtrj{ExiwITlk_^L3njwe z%Nb(XC<@Y-w809uWp$Aw#Uav<bW<>DmKo}8Z#SA?eb|6whK#jJOEs0izE`|kQ!aa) z(0MI+pDMq;-c)O`njd&{o{Xk#--M^E7+6h8H+Eg5>|dSYbHV#uSU+DVq$x5e4SPEE zmLMZeb`6Khr<iZ+&uX-IVi910<VRy9hIrnh+^i}i_>Qo%d-ub(c~6PlSd#y3YE3&7 zT|&R7ku)ZOv`Afcs<YrK_>&zLC`rfcHM!d4f;+2z@-x5cNPU|0@MXbtN|Y?rLdiv{ zput<Gj6^4qDFQK!GRo^huEgEqUrJ%q2kJK7z`vf2k`?Mh8H|S{V#R0xW*k$PW9M7s zKjadNzwD+y2e>W~i=n+Lg_F8JDH?bYTaj@NJr$=4(Bed=M8U{~LhZZ$R2}J;`V%$+ zKS~vE+b-63s+^A5DKBG`H^R%Dt*V5~%nX^U1(8sLbgVLC+a?KUOg8%VBl8_DdDH%g zUrjloK%y>Hmu?~#r#?r#^m%0lnp+9FCJ@0bYv$94O4yQ7Xpkp=MDx)=KJ5zKw8yjV z+iH>lZqw@L)0xh+tkiPip&L5vt{5?5U0r@^jNo#UbDnO)=G82*C8)%dbKx+6zwm=P zW#JF3!g8(!FPzy<a3TO`u1k*Cg9BjfsH(u8)8K#>XKB{odK}EBbAh6~VhS~_uWD*< zA}$@?2FJNMpTW?QCsIX)m{zng*Vu`*lcs=73p;P{JzrA?f{f-nZmhWUKMm40c!6J) zQOJ<UyG(y3mAP2$Ph%k)5W7huU9gNaJ4m9*)1bOn45UqP*@DO)rkGux*>=G))=3dP zg4vSrkz+xnyV95lR072!`a4R&QZ>95B;(zw02Bu^+SCS#Z=RUVx6fU^CHT5SsZ&Ly z-=BA{#pz|HS-dd~`TylMG4ZF)Wkk5Lt!bD?7n%9V4MK%ClGZr3Z!;I-kfZKy2D<DY zxbpHx#4(B*v)eQ8;FFU@kw<|f`i@X&XX}`4o^4z&;K<~Bp~b?UcCodiMFz5Vh0AN( zYsy6bp`*4pk3P}bMoD%@J@**at_a}<$+T0nh+S3&>>P8^f{6q>l>g|2l<%rA@@<th z6{-F3q$$$Ay$Wk0y_<R+&S^^}n%kW}#kv&{>RK?H4jf;zljZ20Ha6`duIq$XcvaY; znGZxnecmV*+*PBeA~0K!&h?!<-K;n(qhsr!)ul$f9BRf1M}3U^bsv*W$rqf0zE5}? zB}v5JaQEGwsGSlV099<@+|P)LIW)~PZ8H|k7G*laI~Gkmsj>#oG3=FR84KensJreS z0Ua}g$-&H?=yA(WR;<HcvP-IN4>K=f4zpX~g~Nrk@pfyc4!5Y4d5n{Dywv?6k!iRU zWX@&H0KFLN`~0+<v4kQPC1sTtXh>6{J)I&j7t0;^cu$yvPVkA?kfA{RM^M>vj}3*d z)gc`g5Lvc&h$Bi>#bo?sAnTMY^TqL^RCp(d__8EiZ%?4uY;yt-tm^WCVRz1oox$tn z&}Dx2oL}hwo1=J?d0|Z-*}gOm`XR@Pi)e1Dv%lr^nOJiAp6E>n8;=OSa7#Hb>s#fa zp%kVCt}u;nwY7OjGX)%09=HE)`cM*u`)kI7T3n!N&$%}yBL39aP+;Dn*A$1&W}dOY zITA(1&A)c=15!$KRx^-Cnizw|_ZGF`@aobNb8{m2;NUNqHRMyCgtmqC6B)_#YBOVt zALcKQUCI|^Cc%QA%dUHW6L%Bi^hHM#&1lUVbIe1bBy_4nAN<~JtF=lEJ<zsz;!=5= z=5=pG_@v_qzq=9=?IEbf5u&JRgB};-FZUN;P{0j0N|ALZ2+c`_7(&iZ6#;3a(~5)F z+m*k*yY4;K{kQX76ZlZcn+ZFo!wM_nDX;I~4R-fG5w7)^W#7Hb#Xqn5)C(KevK~M# z=7>xy!FA6|`%nAdFkE1|lztnuM4QzI6o1(%m?>MD4_d{9ka^%>I1bV|ukBx~62kAq zVa~uqa^k>i&)VmajWZiMsHpWe-^A0)<^DP1#$ebrmXm*QqBq@kj%8ThE~X2HqyvzV z?BT+!T<9PE1xNG;+hwAzpC8}|Jz+X_*zpA3%`hyt6b@ayx#>TqNZ+(2w-i!7h^uP1 zIBfoX_xI(sd7-w?p}k2Ir2o%F;Q!A>v;gL#|K#_atoVJ<Jj|Ry=iCRm@dk7pB#j=} zek$Mvx7p|;J@#o&Lw@p?4Z#(LPCBmeYMZ4?R$w&>!RvMM+kB;@z!Z#5Gx*r6mi+tP zZUTjLTygAwZVhDiA}N*$0MzYMn;zrbJ7Uj=edKQcxphB9Yf1P2f`3UG{jmUv>HyW` zZNxxkWqbb_-(RrEZ{IDe9!1*l-too!tlE|9iWGU;)PHTF@DpJWSc=0~K-Q^V>zTIx zI$t^HKH)hgUc6GM$&}2D13;N5Rc_YZbGGqVvJ<Auhruq~Kw?kFL0dilA!pHc-7V41 zeB(+Pr9@MpI+^y1y+LeSI%N#cZA22ygf>O4Kb6FfUyKG5RlYt!=pPj=UqHkRwa|`S zywdRS4T2YSZhDLzQ_+HFWKitI(@IH2*}^>?R`gNKgXYFMQ(_uWU&6U?=Bh$Ni&|cB zB>=RSgl)C6fxKXwX(C-CtWj5B-Q;I0em$w1+Wv0Es4N!P0hUL<(RGRJsY-S4T2m}@ z2yG#;Jn*+;3P^uYn<NThMK59<&0*w$qZpu%8nmx(@DmoJQ!GpXa1o+E^9O{mG3Oim zz}0xlRBRV=?5hTAj+Lp?7kOk6x(YsLLq=SYL8rng(zsBl%N+l^GxAKf3`lv4Qp`ix z>+xmE{{#=|U<ISA0*t>{tK6g^He-FV5T%x&dLmO4lC(Hqx$sDTVSI4VPcbP}U0}T$ zqcL`jA7_Gv8EaXs`B}DZJ5n_zrgRglq2K%qaD-UpqRjB=HUd?*6v9U)_mIudbVId8 zF>%L>y16@U&FX1&Yq*=`e4ZuY6R}>EWSUjSB?3`HB?<u-2qSmLmqKNXxxa(pK=TMm z#l0Kw;HE;rbmoy0);E|sT&wvDWuNc*FZ)4bQcmpFyhS0FqH1)hxj`vu0Weg>6$_QL zkutewn(&eiQriZF)|h4sm23K-G(iA6edAf8gl7z?ubi&h6r(TtGXwZ<*|q_dHkvMs zcukU`Xzal3MTnB<IO_vNy*uCM1=raC{AVUn$`DZrs^B0>xvPFS@*VTR;~99drdiCc zkcY5BVNF0PXaSkdi#j=I&ughnpV3U=xgBMi5qA{C&KDg7nY}|brgWLys<ey;LCJ1a zak}iEz>SV$FCJOv{Gud}yRV-?xK(!y#<NV-_m^v2DQpq|PJD;ql2K&kZIP$6)AEM6 z)9`xA!Kp}E{8;2WA0NerwRhKSpYEVF7^{+AO&9)0vLm2YGsZJltQ143uwXT<?gVnP zZp*vgPtCFOqQ+?_$vMZCip7TWpnf<g;esSroNQ7!CKYqKbOCApk}P4Otqr%)qy?QH zO2aw{2%(H?w31aDE(l5K(<$?QC7!9LMd-RU38pi~>}TXKt<j9>a$sh5!MCy4G_?eo zvCfO({e9#+UAok}Ha$f~-;)KoE<{D60Ppre?QVpMV_<_-`#%m%mL#2f&Q&E*A2{>) z<|xR+sX1o*7OKQwfUY;ik$O3R{ToscjV#0@W99h_7R@xWX6hISo2wMD*b)B_uAX4} zymk&ZW!=@(AdXpNiU_Djy$N{U5N+HjRHrv_uQskQIl3Ilv*akyXEtvTim&A1U76Do z0-d3S3^nxjoE_tTd(Lk0GHbpDh%?iQ36~g7cnyS+Uw=7SV3z~UKqseHz`fBbEoTx3 zdERO@z}rlR5D70zU?9%^y4CxQI`lRL#ehIye%aehS~wvh`~y`dIK;&AIT&>{p}p%; z8d`MTik>JgAhnIp4iWvE|3Di$KFJiW94Ka{ss=!xYRciCWss09j7~?N3YC{Ws8IK- z5KxuEn)z2NB;dC;XiFh43`lk)G5MUS(g*jJpxd0|?S}1%zA4{{=rKIrSKd&D;hFrc zES&lTn(eZ*{zv;_&4P@1qh1{aKofUt`GXd{DYXYIPs9Hva>Y-7^VrHy#*JRNV2@Cw zf&fC=Z-}nv>cXN<dqW2>`d}iicxjQ#H>-MPS0U{?V5(H5uu<2*jC7aLqMj_c4(&ck zILR!&H4z9%PQ&9?X^Mo>jXoS`FV~BY=A{N|c@345tzr(ReT|{1uV4aY5=~2)2mt6^ zgaloQBFjRfdKsAT{6$Qko3}l@DVg4a*n`06t4nqLcfTGCtV)bfQ(zn@Et76NB+@e8 z-)B!}^7T2jXc_R1fkUp*F%p5+qHFHAH0QzDKyCK9%LAdz<E5`n(p#^12N5kiflZ&M z%t2cdM7wAtV9=p~1vJJ@+{sIiWBa4daOd%wXIIrUe%GHX2b9I_RUVg@{@B0|YOz5# z9)e4R+q-<SRm0#UulKw4>!rhuy_LU};|;LuY$GT4b1BM4Q{?<aZ`3!B!SJ~==9HTY z@NfMKY=1l1p)RAcU+^sAMYKHel0yR?E(B2APdK=bYkWh^FU+?$YR_clh3n6VHSeqE zKjp$+bR2oghnY?GYm(zj?kus7UkKaKMehz6D+>CvzsaA7?a+1?C6ZMGYOxBX1G)Dn zb1g991Ep47_RTbEs$L1<`MCKj%~e!Z1pJa`NT>>rwi`;rij3eRq7(;p!h1WXW$eAi z`QB@hnWEg0-$xje#uaITDu(6pNPP;@{;i(-lfb}l^wX!=X%rl#3yNbVUR<-PqM&c$ zY1V&deD(rrkI`-Lq{UuR>TJKX$m#r}l@SlDOBww|29z-`V;$9ZZ$9ebo1M;|PlOq% zmSxmB_U2JR_i<(HKEty(Kd<D>v?x1m9hLcTcB<;Fd9M?|(fbdjg5WsCF#UgN)&DjS z{@V~Yxh*dGA0TfG{tpd+@PYp{wSWG94Kvyp*J$?t9)7L<FM+~EXh(tYwC}D0NeK)x z-(8VH*Mn02(?LAt|8!2)3Ly@V6H~yqLk<iB{xU(n1>p=bV*g<j|9h_L-vERpq}LMm zOAzdhRRvZcLDBl(GQxiID?V3m(#d{qMz-!Q6Y2i1Y_>!j*Ww8*^zVQ6Img~NUrq?Z zT0HXb_~P47s(`sIOLiFQELbL$u1H;Pl;KABy5@r)3?FIK(jK13xS%~b`dQMEQci@+ z`*fnXtoNp$()b?~tyx!-&u)R;d~x&dJ_1xSLo=rq$>TX<jsxu7Y~%O$T2@Q=uYTIP zJ`@=qXrpq0EZN#=Kw9ZXCV9bQTR^ZtLSgqpZ&|VN{GICg8gQz^qpc)=+Wt|!$^yVG zt|r!qrc&YK0wp?j6?q7aCRu!}R)xjUbPn;|T%EVIFn(<5M78GjuUtSckKi2Qk?t*> zIWsRX64CGYtI1KK%Qdh<Ft=ceb?zwwvK6@n?AAe7qsLf_K?qWU?E=4PX8#OHB&xgE zC|09mryUsr6NDCx@=?7Z1cQj+B0$>XQh~!LY*JQ}GFvv%UU|osDJ1m1wX{hJoi&;g z71q<#(LXdf^**O2iGn8oo=@AmmuoUOUPQ|YLdOo#c4eoq{4|$cW#CK~ue=j`crZDL zJ1vz@YoCWJUz(jH62UBDirxS54EN^546A;+IqfEFqes^lRkUydsDV^Ci6&2q@ElfU z@~z;3|Fnn@z+aRjc29X*%xD5_f~vx7wYx!zkSL?VXu;14enSNzg+leu<yTkASpymK zX1ol;`Y<G`<_gtmixi)CKAl_2)Snf4M8*2&pV@GW)9;Hd>hC*lRHXoPxZ$BDq(qtx zOUf2&w_veofGxJ1E4#4^4C0&z*jcPi^R`$`N_C|0s9%{*?kdNk1wxXjJ{3)COV|WW zvm<reErH;IS()=CF|<NVB>bxpw8PlQ;YXqyv@PKJX}`P)!t{qR4Gq(0HtqbSuf{sL zV~-I1R=gJ_mLeHBgb=~WF-IbS<^aO2OXrx`0yBxCwnZ}Yl?J}ykd9hVES<w8M%YqO z6-SU-yEg_O;*C-zyJ*cqAQ3=&bn&Ozac(--ikztOKbWH`H)v)|QK-qVn|Yh|`(nLL zONBlLC(`6d%Nk9BE=UBoN`w6<ZPFD7IYqfMS{*td7{V}45Z*ly$wuLIBz9rPGR>7u zKf}G1+6jAnBenix{JnH*fS`$DX+BjDK@5?5l$Ku-Z3QkGqAlh8^nnu>ohdYA0hJo1 z45EY-U;ygUXVFoLY+i)8gLIn{B7xa8pK6-cat1T^!>zv)2a5hvW5kadOu>(91G12- zS7CM8`^r~)gnh=~5mvx@YoLkJowwV+&2G#H|MOdwq^gKx`8PCA;0d^+CQLn{Bm0YU z0}bLOg4ZS>*VDeX*;v3?QWZH3s+cMC^OwIq9!U6$P1s?@Ko3D|z-osqxB6PJ^FD<@ za*BR$*TC-A$<31H37KB8$Tl!fe{;7Kmdnc<DEvsgD^J4ZW#tIC%Y*P%h*l({8T0Xc zBb`zp!OE9+g?EG_LLlwS{p@>L%SuWSuRc{k>tdE48UW-ih-GkM?-4F$gsIz_7DBqb z_w>`1Z6R_WmyA5aOMCb_P2>AjNWXPsGkN8p=d@R&_9HZ=K^nEGfnl_+%$Tx48X#xZ zB&QhI8b?bUNKvlfSQRwG@FINns-lgUIKu4fzNgDEr1M2BeaV=U&cf;vl_imA#Veip z(z4mm&Vfye7O5#;_1+61clFtR<3P18WvyQvHKheNxvQPi4Yo;@qDD`Al`)kc`}9Sa zE2Pc7Zqj6x$eRD=XOS*A^-jPrx%5&tP-AC0VNmEB>EwK_jf=MA%+;lGq!_@Frs?Dj zWTzD!HB82!{;>7y5`dQfSEkPIS##sT{Izi+FZCv1xt(R>zA?@~tQmXZjS2Csdy~fR zmm$;JtyMn1;HI*zjEh1-u2a?W|BVF@@ws$4YF8F`z_ZvK<{E)>O@7bJj(abW$Z`$# zsII1?cw^TkvZY)poQC3d2^j&zVuwnV<-u;WvlPb&8*EN^cCAmfzBSis9axX#ZN8|{ zN8@PpB7dp?X${pYvxe|(v|?a7xBR%pb)QYbypsS|HTdsv3reB6)cT#JpuVtt`>3pO zbDrF5P363pRF!t&J!N8MQxs2)imz8!rcjPI$H{%oNnQDRIORM~3y1`q*~(QUG?{l! zF0341F7PrE(R0&}!6{XyZ9ZE0Mh6*pI+4akrA`aK66jSqEPWW}R-6L5i)-IE_E~Gn zSlrrt8g6>+1lOQuPJ!I55r)1iFT%8)VW46s69U<HO1qMTK_CX<rIpTdr<*XvTm4>N z(dX>U0O^U7tR)7vj<d)Qtw?CEUyGNU>nar27pMrTy_-1;&$C87A0H-T<%wT`P4`;q zS`|R@;uhbgE5LN3=YuQe%<gnCU?l?I_G8@}Q11%MwYna71<8Ch<77}e@zLx)WjrT| zbs>Sld-h-E(|pgtLRk>-p|zRP^#rX8=$c&tCI?{~^Jdn@cOl@)hAA~0_dl>dh5KJ2 z;D1<v8O;Bx0sxYDh!g@rYgml`1?TwxRcb>1Kj{B|q(EWBHaxi6XLTWYKohqi3kx$Q ztT?qg4O44a`dh5Cdtw;6%G*q`)I(ol|7#9RKVVK#lV1#};AdJ~5P|Bw-n;Y|>`7l< zG)jK^R{yiv%155mrRcrHR54kkxjSdcrg(UtmqPJ87&VpTyMWB<qZtYu848_L^gs%c zxNgD@FFswvG7Xp|`7ue?G?Xr`wfr1atWv({w)taP1aO;#xr&MCF80AX6OI!8t__g3 zLJEsUSR-)56a5RsVq6$LbI~TF3O0E}eu%R8alq(epe}VT;c-mDrEZM=#b!C8>&v;U z=X2-2v}(f{+>LVLdG1|0(YJ2nXq}yMbE21$^O+Y`nGe<m4sT{(=SAYUuW$5NZwzZh zWbmKK-^>zWWOw`H_l@OsP;B*yWm008U#K>gA9SOVgX2SrT>z;LP$l_p!MOAb5m8#~ zRI_j1-CvpTnHK59Dd~gEFc34yFvCP&B<}%<@a?({jqTL_-mS|dvDRIV>vwQSMTAwL z5~H1mT4`jivZUuvs7Zdq=)LKChZ0VPD`{!B^jT5OHxkFAlcp|35omkK#ajzJjL$Ds z9b2=agJ||1z(~cqBf44Ym7k)WyKoS2Pe(iGp>z}8U5+m|qjY6q@YxmaLQ=U+`ff$? zLOD2XeXS+$^Nf*s=t>utbnz#)mnahWlKyBiY_$0Lod~@hV=8~VLUnd-S{@;rT=cAx zZ|8BvwDYbcS28N#8FV>EVFI`}w-W3lD0N4#6kZuXrZ~bfZZ4<}*C?PG7#eG$@hqPw zxM;q`tf(&4ROvPo)UpcW>%dM(#U!p!07iA9%s*Qo>!qKdJmrPH56lbs5p94~Nlj&E zHA|fEB&ha@h%`lUCD(x;#P=iu5h__V**uMAFZaB7*T(#UPrO|XkP7Ob=^5VQHv6E- z@HPv{^KN8^COJJQD{N;ORz`eVD|x=m{s9NLnr~v{^fzsQ$T;5MFIO*UY!c_|vl=K; z3mGOQ?}TLI-+?^(YgINQQi0@$K7RQco~z3{*^08RZZt%1vfm#9Jy%fPD#RLeOeEmb z0yY)JqX~Me=~z140z-(h^!Q~~0=Bd*^jnjNQA%w`xZi`_oc=x~3uLO?e=6_xy%ZXM z?<lLGI$N=ShV0h)KoYVAQ3gifC3R5y*W;bG83Lbp^sg4T%ubU@;uBN98^)D*QJyno z#s09Z5&82T?i*lXaDgj5XW#sCbjWIftd(B0Vy#w_c9e%vnQF0kBCXJCoi%~HpbLg` zsJ?6eVI30T$xx(vr`ojfkWIT<^Fwao$5D?1ST}h{mhu5&J~v`&)BL3}b%*b^){%g7 zQ3|>Tq`t_=lkIo-vbDQP;An2^mlQikP)|Ni$SZ>C-gdPjJd9T+X!+X~JyfZXKGmJ% zP1;c}GKxt(O^G%FZm>wls(P_feiumIq{&=-F9L>;$mwGVFDWwtEh8snlEQN#A=_4p zD41X&Q>lyor3Ks26ggtuhmZ5Wesgd7&Tg%`pRopSScp)#vwL=P`<q<`ra~<t)R+!Z zfb-vwplBnSYK^yl6G@(C#38b~a%j39k?n$NRLgGf;CcH!qWD~A12fGFQiKj!APPrV zq`Fp6^YjI@Iz42)DAD96-@I32ZOQxOP_qprAI0ka`exU((MleP{s(|2i3XbehnYe# zLM(|Jrd>sgeTP3)XOw;^O$(yKRA=-(Gs(NGs)`2^T@u8UA%DD@ycAlu`bUM5uM!?V z^|8O@f8S&&@c3vW5xqx>=>;uB(WVQeT(EE`2(McSZl-Gl>h+Rv=e-PKS%l{c$Ci@Z zT>M+r-o5dPy`vtkLi+OAo-!srb;f6ZyH+YhY}j)1(g^&ml*eH^s`qK@^&aQri^04^ z#^Yu9v85?H0NaWZt7v-XXrgGsmYjf{%}~@rR+m1CHYOvZ{9d8=G|iPoTOv4!HY$U# zuB4QZGZAi?y1%C`HKJNl&&0m#YpoP?@QJR+t?gLW4_YhB_<^AE+uP_r^bt_<^1wE` z%kI~;Vd2TAL%~qtk6_^f{Tf~j-XB5!u=h80ByYIB$Y;CzEM8=VU(E_Jv|mY$t2HG| zVaztbm$k}bjYOY4LxXtKVNp59Vv!}M0QBDGnSs&rL~{F3RLZ~_6C2N6#HI?(Xw0sr z!>4+ZU{1WMbT;a4mYh$Ex(^o|I&4@fv=mph<Ol=`F<Oma<|tbIxHXd5sOer<bjgHU zVJ<?gyH#c7UP+VA{kbmTrKP|0+V&--!u1^zD$ucU$+;D_&T!;~ApV&6beYR&I(MkP zOX!#dEoRr#bV($p-e3tp4fY~SL&w*wiBHAf_FY}4bK>4X7Wt+##p;}=!aY(i1r=J+ zxW#Hyfu9qw?{x8|<ZteM-Z0n9{koz?w&f^ki)1oz$3{C*CBIP**@4&Pw?0(N;}27E zDJa;`=|R(9-9HxJe_7<5Lu0CRP8{RB6F$72Q;omgYPRHgeBGpHO1SWD{lvX_OzlD0 z+1^KVbtN-OkQ_RQXKfViIvh^t*Z?1-$vW;;x6)JI_GZ7&1XFEO7%Lh58A-Dp@AB2m zzS`?nh3SG;;fwbEb6%l;FsT%{|Fm|WUn?MZ%eUXD-eb(t@(^dG)lQfu*V%6g?;?Xq z&-*lcbD(qcg}4Vef%5$_$4$SN;_Gw%@<ALll_Rmu8bf+sz*5rU$V)Ke%~UKA?m6a= zI~SZ>@CfgF0l;O2alg|oP^71<iiZDkNJw4RL?P{3Y2*@YNNy6A!9VI!D;7J{$vV5P za(nacd`m+`#HkAkd_aH56<SHQfNtWI*YtTNim@yKFX2lxq#I=e!|LoXH@`$~8QeF^ z+e}l-zg!qtqzl%csRzwegc{a;-QTlZ^-dN!M%(i|LGKqEMBac}h;+ec$~W!1N@nqg zVTyawB%ejC*ql5s>>zwGLi<WWh0j!ZDsZv#i3z((%B4?$9sM$x|FS)NtoKH7^P0c6 zKW#$qacAG?5cqx+{}}jj9eBOq<nLRcuz=}xUKJQS<@Y4-&e!)vLgzms$Lo?*PY|RA zn38Bzs$dl+fzs;8PLF>|^+AuFqeO~iUHusrd2}f-nQnMSyc|IrqymLllfeJLWRe<= z4Gc+_?IwYe!yL;+CV6d*zgpFLqbC>|Za=T(e>y4?>K|nBW>XeCq|?72WI+!>OW>VF zoZC$nIGLYoyBOxFtx!1pFIS_WFp`rNr-q?(xpNKRom5C!M@3g(k{)LAiozg%&~|*? zNk7I!U?j{Dmj=h;GL&0J3-YZ0)*yMMCGmRGTe;cI=RHk~xpu`+b9~LdjWZ)21+`d# zWC=w#lxNSYPbj8|Sg41+&~YMST`zFido;?NmkK)5BL`jA{5hKX^DcX7g3=OX`db6N zAT`{yF841osf%u9w8~MomJC^X?qi)?7Bj6H9Of)B|J1Z@jN-+A&o%OzoB~(hOj=la zrdgKFF;s~#{5#_y8H;yn-~Zg`NEGRbcNBUmd;e^z)?EIW+r9-8n&zC!Vi-r*F9P^t z!UjE;3g7)33W~weiMmJft-<`NG>?_G#x#7F7dx%mC+TMgOl(0tIK305q8^tqOU7G5 z4ucL$uZ}2GvwfO%@=uKl_`D8Q*YZK%jF2iAsHs&=#o*)9h6Q@42<mS$ttRfLSbEwP zz1y&uHhAKc(THD6#blt|^rCSCeT0bB(C3dUSE*O?+)gd+iKWM#I@8OSaB5a?QJ@n~ z%n;Bc&&uH*KjBgts8hC1te<n5Z75PO0oGa~ZT*w9dJYZzPR=j4pCN7>K!ZT02SXr5 zbhM&pUI2cXz&Tyl5z6Mk06c$Z`hcbZFCIQaPVd61v=0h5X16vf_xEfp#GTRt>u4vF zfWi^eM)Cd!h)xn*q+bDG3#*_DPJ>eq!J5nUx@ggi(15uRY8x>6*ot=<$?qmcAl4;^ zTEAnUiaIp9!gSp5Pq=(LqE_;|NH+Z_wtt5SzpN6UySxgns@*{eJY?EXPGyHSiD<?~ zlLYA(0caBj3_d@6jbCXAWib@$ryZ5`xgAE3o9s5hY>^M?q76;_q%zd)1cFZuAKaF0 zL52QK?0uBpidra%W)s>%R^Li%jH<%;k|wq0YF!^2e?y_z)8zWjBuAH`X}$hIA22C< zlRz2*(u`Oj3s^4MfY)(+W@P62-ZZ~Gts49^NFAP*#mLN~<JfG|vfA|aN%%j}f3!{3 z`za`p?UPt5P8bM;U{|P*+7mKdl{vj)Rl>BMO>l=q>Y`DOcc4}y!h}$Z=^Y9<+Or|c zl5Y&^q7C^jNw{ds6W=kE2sT%?N}g*`?0lP(lj~@8!_c@btpC*R6`lsb6Cj8Djha?a zbx)%joz3iE>JT_xGhL{vvT#}#8S5MZC~GNqxSu9TO~I7pfBNYM&rFlofF#>3zW2_< z8@}3(EjrfRHZRx~Uz+Gu*~A>GM@hOba8?9nIz^m0hZ&QDQg}1J>Z(LU#1EDbkgdVI zVyJgc{LFUTr7`;W`r_0RDWCTd-E?T#_7LS%|I|j5^Ehth+?Q=6{noY%7h5o>s9MFe zN*|+v7q{jU(`2{g$nCT#22wpbX-BCUVJj3fi&)3fM1oD%^*hYcdtB6Lbr~~wn6+;P zm{wp%V@AV}Gsb$tDu<Ni`cpeS#o{#9A8`5-Y$3R$k;W@wf>B7?VuS<wt18lw60OB7 zWKyJf3MsgiV%;9zU^~vLU$mc&?yv(~Uutr^Ug2YwY@4ziL|oS6%pM1<gcQp#u8Ij9 zw?lII>97#ks035ws9u#0MN`oQ3q5b~6-{AnBH=uKl5Fu$X$5#Oghd<*?6V16EaNA| zVz~*B|MN23<(4JOlHxahc>nI$W5?2ZxjNzSFxlXHDVml>&=maR@6fgKAOhgbxyIw; zl20=)$rIB!lJbvkXe^_NHM|%}=(cxMk(RNmU(9iZ3%62Sy@_eed3Gsol@?xAT1A>X zB&LA?K`mJW0Y;qdo!*NWW@-R=Tujt=UT|6y!)A<s^G(IjWk$_=y;#ZblS6e7cCb}w zT3KXCu*&3qfmJ>WY0(DFEDH^+*-bgtou{CU7A;T^t8z++YC2l8jzqPpA==-f?WB}H zBiE_H!H0qdTV7o*EJy{{LUe_f+t4qm@Hse&x(Ow0Ox-#{{B`*;L*@r-(39og3E<}N z0?+0oN}wM<@FGuiB?2RUV<@gB+k0M?e?>sYvd9pmPg@{JhCV@+|H{3z?!_?W`;6gp zU&-4wHX}k^kpuTCw&zIu#AoWV<aqJ8xghX_lQ;ancCi-@S;e*b9iNV$tx9r5{Xz(O zvXFpJd_3!blqui3SF^NyxFH~U#);w5CMuH5Ns@FWO!Pe5HdJX`*nwB}!^gl#em&0b ziPh>k(ef%+HpduCB!k+%_`<aLR?l+tR^_yJtERl2sqDkq>jCCi?y<=7sS$GxpMsOX zzE~FQZ*JWfRE8M++~hg)@o|gtgJ8*tTy|q0u7dJ~)79cKDFOJ(P^gL$y&$cOYK=DA z55n%&r%!~9bZy6J+1~4!R-QnqPx1V_3hyW9fkWeeptjyGQeO}30*Hz+{|{a77@SEL zt_#0OCbrFqZQHhOTTh&cZQHhOTN7IoKe2VP&v*9E?@w2C*IL!Rs=HU+xIhv(+%_vJ z)b-O@q~|LSMaT3rrek@wbdmTSTsi$Hust)@=f_vqelzicpZBcmPUhgbzQkpBu_jX6 zd-AgWCo-i-5Zz<f-zUo9^Ay9c(}v+b217lPk_?YU@9-#xhtvFxlzfcZ67BF&x-kIK zI4WH7dg|$4k1|Zn_7#VTE?(0a{9&|4lx%DqlTsCveibvj`Un=f4l+rbmUseQ9LTSP z!iFtV<HE?z@|p)v*D>%y+Jrz#Kl3@=DECtg6W?a_ZuENT+lIQYKQ41#tbiRi!t2lH zIu%N^ie>8PxYcy5Di-yp|2cB$m+CqfaKq$=F>Ux-#VFw@bnUiuIfpI~<OcizbhYV~ z=rI|!$2gebwQZu6uu_s2u*?{ta^Z#eRMpK2&cbx>66zecW^>RwQr@5Njg6c#6!X;y zO}h0>3iV6%sg&q2E7YaYV8x`xL>5>)Mq?nQ7c5yT)Tx8n`w{78+{c}pX0|?<y%Fi1 zuXnKBueakYSj+Ofc;`G8Gd>0!vd4=Q*5q4sP3?h5xa_ips(+^<iC|;`;(YcYJw_j9 zN{h<ygv7z2v(3iB$yAAV`;LC&eXlLO?2}y|()iz<G@Bz74nai?vMBB_N_lQ#wC1>B zjOBiMwC1>@ERErht?t}%;H~vgu+ND(2@0bdz_!dPr`(3uC{x|9&wWDHy`&hNz&pHL ze;f+*rmgmUxqX~h(U<DV6Cxg35^)Kklcaut*7<Jk-bT9+%=zoy39NAgjfO`xuEEKW zdxo$zJY0JEX>wg!-+7d1!?UGSkPF1_i^p=;9_{W(MHwY&Teps!U`#u7P2K$(y0WC& zI1#Jbsok%8^G<TUv)7DvQx;)jcRO?1`Y!ZrH(PUD@?Jz&m(Z7in?LTqS?p#Ubz_f@ ziOUGUXA}_og=S$Rd!vkw5HffB&2iI`c@1chCx9JPrlb`DLFNgV!52v1cjSrlfh)F< z(_yVi$G=v-?AFI-bTa~LH~z69OupSH^QM8LBhI<4#t8hZ(ejni*M5rL{*#^iF<A@~ zE+f8wm^iX>Da1SBr0RzRKYNwXXC8<&a%kjn3AsvA3W0(f6_l3{TUQB+|2Y5m#2P~c zfA57*HV;G~x`kD^=srOE?}eJg()epX0!t!j8D3kC|LgGa$4HjJXi}~tMAsA0WHlG; zlB>RddW)p%X|}=Vgn-*9Odbh2RM^yR7l|rbU0&%gi~?13S$1O)I5Oqv3iBK#Z%t=p zibZzfQ8JB)5NsK6Yw~c`hZVPMwA|GM(~JqjlmOitd`O1gi(5tpUjN~5Q+Zq*a={N4 zZ12mL<&w)W{2h_rajsYE9}Zn=>SnVx{sw-Y`4|P%@9Gv&643(A5hdtRk7St82J4K8 z2&UL|=7FVL59YEwN4PS)z8tTK3;Q>4L9!~{Ys)2H0%Fj23xr0qrHB6P$y7xvJ5!bT z1Me55rU}TM8}%pMSFn!`Y}Jn0mr>~0*H??Ct7wU)L#DE(t7!?Ry?;C%?_(U!z^t9= z&<Zb~T-Z)^qoG@#oD#~~rY^-oaZY!4Fm5KM*%dn-kJl-KQL?lTR0qF%9nbG~fpMPi z4+W2vrnxwi-_^&_X_wBi{3r{m4`_29cUrnm$1T(JtnD{H@>JIiWz1SMqg~y@%*BTV z5koT+k@CC5@mX+uP7)f#^S8Tt`96Tw%iKHOxDxZMd2zH94prOS7G;cwES8*WO*}Rl z_Zu5_u*w#c@Yo8ct6i_>?T@1s9na0Io#0iD9CX*YSBK8WGT!qem2qk;(X9mGG|sH( z<Pl@2nuE};r~4~hprN}_gq%v!59TP+q*XTQ#S9-`Y$T-n<v>l~cxx<sc=ikjiA0bB zsysyoY|gqtl-gIZ11}DZ^VM|tZrA^@kbfuQ<z?00(8~+#QCNYV)V{HB>z_;S`u?}i zsZ93!nu_O+XWR&qJHrl~G&(@Hzy$DLL7Rq>jVZ;&$-WTjX8rG}WxoszZOdjJR-Im# z)fEYg0UhWN$I*$g`?Tv%(kQyTipnu93ftpq)K+&ZYgXUrCvhmW^#WDeVWp2%e|-=Q zT{oI%gHKey&q5cktRqPHK+6z#5gfYR9OLrvKy}+J+9ta@&A(P-&QrdSo+n)bvnBrb z<bNZbko#dYVVhi{Y}0W>Yz8QMs7+S$nN8mL0n9#%`%)j7tTX-0EF5FAChUX-y$kVD zLW!KC2^H$?FaA9_j^?p_-^Utvt#!T$8?AIu5S!<Yt8yF-XU$9PKW%Cx0Y|elCPi<f zgu`5C_M86GvE7e<ZCHeP`B!aRU&DtT7qeX*U!i$7uneADn0=R+uNQq^F0J+%`bEc( z)Nevtv1k>Q@dBSUn0M!xd^uBn0I=)#zZ|bk0RO}?Uf_c6!$XtDN|Jn$_DwxEe_AWO zY~Pd(2RGShJJOR8DO!&ajccr@6v{ygcBwblHOj5kg0_*ES67Y4Tcjq8cGF?HiMo_3 zfF9rZQ*QNs@I)_NO9`W-!{wV~le}u%ghdGl*%Ca}|8?uRe0i+>w8FyqAQf7Aqi}fi z^AsPoSmC}4=Ss01__Y1;HO0`sHw%OxoHouvZI$KPIB*v($#FRX!wUI5=8sP5j#K6{ zjh8uwIH);~pdFSBB~HTsvQG0l=)W^u*7y1&s&Py<=VSYv7<MB_^{?^Z<oA72%Zk=- zZM)cBfT;jkWF&GdpE>O6jx*w%-vJevKVf&+a-R@hYN39{BL;AISqLPK=M#<pv5jy~ zZB77@4n~Ps__mz>D=bJwwjWVAvt~B4hykibzJE{|R|!In^Cl7<SS%P_h~;0A+q686 zWN6e8Q-=O%jSUqi-9wY01<EsKJMxlRW6S%gM9bkz!YhhR0_Hb=@N}&oksqN=XKUI8 zo3mHQ!Eu7Q=D2uk|Hk_t9;1t4YDR|E&UY{3lBT^9eVU?nz52^Ag}@Bg32)MzACQI~ zeLScUYs9M+0V-t#3a`&Dao6Vz+~?o-2mSX~pMRPP!1ic6%`f8K|C8Y*>DedK#-SGx z7bneDRm?+T3ZU?7H!hsEDjRCm2QQrAu=ApWsft`8(B>JVl$?T-lY`?X7*w9`)il?8 z0DO&6x9Q>8-xa<r+m+d*MZ44QQK@@A_GJpuV0P7^o1-_%_+@~utHXPjm^$~Mg@H3| zRsZD|L62RuadsJ{vc7B)+2Dhgv$&D%{#OS?AuEL~_O<q{u-TeG*LZ1!@?{SQ_!;9S zn*DAYudw(3WP)737-%^(%<2>{cGhG6siYaqjLh+8?fSijbRYKQ?Pcl!iiV8|#WBIF zDL)tsm(O_fDP$tVUjOEdIbPLt5xDBi5TWoy8;kS|ZwUvPQ*ce<9gC9Ta{EaZEk|rK zs}I`w*g4}hi<hU1R;VUw`o^k5>e@XMrkic1T1|tU&gUxAgexSKV17#ehfh@~j=CXN z?Y=7CP+$N4Wgm&sw+yTrxH8AUz{Jkm;JkTV2<mcc0L<ybgn+(3T^%Q@$QS5Wxopjv ztT$U_`o3Fu99QWN5q{qCShgi{@*)PC{0QXbT^{wDg{or>SnYBj1mokrZfod|n|;4v zeD$^UW`>lof6wuJWf=He?B4A&_{6P~<tgIRiOJst#gA|F%AV2G2QqLIZ#jJvf8CdQ zcf75<uk&s8#|bh5A%Y$}FT=gZ%Cdc!+jhKco;BG#2Pt2c4g9z^Tj4S#Kz@=TAE1rF zKG~c%zc^{pUG<uO`9NTuZlXrR7Dv-~7kyV`h8bZI$*43A>NRg7wjI>M4}Af^YAg!< z(@>dq+4?6HsqOZAgfQKqsd>wAtW*k6T!w~Eb+gZ)KLN0BzXw_8peVf#b0;1T%;SqB zlwDh6*P-&JrENR?rL=3XE$nW&esXBgn;7H*Kg;zl>-PwLa$n3Me;oI<f9NV4;`JY9 zCT+dCSHc6~A5FVG4_@U=lQ#MLr7pk{!-JQfDx$o6*zome&s4Z_NB^KPY86TFV9>iC z+KbQ;t>ogh-=cRv4E?7<V!szSif3Oc;%PaO;rAtP7Q4NVAUdgo=D?wk&KCV9wT#2~ zFK#;$TsQa#qHxVr;BF8FvVP0x;s>4-9yIEEIV}UdQf0DKbW~MPAX&|DthO&l!Ab$z ze>8)OizpO%&dhDQemopIFDA*#&DwOcTqk&<hUVs>ecr2G9mlDg?GHoWgC0F;(e6l6 zd(22?CSeUmmQu8|I3*-rOXLyo`@mvKDbeggWk%lnA64aOirnekpeUcGEP(@&G~X=1 z_ohb2Y2euXuHXJTUYjqT9lG>7a2Pch3JOf7LQxPIbYr251iNOKr&&aXxa$f3U~fQV znxX9{kDap|wPuUmY)z0L?1HXB)7bVwO!NDPi`QhwA~sk5-jBDs>%*gh%W?Cx`bna| z`KXzAZ?bI>;CF{gFh_R%N--<&&DBscKeA@o!tHa=IOTCXf(dXSrVRLR|1(X0axUjv zwzRD5^p!=513}`N4l%ZG#1N_;E1B{iE*;z;bk>-VP>-^Cq3K%RX;;46q+Z$bL2MHW zVT`0a=L_BcVgWp{piS~PS2NGQ4&c5ZFq;k?g=zMKhFNUqwwSZVrZh{KP>3meoj!AH zw|OW2MNm^7+v-Z+m!|Q9DRg;;QYIo<Q8TrS-fEc=5%@Bn0?TJ5Ma#1f{S5^VF2e{v z|IKXi@Jv13Qe*Nx!m%%Fn0px5U_3MA_PB>i^cl)_{e6fHYg|c~&KoF7a64BF`r_2u zz^C1eD{9!PO-_#ODx)?7WxCAEvhaETg+dtdPTc*YF3-oY%@RlHac|HYCzpg8Y&5(R z)U+kQG8eHqCJ4vppZHaG=~{O+0VwV?cAzAC>E&rOI6F*)(Sse^pM)K=&piP4+-u_Q zTaBO#bSC+Kezg5mtBk63O;1{>2)yr{c(1Zq)|j*+_3&9?2n!rVHy}=S6AFwoj231U znimTAwcG>#un;I!)JBQG?4XNLL|Zm*_%;#8h8B|~vss#ztHR~yBsQD(G?1!Z5Hb-Y ze4!tfAtB6gtSK`5)aJve_ylDl)j@9lFEEL!-rKkHV)0~NQ+E(mC`Fnwf}*MaGMA4s z;I>BR^fD(RC)fm1pn(-v<}~nRcGB!ouClfz!q3hR3s$;1B5K6ALY12SCIc!&I3S9_ z5BvMcfl$n5CW0b&yjHL4Wm2Q=M~U>q=IdYGH%ab-msm{Y1>mq;SAgcR{^5CS>+D-9 zs@~)ftM0qx{-=n<7d2Je9;)DX)urqDYT$Gma&o)L;E%9mLLjYcs*Qvb!=Bf3AmI5J zMc-dx1VJb7l;}~R*505A7t;5>N3qV>6A)n?V%>3Bn+FPclFH?HLsW*}7ILi%z}@XW zAN#n))gOqBF-trwb1#0$yME{OzpGWad6n4-9EeIeC1|zH{`aCHe*kOn$;`m{4ce@x zX;z**wpMSH3C7Zd*X9YU4n0G86qM$d9<!9?F}su(aYisf{*CgsisL<igk+=$LlRtP z0D#0DrM}$aj=5r8XH?&dVeqB)e<s{DTkQ?{*l3zFtyU!}JVhgEkhCp8H4~%)Wm;Pk zwLJu&P>Te+=#vqw25_v(?V?1XoBc5O*4edU>aMAQ=~g$(ggc{keAl)x+6C1RW`eI+ zHS;UZ_dt=4)0KCn+_Bg*r(EZA_Gkp5Y{m0Djoe`RFRaNCqNqcxYc0$B{i!<PkW_<? zQ|v8|XM26${f@sEW?yGbyNAzyuRfDI37(TPpGU2xgCG(+@K67Ghxzq}Vf4I+GlD-( zZ}mHKEE}CJwhM8@|2@`LQLw^M7i(?IN%x(nV4}Zc)aZ@<J>tYz<6xPp*d*UZZjYqI zKui0o6WG&B^UF<&+a2}S2k^X`pLl+G#vLCWwmKiQQbo&UH_*)vUX3(A>$W$&96XXZ zQbf*r-Oso!c!d72wY#*^R=jqm=nYeVHvVj__POS}(;(al|C)At5(GZp<6Lf=a);N; z91bF@9R6+S07WpTJ}yqa659H{%(7idVJ-2_gz*9mA2*f>iP&#<@j{KC`+iE%^?xnv z?J5^PY3+PkgRe=!zez8AksxT<bhfLp453K&ad-PNs_gsnd?C%(+blij#(F0mx^Jxh z+N7wlt#e|@t#pXc3V1b^Ss4G+XUkWpCCa<X+J4g2tQ;NP=K@owALi#UeZhekBU8@I zt{dU8a)vogf1ZxuP53{IjBS@cBVaD+6H*A58!~0f#!vC6D*Brgm%%^ORmCP5Jo$ae zRGg^7Ww>-RU$3OIb?X)oxvp*Cj%DTQg|6T0adb?~f_>Y1lLg{R=ZOWvG!svoN4nA9 z=1k%y+Q+N#6^(e5mPO-(yP^3$alJy14J``Cul2H<<7>USF#dbJUeCw4*Te58<y?=u zR-j7(Wo@4?;ara1po)9~(*dY->n4c0Fk0wOejh@4<kt7V%dW88soi^_Tn!p|yyH97 z{k_X@lH=e5zIevSgXvmUA?~q7#q)ZU);qKlL|4gu&Le#hGccF;P5X5X$qz-D`}+5u z($a#->pW>z4CMU;v%_JRfd74jq2A;j!S72;VD6)!B;YFyS=2~$?D-JfUaa}S^cLxa z@#TsK(Ruj_a$T2&c9sDtgm}X`wo1+O@IG%etj`bM;d`FLW2A{-ZZ-z^=IpGVdpUNU zd2w@gtv{yO5l)5XG2JkB^O96XMb$>k_R~f2Vlsd@jrb9F4#E4O$1Bk>vGh&%j{JG{ zJF|{m=bSy;EbF-1!R~b$%K2FIwAde!KUm%2nQN=-%eg1?Mv<u@H~1Q`^EoN)@;q*u zHJ@hHJ2E+o5ylF*<K=}$>V6^D?H}v)1GC8UgOP#7=YNeMblPy*d>z;D?|10g(~VZz za-QRl-K@{eODkN4G2TJMR-Y$b0DxPz3IF?tG0_NyfmUNajwgdXB~oQ(vO{1GnNuzf z1ESQtAtdXs-JY>v9Xef6{XnB#6TaS2!gk_UM@E?riZhba_2lv|md@U9BfOPRxiyue z`vFvRAco`GxLS9wuq;nbX=57C+Vwbdb6C7RD|?hn7BWzD9nYvn?WLD25|k74^Yc`6 zFN5U%erlS5wLV}Fk^3T52mbhuS6i%XTmSx=NE9TwdB3&m`7Xu5AP8ebY|aCe@MC&) zy~#iHHt`>afe(Mvi9p0uuNN6lo4m>*L=~;LshZ#+!M6@Ke!=mp$HhzEa~*ZysP@S8 zfM=`1vYvQ|-;xhZ^Co?N*~&Jlkw~)g4;veS&drjQXN__Y?1_QyzBbM`MXxD}_nXS% z?!Y2<X0@(20aM@|k2`1igLtBoPUaR`k^5mP*3YKnzk67C;gXCT9YaT56e^(VyE%=i zJ3Z_*Rd<Zap-2LiG!wuwVFDVU$6zH5JKd6+k)Cb%mTsbm4u-YS8)w%-Np#8iDk_X_ z6c`_)k^~$b9wZT`ZHa(pmzNs>Fshe932iYYqR(X0Hac0`md6GZYEl-a9MpCJLHqA{ zQ`6GcTkUAxp9xR-^{Ui7CZhDmd3Imj+3m3m?q6sTN@qtaZfj3<0e@BR=s=H|#s=db z5Lb*A4C%a#5+W+N>pX8+UPA8k#&vcdm3E#0gvWVb2k^YF#a0w>=*cpXB02FAcDsK@ z@FB%PqhR4nODicCWaVQ_S_(Dq(svZ2=;S`fC}*L+Lv8HM4*$XbM0ANEBM`XcqX)?D zb6bEtA{};xMmrIByMv<P-a{md$lRmn-4FAx*WYP(JN~a0vwY7~cwHut(o|2t?J2g^ z?f$z(5(eLiD9($8IH%(jREUW$zMJ1a>>+)If?~|o3J&=m%H!2tmw5m0SvOT!0(_d} z3ll6{L$X5sh3p=uOqIBIuAT2=o0qVu+9NhhzL0yurl4Z6h{JlH^Cg1=wr>IN6MQTU zx8v_QUx&A7FPCfZ%{45>9uXoWBI1Hz6lKYPOL8NTM7j0)KGH1Hrk}HQS13McHdfSr zc0<N=bH{;EvD(ICa;v|kbKcKiU+vd3(WVob*z3gWr?82<i(SvTfT@m?To)i0X5MJA zm%xm-@yA<)hE_vMVivtXh;&@ZjI(8o<^BeMjSCpsbY3HOX&J{<+Z)LNaJ@gl)Ihz% z-g;S3v5Nks)zlR8=<QuzQ#DLOhP{6rBEWF?CNpQKtoEN3RyMacNgMwMw}8){Cq2JA z3?Z)-{g3$tS)ac<+YDXT>p6N^LmkJ|CqwT9y2Z4~Y&(SZliSTYV%}t`owtY0raQm) z{_V$mP7Uvq7t40)AYpA`ExGFr7nJL~oSj?<YIV(8$2DabIwg8hEjhDkM*tDHs9JVr zCZjlZDh3rAKDD@>U9q7Z;wOSK)Q`0fQBjZCVjY{85_(xJxo)T1V!`i9uZk*oM9ycB zt%uzuvHw)e&!n_eSFP<5mFJgH%UY=q9GQX?Nky#{aNXF@)0OiE?T8suuJEc|yFyXc z7E399j5Vnh|E@httgK{SRaW-rKRio_;{*!}!42hCRwmjq%b10H=bIq}uW(Z=Srx<Y z#{>R@kH*-iDHc-EV{2%hnfZQDsy5*7Z*VDX_{cHW*X+o!r5v`ow%rdX%RTulBM{LO zVbcc}HpP#z?@JAt8bsskdCTnc54ZXH>|#fPLV^p04igp~1mQJ5J4is8Urr%Hf!@C@ zFFffJMS_8lw4nX?`j2f{NLEBqMQ7mf`yIaab7ijMa_ew?zA=p@He<9sG!i6x99<bp zRE?pf1s&?>zfS?Q&&b%=^nZLuHB8D_9zFWq1cYvEYC$P0#KGK?Cw#fax`*2{ivNXP z_!m2p3I{#?*uCMfz_6TdwGN6K1|^F=Uz<-SNGx)?fqG|gC<<7y4#uyk;}rje)6fK? zt^;p}(1k0&n{j5^8Y$5DA?!nyS}AL34V*3%on2m<E|tpt_jg5|#d`($0|@9doIJXf z=fZ_>3}%1pcG33)-1z-&Tj-kIg*go;vkHH~cbV;X-^|8<MA9@32^bu%lC>qas(iY+ z@PDUG^LxbrdbuKx`9GR;1}jfzuqTL3sWaY3x*&!A;>D6C*5#>J4EE6`I+rR1(J`RG z+;HNpI|{MuD!g3Zm0MX+QGv##5Qd?%V<LE)Vy^w1&+w4NUG>s$pKpO8j`-#41I&y= zjRM?{R;JMUI#CG=iKzT0>^%i7mCH@`){w|KeyOr*7$bMEq>N^~7#*LtT|G*H?|NAt zL|26r)^%QK*y_0vORPXk;TOb)>Q0|5<v!h)A>>LJ)Avl<<$dJ_$qPd*<JhN82V6!a zqU)EkK?r$ZYh>+@$|#&{0_csGN7d!C_%MidpDN#Oa06u8N*#BmrC57AQ#4kt4{G2y zGXzX{^SHk?GY2=GFLP$PtfEC3lVecW7d%pn%~(3Qe+j=odBO)}S_|NAcCI(qVTxjq z!R7k;@-1jGERo0l8{p8<`~;et%VG`P0kqS3I|Dq}<>s5$^Je#+v4TGwhr}puwgvd( zlp~eY{OELHl!%C)bJjNmi5PY7t(16&K1;J7Fe=Aeyoul(??TVsq_@eMokY;9#|}Jl z1NvVL>fReq0r1|;2EC$hZr@db{CIy5j7%t{#KuL$h81+Y(X1@@?bj!3x*N=Y<8M2; zw>`&8l3Uqb7dLUtoaMc+L(3$}mkMHKyZ<Hid(D|UOtO-l#+%`Sx60#J4DrW~w|5i~ z#dzw|X{|5iokRUI79Sj>zqp>fqZvY5^sP5kZgS*$qCkj4hXxaOW^`GO^VAA(oJKyh z-04jUOYNR$SBi-y+!VFZN&f!08rpiOh<beiryy!@W?Cuc>4QDT0G|D~3OR<H36rPf zSwOj)RLf8+-)B5UE4+raChuJ$M*skJzPtCn47@K29^48$ki^pAPyLy<h8v2{cG|N2 zy5H$Tx}~&#_vf%=$=t8TO<7gNK5dQB#p_!fRb2YX?uwi*2Gmhh)`O;_K*LfSSM8yl z;?eSxvl?WMAar0(w>o1&Ggt)MH&glzbS6S}-!a@!DU7foSme1AK5aONX8B-sDC=`7 zj5kHHDVmW=70C=t%gf7&l4cCo0-v5(e_G$5WEtFU%m$z5eK-3u^o5Ni(MIhxi2NXW zUDd*8IzION(ZmH;ulB5KF+7_uAJ2YMgbuIFMb<;$2tM{a_KsuS7?9uu6rm9@F*UTU zmr?gG_jUDsJ!wVeveR_R;M1AR0oNZ-$ozm;&lea=+RHvgNgg=B^C*bOJCMlb`YaP7 zE}K7>aJwn~`s0oGe}<{9o^lFb0NigMb%4eze;ah)2bOZu`DTSFk@V3(g98SIDX};@ z6P$|X2%FoSjV<y<j$V+_o+{_R1Yrh3SL|Ec9vjW?<#()iBz(=n>-0Tg2#kzP=6AMb z#C*v>ajAI!44~H4o-~`3-Y2M-FYF}!yVY269(+)O3hovCW9SbEgnu`dwJPs#l-1v? z|8u7tIrvlL>z4=Nx&*l)Lrp*84By4C|gA5z21`UdC!wrlVj^DB+D`?~={Y;|!t zf?M8yXo)CCs#USp+lN^|s;|=YnOx#wG(z6%Is?x7qg&wceTPAT&lLKc!x<IA&?7a; zUeCP2U~{q~Z(V7P)Zg5&Je|QDkdozoJKNfm&2M2#zhBJr{T3@V(4GvJP*ucx<U2Q6 zBlfti8Cfk65eQ%7bB^tPMsnfE3g%ZA7P^7+<W9zzETk^g>okRbDMbkfT?!(U7Z$%e zcC^68`gaxS$s5`Ojy&4xD3~khR%){&QMtXK3$puzD;JcX2}$=>5O&X92wxm{O%L<w zf#xMr9V;qn<`x>V|4T*{NY69B>v{o&b~wh`P)8>{UX(6i!`-&!E)aS~j0fYmPIdn> zTw=j&q6-GP8G%vq-aiZ+tDw}B09I1}&29IKwa2eTve+{h6Fk*a47CbmhI#9WexB>G zxIIQkdVq`=LDg&>9yUHM?b*6tQ|3Oj;x>``aao-yZYXMh+Uz6w4G%{%V|GF?#)g?I zU64Yy>wad!Ie$KNjSP`$_snpxH^0S8%Yd1+=me_-T7b4N!;|hcYgKz%Y%qC!l0D~( zW96YJ8SAloM%#O6WGiAMEwrK}RC&1%byM7BK00l+0i^v!IZ>`u^fKD#7h)sur8HO| zIM6gwv4se(mNfP^A%)za<CviL`#6rNqIZxB`)I4Ig)zTbSXo*~gLdL+#a-RO(r9zX zw|b{OiLUEupNTXryXOys-n)?AELWmz9&2Pym$udV_Gq({8`fL*QdsI+CX_PN6Tp?L z&xuWaqhK*Huq#hf9KbB1=N1f^YcMob#o;o!z_Q-amQ%yye!uS$dy-enn-<=7L!Lf0 zeRp++Cs$kSZ~4BCK|tUMWNQVO-+IZ-a$A$6<?yF<hKEJd-MoV}w>~qL^iD>s7xc)G zM^_$WBGMgyB*hg{ACxt5#nQ?0N;9-a6j`TpbR=B=$PlBaq)1vVEMy&5dnRSDS7r)} z3!tF|awU!3Tu$2A+OE%}dnO@EpWyo(ZmSzxW#PYbkAw2d+QGz9NNxuHJmnIK+&ypw zgBq0J2_|SVAMsC)H&3{#8dER3pm!J|w65caEcFoiLM~}*a&Z&;LiE77+-Ap1a}iUr zsh$nuMP}QAs>YPvT=z(ODNgA!WTamn^2gPHn*t-;K(JEF<@M#_fKN!+yZ;;8N{vIo zPvgx@jZH0qXnCIqq)v%wkMq|0*PmF{yj?@m*CX<Iz$Uljq55a83fAoYMseTD#DdIk z{Hq{#E9>2|%t@k&Xw*;>BoK>sM+O8aTk;q?<E1A(sDhVUjoOl?CfudN0TZlWzWTx- zU<J0xl$W^Ae0QnfpG)Xrs(uQj*J($swZZ$+jvXfX&K~~MIb<kL7aNFR*SuK20xKQ= zsB+6VkOYwmQzw=D1cj5-18{w5OK~|;{U!&GZ%`ia-TH)Mvzf`>y8#Xi1Td4XIRqle za|AF<mX68TQn(b~v4i90R@<E^P2Z0)o_%1=d#2dr_QJ~%V+?y>ZgL*Uy$K}U+(#bd z8H?7J#^}ssf)=G1zk-B%A4cZxClvIjh9in5Xq>n6!rGGbC_((<4s=%i)9XH8?CHDr zCGeO$S=p91>c(2hTJ0`gP%GdXJQ8bx1jZGttpy5NG0W(9T)re4c|RPCTpv<+HDb8p zUbT{DN0oidk5xHB3)h_1u1OGbD_=Kscwz>dHsC(9kzpc;6-kJD{u7qt7nQ`q3jX2C zdXk69w!Gi>jWL1l2m2tBuH(599uI(8F9OcbU-X115yhE;EW-qeTdOu=+A1wnV7?Y- zRTX3RV_1yxS7>97A`C_->upwI5&3eXodHMLEKV5*94#rqKLvYItGQza2UgUFehYeD zp<Pp#R!|0Z4n1eyDuBGjXRJHQEvba8<zDc*33BW}-3uUL8c%N|x&eOc_7cXLgg7>L zQBZ<;XsE7xsC@(GXRk@E-Wdszh%vJ^0f$HosdL!d0%w8J80In-{>}5$a=#0^%GfLP zKG5P;W?5M^7>^P+Mtb_p+}VrMS8*C$g5;hmsfOOhperxo5c->fec|Ufh>|cce+ypt zSSqo&ap?1nmeBXes?+n!WVfQW5mkKS3HFx8lr)ca$oD+)TU_k7(Pnkn9cyx^E^Dbt z(&R-D&Px8^Cj{w>Q|y;uJpFz8e7^hI{i~atzb<0T#5kSYU0oR&de6-{G=m_=ahb+d zmSu?1B|;mXm{Ar?BtNMh^h`B$auR9qKb3SW&|pTSjt5k7x*G2cc2Cel+{X|5>e%|G znyS4|1U_9CjQ+n3kF@^YbX3PCL#Y_*4jV!`8qqtV5S!{)!pEZc$%Bqhm`33~DB2<? zn)jaY-KCgu67MYPzdl8U`AL4n$oGl%<MSpZ<0B(ssDu3M@EIS3mi{iRNscD5{uRyM z$_!)pTsADPfh$0|yg2=FT+x=#VM+M$W{K}ovgUq|K_d@sM3SW4U-D(4&Dm9)_eF+z zS>IgtT+<G41}D{}OC-Wqn8&{``k2lrcTJV07GlpJ&XPBJ9F;0VrNj+HXOl!VrHw#F z*n7O7Ic~_^5y>A0BJ%AM`d>=LX0t@`Tz{Z9olFzsTsh0b0mW<HpxnZ6xy8cw0#VJC zej>=*O~|x*`%Qgz;M&ESmfL}F-OtOtSJpu{UrA<?#Zj4ixGloo)f}omJA`_N5#yDx zql1G>nW6HZ<Fjg&&kD$5F1mh)1}URUA6craK6n6c%HS?Vpd!<|WnFl3kL7d5F~O<C zGBAj-lax>A$T5japS~v4nXa;FyMJhG^YB{V{MD_94#Qm8kojiq%UuHn3H{RZ(oMh{ zD)`gFq7E!Q+K`zgI>PodprK$54iGMvt)+k?Q=ANQ{@9@BGDG;05HG<G3Asqf2d_dc zWpf;C9^E>dQ%pr=-$m{XJ}8f9!Q&}NoDCj!_@l7CHpu5GBax0}{RHE)_OT>3cAJOT zGah$sF#7WixDF={qhj|uE>Ao>k+)mi>P%znObv%JuIhRG7&Tc^^_<ZXayfCUYtIuj zF{!1lCyAdqvGEokFeNienb`^J2jxR{6C^28PQT&5bKRewZS~pyPWd8=quuSFeAGFW z#+^=Ao|z-i6b6vU=(&N1Hr6vy?IyDaKBG)Bjo?!Llg%6dJy%C!SF+aH6~*vzLr?wN zuT&0i3Rz{;2&TRm0WC|~;#7`wZFgOaJBKW%q23m^qFE-$IT(aY><c3~i(|>j8d=z% zJ@_{%R8BM7GnuR+Xx*ID`Hx*tK~fht_7yy;5manWL)Ha@KViOQbxm<ci(Z>sy1Pz6 z^Y6L<LtPWPi&o(NZ;qY8+U<8JjTJ>b<o;`>TW_BiAFmltyvz_JEO~n-qxLUm&!)t9 zZOpV;O?iE0Def$?oY}+)(+O=1>5bqI@<Z`umqjIsn*tXM#bXXBsw`Xbk@8UL%N<t3 z&di9RC1h~P;-(j0zsz$R#eSgg6;Y`r0P%rN;!3fg$?{wzMR0%McMHTkhVM+dz2jC; z!93jQmrmG<lb&F55{d+cn?t$7-m%(DaSCLdBA3~8fv6T};{MAF6xr!^TU_|rNm-hn z94*dB<jD9aDy7c3O0bc!MU$zrm26&~p&MC3sTVahHL;!2g5t$dCYLL=2ivc<ojYI9 zum4)y*tkma7RqA!++W;R?HRb-fTZ#n?_8Y+R0k8RP+)N&1aSeo7i34zT(MU2j`Ag^ zz-ZLl$2{{|R)-UE+V+d_7#<hHIWM(P2ER+=6^B<ggO{(XKZ7<f<T14t0|_b_944Tl zFov*nuIbXufJsXG@7c#{-M$nFjJ^SxD)yyy)S?=mfiK{%$Za&*i0s%AK_e{k6#b~@ zypBIok0skjxYac8t*ZI3X!O6ssN~SMUiOnFOi3ki`5=o?Nf+@^%Lt5~Di9@T${b$K zZlJj5ba&?R)46EoaWzebhXDNU2yxx*p@7yaveQTB8At`wuV9?~P$u|gRWaf8N#n0# zuilRZm-ef(RgbfpnU_!fpOwQESYF68wr<S*RZ<I{nfNo3JSxraI>_o%+8;Dy<wD_f za?l3-+O6u1{<v(!e!Vtw>r#qzn`LS{k^Fnq<x%UN>&K<9>7mZlnqZ(H%n`vLR2h%Q z0iuY6JAS`B6sPvJ-%0m1fF*;yH8mjQ6->@l`P?T!8m6&T&Vg4<&Wz~0dOlm$CU7{P zoH3wxBsH9@qSD!9<sr|a(g6FjqkvtQ-0pXX+R9ajaenX<*Va<Tk#}Ebo+!x(8zFDh zGd@QWG(4LJA9;f)PMlF{PIW7Vx<^z^T>*1OO9WZd!!Qb~gF{JISC*s-7;YB8`8=@W zg_j(fG?Y2VFe(g;`s9L=soh~;rh4b^<cFsVl5l-TOU~!ERUimMXhxjGkL{myM2+d} zn~@f~mQG@eEi<+hc~(JB5oDi$AbA#f#%$uGsgyZ$@uC(=23$rn2F}tM+*!34d)CP0 zhN&IyW~)?LQ+jDYvR1b~gI`|SpIsSRyC(NTgkJXxzG*D<eHOx=`21B@9|XjiQToM+ zPmz`4y3ijTpOegX#}-DSCaq3w_kCE18%Pn4Pa%9p<@SM3JUbQUnOQlVad)@H1~Zmz zJ0)`Z^tp%o*<r=ppd&DsHcj8{y58F43$Ir?RpQg|Cq)Atsg7A=e0-+!a}q4+Q(O`< zZYznLJ6|eQ@Yr5oy8GAEN48JkEN6?zXf-xgYcLSV*}_IVP9+Gx*gEsH!k)ZuA?pjS z2I3o{Oq9dP!+jS?mx6$*h%X8gm%5C8d2wmvphJ<<LuEYCoTMXnaO-jN-mMxetQzX` zD~LFdpYZT}Yty@gIHy6%qES^GFUu!D%%8En*IAhA0EjNS{=ZlNDcpK!NSPk$>ajYG z+(C=X7qH{ws&k+m@}2jMH+bs)2>kJ>nwE3IL5eW<7ksUN@Cv(TS5ekBKE5m-N8~QO zPYTP4?A~Hh*?;=U@t?`p8ww;QLkB55r_#lopW_k1a$?0K!K?jT(f>)GfF+B(04RU7 z^_4VqggT<jdX8GM9Q2HkVn!>f_&hiRg=~-lExqfSo|<0)ltPM>`1*nl5D<0?`sX%N zUDVZv{VfJQo<hw<X`P*nubje=i*>)db=HLA6UhAvkR}I}`8&N({;EMDP_nT8N^L$n zlT*=I7C<s|I;9~(2h13N)VzCp*e!SI`m8t=t7uWvNS7Ggx0`auG!moT!Qa6(yOXXh zHb$MHN-U{rR4~wS&h9suV#Mt`{UU9XZ77uX2ca?uQinnhW>kx3la(!zv}nRAC0zQs zkvu94_)Ug&e77Z}gasflQW7bSOH&KKY_7*CyPogEX<s>4yEE}$Dtn?j`J4e-?RkAa z=h+vCZcO3a1=-#`(v9bh2XAl?e;^2Af?~WRqo5e4ASoIt9t<ipWI5Dp#4oU5VLxFI zLgKzO!+weRli%11i))$+{SL-h+JY=4a>CGlFBf6$N4^v;57W2lnn!gQM^rX(qm%kw z$6QuC0ww<qU6grkpuwG0ekaR|6>d$n$nS~`22&{HmwM5w%<?a<BW1q`hsnj<Yp5Zn z#B?h&5ypNxz6YEpG~9X{jt)b>9oyrZ%d73?K}#BugcPZZ@u<hvz%!MyZ=I|UiXF<U zP9>6}Se1Pk2%IG0#+CWN`O~it4r34{$L1f=^G8UG<vZ2lbv^k~!SR+JoKmI8R=^@b zd!}z_irweZ>$d5N1gtWZSdW%Cta!=}h{29txZf^qUqNs_S{l%eVH;$@e)F$PKtTju z6dRJ<8cNTP{Wo+=m5f!HJ;hjQkQv=q8mh!t+mJXl%QGOw;oPpRB*`0H1<TZG&)s@M zG><9YOk!BCqderWDyLl|Cn?|RUE+Uz`}%<HUgFB^RzSxdR!3O;TV8mr`E@#Mb`O=1 zHzc>%bhp<Y4pGw`W3#md7GtAt+V!Khn*cRW;l1Uxo8T(X%o5capuqs&(y}3%)r8U+ zSm0_$z$N{r46bCPg3O3yiX02ZBc2+6cT4!~Q*obs?9r3?Ib5_~U`t3E=Uk@^CYgM= zRW+l|g$y$$8`D3m7#pd4DhlY>)H$E$vHb4IpXVvRp)NzH_juV@#%*y_9y$VN2@WYB z@;@X+EI<oI9cIGpzyVvO%GyGi%A(i1PgMWjY=7PVy3Oan(zr<mha2c0OxFH`5^F!f z4mU&VvcX(KmAR-nqf*sMY=>%O{m&TNoF1kfH_;%Bh*3yV*2;+b%txyunQN~x-+zAO z*&o7d7(N-HATWX`2$xs6%n64i`ku(q_wx^lYik%nX`&`XEXEk{1jp$#|9yPYZuJeL z%9WlNpFbcNRKE@&q*2C@<KcSbQLSIJ2(9FN`c6!kP0>dPO{z~^j);xLCPYmmf)zSG zQ|7~43no|M=^F;@YbL&d!p*6hIaUaX@O<B~rftr}vixS;F1-+-ZpdNf1jdZ{bXSRN zikMl)tIE?ci0#z<6BN(-ro~tJBgieU|C;tHfgYRR*PT7Kj}|KkD^ZIWTi8FHh#L)p z@rOlWJ6pBTkOY(7<BAoCu?Rt=mzA`3)6-x7?&6WeN;o*+I-LsqSj|d9I8qlZUJTX3 z4N!*YY3*l_9pzA;N0ph+kyXLJ<+`An)1T&l-5<~4wlg}d+9VNZ9P+P1{`j$&zCOYG zLAlw|Eh3MGHT<^&23~}FA`7`TJVEJyT42NG?A@!+Ax{6jW^l16Z1CCTf+TjdQbjpB z<(Y1W3DaMzE)iyVYSDa-TFu%g(f&P&m~wR*{vR=3RbnkiUP!;4*0*cQuMk&Bv{$^m z$%t2u^l2x{u8PZT>OQQ3>wlb#c=*D=BpRl;y&q+vE+y)ds=bH-+Po6*IhT`BZ;lN! z2u5I-h)ADeNMOm7#~X|B43TYf-KwvQ`t4vOe7fYhHFbQdm<4Z!cdO$kSA&g<|AfF& zTTX$-CDd0h<2?4(al^5d-;OsiH=)#t<5K*Io3H1l!T0uiR_2$s`OLru7Hy!XK`)CV zd@Yek-h&EG?XvKrw_m;&#AK5aCkw*v&Rv}41=ax67ec--a;~2ZPgPr+(@H~=q9AE; z4xKkj#&c#ra<t(u|3fS#VK~I!po>uAHyn|lJ=j2l&djRWT!j*elm2@zSvVq^ck4oN z#z5rgd;#(1;h~^1ER3u!;@`S;?~D7|uJ`I(O2r;o4r$pgR%d7rYFug1978@*pZRAR z(nrj*X$y>>a>mCbdDB{OzEv`u?2cpzH+od~uiT+QTQQJI!!@iHy{Ed0NA?EEq1}`3 zit`NkH8=Ad=fAEm*P<jSV>1>-6&&!;idnFelYa%hO}bG%wA<9HwsRFtp7UI-1$gt+ zJrKCci95&N0bd^AL$zO$xec$-8tkB)dC&jbQA62!)!@ITlC{jFs13gB_?8wOcz>?> zu{<)GpSyXh+p97?dgFJfrR_D`#hCi{8T&1##iuA}Z&mWXXrTXnJkxXDPc0*u(Ori4 zdCUep3m*;jn@mthl!7Hg1xHXR5loPkOg<MY`=tANiWY>$nn)ItXl~0c6@p5Hj-qV1 zBhL&}T`UwCkuJp7eS=Swib9Ayz5asdx#e7>+VuQhoCBAJS+s(!FwT#>@b~RfBu)-c zjZ_sUG4p(oDH%7nrJX9o8<W^nUTY;ynn;!GLwHJW1tF6nZ!%lRo7i}hu7VCC>*d8_ zrjlZ|GV)3m`JQ)~pOr>QHC^q+iYHEK&|KPx*k^(^T-aIA!K0Iom)6nL!X2W#{*xqa zes&rjR8K`sTf0>2$lj`I4@?a+9V`^#I(8A}*Iq;$Oc;_)HbR_li8LK76&coz)A(^< z985q;q{=GvI0lh}O^zo;Wl!#Yx|bxUQ*C}}xoD*e7M8xV=_5TI-fC4YW`Qvqne0^j zT|$zTYHC;I@wSbxCP|BHE0Z{p>~*YP$2Qffq#Q4sVv#y)Y6mBK0If#yNfb<yqfR<Q zYtDuJD|vPzRcaH<K6^58QiPkXp%FS*X|VTr%U+xkMGAK_QpNeD6SSj1WW>2U|F5(% z^yWH;45c2D8*f7WpF58@2}pmMLcV;K4H-E(@X&a(9?Rrk%WTBaiN8p%YHArzPfrUp zy%25nki?XAbcC1!CLw4EuS#26QC$B<l1#SSTXW;MG#7Qjy`dW#(ntX;vO6~%JwZc* zbAg=8EyRkiy4xacwP43mKZ#VVii)0gzBEUg+e)Jp`J$>C#AKmBPQ!$GWAJZ3(S(72 zte<ZPdc0OajnE;|uxMx8>|+O1yrp4=`Q5H~Jv~$(APo9-xET9;S<Q-(Nkhb6A9vaq zbvx6qV{=5gjUIQ8a@m{~C`+TNJhw^+ewt2T3GRTAigKuZrYY3;!UcjKZ?SA$z(`Nu z<}*w|P<1MDwOqagcO?DpH{Mz&!{lhHZ?@BiZTF%(YpCy;ilFL9c})ywTR<dIt&>XR zIqU=Th7QE1r<{vw%JWwzhLGx`vJUPFM?hr0z??T)E1D}{th|DXZM>R5XsY!rrlg{R zI=om9lvW2huB5yg22HLH!~PeRHs@6FlB%dQtm@fat|@g)A`-&uWaj&=D8vvW)UOA+ zEn|-|nlRXc(=)llXYZR==`PmVll=TL9&t{*!3!#fD|a`FaM3_+KIz;};<Ht$WVAvW zDK#^sAxgVTwri$v@gLYi3|dOE6_IQHD!qvEHsPccgWA^yP3M#gH8ll-JXfonZ-;_H z=0TS<R}D=tW%#NJi7u+nZq->y>Z(SA3}Y=9+2aUMdGg7D&ws|56H`Hr-nr`ib#Hvv zPq+h<QKqEtrZtc!^|+sHF_|f}lCi~>>)|3V)G_7q7!T1EyJ*(|(pMj9&=2wZBO&Q! z=CH2O^jJKYnA7N=2fx$o!kX~euOX4qHm6fe&rX?Z|DFXLvKk$je^oqjlodWk7a=Zn z@n1}GkCJ3e#iGz)R9iHQzGvejQWNL|nX$cgseSJE9FSA&jhp~fbTlrAkWqLiLCx5M z{M9I2zrv4}ixnl9&(8cQKr=>N_Se)dO30V_nsPj%cXpq>-;MjWL**WzWXa(ngXdVh z(AhJNdk+v)Ft>qEevRpSPSXP6_}=}XsX4h2j9weIxJOkR-_!#oowfIQ&UvG&A=_nt zF@gvbbbFxFASiO?h&;G(JiSKMteWn<7$Tai`u*LL&h2^*``o`em#NF_O8L1zZ_qv; zStYV(sSO)^sl4gl_N4nIH2D~Ey8AU?!-Q9Jw&m3F@$we6)>sv@F-bkT;?X}Z#NkE@ zEMS$C_vLyEWAT<Y2=c`?@%%)rZT;wPgkVRNSUxc40UVA!_^P8l_&V{$`&afEs?L(j zX}Q!fyrt2#eovKcA7hnFZ-QK4E4EV!&8rVx^li1O8F$%R70K@FKfG$qZUG*jLnzx2 zRe=U2)p~0Gx-eTSM8?aR<!pT~3PrWw2xn!iko#4pJ(Z70r8I7JLlL7XlL=uVZ73z5 zFO`sJtFu`gjXId8Xe6wvq7$7Ps1oLU)x9>o3|lJe>%tXb-qIFz#1gFSPe>)SuBHO7 zhYI=}Bgzj>0aETV|Ki-lL^>XL7S%i67}ER-f|CwyDA565*G6%s!glGB<MRtADeU-Y z-FrgkN}g|2aelt`vtx`G?=Gi}Ap%p1i5KXO@eLPU^a#au*Bexc&u|+p$L9`V1XTkv z2(0!aPyWPnbUoK2e|&Xtim@zhs9WjPZY;UFmm)&-f_K*q=L_3b4$)V1WG^xSX^p$+ zsjKfb(`IZ~z><6C6`<oOzz^ZjIc?K^hpr&m>2lZj?9jkCE^P|$Esdch_l{$EVDsB1 zO+fYGoA1D3Z~Hqzqy@}(Z11{(;Vadne^;d|<m2huX$$sN{}w0`BC_!1{fXcYOR46L zMIe4a6l3`7_fO36Kf%JoQ1~C#pP1qQU77#?A`C?|@xPn@cgRg#FfxeMuium~LmdJC zZ{Umf|KB88+y9+Z_^Wt-c=6Ogg`niGOZhZz7>QO5>T1Dh)nQ13284|-rw}P3;TCDh z>-Eq;0Xm~}Cg10vLkcGFYCiuX94ss{)>-1NP7mm4yf+W{ENW&NKXKmhcJSI)yiXBP zQaE#i>stPT%NK2LD%sN1AA)5$01}Qsdhi}$xu+-Z-`6?^-B%j58VEaMDIwWbZCO^z z^O21l&wI9s(x1NFDEg&y;O8rF4s=B#z5@Tj^Jq$k7o0o)w!)-OT~v~Eaq2j7^%w#J z^GRK5eedCYyAL3qiaA^Cvu(I08Gl~6G0(@<WEF@VX};?2Krv&cE}JpBQQro$pPyF- z9l;pgcM2*_C795Jte|VqG=dN5E+dL4dEeBXWwWrxs7>5bQ0r~<<pj~!qkfzHG(N}q zDqx@cz12X|L~wkE!f|RwwJ$A3uWy%EK=TJz@-LQSY`8A|$U+^*vL%3_uIH6}z%V>x zDK@{h@n>~6lR14b&O#(%1KxKD>QnuW9`;7~LzLSV*ED5z&s7h1VzqBy`<+w7f9WV> zs*8yJzB;!1<ULIy-8i}oB)@%uzYakZ?0&lGG$+Zr=iA=fukS-q+V5ii<@)8!Rh<2( z<#$27>i0VJ!!WfMX{q42_o;+>_O?3l6f=06%6hk_A4oi%JN|M}T=`%q?)%{N^ZH7i zuN-g7Lah%i2tg4kR>iLL0a^@TL7`n_a@-E(ZB2fEoNH9CH!C@aQ40W^&8C3fNM>_c zUv4Rb{#zY+WkuQSk2cR)VMBlDqU2ol=fAZF&pCd*`Z<nV2PnO5Ib2^JNqpa<!sVr< z{=oZZ{lETPdAp-)ZIsm1&!H7w&Z@k=7ER)g`Ft%IKkt0;9wJq5GvAjZOg~2z?a~?a zPAfP6QT0HfWzh>j8b_H!fJ9JvmHA7TrQoS#?HMmW8R&B!STNP@ia2WQ>g&bzxnBV3 z`TDq;?Khb=#^qLFbkvxDupQ!tDC?jft@rS8Kg-i~QhAp@f5!HgF_^Y359a-752>S9 z1B;S)z0rk7flfcTMA|zGuM71!QlhgvIFLKC%pi@%?&_gVBC<POnHuH{aDjK(v4u+A zXHUj$q}Y)u5Q0OhC*~A?)CMtLC#6FT{5m9TKP`;n`gaPx^>+Ug>@M5Hr^|bV34f{V zoV8qc)8&2j9tb*Z><)fum_d1XZlEV~JqPG!VnrA}cDi-nZP<v|111-=JNz+YK?On1 zY*T?A(W>lOG(0yK9WDmPFFWzg#&^RibIxy6WljTU7B>?#^e5debNl;agd^xzq55I3 ze8TteZj%2LxRg`%c`E-rqa^{U75XL@3=m*WHIDIriohv6=aB^`{`(EGX*Ac4B}g6{ zMGb`n;6lt+#Aee8;xcx!3DVNVk!L>2WGAku|A(e)jE=KmqD`7KY-1aZ8{4*R+i9?| z(b%>dr?HL3YHT~3&Bpxp{qgPZJ$ueRXP%im_uiSIOy(S(<5Pa==!zN{-=IQ<AjKk< zjdz;7L)t#>1b?eTq|y@wDxF4ujPksnU*@cfj5eW5DJxQ9)mg^TuTw}<=l9dK)`_J{ zUo_{YY2pR%kVgq!3Cn7@+SJ!P#?ujletg%|OlrPpIBB)7cgS|*MQZ0a7i+4_;g^?g zNZWgt$|Ftug@(Au3|L}_a{a#0oirwmEVctmp)M(BOERa69u1vWfI$2;^5kjL3^=B2 zuJLw(5}{I6&eiH6nhDi|>fAV7NN3*9z5OBEAGg_QZDT{W17>j@k*}nqLpo8RRKv5n zO7FOL`#M&lASKnspb!V0)ZToK>y0_2D&qk$;2TH~?Vpb_TV1KVf)a(;OfJOv!(~jE zsFGG$z2dR2-CkT|0|E@BSZxZ6{(OFZFL1VpI3aj*CB|8~Y-nXHuv#ooKnHzJ)TQLf zi4ayMpgyV@=xDwa6LM>zNDf{9hjJy264F`Rul>~Qy2IwUb2p#28R$pFF>)qLO@tq? zk)sVW!HrY?4v~1i!&WqLkcNfP)7j~Dbz5@ecVD@>xeX<Ro4UQxU<-Ue`#b>9nf-K8 z1P^ezRbvxM*f?bdhZv#(@T#W_nQj|8FQxG&bg3>&{<LLO>6$XE7AAU#DrKoWiA~C^ znk}V266=-QUOfK5{df?-8Y|IwUUSa^{acod@->98oxdv(%zn+o$s(LwNGq#hcpUk& zKqt{lpPJVZ5xKB;A2Q2?#94E>H)Ev~*J{C^B>Y>H%!zHr^=eD-hja&rf$y5eNMnN! z{QV^e`#j#$@{@wpus`%yW#=~W%3C<~Sua2RhmFrc=Rlo<p8RnYI?vPQ^syDZvnqNw zY)gXwSW?Z1Z=Rze`BiQ;cydWm<q))-Cfsa%*?DebZ(mSW8SX|UW<eR4o!rA64;>^t zPoUJ;*c=9ngpGP>U)*xlmNOIlvkcsS0*o!c&Ln<?LOGo5&D+9!4@Bu*rtyx%DXOBD z;64~U=iyFoa2Sj0_Q~M2WM~OW-rOo^<Wsbu{AGhpt&c4VHTS!y*7%aA5nT>%<6~vN ztJ6im)rw@S#bMp+U~IJQy+g_M^|gIkKe-8@ytL*n#k+=9-oohHr|<f9@J+Fow9=dC z8Qev`v=(Bq{%=tn9@cMC$n*=nW>46Row635OA;dAJIWl?l4GJWJg>UbYL}epY=!r? zf&d7~;$SnoNmSfY_OT|weapWHEvdwyprCOb=%vS<F0t!PC%mLdX-Z31CDzsa?4Zcw zA|m6LIW5at!LFy<0=}3(ZaZA(!l;chmhQKs-#RL!COJC)c!j-hhOF(G2?#r7si>{q zS*sEn84Bm!vmvn23mpi8I*OwId$QdsQA{~6Q>H{HMsos(%=wE!FkeQ@fP=VE-AG$P zi6M6Tco@i+L2|Zpa;AuZ@N(@ruGeX>i9km#!Y@Wx`$epYUc}wv_vB!zh*VQVM^;n= z3K#0ai(|i&tcVZ0q@RO?jzzThVGrluU7G04n=qkhua;}qCrNyo<-f|((SteB_!m8I zoGV|tJl?1bJr6Bv+i&On2UI><B0}DQ+pUVrQj*y(SWb0@VKc{z7zd;+!2Z~X&#gvu zQ-*aBXJ@w0_hx^<q)sWnhE26S(rRlNLm?&{!h>8-6v*CKWaweh)Kkgw^-CeZi&}9Y zH4f8JTK*fMTpAF_fk||g4!yP6l*qO18<OqxjHqSc%fjV%<z3sghj{hAKq9@a6LrVU z<C%RRFA(OcfaNPhGt@`2P{9r_O_>}>nkh?`qB(xd^(5AKAHI*|wv+Y4;4gy{<H7Pw zU{<>Sx#e%jJuBLysl2I_NDR56ek_E19~W9F5_e1uEG%3^<iZRVSNxaz3o*Lkq|ym) z+p9!h;C9bgbtYTe+ce*w1oLW!mRzEt8#0l<gqPisFlp+KU0a0ts~vuD#b*SdETDvX z&dtci@U>T;^W#?GPA2}Kj*yqG?5H$h$pfyy7-etovEelTn>s{d{>Yo(%gRBoVDIz* zmXYi4zM5QHcyPDuicaPTe$6lMO4cH?lPO6ucgVh6Z&g!M+dSq;hiYxQqO#K&B!e6> zQQ{xT0xYYk82CxI+=cWnUUWT<|BTBNBI%upM(3nT(pe~9SRg2-#&)%odU7ohik|X; zIqaGk|E-1uAdZI%E2=3bg0)}m35kl57482thzx&&0=3*~PICauK72AVa`UZXz!-e* zz`nG2H@DS#u_mM7{x#gB-tWP&vZ@k3;|o$8Pg>fN=KLxHy;e<8Ri|B_fGYO~9y&5Y zh4}bf+!>zZY7)o!5{uPR_3K2;4#^h?Tjv80yYW>1GPagv$M{5g$eT=L+tl2Qp;XdD zTKHx8TPYhJWFzG0I7?pdl!C;k3i&U3bfzF&jFDLSN2E4<$Zo&R_`JNlkbgI=uqxNz zgSa%Sjh7}fwNED@YFDAMY`x2bW)?mH3nq`%xF^FG(H-!!GqU<1O6eZ=l9QdoArlkB z;n?sDXnN!*xLpg8orOa~BhYws8ryV?5?F0C3W*8?@3%q9`wv#P2ss##+ZQ>R15~qh zDHpXP1@rYZxBJ^2Hi5Xns`kT)x}NdZc2`u{MCqY1%O8ElJ`>+6E9tJi<wxR(#2g$p z12-xfxfB8XLF`Svrc2|&s?wzf6kA>ZfzJDj!%)~!oUS+ccNJw(!V<I;M2CE?pC9Ad z+L-gGUDr21)4Jbzw;%V?e<Me56svgk!adx_(dN>S4<foc7pN#8h81E$hs304w<z?T zmsWKmRbcK*#fu;WDWiw&=DfnRe5wom&eZ*PuXG}V*@G~@>&W(uj$(Rjog<Xy*tbk* zOmuWh&|fIZZ%%Q^VMCl8?YPY>uCStP1Z0TEV4B>MSl$dTc~usd=sKy1JMW?@ksw>H zEIOyGHW>P69~B-V6Z0lhp(7j943F0JL}jh51<%dzQ>XOA7ll%DG4jx<`-1@=<gWQ) zX5+3e!V8@GI)(KLhlW8TJIz>5uKixX<HN%`Qe=mD=j~zVqulY+*P#Lzi>M+IVTQz# z&Q^lD8MuS}+3M{Lc`-2otU_k!)25XffFx$QzcM^BY+BNW$9BGUi#^_=JI6|k0{hx9 zX!OU<ME(=|0K+e=GE7=}Io4EiO!&P!?`B%<Q=Yn9F9+yd)WuXRd;2X>hSWl8?EOg$ zrFro01YOv0^mZP58tL^Ut301LtSU{jEUIz_?LM9I+$dV)%SJ6yUnGm9MC`dOL%Kl| z{y4S>KF)SYXRR2I>aFd?$Og*TyI5SB66R~^(+z1DJzDv~7pZL0uM8H+@|38esPJD{ zkavHfM;u*$|D@M<`LHzziJQ3PbBosu7T>coy9{ne2HC$G$yXb^*I$ZWPK^aQ7)j<n z#?2dz<r?P4UD9IpTEWxLfTx30tyAo<f~qPEJsCq!FTByo><F8T7!m=9`h@tb_s4yi z*gs&q`(kS~>Xhy2wwYwV#4JuC<BN7uo_JErw8vE&Fg`Sx40(ZOXUh9b*7$I(*?y}d zwQPhcE|)7k$~j@T?)qKeyDN||dNlI;p1PI>+Wqr4R7EUrBE;Qm#lxQr#RZJZ+y6K= zNU~7Bec-T=lM+cDOd+k2ZHoS>uz)ke&t6%c>o*8^#=yz(=S7OksmWJ|7DFgWm_A}+ zPMMQRHBdzb1|j?`xRw?f7;ktS#*rDtcnpCe?<dU@M*VL5oH7Pm^sTAo^0<GLnA}d! z_qj6OW%Bij|Ngd7+^n1bcE!y1eJ%bl3|0zU5?Vk_Yz2Jh>?1|L*#&trm-wR)44cjH zPZUW+XE6Iiw}h55G48{0eGov^ox*3pu>yib>B7jGaMU5bnN<u5RK#7R=WEjXuTr1X zzpTn*tKsLkAMw~btd2Dt*45h`E0!r_PA+Qc$9<ww#NDP|$ythO^T&0>WLQ)ZcBz=# zkNBh(Y_Z;S;b38;$9L!M{!epx7Z92P^`)2rmk#(fWy;cevooS4?i(Z--Ns_20*sdk zthZKnd&E}3G6+dyl$mZ{N-5zLlw@TLweQiba@-KZRe6GDQ@oKI(_+zgKp7Ghbq1FU z;EA-GX9B0|JErZwkRl`^lNSK8aO`|A+!EaNjLQ{5Ng<Cm-QD|czu5t6l5w#HS;$$Q zH$EmsQWwTrNNsqYC(zYy%Mq&(+tuvxgMO*nWG!WkFyMmaS-FVRZ1q26+xc)sfm^xb zSDqU)%B~E5^#LB_Z@sXX76QI`$|u9+tz%O){@)AWnWW7+7BMZ9-=(7b@L*S^1?mey zNo-J!akSmb{`iR@IQUl~=)RV5OZVlQS+*pL)f)1>B;V89CZN&J3aP>^4R(}pP>QJs zCg;zYOsVH}Vg#O$H#=lNOi?jqWo~VpBK{-uIovxmRKUUEzu!zk@r8H)6$9&?H~4#m ziecSyshY>_-pzGc4CNZgwHZo_Ctj@14SYeG^phBVb$u#ticcUVRw7RkkpkefZo0r} z8G7R-)_Vw|z=d3F^~M7@?Tfs?*p82n)UKoSWH&g<Ex@fQ6vrn7v(cC%q4(|H#*1dH zza{epq=erRr!60^;++Z`8*__~h=(ClL)y>t(fW70D2Fx}QC4XTCTd`8#@9aBYQxU7 zkN3s8wx=qies1ykaOD%ZXzOo}N8_m*;J!EU0W$PROp@Lsx;Va@zk&kC@9U!V<u$q5 zPB~|1baeGBXe+WN^swy&4h=?QXqcwr!n~8HvZGAnblF0JucQ;(o~fs5<rqqo*4Dp| zD<|p-nu|knJM|zVOjJ8y*U2s(^)Rtp$|U~AM=y_-3*+fT*NWQO(iZZe7#p>4g>>|& zw_F4Mo0a68fUWiz6231m3;|DAdli_w#(_F)WydG+)EN9XC;3nFU-OTb0b7c$6COuI zEXhv(r;?6OcT6^R>!VkYI6gaPNfm4?OP%sV;h*fdJI@d}mxc+R&O0Rp{Cmw=0iUP^ zm<*3E`hFZ`+x)I6<jXvY=JE^E=8x;`;H8GSi@?0T&L^>0%4xS>?+KyKdqV=5BSQ36 z!AvCskP5Uv3ZlqbgLcy`Y>INV{vBucCQ**>07$;~hK}D-Q1Z{Xjm{17#wX1hy-~ZW zt=*((M)Hg31I6oh7D--wmbaJ1sqD75EuWQkD=wPPVhGcGV0l5v%p~$M$*3RTyD>Np zo6~VCCM8LkJ7yQuU^|6xDW9FkcS#3h@W(K%PCLj3Up|*LvjSrTC7+1SuX0A0Gc$(s zR0c+gAB=qJ7VbLDAAOXT%g*IwqOOLqFBxCVm3Yvyy)B}}KhoO!jMYV~q~bO-FN6KV zU_c|?U_7zWGB61jUXk|{=IR|R#_qH}5?p)~6!>4%Sji!M{CxYG0q=3KKHA#*Vqhts zC*x<(jJ=U+{JP@8?zAdtH=$^niCk=J_q10o6ur!jikPGm{qeqS#O$%bU8ayfQXDTN z!oM_SfnzA`#M)n!p60T-sO5SeNo`ty%U2l*N9-SpG{c8dSLkDi(7$#^@ObJJFlANy z4ue6Zv_tR#v|Quk!&B2LA9aSzeZL9`S&Sdp@ORzK_&yG%U*EDtbN{>|?710cYG|#A zb@ByvLdr~dyuK$??jOURkK~WS+LrKmzuWPgduh7ILx)z-E{ee<f)vSTQ8I_eH<GKv ztq78xN)$uh4KzTwfnBwr=hX`ymm}eW;5F$wpqaI$FmL*bxU!0l+1#+6NL%RO<S!9a zhjVv(z}7ZeX-g%3exsn;7z}iO_>`V@+W}9WZo{ty$f!}H61R>WEY?2_E%5Uh$A-%T zN!xYT!-BRJQrx>dl1EgG1GsVBKmPRY`fz4jSiu4o>1f*GtYi$nppraz`IxL~XJ|ie zKm1&9IQ(de|MkQS(-0+cIGMlgTBhfvZrgZ1W3EYp&(rUaE_9w{Icla!na~>p!Lj#+ zQP5?IBd2AD8~cY}<T|h|y7>KE2;|cZD^OMcwcig#aEL8Be{dh9Vx%=OW%Pl+-r{hW zS;|xo018%;W99fv^W^+|b%C1#UB}0vk(3M~``xg3o@Gj0SljHD5%dm?)aad_ULKAR z)LO0IJ8ZbjZ1TU|Hu5)Gv-I|yGrnKG2$?%IWs_`r(<hF@=RZ%nS3{=PUr2mX!sM`t z(D^)-oPvEwd;{qjU*MBRV)}*c^b`f3%$FQigvA_)Af1i1T1@{!G>*%j%P3ij`NGkZ z_y8Ivv-^POw7?5thmV=>xzKw^=|s925AbbgKfcjrfvV>r)(I3j!FW86#CQ<u1twC1 zZGsF--8RZ`KTNV!)YKN1x27Mb_w*egVEnH9_iZo0_gduM!;Mh5R~b5ha)8OPHx{tm zI}z{r4!C+gooU})Q@Wm~pJ?Cjhl5I<*3Qujc#>Ok+z1rE>3PT<F0XCR;!!K#<6>`= zLQoem9*moI#Aei;q(H*CS<|DhsID;C3<o?t06*ZIYJ467F&bd*o0`FjV5%(}$D^hE zx0op9450s=(bJ}q{{RSl3?87bo1I%+oe|c;-}ph9s0i-ueIgQiKK-cwIfcKa-yXHS z<;5ic;s!cy^v$^*ALjX4?MwPUWp5i>I5f0O#XG(s{1I2x`u&Bs9S81v0T;1Yk#yO- zGz?RXc7HNb{?YS!?S6ZD+Rc9cdyY8oSd~-P$awR)r|TjebgIUMjZ=B29kWs0=eY(~ zoIh=4Iy6DbyekHFcJ!;}S>YYLpGwdfd_7pC2wh;pl}YVYS26L{M;a~#JDUr4E*6yb zN6wx4l%rgy1)~uZirwmHJ@+!LP>GpHI`<G21)p)V@UvDL1B5=k@U6*|v&rYP!jd%^ zXH1oVxXTR6VYdvsvy8U9s4+&AN{TwNUanp!%m}i6*Hw&V`sY7REaZ5s+4#PVF#Q}Z zCE0xlXhW&no^aPPkXbQf_Hx5;wVK*1T{a}6|K8hqEQtOG=HvBrX6M1PNk>JbsVe)j zQ%^;9R|Qc`gaO-XJr4T|%2z$!pN$eUad`sSPFrpmg@O4kSB^dRm)Txd!xk%XEmCF$ z9tPdzSDoFLMEnic|GiL-OI@9LZ$v7N@9!v{SHq?4^UaHk^4a{EM>TqoKgP5iaKE7M zGWH!7l5r<b=EOUTLI<G)AA^txq2#YGT%%os(6y=!2k+Bza{{Jy)cN==pATqtF@6;A zs>)c<47_*yaKHRpxR(AEO8#Hrx96-{u1mPsgfx$yg!!X#47q!A)OkBA?Na11H_QK^ zx+!y#QG+>vJ#tn~F@MZP1M4d)D@tlQlc%Srdn{6nhbtEu{QYUSpVzdW4wamSnH72f z=Sq)tA8)Wh#=qkAe<D!ld$K;fp87)q>nve*ePctOpP0l$AixfHj+Dp)p3`Z&9|BFE zE{@+LxwbuF!-@(E^H|*PJhQSg{D!ocDYg5UfL+n)hKAEKkfpj_u17!Lb*%neZMx@p z-Bi5pP4oTE<0!6^UDSz}_#<>oCMWwJ3EuuHMp8zFF2d{oSr)#<etr6eYpbBJMbXZQ z`R@v6T~B-POu$hif43V#+04Xa+1#fRhv;-8|4cbSXO_f*{O#=rxFs&9y~+v3{nB*9 z-C*#x67#|6IB&T`gfZ<-Z0pwEidp<&&0>|O$rG!`#mewOWb)&{*JVC`{3ssRqxy@* z<+jHz@Jm+|l)9!STKwqK-q&R{yjg!{s~lhSb50KM9{ofnrwwboP;<g~6nuWik*;Is zIpaL2#B6IqYEV@a^oW7PbAG|bf*eA!<xO9n<BgbRa(#frgvzPV^BzX<G&kcv67aT% z<GVk?#2T=avk`gQ6G37!yzXQ|e{ykIT3eY^_c76{jD<`dq^2YgxvW`dDdx&%MxaFV z;#NVJU*z-dCR8Dxrq}cFxpL5iHEp;x;PEqOYZD~<iBl=yqDXt2y7=F9u0LLJ^@c4I z9K>=sVMK~wzr41Ei)G3osFEu{V+(?tIG=|0_?yiU0{m^s@?UPtD-a{R4nR`vr_o$L zCv#Ta+&$*EQg@nDo&L*lAlNr`4XwL6Mk~>?hovDi7tx?kdaaJfm(P-Uy0;9(brDn9 zt@G@*nB{~4{Am`Tdp^5Wl1tOkxLoH-8M^EvB}hSOqE)l0u5!hnoAcb{?r*f5?gKtF zKIa13USGk9q9$^Xgi{NlKJYT6?*ZaE?T$Z|4O}^7A@nnQ8S~>*E?|CrJ(>yC6xh?f z;k-!=!nIUnQ&rIz?uq-x%gft-X!W5WW<bQX>HJx6L7W!~)dMn6HMyWT+Gn~nd76Qn z<8#0Ih>S78(xjBnn(0o!)nM_$X=v1*gp%XMsL_v#7|Gt0A31t1hD!yJ8rWrJJTC1I z+Yjqhu_B!hhtsj)8DNPF%O($=A7#FKUGGM~dqVDu^!h`9pYC5LV0ZSCKxg~?4Lvi8 zt(~eg86>>u8FXF=ag2P)INaUsH#R1F;yidee6C@k{bc3y_=Aov*V`W7j#)Zt4W+C+ zwkYVo``iPi;JGgklHt9(r(b9}?QM@@7L-2wRy%DW(@-hpd<u;1YhhUH<XvrWr<a=H ziz-towg#S>%nwD<K#2qdLI8;O9t(u=R)P066`-kDS(_iIa_Uh8C^6yWxPA-kQG04- zGWz5qceUDy0_z6wFp0+>Mw&1jIKIO`e29*whGF^<koqJ=GL>_>fF^x3l{>YsBs2&~ zqr+iV`LRLbCgiEZ7y&weK~gioVp>|MAv;^!0pLe3pxp!l@ncYF?7z1I3nQL(hH*e^ zkQQ%1j>&ZlPOxw9IL#T-;DE;Hg`(iPO@OPN=~(pJROkqekQ*P4um8$XX^y7zrqa?h z(JLtH>O8aA6!{Y?lBxD8LD9Lhj7q+5m#H!Mi$fVI3ZHl$&fPdCh#(P<wJXcp>9evu z*Wb40?d{!hdU8?X4iwDuJi-%n-tzMFBTiA~|6`2?d93>vYDz_gWl?x)<*xzv(|m%p zd%CaN?SM{A2Mv3f7KU~L0<-%5u)W}~WowvX=%m8Z0bL29s7VPA($ZeE*FFddp-C|C z9KzOAxXdGgu|B}=iWS?c7QctBr#Bbira^nbru*x>+bbIS{Pbido7Hp<&+#PB>rH=z zwIgT&53%v14~l(?W~nM;R8@3&wZV*!&jYwy%{Fo~cZ1dRw2mN2PWW4BXka+H&HRWV z3fzrM!WxQ_#wcJJjxJNcXKk6TDGeWH%sg4U>0=GFr^Z&go_+zc9XCv5aC)J`5qzTv z71aXJ6<29|Qi0}-NEUdx4@q(RBBsycgMGeKOMw>6^1C6b=+(E!dE&>$!$dxK{v6C> zc3=Y!6X5^mj-MTO-T30)w_AqY1K5slGhdRw*}OXFK(45j)POPAG{CF<7m2N0SlXPs zNU#L%Lje}k%!CN<HC4#xIe+s(S#nvO%v_P@+CBS9@aq&`Fh3sad<pc=b;k9)ymrt; zEs4iIsRfpn49QSbRCHN6Y$sO&$X4AF4w;oz_=1AlNAL7Q_zw><5|XmIzC1UX^<685 z+z?sWwUN*Z-c}dCx`qUn^Tb!K*%_^Yx$+j63lF$RaYB1KxiluL{jwj{Ww2DJ2;ffY zeB%*VwbgnDf`Ufpv4~rs*7Vt(-ESxE$!@@=!z`u4&!u?B^kg)#h(C4@j=Y^Ap52TC zf4JwgW10y#>&?c!`0pkcZt3awyBetrq$3Sf=G<eIDF+hEEYVe^G%&aPoX`q|f4Pq2 zO9XMvNYB%LAE;%uJdjo-;Yo7O=Db-dda!o1J<6i5D`_YaipY-Z%UDp>Ac#Umt|E#_ zk$hu>LMBodqs%J+{Y7&l%39a8zC0Vy(*9K|=W)3?H~~IZ+qr9a=!3fYxCH*4nb?Q) z#pd_7Hr(oP2DzIf663mn%n;R_5<=@fq`H~o{nV<*HLc!(opIKywoA<@zp%-Gb0W#F zL?f#h)1rx^3qzCz4dzdXN4?#FKERIb0ca*UNT+sHnhtukt21e=iXn3Ko)@JmG5=S; z+jVzE-g3F6&^xdC30<1l`xZ@ioey4ud_{vm4`2_0%T}aeiu~BcSJx){?%AQi{3xn@ zW=aBsfl-K}iKstn9GY4Is=De!J0cv&zbg-f4T!#FyYP2xI$}y#oKNS<=W?SJiphA< zdPwZ{Zwtj4sI<Mr@x|D0Q3a{pvxS`S7)B;FscBH?+`y4AnXQg5R&TWhL0<o4ASmNc zk|dJC@^2@5^XGpyG$)ko+U?$7Q?ao0dCkJn9%y4CsLdqf4pwoD_O25xE1y%z8dg7~ zL?9nUwpXbLLD*BwU~%Q;S>erH$#DYNN8?jgLHEl=eE}a%i{Y@>-S*?v)&L=^_<UhX z^uun6=wG3OlQ}MA(P_TFM$aWgX6IM?LwW;Zq8j|&;5yrnkA<x6Z}BEG{aA*}GTTPm z_QdOwk+tSKqqp{}j9#G;N02xsxdYP;y+S_Ux%+<T0l?={{)78UACXMkKdaDI%BekH zE2wGjQhy#wG)9USb+tQ_F---8c)8Y<7(tf)4*XgZ@qMc@I)v+O%bzbIPpj4)E)4gc z=J#Xp$PT%m_TY5biYgnWWdcS_IZ8?Ft^<5?0oXl*^Qm@^6WK`G*IO_8f_7Bkqv_#& zH)r`IaVQ8uCX!zNU`#}x#w4}OUP<@G7{H5$xB(iTVJj#?mpH@3!P<9Tu>rLfxl}u? z9)ssrS4A!ZgWMv5`R@-FCUgB*tYU~FrYwtVx<l^tI16PWCr)9=WTbOT>9s(~K0Q)B z6JyVV5p$)KiPE=ih3V;Os;bI?qg`nEp=Qx<a1Y5w8A>W9P;}^DPrgY!TCe_uyuHQY zC`yQvSIVCP0D(pV_cV4~_Qrdmt{E)um1vD*q}b65Ye&bBC>n%ADXSiW+|_~}3-Eo9 ze!aHpEvT)CR5Ab%g}@<;&wY0+PgZ81q)_6QnCgRq8H9oy)0J0qWwU~)6*QQXs8NB+ zG<R5PY8qk7momDB-f^EL!eEC?SvCxrnp4B{+1=@ogkA#|2_V~m!n7M~zfNe@91T?9 zIPXKc@kzTn(CBeK98~&rmV}xeeP?GZy3CJv>~CD0E?WmOF(f{`QK2s7@h1CAKkQfA zLw1{+UqS81*Pci#olYblcggvrp*yZz+qPY6a&8NIPExXwz1_)70auzEjBw|i4we&3 zx%}_{@;z^!j&TD<PA9WCL)I!~zj3lRxPUDo)DE(=y$2r!WaOZv?U#~)E7l7N5ll?T zicMqkFNx$@J}Bghn&ES2R%hYwJ;9=yPWm$)ot(Q9OybKN9nhQl?0)#I0jF}W_j6L( zjTQu({me|=H*_RSda^Pyw8X7AMlNKE=@@krW4E-&dmf!}hD(NpAZd(3@toyt@9eMV zT%adC$HVGB;c{AN!RN<@!|O;mjgBvzRB=M*kNOOlqW#PP-XPc>@Ac#B!{frw3)9_! zxi9yPo@1)$k=*h8Aj<t2?%b$`ch5~PWPJ7L!7Jm1mP`3;Ry++j4S2>}ceFY2oL#X9 zaIw*Ql0zo|&n1Ns?vE#O#8jHPK4TVVY%E_(qu;S(TvN+l(>fl%HR|$o=HL?s^=`{L zuBP6^eT`nSo;G~{UlR(?qbH$-)y3F_U5L}VyMSg09RV{U1SS1PdC#B3;8$OJPOJ(! z@;|tLv_lud<3~;zco~0qf0mP|gjBara+<ZGpUUI$rj8xk(8ypA3{(M+@Q`nw1uYI0 zsYKnxx|%!$y%E~jSSU9qnlTBid*xLy)NZ#W-elr5yzKZd)#?mlHCn0NGF4uiBl#iD z)4~vmsL9di=5AJN_e7o7WsNT4%!n7T*^RhisvCN~apZY{zJI#u4o@{bNGN3R{SbJ6 zyv?Vf{b8{>&LLie*7I~&r)+3A8C};i))_6d6B3{P6V!C7&u_*%90r^3d7_)$Jq0Z1 z!z`Kfm1GJdh3W#on;tRwMtEt>SlrH%`5qo+KLx}Kj&K2=1R2Ytwe^dVNiidDz;GmG z6{VSRSB#8#f+0Z~pFLgYd{*=w(f`n#b2(6LpC4U0ZS+q#O<Ub{-2G$n9BumdTb}!z zLC|Naxmv$Hyc-T>2Y9QdtKOF`<ioZ+(;jZ{a{sg74{^EahFfjt{mQ3>+AC5i-K<3D z7RSx-h20&sWy7i6GR>pj7fy}CvM_nvTIBMD;a_Bf-0E6zqNHw_zBgZYe)1rMLI3-Q zd@w#?34YFY0?*x~9{6mms1p=w#|YDePVDYv@n~gj;fwUnqi--$!;3JZiy(?{qhAG8 zLHi!9+2IMApUC`7F@b`I5rZK|>te*YG%$b=Vf#%jFDmMukD$>^E&wC!6J!bB$V84s zl@>)<!LBn!@B1ZC`Xs3(&O`UrzoWBL1#3*psWWyyDRQh}drL%l#{=9>;I#7|L40I| z@|x71ZZPtl&C+?RWXyi0Aq-OQ8@xAlL&<6A=ys7>H->Iq%XgG9RqHCvSv7+0euAxO zn0}P@om)UIm~cxWTiwUl#1Qg^)?R&jK_M=wC{2}SAGj_I!Q(V%Mld*DY<-vICO)nM z_6!<r`{7I|+N!~7U}?y=t~1;JN@A0Y6<5Jra@ZOw0qtk9n?OgWF<J;)1jMm(VJy25 z2i(N-AJ!LtXLnN&Td{{!DOyIlgUPw#47Vj1QxG@Y*|~P77X|^Bqvd%EkuPwXPpAIc z4|07pbVlp%?3(UKtYGZ>_tFB~D0_{McX))bJpLZQG1u>!+N(kd94~PDB^#Hjn$B3j zwik6k<_E9OH)2Z2Ia)fnpJOq2IXsr^m4Tg(A4*$q*A!d2O}{t;;9kzpR`s;v$u%&C z>%~0@zeysKOeX}bQkQLZ`B6JTTuO_JpPzt0U!?TSF{OZeSH|8O+1c+Tb=o52#HIJi z&uPx}J#oS`@*;`x()<uY<~Rh4{t;YN$9&YZfXn+k4a;un`dG{8d!dYeWiDT@Ki}K9 z+-i>lbw?S+RN!-BNCagkv4Ai4Isj-1d2?e3SfZenh=m@n9-OnTdIo$^AedbtOLrYY zqdZ1M(J)LZ>7K*z9xLSh4RzU9#vJUaK5+)$<?kg@6YpoH8;LK&5~nARVN8oin5<T& zcD1_ELY_YdYz@eEwT$MVGspK7o5Z4LuiD0;+w}984MjMl+zbbW51v5lGok>07|Od! z!SMku3v2%bMa`r8du*e)@ES<I@xUnjm^u+ITt<o#&)~svgZj1@UPRON#~BUCXdt_v zIC#rMySt}@V-b7aOZUsVtzAp0DK&lsh?3R3(m+C^5j~Y`@kdvt5?e2DK1u(a46k`b z)(`ez&o^CIPcJYDy$*zFG*)6CTEd6A6AQq0c`u3d+%PPrih<dzPR4?l;`Tg2%_>vT zQwv$%mrO)-V(^Y{-SSGGb`FF*!JqqGN@^EV#cebsv@r#fSa!>QY~OS-1^OR=@84|K z&J&A8mJ7St#I3XlgnS-Fh~G~?j9b@FPR@=FpTJ&LAh=2H5B?sv{n+1?(sTeht(ra{ zklBz77W!hVF}hYc<Na+s!~NYWhQ|TZKLC!P)nUJ{P|VH4P346CU=OKGRYM~vVRr4x zYUZ7nJdvh6mQXaa4hB|6Pm2q3%$osH6Zhvcamp-oS>t4xgMYe9phusHo4Fu%S^AX- zbb8&#K0&m@)a=^sa08$FpY^ptEz{q+h;aa${*Zc#ETcJq6vlDCybQjkKmqkB1<2+N zM%I?(wL7ge#7<9tgUF=8;thVwhFeB0Dcvs*b91Y)MU}_|>Vps&WaJkaM_Hy~!Yqfq zC@h&ymoF@e&^w%C$2<PfWM1w83Y42$gfpK3H(~of(`3mXoUOUWl;f@b&P;}_*-(q0 zS0JXE$hMK?-e(Q;Ir!eUeGC{;5wm4!5gQp=uP4WQl4>>|R!JOT9Tl`>YDLo#*khH= z-Vc`_+}OaEHz?V-3M=#5BPXDFf6;LDCIllNE1FzgtV+AB@pYUa!Z`C1(F`bh*{F=y z*c?tI7U5{c@5=g|#y)jDO^aSV-r&R<Yhz#xhM3W5qN9#PEpu>y=0+!eS2+nwjh>HL z{ktxV!RJh=e8&o3RL5OS-q#K0dp|eai^T1Hdzx{9|DM@t^>QWP+h&jFb5GQ_Td&4e z5Y;%tAKidXqVVGf1QC6)WnE5i8PWxk#$K>N3+TW#^u^#cu?Epsr0XAr#=O}bT(jDq z1|=Z=xHL#fJ0Nol3$3JZ6XQ`1y;DR|J?lw?9^BrN(E@PIwMlYg7FIVU@V7=lI}vks z)@b2mhZUFExP2kV#POD1Ok=OQkQr+X@XF-E?g~lSapq|^e@1p}vt_K*;bW*p5Dj7u z3v)!4(Abx@;@W<zdw~xP!8|xdLzI#pGM&s2Or0?R2z-lx>=)%jU;H)7f!OtpIN%v? zOQ$Oo&i{2Axsn~dCyG6W>v9D$iP4)+&zLtn1+JBnpvGM!OYF<F8u|;b_D;147}zss zV@hTR{9;atF{X)9SW(WUn{uc*L5NM-Bj;zt!B6@OA%9j|LgH!})inws&X(%xn97^? zl=O7;NZYobzlW(x5-m$Q*@CHO#)87X_`mjjcKZ@sQ6PY<AF;G_Q#!LXG<z1re|@qq zT>+kA3W!`h=eh<*_zyx1!I<eYSwV@}3I(*hm5h(mN*@sr1h(tO-R3!hT-*Js3aNz^ zX9(y4QW-_itvVN+1kBd9|4iw*6ZMLhiPsd1((tvLSAH%Kh_i2`nE2KO_jX6`6+x$% zv)0>7vLY(t58M8Lr6o|dwmUB?p-eZek-Uf|D?uD9)vk%_+g_5ekwFWG6AV#VNWu=5 zwNn*oB+kp@R>>NwmWLE9`@h7)wudVDY^J1wXaNSZb9h5Xn7-#P52mg>e_efk+x?c3 z&YiHDIeO;NqDo%LWMjtIr?uvF^MIvcyrFbz9o=RemE$i%Rk98ZR#B6_9}-G-z=_5m z`#=N}O2b48zGpm-NE-UQIMimiqj4E=#lOL!pdo(2V>O2-Zl$*%Pft=7mrCk$#NeLK zAC{#se*N_%TiQ`s3FoLP>jp6uVU}+Ot$Q)#!c$=}{@)7_>jD#@r~5c%77sd{3CM$b z8~5=oYvc=FKO8bq(oyt=OMErgDp#pqvedG+c07u0#a0e@Wae1>-2Pe={hNmVGbIFO z>v`ByqarJ>)(H(pAd9T1dt9xJCLUo!_cPw`6Wdn8v0CqZvX`YA=7RMPz!A(Jei@Cw zUYs&FsAxj20M<Bc9vxEYky+79y|;V{lkl?apPGD@_LqfU)2*3U1X;{D<v(IXr!nk) zygdrq(mhj1RQ`$-E^M!fW>vd42gqkM9RGf@DyEdfe3e-RymlE=;}gVmJ7HE%*J{^5 zr3IT~RS9rP%0o+KWx;<DQ`gYk@o4v+{81<q97Gcq#`rm4p=NtytG|-N&c@MhFgtzp z@sC*rk$NnaFw;~p$)5~GO6+3hnX%FHC6^DUfYGUCgVCI5E1k92ps*B}VwRqt%bS=u z*f+gGJt(jckS1n}u9TOnPl_64rUrra`*#P_WA^pG^NNH40L+Mm@P)*;VwXr!Evtks zey&P|*^RXkq`L0$v`fBO%74he%}1V&*=$}t?aQDW%^o1Cw*K%G*QPK#{?X=xpy^TA z0*KpTOz!t^z-B+G&%;$|OG_H`!ViEOrK*q5uK`iOw_)4ZRQm^jT8?X?=cMT3lTBB8 z>;-07@FI9)5*emt(srJ}(zz;pZY(tCbRg>EZ$bP)&A4-fbm1|3i#z?`bDo+dKSjON zXxq;c+G}c<{jkWnTVX#UAcJm9U0dMkv5~Nhi_6W3C%JOUfxzmc)mU)xB8tSN`|0-) zciQd!T_1pdNGo<XWI+O#Rg7RP5|yH<vISOF(Sz}BNiV*)`QPSnAyCGtDZ4vq4*ZAw z$`bDOp0J3I6x`eR%V)YvgH4*K@!2&I8^7$uj>)j30r>f5$cg7>M=-RAgx8abXLdds zboM8{0r-x?q1Wx+>KKwuSCq7*49Pf3$&RsrOqjpAf6T`|5Bj=jY8XzZJN4k%+@z=G z62ZWFdC3zCk$vBrOm|9aD5=!UtvH~;o8N9o)D|F#?nR{yo6c%Wr8pC}%SX_@)X+HC zfHOXt;L-JBGamY7!l3_*#s>hJC|hWpp`vx*G3WBKH()i=uA03?R6qZ@kITe;Z+j&9 ze55UKnjZ~Inky97{j8m%Y*Q*N%@-JdH9W9wj3MInCw{_mO1`I_t=eK~Fj>6}uzvv+ zI&f_=SYJVx4dI=}qnTKd!<RNf`z}4y_^eUaJsitRyJH*nR6_tt!5<7yh153BV`nwZ zhLYr3nYtf2C;3^u!t=c)p&zfW$B`pnAKDjA<t@EhHEoCL3z11I59(d{a`c_A+PS9! z!Fd_*H{cswu6s9cI{%SU7NU=hX}=I723KK4pZt`Idh_<bC$F50qMC{4IU_j6;MOo! zNp`}tf-p25?F7msX>F<T1TXH}D^oc<RCkIN3QEw#<h4KxlL!riNVrUxkmWaCR0Oja zCiaBx?XJ>UG}U>mvm>is?*z8d*kj>MldCt-Ogq>Ppqz4C_`uA}rqGolPQmNo&1|>v zUD8*Ioo=p~^r_agw(~XXV4HIG-<CrUw@i=<z8DvSv??|FVxn%#E!Xw3y9|F>@o<Pa z&^XCDOMHP8e^I%_WbW?-y|4ymM<;aCQ>Soc$@Wyuk2=yws!z0$q29V5G4eC>>YDMx z6RPrNDnuHK%3|RXKkgn<$jxHCx&(_<WY`HMRKC7?ALia7kVcBTld}*>G=H;c42+OZ zt>HGbv`4Cw7N;OaDy*FM9s8$-_iFA7v&$?k5Sm!r`cP#q`ww4~m2k->xiCk(L>%?o zY17!Xi~5SZcc8QM=r%riYGyYzmBp|{;CM@}51!DGJO(&rfs1fj;a+<sToipStLkDP z#ZLt0%mpO$-WGoGuN3mH8n!yqq7|0i$z3AlL*v1C7+7E|%F*^)n+{6iWXdK|(aN#t zT513Lp<zZCUW6&nrz~c>-aGos(Y((Q*4DP87L6f+vFj}=Y{s7?o(yfjAe(~kiK=y4 z!y@;m$?|4}5y^MO73pO83n`?HPjJ6{++O9eA5&4z{Z`aols~ufD3((%LW|XAx7T%6 zO}B)C>BJc8&S8vD71CoI|CL#c&{!kglfuqES#p$Rt}AyMCGOTF&K)s}FLoax#_KO& zZphkj8PwEmHN}UqrSz6kb&(iYQ!<ph8WH9~gN4<u?3(#I;c;E`(U(z7I+ON82yOlw zd}N<eFuIZDBk|V`)LHD}k|Bq#jq&>g?BJG`Z?e9`q0F1e-3k4Fd8-;c&c9Sv!Tr3n zNLRa<IPQGd98JsB%Ve{o>du;&k`_>q<>iBZjB>5ID?U%UuSM-KMG>tey*=2qHKC6; z)B@jARfG6K9-|scdYRQR2Zyl>>q+5W!zj@eP~+uVuC~Ve#-Ua&gNurwF)2MdWg~5Z z6^JIW-@hOhN<-6f-0%yyy5BzfJ~Jit;<&*=6AI1?+qfWL9hQzVcDfJtH^mX>2C7JR zbWm{TDlSYq8lti`nTKPraMrE<>TQNiUl_}nD_1elFzK1(k*yH$KuCn<<%RYH8>}p{ zhf1tP2trZrIK}VLdk}QxSHN;!s@e`g9n=F9)ZZMST!F__=Ii2t^XN)h*sEZ+ye<*R zfx#AR-|t~ZrIVO{RYe{E$D}^UakF8eEu@0^d|WSKsAbVpX8O>qIw9<<6{m;>22fG1 ztDUMM3lQc^B??i0lvuIoK>%~v4N?>(Bx)(&Pe=8iYcEZV*giLQ46<PNJfOMOwP8Xb zS5@qWq)yD;(Ug7{bfa`2no3E<W@##m`eP=^60o~YXyaH?^3Q>ib&-^5CeaT!CQz6; zyppDEgD$Ox%Iq2G<Sc6E=bDQ-UI+|nn5dN%v{N3E29^x@LzCEjlRdG+_Sp%1BGA2X z%^dLqL!ZNYa{M*0mqJ`6h&}?BG8%wE1w1a|%J|bO2$1a`r|fr7UB;MQ%FVujN=Zq) z9Ws*qRPxD&<=4DjwpmY!DUGBm$J)f?8m>^4z`7+Lr{=xE_a_0LS6JzVH3|*$FOLL{ zXt5#g?kUevXsS}F_#t1u9vE*zC3t_?ryJw=iw9_|xodU-Yno=osdT6pWnN*}tnMlJ zG$kB$$W)yaW>IWnHs<SJb1fN2r%qp?LKr}5&6>@?f9^$d%pGOBcb@ePBRXwACjqXn zC6L>9V6XWGc0I1^?{-T!$#5j*W8<l>dxa66XQ|7RFJ`tR+I}=k`tf<iJOOsdnXenv zpg7P|t#ar~z#a2l1peuET`)wN`FI7^X}9|?u)L9fT@KB=hs`*z#ZO~`n7$Py;j9LP zIFl81F8a;4$3dq_CM4MJ?bqELJ<{dvk;_X4kP~C>6sX*Ubi)#1k9=<@k!>P8nJrE~ z*8tc789p?l-FBBE)kq3VUCCL+wBV%M8GrpMrpybV=lOyw3Q>G|D&@D5snM)#TmRC# z#1x+qLJ#12H2XX+tFtj|f!gwHpvm#)@<9<fJ+=at-<8nWmCp6G{ca*vw1loZLLuRm zv_h;UrSg6_zyI2gHd|AF7hS90xS{1S^Q(}-OJIx;k7p_!eJB=UifavLC5lMq1CUCs zmCvz^4N~t7?l;TTdeuJCX9|LqmR}oMdxX7{F;3g5@t5a4)X<dMgZR&Ut}eqc{~~XR z=~?biPcz=!bj#$)QKDNT#1=b!<g;ImO%gKrCz4X0b2=6MnC*{|QA?uvMVyayA>^6R zA5t0H3vXk4*}lN|08Mbz2CZ3VBxgk`Oo}T`gLo&El^{A>XY>@wBa<*75OQ7&x;2u5 z5A$=sdwqhKGxC6&A<Mf(-BsDZk4Hhvya3`<i&C4M)evv$s|~v71SsM(JK(UE;qEO< zIh*@9>_I2d?|abiZ`8o<-V8`G-tla0*q<A?+0KSJb$>Mj^_Lhip3{uwhWLym9l{8h zE7`u&FISr!{6fp&duLFWAluGXGE<}Y<4LHYG39YXd6XLm9=pmf2F-|kIcB!)$fbVp zC#@mJ7XW=6_<u*&(3qqw=5@@LmH2oM+;LV@OJXH%jToU&kcNRsjfh|*Ya4K~^w8Jg zfd>2|aZay)Gplaq-7AyLdpc(dC3nB2i0>W@eNfW?q+D>#SRa`JAVtgV{NHu@>xWA% zb=d2)FwwcDf7(>aM>dKb{DlnTk112aH$-G*yn25^)Ejx$6~g&ozu3W(%P`;@Q9U1V z$-j6AooL#)nvfM<xu)Ie!qyR(I2d7p+m;TM(Vkcms<rh>zdxEU(Yr^ENeenU+;v-l zNZssMUq1J$!5Z|FPH5Jeo_QTpaaDfmSmR6d{>CH|q!tMj!jcYBR?pJaO(Hz1$McF~ zH~8qC6?!hfsc&f_$0Ynl?H>Czu;AaZ7^$^`om{Pfh`(UO8U8FwwTz*YV83vJCwU?- z@yk*ZN<-*>GFr$dd(KqIXpC@y9He<GH_}=CIQ3VE$8c`fZ)#~K(EOemH7ebM{>ky_ zA~pcvMGj>^V@-3S`m><tTlqqyZR4&>C%4-*s#p~qtL39}Tm?reg*MfRG{bbqR{~rP zTTJ*!s)CxvkZEDA((m7GI_4^h=Yzx|5=0CC+VQKTip~-tf<Tp6$V9x{<u3)LpQr^s z1(@Z0@bqPL4IUQt6rxq>D{-TbIJTOpy_{u#bdzoVr3<|Ae_QErfRi57r3@v-jH47A zAD8vLSZyWQw6|(qpLMH=xP0DDUVhmzFJMZ(|A4}LiCXP&rS4Zw5H3l+67Kt(7X67f zF-rJM^F1SPo%@X|vj>_x5wzyXLGH|#3nNBW(!}35vTG-BiK)8h!kuI$S3Rk~y4s6I zZN-zpu&na@cVtFVw|(;8uM~8vTkp2gR4yC_QnY9`j|*+lU1s>)fdSu<9L}h?=}!<_ zHw)+R&<r8x0w@kn@`_I8&17&<RrP}Hw5;Ct4xjEt3zrsuR;A>mA|totn4-HqVfNof zXuYa{bWqCmq#P3ld<3`CO-XT%g{B>Si2O`1g3au$u^ENkQVpcAl^HR|Li9w+*_D6d zVqz2;8ma2{=MmhtjNzg*N!0267$bajljRIC(0`>kn4e{N=xcrlsR2sxJaLY2>b<A% z-4v*a<L5T!gJ-m27EUMU&{iQET~2IJ)BdTWm`<%>O}3wqm;9TWQcSv(^ZRa{HFDMM zgUjp5T&VmheIl}QZMM0m`66VaKuLr*jFe?B^~+bnzF-Nm`(=`%D`%poCs^c~8VTs! ze$ttqTXdiMORJqeNOzmg;ynb>*9D;^w9g`JR%fU5$#L-le;@^hnn%LZN(-VQkD4_# zHL0p>%}8_7QmP^ne&b7&hN-}nIS@^xi4@P#W{}izK~SAbUP@G0ZvlhGvFtY*Vk;|y z<hjj|lSkr5wbaEsUg$G^?LV|G)Rn+=PDzR`>-5-i=m9Q_w>GM1ZjZ<sxn&=S`G=H< zJp)~-m3D7cD0Dh(H5z7*uF0B_E2|G$2n1sjcz3O1tc-l)jJf6I<mdqb;BPku?UciV zzQNTyPIgl1yquj;<o(-=V|*lCGYZQFAyE~`vXP9Kyd52pp&_^QKa}X&+cBZBgyrR~ z*9gFw0x#&i9nj)tER={Y6`-}My6b5v63{7+7IVFk5Pp{4YLf%fx6a(g8N!)+qIDaG zJ2tx|WWuEvBs0yEldkLWbBHPgu{Z}{^CpqJ?WMn7`)nUVMDn8$3%RcrQt&-bi*?MP zNj9{SpTMCe+`At?Fg*=0JHXoAE}xmY-|5l~+*lT<6<GG36}CP{*1}h74PzTg?y>ma zf{h@Y)TXGr#dql01crBO+H+2O^4?jbEJZ^@Vl5*VSi|`96e4?G-jK>K%791a_4^Bx zg{2>EUpm{Z*P5Cp#{--Q&U(2@RIT9ulOEEI{1Wf@S|}zDYI=&u+0@z<4fC>h2g7eB zqXTxU8%JD9+QSg6;)X2&=*vX`d^o-&uX-Z+!ESUSxb1=vw?jCc@z@#G#dc@BD|K$j z`XM=C>`mi`UqT@VhrZ9EMpx^jUzTqC_1SALtJS@|W7{)b32M{hx=x!XOVAZ6m*1H# zKVz}HB*gX!?0HjHzb)tPC4KVN!I_=im=x>v37sp?9T{F=ENG%kU0vOEOOQUf*bE3n z5qd`L?G1@$%<119jMe9U6U`Z@@2}o&$Q{l1PU;e6k|-?=6-CSQyn@XOxYX!zUWnCq zzF$2--!gbbWBRy*tgfWlS0b6va(aP=2-{wowR%$Rb)lv7n$BaBNDHPO-iY+)TuVXt zzlJ<dK%+cP<Cubg&AS5WE=QEA<=XPf29oBGFD9kM3z+>R@3-t$xn5uPXR`V(0b3GQ zR$Nbx4|B`2F$Ig;ahq49xCq&InV21-Wd09B`~Q&f`~Jx!$Do`AyYsbxuhx-h=@@r% z8mX`6?ZBBFestwu3DWM`j0xd67bTgo_p?9TQHawcAZc38scU+i<D6$jduCW|=J-sG zX@AgS!fWpd=fCWo=$vu1<Z(toFy`91^2ZLRJRaAEY6$Z;FM~mMQW#11%tNm`HAVQp zqy*=eR^Sob!?u#2ABC2Y2Q7|~Ct2^)AO`=(cvX)32;K_TU|ypm7(37R%1fV^D~y<W zyA!<5px2y*w_pW2(?e=AzG>HPFF{3J{yvfR<M?$<4cRUaZ@a~Dfy#qqMQNZxLRP!e zf?iIudgrQcJ7{9})6OM|ka@okQoF}AVN7~nfE}|V-eCAY=K2O9q4p0b(+)+2yHAYy z0t?dl3CPI6kN_AOMuweNS~brTK>V)rnhIuroB0^te%SII#0nSh50YyEZc0h$;BguH z7*y`%m-anmCOwlPov0-!vPeTg%;_oVX$_7Gk~bHMwOyW^qJ8H`TV#as&I=GXl#LdT z)djBoz_b#He})7J)8QFCV|i(F><fu^0#dn=w44+*(Ekz2l__tkKivEMW}N=Es@n8{ zpw0zo04SE-hw|1>e?6KT#p642gIHNOR!YLtJf<OLO*Hs$?Ov15jZFUwBqH10oJCbd z6*eTV*4J^ksfn7(3Zw#WE_{b`r%d9qSu=6k+=N46w(i}*gOC4#SKoMxbI+c{Ul+a0 z^RK<eS8uwN>Y9Ok=STNZI)6S(mM!C+Z-1Nh>o(BT+WN^vO7mw(A$ae@4+#W<TzBP_ zsAd+|Kq!O+W?wiHn_|U?XzbZv$F9Bm_`>IIVa4iI#1nDTx|NfDL|l_R{>1OmRTT}D z`ES3=mR;L$Ioy2nOSfaU+0cRc3*O<K58mgluiZiIfJ(yA7!N%BTc%8znEjw>xT+Fv znm3QKVjuJ0dk+nG>5bQ^svN-Ww|$;z6VGN}T|JLI^9(m$cO4f`o554hK25*=<?KGN zk3c9$dq-!ItU^L48s)78Z}aJS*D`#_U<5igAsAFu&FW1XnSS26eEO=Zut_-g?6Y~~ zi6?3A=%n0N#G%GU9)9dGuDSYJW>1?&u)6~(1fghzJ^S_(jzp7lu#zgSS-+7b%U5v0 zlqo%e-*)WULvc|tm1X6qrp5F950@};(j?pto2g_8BC#m#-Q7kayPT-mE42|);I`Sh z=NsST-48y*>+y2o1?Q1}3awUskUI#e^O<?`Kqxdc)H83+98MoK5-Y)>0*t60$S?1^ zm&T@MhS%2Mb-Vti@2L9V-w*nNv`--j37vs%cJAKA$l=35N@mWOM*resqVX7uKVHU! zacAPP*^mNkb~_EtN7%7<H~oBN2%+%kpPt}T*UsaLnX{NY;T-nt+0VhoMxJ@$&)jzN z=lIN3*Ptadn%Y{EF+pqAujgQ61G8pKMU@FNzQaNa3JMBvI_z9KcP`bH6$qiD3!UQP z66y~(8m^vLoP!OGxSei_yj~m*J272j@4o$Ln#RC^RdjWC^UCXQa>F%ObN-|W3@k6B zw5XVu=fA-fmtM+<nra*lm5z>1EUVEc9eGkfLc+oiKVa(Q$rQTX#8n7JV!XCs0aAc3 zzYrjqi)h29O*ma{Lg6sazw!#>&Kygg%bArsFCF@q`S_2oe34NjhoK0`zI}U{d+}`k z`x|#skmms;yY}wmxi?<rwp(tYc0dIZou=j{!m${>;^JgUl5D_o0q8=aDuT-{n#q6M zb{jTba>XT=@xyO@mkTCLKnQr_z4s_8C}P&sschc1g%Y0+sp;(Avxi-~_u%vSk}uO0 z3A^hK5Q>JGJmGAUDn|PM*3J$J3-Y;X-Zcmz(1gOEfdi0$-|q(`Z!CD5+QCDZH113k z0r>^_C{j|GU%=vzmm0O+=vm};*{YS4miOzC)wk8}=c5%X7%*S}PP-jlfF>kO&CS?Q zP$Xyw!tpqZ7k|izp~H`&(BIbOrJJQA%8Py6aP?fSxMUVykK4*m-e+m}hXaAv<>ZSu zeujJR{uZ;&KOfssIZ8AE<s~JYdD<vEZg&rvmu{i%gFeU<`V^#72vWcce|eQf%U1C5 z%2j}1-+_bZNJ5b?ZGJ!P9qlxCcF@@sWXbB)-1or$BOD4d=hE5K)i)50Czv>H98yS1 z3X3@0+`?l|J;lwR{tQL=9)ysbF=jM7_Ur*uX;{5sBferEB}KkeSqzb?+g0W(L6bU) zZsq+k6qo+xWwiO*KnU!rN|~>azr6Jp4?O-ye*OE$x#xd=%KUd1Qd&^J^;ga1P~AZi zy2j|?BZx#I2*r4g+t26Yl9@9R2&$?oIDF)=QQlV`KNE*E$45#Uj~u4CrIoQ~j6nig zLh}2kpW#4V9RjF3(rCKAj98)WK!}ExCLZ|BBXo9jbJZo68ZlXxDj)^AFx(}YZjF=* zG(H*xf&!15D=xZ-vZ7+*T7oGPCz-X3jF_;MYuDj+xfwOoaHS<Qowwd!jE>;B7hmS% zwd*)g-$-+N2f;`rQ*KF)Z~YruQ$ula5zAMuA{36G3($qij@>(`s_M_dhQq8_wTjs@ zXX0`=2!tZo?GCCcE765<)N4Y}*5aq2u$VljI~mW`)Y8U*x`UiCdK88E`B>G1`j?lZ z0P$Figbv$w?PN&pV31}oK1NYm)#d;Jm(84M&|9|@JZNq6C)Hsjw6?eNyQlt0FdAX! zj$Q0O)L;aXOM%^CW9zP+=qR8|o_YB%D2l?_XN)^)T}+eH-^d<drTUbn8`3&F`@CxZ zsE}G2B`qINy4y^oed_3S>|579$OZabY^M^Wq_(D-&0Du|>kT*X*24GLwsR--O-=MK zD`Cv=VSMoMaz0+U8dX(^M58!W8#i2g4d;wMi)G7K($dsSYg;R&rRBJsE)LWk;<`Ck zFtDNmt2**o<Hqs+M@yJK(TI<U$6~a1cJT4q)eIk0OJP9)2o+5lV#VRKA0;u2gQv__ z!g|w{B@~4(-1J!<dh{_?u2_MF5g&8TxHI_7ym?fVmlN#nLKl)3Ui}N-_~KXacXV?2 z$YJKqnS<A5l=K)o=5&@USx#3+CvN-k)4eBec0zEdp#fD@sq9}tTuboO3(vD;^$O<A zy^7c0{3{<US;CC-&ZDHD01#AGRT7Fu*tTmYRsH+3eb;Upj~oFY9E{M>)k#ZRGxdj? z>1=Q3dw1PQd5O<>t#`tO6WA4nd2{CS$dga<;|K2N>@&twUQ&i9&q-5T8(o1QKm5fn zspwZmLvu3+_V4F{$&=WyVI!NiZbJf2RblGn$$a6Kn{#3xkJG_L)28z0*Iwb-S6}8o zZuu;Bn;oyy&GucpdE)7(x%q}0*uHNsZ-4MUQa~^g;=4cm5tGM{=Yq+TsTnkY{5<1X zbX?cix^p|jYHA6FLLepidEO)o2*BlV;w{KGUN!2HP%unKR|nBpjHsq_r1c2%|N1r` zE?<s<LSCMgg1}I`6a=cOQr~!lP)z4Q-9aAx!|!Qr@8;XL-_Fx7{+XXX_`iJVrkj{> z`dCH`8^Sw_KA@($n#RKotX{j8?|kb{+)g{`dBUthzr9yL?1Mh&gFg7%K%ati3PAuf zr%hwlv}s7G(9+z-p~eOlEnUjZ*Iv!Hzy3AeUA&lWJ9ZL_$EY4KkP9z3pFvdvKuSi9 z8o||9&Y`Tl+$h~8B@Tz3i>6P<s(KAjT~$S(v&*!pNT!~59;?=_=U2ab)HwKbP!t$k zUCU4J{T?<&#cpK^PP>ff=X*JS^5mp5qjumxe(|Fp(RAbp!B7mB$IZZsaul=CkeV7k zbLCt{oHhct!^zg&JBi05oIho9@>QM7;o#1%eT_syBN9BmH6^{ks+LF~B`o}CDQh>Z zr@pR^PtUoAOJ~g@7!2{(g$uajo_iQRbSS!}vt#!j>_Ww6v(a$m2#@{gY3l)=X{7*P zQ31n;jb!HeQz<JdPPu+KzLI3T3Y5$^?_9b=0p56P0WZAzia8&ZlA>Zp4If5xa|?A1 z4V0D?^Oaj}X2yBv5{kuXZf!#Vg@py=n>mbf;~&YK*%z~C-)@$#UPb-kdTIs?L<*H? zTx09*J>31nAA*#qLSf$JS8(1r<Jq)*2m22kWXXz;8B~28r;Qvz|FSZE|NB31?)j5& zdpuP1??-82A!m#kokjyAYjJ6DF*dsmyQ*^bxHDPw(Fc6^@iOdo2jOr4kITc2*I&o$ z^WS3a#*GZ9xF~g#my#)yCi2H;pXJv7yd5nOr?j|;uiW~1CXOD%u)7AaV9|TL^5&cP zii((f*=4L<zkxr!@Mm-ZHPzKDUAB@<p3T_oDym|*p99@t9CjN{o8aPEGjZDOInlHa z`k)W`AX5<0aC5KHTVT`<_xpns7kkX7%-Mky(B2lJxY)SOf<|T@KEq)mk+ii1C@t}3 zJ+{${pv~V!smVgR)c^n%&q+i<RIh+s4lIdTG_S;qA_cmlXZ&>3hzwHMvF{*1_{C2t zDlFu|`+j6ta;)qxLYTQ~WYT~vg;9G(k&*<0)oV7g;Dd$Sd)J+)lH`+rA>rfIt2k%; z1ni0tOLCyTp6xq#5{<`jyWA8P7gJhX%Fyacx`QF^y!T!nz5jl!qP58!M-rq$4<$lD zqH8Lh-CYzFd3z`{$qxx5^YiAdTbVrZoHT#G(L*eu5e`KuEO2prwZy1A-Wd$?^Itzi zU3~-n%KLHc)pI!K^s&U^3Bu6?AFp1<!o`beYwti&6b4sUbM@tyQ(0NT=55=kYiJ}I ziQw^gsO(?P;ObiXmzSX>0A0u9aeQL%wveDHmQ~A`Xe^$f#ovj|rjnoU#$mHzQ&eJ_ zhNfxQ>?(FeJ;r^Qii47Lbw_c!?6_=da@{h8xUR8k?Pl8B+bAzD;j|GWXlZR@`RdiQ zcXm>kU%-Sj&t&-ET2y2*@u8)(2nlW7K?*&2sCJUdbu5;^VYlilreO2-oeUXVO`g+D zETOY@%SJYD*?|xWl@(>2eb!l&78UX9$Ns>Pwj=z{cki(rR)Fzzf8&;|?AW~rUr`a0 zCr%_D(eRacQFQZ#7}Asj(9+({GcUc&+6^0%LEi@MGFc+Wp*rz;+*FkK_|_eFP@JD< z_H&e$e;klP;BW1wq{NFs`QFPViRAt=D%!XByD9bMDtpXgyC)&LjAFHUSk>e+;~;}J zx~|aK8KAg0yVMuboV%uJbOs_67kYBC-^DdaC=jNw&`oyu8(75Rl4vAGe!eTqkqy}s zjz*Chcs!0Q+ZzxF#jq(hT(0DsII_XND-gx$u;a|3SS?68I%9bA?AUB7xtv|?ogwnQ zZft5Ut0&E3wVoV`)f)6~^LJ5FT#(ZfLJ73_1C;vm$@QXX6w1zR@7XeYL~BJ97{|As z3!>6$Pe#Rfk7;ZQ)src(a5C+UXTOHX&`b>>Qz{6IIr|EW7(HSH>$YrR``*2bJ#CaB zgiNC7W_CWS*0q$z-*k+md}U>2+;HtRfFZn7rEVn?&pF2w{l-jd22@fzpepq`Ooz^{ zAW}+PZZ}`J`Lo9FrRd?x0MKPh@v`Qe5IUOW)HB!4YNePj&AgsGCZBx{NJITiF0o8S zj+`ih#7YwA&CBDzzw>QE!7%xrJcMfGtkD5g2rijEgNvrkAQ%dus497GcQPn?>cmM& z<wuwbjx@`u#I!glMn-I_#?o;f#Z(%kAub=b(y_hPrHxSTemNoUojpxO+@NHZI! zc1pV1Ve*PJdFQy1SjQuZVg9ozDx*h?AkXbUwHf)11`VuY(7-AaVT;&?B5ft^6iFU6 zi&2_$v-YChW*Csu_k@rzX5<K@kZ4k3Qx(oR<4lHC52m=d7=(rq@G2NL_H=&t<SLq4 z+vrzP(u4MAjvmdKqsJtt;g579bj;KPsTeRJB_+j0{O1?HKzm0gb@lah1-j9tSu(=y zA-}+jmJn1`^uy_N01{2=2$5m29x2T=OO4$dq|`1ep+v5-!{7z0npLjRQ%U@@JDU;0 z;8i_W{G~KyiWy^;OBZQ0$PRx)!?)yLZulGW?2}|q23;g+m~AwZA;(XKe+=m&apZRH zg0bHv+2No3sKNhwPD2~J$l~4JuQDgbMNj{qOy-dGvDDtr9&CPppw|xxlStuk0%Xt> zOxaI09Mq690K&ROWCFsvZxRXX`29h$A#>`;f^b;Fm~Sr2q!0-u@Dn8S<u(I_jpLMP zIKdgC$FgqARu(T^#(@4+^!D1yI8O|v)M?AZ?a9xY1_0;^k%)#agGi}RTUAS&zx$KN zHnU1AQlKG-L^Pz{JHH%_zm!I)ka$c(OK2Hm-q9IM{;VZH({!S-I4R4cMl5_{d@R0I zq$H++lsb`cJbV06h{ZHiMG&&(#yzo!BpT6BR7vU<-TUYk_eLT*v6zOE<+BP?T_O@r zpv8kI3R&-6fglvpkTPg0NCF{sD*N|G#m3SVtC>FKyyNtmQW8TU9r$Fv6{u8K4muA0 zl5j{P6o?THMst%rAq~F>kg1rq)?Hv^T@6RFmp$pdg~K{+ev6;8?L(x=E|pAq2Psg5 zMAIP}O&GE_OHiahlagpmA`^j}QfEjVVlkbBmLMzq%`0C*!_0QBWi_rPdlH(4)FB#) z=fpelxM4{Pg|ghc5)eAks3a0ekZlDUL%9+}qjBOfiK=G5cLAbdokSvxP_j`|QnDu$ z*3c6nM3&D0Q+k7jp8&^R#WU+A9M<r+1(KJ*j3DU-F=U6o7uj>7v2B@}o^%22{%(qk zyeJ}jeM}<pix9;{9u$$8nKgO)MMom=(@lvlFYB=ZbRnRv(=hYPY)rgndjx(G_<VT? zGgWnOJ*4p0&{1he=iJE?dFJI8*|}#Ig+&F}dSyD(sw5>H9YIQp^RmVrAfZE7SCFD& z4??Plo;IEnf-WS&RB$>wgZPTFrN3cyjQ8qd`(%j3G-9zh-h3xQng>?~{38V@QYRGA zky0bi?aTpxK_D2xZnNQXs#)VNf$r`IPM00KLouv58INp;mCmjRUXQ~xvuBTg$4Qvk zC4flaE6ziZz;L=M6qOV(u&R<>dv<g6<(DL5(~@m4?Y=@F2~e8z-UUAaN_=^l+TM=A zzfBr0F2gOJ+5Xo7Ve!AeI|uyDO!xvw;-5WOvd>qNhme`ePGKq-ny%2*8KAg0JNzyF zOK3XX!6-!qE;8fXo)Fh0!C-{KLMK963Q{Kc8#u(`l4vwWfj4^>n?xZTi6V8#^VoYG z_jnKp#ZVOmr&~4mZtqqMs|-)d#b(3l$Ufv(BIxW2keBDdu96e}?VTaKUN@?ZjPXyG zJ>n!>Y!U^(zsoo`v&P)qy9Dr+c+CW^*;FZz#<`!P?2&*iGlHAG2$^oq&)(E%yc`nA z-}D*>kS1n@c_Ye&K_KP+H1v^N`Y~<<3S^8&5B#M7sZ(4~z<`SW)E{Z2xwV<f^72pY zBiSBI;hsAUkRt7H&TtN<t41W(F8i^QSm#Xp6djcwG{}H|EG<dq&OgbA_c_u(b#qF` zzc(S35(LKBR)x77_!dhrp2Yf@ykl5@0g*tFlF_4vv+(^7i6!E=Z1%J^DMd!)OnaGZ zZ}DJmvWH|w@3a~9I(9nGo(%1z$%CTDZ?o&e+J{;3e%ci+_X>rk9YLmk&KiFy%^HvC zJe-;AH{^c0?8pv8S|2&%4+xaBz1v$K>8~wwmm46HdnXm|n!_G4$5%3@!QV>uq|OYH ze8rKY>_0}a`(*r+qo2f?DF9oht}c<>r6=P}Pj8p06(=nWQ{?VVG#((Qd!n;97m`zZ zBY%uE-I78IYN~75U*EvtBTZD6m-W(@Y1Wli{+{fuUnE=Th#v02Po9I20;x!ZOkeYC z>2Kg~oNKw`Z_v@gBQqWpfD|&h?jk4tvGBKezh@cPZ2A#BaL$Z}lDywz?%9Ii<f35A z^%9bnwpL1fK4U*g$*>{Ac;l^isjIJNSk0j0v^;vfvK?QVdzX{w<7j@*kav>fpA79S z@oe=0x#OSt-c7Yk-?!P}pE`=t*N}|IPIZ)yLw5KBX+^qorN5qBOL~0IwEfX?EAzeE zlV@{~JtDoI^zT`KNSFKRIQ7yj`KerGhjqb8A2V0kna+QZSwDvCIGM4Po*Mn}zl4QP zGErOaZI1pj%<M<sVlruK=;IQQ$K0T@7~kwC*Y*Y;sxf=1BooYKHgAEE<EI{wl$RDG zfmVN8hIAm+&q>W8eJ+`dYu-MROP2eXMu2AS_*=0w7G#9KHJ(fl+{vC+J@L=&D|!D( z3!Kh~f0FBelK3ZIp5{XTlzR93XP=|Bqr>11AsA3uffPCohmRb0e;Io>wQjl4&Tvy% ze3(P~<lgB?liqnJ%QmOzE0v-%TRJM{n&d|NZ1}Wy{H?yS#f2Q&^jtH8cXG#HH))wI z{?@u>dR827{lItuoxCWY^m=5D%gM_gvmcS0&XE2ka%y*Uz-IP+WF7MPw}HP^KmXW} zGK)hf5@FMpEdY2t#&g+dH2Mjx`=Ag0u|ObERh8zJRBgS2{CpIl(An8ZZnwieIQ5Wz zIQBsw^g*W3S8C)GLi&r3y83!NUM~WOClVmQ-k0p|p9ucF4;ae^keBD>U|s!De-u`b zN+0w=AN0Y$4D=~Trx2t_<u=-}V;5y*<$$2otZrXYQu24juMe_;J_P`vq_m7(yZ0pj z|4364nx;`wTFSq>64?iR&<Foo(5E1sLNH$57}<b#9oSE4kq=!+cJA4W!)~W`;K08( ziha-r8G#i?GPrsm8@FvG5DJlq>%95yySQC0P9HTYX=UnzKInr!_*a0wT5P8n1cvwF zNK*@LmxsOk4{@lWfzwBfpv>o^&oc4P0)5sI0gM?jf&#CX|GNKvga(Hi>bYs&brgEN z^zm{Z^g$o|D?y)vbjrbqzz+liw0C#&;%hG<RKeAAuE3~p*LU##bHKm*;cxJ%$LZj^ z-}pMOyfL4crg8n%b2#UWGw7pFAM`;V{HsBqg7kj^l9JM5e)Zd5qv;85x&As%8$P_x zCD8}}RG=eKq@;gYDgSZXtw=;#j*~t`zYqGL5B{~lmXMj0E-(w0N<l(bb4WRExS0|X z5>hoqX(r)M0xQ9jM36v`8NSDijzl3L72>*r$U&A%K$F76Um|r|uSbHV{s<&rxb-%c zEnCG|<Hj+prUu=pV3=WTBZ(#<A(b5G51N!{QV^Fa!px7-`_K|;W-v9z&xQWR;hB&S zmkM#I<YYBV=sH?*{t8xc+g?Z4K}em1)Iq8_;IEkYs|cx}%Iq@|OAOlCbd@-YNz?3l zNJxdaR3QiY8++HFol%H5yU;@m|G2cFpqcoa`AKAYLd6q}Z}E<eT$0U6i+^<0Od6Oa z^(4eGc;5guqsxhu*6Te%LeEw97-{z6$-S3jdkp#;kjdT!gHAe{G{(;se~Us1Q})EA zlJUstkkIus*>$}9G@k@I@gD87hlH-8>oRBAqnX*Pb3J<!QlRPzYOeUp7zwE&W%krh zo?E(Vl0Ew#jB`^(&HCU>$sU9EvriIi;UAZ3axZ2sLrzZiD2hbP`utrPwfg_<oy&gW zIugeJx)=;3;nvSKk1>xiuQ{u;nuf$&4OpsK$Oc0C*GQsIpI-1SLKal%lU!AjO2Q>5 znnoy$hKyQlwDQJY*U^e;I($!nrhy_e=XK_9QwI36ylVtwRrG@j-wNOJgo3N~hW~wY z>Eso@0c-QJP9h5D^7#t}?>xrjy#?5dLOdDr0bk`~_+Lif`|vjG)MBq;iWHm=?{n5V zu7=&Mj>dV6HldDRr0rkxcV1%@S8o-LhXBrj(YkFv6$;mQtg)aRNcZx$d+lEMH%_;; zq%wWafzf&WM>^lt=Q@h<{6iIY?=&{kb_GS_z?#eJ64Dd|{`MTZ?(@HmJ>IDd{;lte z!h5h<@`}}>@D8*gA@*E~rFv0_fJrQt+O^{Z5RK7!w(ouT)Cuwz{+`Awv<iiTQz3x! zV3bCw+}I<n@5jr3iakze`(77&tkH-#RPrLLT{jq=9y{9~NHtC+#~vk~|NQ%3sO|3i z9jVSt74OT6>2#bGWChLp`-;irEf|`_bo4Tqf?}~)@ogSgT=!Oopja*|=Cd(5udMIn zXS2ywkc)Nl(EsJ~gW2r$niltMu5~kk>SN7x`g*tBAL(!&R@Iux^euXU8p`K{_MKO( zRx75Hyzy@uVY}TkejCPg`iqXkq2Y9D7`>KP;`hhD!@h37Hw=fV#cG3&&9=rGOIhY* zK@_X?ma;4<3UdxUG5mG=S*>;qhdm0Ly21<AT2&ifUtTg7sEWmV#dJDFDSuV)_2)9( zUk@yoYv!|5+r9DK=_D-B5+P_7%Zm9d$g9ZMBUk?~mMdZldw<o@#g1|7dub3%8#~5u z9{;%5qX>nnt7^k6u~=<bh(Y6o&3eaVoKq|~Y!0@YJ#XWetk`)xdJe|}ugS$~gNA*5 z!aL7s)W6&Ak92Hz2aGmtvD!{=Jpa|Yrr)>pd#M?uprKlA7!5~XHrFu_6jin5<z<Ai za#hnUF7|lf<73PCZJ4;Z?0lC{tadtS*A1!TAAEN<n}h{k^12~6_JG!4?cK>r&VP;a zSX|x_l>}L<JQ`1olIvp>0j&1i=lfMl(4;YK`&qkK0gK0escZAImaq9s7{43-_lF_y zccNPPoL!Kh6%<;q%3bZ^BKWril>++%{xNOS?!v8hSmmOg{jCnCJfb`nA1&UEzaUs# zkk8;Bo}HsmI&b_%D3oCF6bj;ZaToisZQpHHn!9^;9+Q;;5DGj+$b*K^A7QsbSPN@K zrtMy0PvGu??<J0b;3-<)Kl|<-6<vAZ4pzBr+YvNIxun?fS&KWz&J_OVuPAwlKM2Ly z_fn5I1=_fo9DCaTy!JHY@u&4&tt2~k7RsYhSX66zX|dmGhecym>gGn;c~`JXuvzo2 zP$(B-2hviH=Wl3z4~I$O|Jiq~@|lU1cHPj`5smVFIa`^))x4huFADY7U;mBBVT9q@ z?@yHd0;SXM0f4aIohS!Al<Jb#aZnP{#QXh;;jow3?iK&tiNU}|8_6|9V81^y81@ow zz+8ldu#*`M()o93?z%oPC~d|91H1@_`ov&Rgt0$YSN?gsw5du@+x{Tu?caj)&>S88 zzRBY6oTq6#{k{qH%#u`iPN&e<qR6>J6?U;&>2SoE9O&S1XfVcLZRfc0w@3s}U3+@H zocn))e_c29iUMtNe7Cjzvfm!B$IEwV?%giWcRL&0?@yFv5u!%&0!i5KjtmF=VDq9A zvY4&!?jP{otJo7e!G6{N``w}CPnX(_l2xtm9S%*l?|Ki1qhpZiyWR`OqoXW4-%E*| zKE#g3)9>fpuMnCh^r6@5a%yQfo*Fa;TaY$y5fTH3qr+N@$=RJC)U~5m*lgde>m$9Q zhc=1xE`k5PZYaxM#-k4{g?Yb!bwrk?W4Ajp7?f@HT1Op^Ll=95-LA=uJs$gQ7L#@j zyP)NA!*n_#<Bm3>;GG@Q>8Ks(*ufIIOSy~1rcHC_oP}x@RD8=wwRJ2O3t>JRwG(vg z6nEjjTx^&}jrXm*!U<IGTV~1f0nV#7%|0ahlCy;8rU~cZ)oRCdGE8ha^#9m6>g|EI z@gRpjhok3kJo5I^CyBoX<%M1C5FDdH>JeMuzuwmLjG<rVU4mP!Yx-qD-<r?$e<L}3 ztZGKX9)-<W;A!5gEpIOajOnUdr)gL&<;r%`{pY(p;=79Fa@)3_A+HomSu>xHh`qzm z*?uV5srlb>O<b(}k*co!)FZk8kK$c~`8@b;{1~)%aJ;_q{djcun4EJ|o0{o(m@z%W z$qBnn&3Igr#y_w)oP=Y2<n=Z6h%MOu{&2uM7-db8u-Tok+EA9=4>Z#FuQmtzy&~g? zEy#aVM_xt+)^<f}Q>5XeQoOzlu$c?A<;R}M+aPmurdhCJHXUW(VS+Gk=KkvYJDY6Z zjoJ!dP7|*`bMdI2-!1nQVG|g?1N}2_%i}(;&j$HV_v4mJ4F4a0=C%84`k%+)aoJyo zN5&yX_V2L4c-#41?fnd2xuogK%bTRP6R#_s|D$+JM|$k}Q}Ao-`0@Te%HyAkea})O zPdxF&6Hh$x#1l7oE|8vhA_{*-{^p4%o_OMk--G`H(~8WG%uKJt00000NkvXXu0mjf D^UrN$ -- GitLab From b91c07765273d650b4f4f16ac430d3d136aa3742 Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Wed, 16 Oct 2024 22:06:28 +0200 Subject: [PATCH 14/52] =?UTF-8?q?T=C3=A9l=C3=A9verser=20un=20nouveau=20fic?= =?UTF-8?q?hier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../img/see_details_OA_data.png | Bin 0 -> 227509 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.png diff --git a/documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.png b/documentations/Documentation_fichier_Yaml_broken/img/see_details_OA_data.png new file mode 100644 index 0000000000000000000000000000000000000000..1401a1bcd1397d9cba146459223dc10388271c65 GIT binary patch literal 227509 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%0DmBQ*swIcL2S6+5<&~{2jknd#LSi` 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[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 D^UrN$ literal 0 HcmV?d00001 -- GitLab From 2faa47d0b1603f97658b67213257d549484d2f8c Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Wed, 16 Oct 2024 22:07:02 +0200 Subject: [PATCH 15/52] =?UTF-8?q?mise=20=C3=A0=20jour=20fichier=20image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internationnalisation_i18n.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md index 17aa6d112..313d71e00 100644 --- a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md +++ b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md @@ -209,7 +209,7 @@ OA_data: Dans l'IHM, le titre d'un référentiel ou d'un type de données est affiché d'emblée. Sa description est affichée au clic sous le titre sur un lien "voir descrition"/"see description" ou un icône correspondant. Voici une maquette d'un exemple de rendu attendu [METTRE A JOUR la copie d'écran quand développé et déployé]: - + Les noms des composants définis pour les données peuvent être fournis dans l'affichage et l'extraction dans plusieurs langues _via_ la section `OA_exportHeader`. Cela correspond aux en-têtes de colonnes en sortie. Tous les types de composants sont concernés : -- GitLab From 95fc5a8dafebbf48c4dfa554435fb2e6d9136c64 Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Thu, 17 Oct 2024 13:56:23 +0200 Subject: [PATCH 16/52] =?UTF-8?q?Mise=20=C3=A0=20jour=20du=20mod=C3=A8le?= =?UTF-8?q?=20et=20de=20l'example?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/ComponentDescription.java | 2 +- .../ConfigurationSchemaNode.java | 11 +- .../configuration/Internationalizations.java | 3 +- .../configuration/PatternComponent.java | 4 +- ...t.java => PatternComponentQualifiers.java} | 4 +- .../examples/AdditionalFileBuildExample.java | 18 +- .../ApplicationDescriptionExampleBuilder.java | 2 +- .../BasicComponentExampleBuilder.java | 37 +- .../examples/CollectionExampleBuilder.java | 67 ++- .../ComputedComponentExampleBuilder.java | 27 +- .../ConstantComponentExampleBuilder.java | 36 +- .../ConstantImportHeaderExampleBuilder.java | 10 +- .../examples/DataExampleBuilder.java | 49 +- .../DynamicComponentsExampleBuilder.java | 12 +- .../examples/ExportHeaderExampleBuilder.java | 29 - .../examples/FloatCheckerExampleBuilder.java | 1 + .../examples/FormatExampleBuilder.java | 12 +- .../examples/I18nExampleBuilder.java | 25 +- .../IntegerCheckerExampleBuilder.java | 3 +- ...atternComponentAdjacentExampleBuilder.java | 74 +++ .../PatternComponentExampleBuilder.java | 21 +- ...ternComponentQualifierExampleBuilder.java} | 36 +- .../examples/ReferenceExampleBuilder.java | 6 +- .../ReferenceScopeTypeExampleBuilder.java | 5 +- .../examples/TitleExampleBuilder.java | 158 ++++++ .../examples/ValidationExampleBuilder.java | 2 +- .../configuration/section/SectionBuilder.java | 2 +- .../type/AdditionalFileType.java | 2 +- .../type/ApplicationDescriptionType.java | 3 +- .../configuration/type/ApplicationType.java | 4 +- .../type/BasicComponentType.java | 5 +- .../configuration/type/CollectionType.java | 14 +- .../type/ComputedComponentType.java | 5 +- .../type/ConstantComponentType.java | 5 +- .../configuration/type/DataType.java | 9 +- .../configuration/type/DatagroupType.java | 2 +- .../type/DynamicComponentType.java | 7 +- .../configuration/type/ExportHeaderType.java | 36 -- .../configuration/type/FormatType.java | 3 +- .../type/PatternComponentAdjacentType.java | 45 ++ ...ava => PatternComponentQualifierType.java} | 15 +- .../type/PatternComponentType.java | 8 +- .../type/ReferenceCheckerType.java | 1 + .../type/ReferenceScopeType.java | 5 +- .../configuration/type/StaticMapType.java | 10 +- .../configuration/type/TitleType.java | 38 ++ .../configuration/type/ValidationType.java | 2 +- .../context/column/PatternColumnFactory.java | 6 +- .../oresing/persistence/JsonRowMapper.java | 4 +- .../configuration/builder/DataBuilder.java | 39 +- .../builder/DynamicComponentsBuilder.java | 10 +- .../PatternComponentComponentsBuilder.java | 8 +- .../builder/PatternComponentsBuilder.java | 2 +- .../builder/ValidationsBuilder.java | 12 +- .../data/configuration/schemaExample.yaml | 537 ++++++++++++------ 55 files changed, 1015 insertions(+), 478 deletions(-) rename src/main/java/fr/inra/oresing/domain/application/configuration/{PatternColumnComponent.java => PatternComponentQualifiers.java} (74%) delete mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/examples/ExportHeaderExampleBuilder.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentAdjacentExampleBuilder.java rename src/main/java/fr/inra/oresing/domain/application/configuration/examples/{PatternComponentComponentExampleBuilder.java => PatternComponentQualifierExampleBuilder.java} (69%) create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java delete mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/type/ExportHeaderType.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentAdjacentType.java rename src/main/java/fr/inra/oresing/domain/application/configuration/type/{PatternComponentComponentType.java => PatternComponentQualifierType.java} (72%) create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/type/TitleType.java diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java index 1b0a6f157..ad638616f 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java @@ -15,7 +15,7 @@ import fr.inra.oresing.domain.transformer.transformer.TransformationConfiguratio import java.util.*; -public sealed interface ComponentDescription permits ReferenceScopeComponent, BasicComponent, ComputedComponent, ConstantComponent, DynamicComponent, FilteredDescriptionComponent, PatternComponent, PatternColumnComponent { +public sealed interface ComponentDescription permits ReferenceScopeComponent, BasicComponent, ComputedComponent, ConstantComponent, DynamicComponent, FilteredDescriptionComponent, PatternComponent, PatternComponentQualifiers { ComponentDescriptionType type(); default String getReferenceCheckerType(){ return findReferenceCheckerType().orElse(CheckerDescription.CheckerDescriptionType.StringChecker.name()); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java index 96f53f8af..054ae6859 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java @@ -8,7 +8,11 @@ public class ConfigurationSchemaNode { public static final String OA_TAGS = "OA_tags"; public static final String OA_REQUIRED = "OA_required"; public static final String OA_IMPORT_HEADER = "OA_importHeader"; + public static final String OA_IMPORT_HEADER_PATTERN = "OA_importHeaderPattern"; public static final String OA_I_18_N = "OA_i18n"; + public static final String OA_I_18_N_DISPLAY_PATTERN = "OA_i18nDisplayPattern"; + public static final String OA_TITLE = "OA_title"; + public static final String OA_LANG_RESTRICTIONS = "OA_langRestrictions"; public static final String OA_FORMAT = "OA_format"; public static final String OA_MIN = "OA_min"; public static final String OA_DURATION = "OA_duration"; @@ -32,13 +36,14 @@ public class ConfigurationSchemaNode { public static final String OA_WITH_NATURAL_KEY_COMPONENTS = "OA_withNaturalKeyComponents"; public static final String OA_COMPUTED_COMPONENTS = "OA_computedComponents"; public static final String OA_EXPORT_HEADER = "OA_exportHeader"; - public static final String OA_COLUMNS = "OA_columns"; public static final String OA_HEADER_PREFIX = "OA_headerPrefix"; - public static final String OA_REFERENCE_COLUMN_TO_LOOK_FOR_HEADER = "OA_referenceColumnToLookForHeader"; + public static final String OA_REFERENCE_COMPONENT_TO_LOOK_FOR_HEADER = "OA_referenceComponentToLookForHeader"; public static final String OA_DYNAMIC_COMPONENTS = "OA_dynamicComponents"; public static final String OA_VALIDATIONS = "OA_validations"; public static final String OA_COMPONENTS = "OA_components"; public static final String OA_PATTERN_COMPONENTS = "OA_patternComponents"; + public static final String OA_COMPONENT_QUALIFIERS = "OA_componentQualifiers"; + public static final String OA_COMPONENT_ADJACENTS = "OA_componentAdjacents"; public static final String OA_PATTERN_FOR_COMPONENTS = "OA_patternForComponents"; public static final String OA_MANDATORY = "OA_mandatory"; public static final String OA_CONSTANT_COMPONENTS = "OA_constantComponents"; @@ -61,8 +66,6 @@ public class ConfigurationSchemaNode { public static final String OA_STRATEGY = "OA_strategy"; public static final String OA_SUBMISSION = "OA_submission"; public static final String OA_NATURAL_KEY = "OA_naturalKey"; - public static final String OA_I_18_N_DISPLAY = "OA_i18nDisplay"; - public static final String OA_I_18_N_COLUMNS = "OA_i18nColumns"; public static final String OA_FIRST_ROW_LINE = "OA_dataFirstLine"; public static final String OA_HEADER_LINE = "OA_dataHeaderLine"; public static final String OA_RIGHTS_REQUEST = "OA_rightsRequest"; diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/Internationalizations.java b/src/main/java/fr/inra/oresing/domain/application/configuration/Internationalizations.java index d48609990..7b583092f 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/Internationalizations.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/Internationalizations.java @@ -65,8 +65,7 @@ public class Internationalizations { @Getter public static class InternationalizationData { public static final String I18N = "i18n"; - public static final String I18N_COLUMNS = "i18nColumns"; - public static final String I18N_DISPLAY = "i18nDisplay"; + public static final String I18N_DISPLAY_PATTERN = "i18nDisplayPattern"; public static final String COMPONENTS = "components"; public static final String VALIDATIONS = "validations"; public static final String SUBMISSIONS = "submissions"; diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java index 4d8d482ae..cf7e654fc 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java @@ -18,7 +18,7 @@ public record PatternComponent(ComponentDescriptionType type, ComponentPresenceConstraint mandatory, CheckerDescription checker, String patternForComponents, - Map<String, PatternColumnComponent> patternColumnComponents, + Map<String, PatternComponentQualifiers> patternColumnComponents, String submissionAuthorizationScope) implements ComponentDescription { public ComponentDescription withSubmission(final String submission) { return new PatternComponent(type(), componentKey(), defaultValue(), exportHeaderName(), tags(), required(), mandatory(), checker(), patternForComponents(), patternColumnComponents(), submission); @@ -30,7 +30,7 @@ public record PatternComponent(ComponentDescriptionType type, patternColumnComponent.patternNumber(), patternColumnComponent.componentKey(), Optional.ofNullable(patternColumnComponent) - .map(PatternColumnComponent::checker) + .map(PatternComponentQualifiers::checker) .map(CheckerDescription::comment) .orElse("String") ) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternColumnComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentQualifiers.java similarity index 74% rename from src/main/java/fr/inra/oresing/domain/application/configuration/PatternColumnComponent.java rename to src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentQualifiers.java index 2199f0911..33c0b0246 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternColumnComponent.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentQualifiers.java @@ -4,7 +4,7 @@ import fr.inra.oresing.domain.application.configuration.checker.CheckerDescripti import java.util.Set; -public record PatternColumnComponent( +public record PatternComponentQualifiers( ComponentDescriptionType type, String componentKey, Set<Tag> tags, @@ -15,6 +15,6 @@ public record PatternColumnComponent( @Override public ComponentDescription withSubmission(final String submission) { - return new PatternColumnComponent(type(), componentKey(), tags(), exportHeaderName(), patternNumber(), checker(), submission); + return new PatternComponentQualifiers(type(), componentKey(), tags(), exportHeaderName(), patternNumber(), checker(), submission); } } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/AdditionalFileBuildExample.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/AdditionalFileBuildExample.java index c3918b184..b78e36815 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/AdditionalFileBuildExample.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/AdditionalFileBuildExample.java @@ -6,13 +6,23 @@ import fr.inra.oresing.domain.application.configuration.type.*; import java.util.LinkedHashMap; class AdditionalFileBuildExample { - protected static final AdditionalFileType FIRST = buildAdditionalFileSchema(I18nExampleBuilder.buildI18n("Fichier", "File")); - protected static final AdditionalFileType SECOND = buildAdditionalFileSchema(I18nExampleBuilder.buildI18n("Données brutes", "Initial data")); + protected static final AdditionalFileType FIRST = buildAdditionalFileSchema( + TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n("Fichier", "File"), + I18nExampleBuilder.buildI18n("Fichier à joindre à l'application", "File to oin to application") + ) + ); + protected static final AdditionalFileType SECOND = buildAdditionalFileSchema( + TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n("Données brutes", "Initial data"), + I18nExampleBuilder.buildI18n("Données brutes à traiter", "Initial data to analyse") + ) + ); - protected static AdditionalFileType buildAdditionalFileSchema(final I18nType i18n) { + protected static AdditionalFileType buildAdditionalFileSchema(final TitleType title) { return new AdditionalFileType( new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ - put(ConfigurationSchemaNode.OA_I_18_N, i18n); + put(ConfigurationSchemaNode.OA_I_18_N, title); put(ConfigurationSchemaNode.OA_FORMAT, new CollectionType.MapType<FormatType>( new LinkedHashMap<String, FormatType>() {{ put("nom", FormatExampleBuilder.NOM); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ApplicationDescriptionExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ApplicationDescriptionExampleBuilder.java index 0f747aba0..9d92205b9 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ApplicationDescriptionExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ApplicationDescriptionExampleBuilder.java @@ -13,7 +13,7 @@ class ApplicationDescriptionExampleBuilder { put(ConfigurationSchemaNode.OA_VERSION, StringExampleBuilder.INITIAL_VERSION); put(ConfigurationSchemaNode.OA_COMMENT, StringExampleBuilder.COMMENT); put(ConfigurationSchemaNode.OA_DEFAULT_LANGUAGE, StringExampleBuilder.DEFAULT_LANGUAGE); - put(ConfigurationSchemaNode.OA_I_18_N, I18nExampleBuilder.SOERE_NAME); + put(ConfigurationSchemaNode.OA_I_18_N, TitleExampleBuilder.SOERE_NAME); }}); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java index e66625edb..c396f95f2 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java @@ -9,28 +9,30 @@ import java.util.List; import java.util.Map; class BasicComponentExampleBuilder { - protected static final BasicComponentType ESPECES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null); - protected static final BasicComponentType ESPECES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null); - protected static final BasicComponentType ESPECES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.ESPECE, ExportHeaderExampleBuilder.ESPECE, StringCheckerExampleBuilder.ESPECE, null); - protected static final BasicComponentType TYPE_DE_SITES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.TYPE_DE_SITE, ExportHeaderExampleBuilder.TYPE_DE_SITES, ReferenceCheckerExampleBuilder.TYPE_DE_SITES, null); - protected static final BasicComponentType DATE_START = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.DATE, ExportHeaderExampleBuilder.START_DATE, DateCheckerExampleBuilder.DDMMYYYY, null); - protected static final BasicComponentType HEURE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.HEURE, ExportHeaderExampleBuilder.HEURE, DateCheckerExampleBuilder.HHMMSS, null); - protected static final BasicComponentType MASSE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.QUANTITE, ExportHeaderExampleBuilder.MASSE, FloatCheckerExampleBuilder.OF, DefaultValueType.FLOAT_0); - protected static final BasicComponentType OUTIL = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.OUTIL, ExportHeaderExampleBuilder.OUTIL, GroovyCheckerExampleBuilder.T_11, null); - protected static final BasicComponentType PROPRIETE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.PROPRIETE, null, null, null); - protected static final BasicComponentType TAXON_NOM = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.TAXON_NOM, null, null, null); - protected static final BasicComponentType SITE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.SITE, ExportHeaderExampleBuilder.SITE, ReferenceCheckerExampleBuilder.SITE, null); - protected static final BasicComponentType IS_ISO = buildBasicComponents(List.of(StringExampleBuilder.HIDDEN), BooleanExampleBuilder.TRUE, null, null, BooleanCheckerExampleBuilder.BOOLEAN_CHECKER_TYPE, null); - protected static final BasicComponentType REPETITION = buildBasicComponents(null, BooleanExampleBuilder.FALSE, StringExampleBuilder.REPETITION, ExportHeaderExampleBuilder.REPETITION, IntegerCheckerExampleBuilder.ZERO_DIX, null); - protected static final BasicComponentType CHEMIN_PARENT = buildBasicComponents(null, BooleanExampleBuilder.FALSE, StringExampleBuilder.SITE_PARENT, ExportHeaderExampleBuilder.SITE_PARENT, ReferenceCheckerExampleBuilder.SITE, null); + protected static final BasicComponentType ESPECES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + protected static final BasicComponentType ESPECES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + protected static final BasicComponentType ESPECES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.ESPECE, TitleExampleBuilder.ESPECE, StringCheckerExampleBuilder.ESPECE, null, null); + protected static final BasicComponentType TYPE_DE_SITES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.TYPE_DE_SITE, TitleExampleBuilder.TYPE_DE_SITES, ReferenceCheckerExampleBuilder.TYPE_DE_SITES, null, null); + protected static final BasicComponentType DATE_START = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.DATE, TitleExampleBuilder.START_DATE, DateCheckerExampleBuilder.DDMMYYYY, null, null); + protected static final BasicComponentType HEURE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.HEURE, TitleExampleBuilder.HEURE, DateCheckerExampleBuilder.HHMMSS, null, null); + protected static final BasicComponentType MASSE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.QUANTITE, TitleExampleBuilder.MASSE, FloatCheckerExampleBuilder.OF, DefaultValueType.FLOAT_0, null); + protected static final BasicComponentType OUTIL = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.OUTIL, TitleExampleBuilder.OUTIL, GroovyCheckerExampleBuilder.T_11, null, null); + protected static final BasicComponentType PROPRIETE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.PROPRIETE, null, null, null, null); + protected static final BasicComponentType TAXON_NOM = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.TAXON_NOM, null, null, null, null); + protected static final BasicComponentType SITE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.SITE, TitleExampleBuilder.SITE, ReferenceCheckerExampleBuilder.SITE, null, null); + protected static final BasicComponentType IS_ISO = buildBasicComponents(List.of(StringExampleBuilder.HIDDEN), BooleanExampleBuilder.TRUE, null, null, BooleanCheckerExampleBuilder.BOOLEAN_CHECKER_TYPE, null, null); + protected static final BasicComponentType REPETITION = buildBasicComponents(null, BooleanExampleBuilder.FALSE, StringExampleBuilder.REPETITION, TitleExampleBuilder.REPETITION, IntegerCheckerExampleBuilder.ZERO_DIX, null, null); + protected static final BasicComponentType CHEMIN_PARENT = buildBasicComponents(null, BooleanExampleBuilder.FALSE, StringExampleBuilder.SITE_PARENT, TitleExampleBuilder.SITE_PARENT, ReferenceCheckerExampleBuilder.SITE, null, null); protected static BasicComponentType buildBasicComponents(final List<StringType> tags, final BooleanType required, final StringType importHeader, - final ExportHeaderType exportHeader, + final TitleType exportHeader, final CheckerType checker, - DefaultValueType defaultValue) { + DefaultValueType defaultValue, + CollectionType.ArrayType<StringType> langRestriction + ) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); children.put(ConfigurationSchemaNode.OA_REQUIRED, required); if (importHeader != null) children.put(ConfigurationSchemaNode.OA_IMPORT_HEADER, importHeader); @@ -46,6 +48,9 @@ class BasicComponentExampleBuilder { if (checker != null) { children.put(ConfigurationSchemaNode.OA_CHECKER, checker); } + if (langRestriction != null) { + children.put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); + } return new BasicComponentType(children); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java index bd7b50a70..3ac42e2a3 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java @@ -103,12 +103,12 @@ class CollectionExampleBuilder { ), false, false, I18nType.EMPTY_INSTANCE() ); - protected static final CollectionType.MapType<ApplicationType.ComponentType> COMPONENTS = new CollectionType.MapType<ApplicationType.ComponentType>( + protected static final CollectionType.MapType<ApplicationType.ComponentType> COMPONENT_QUALIFIERS = new CollectionType.MapType<ApplicationType.ComponentType>( new LinkedHashMap<String, ApplicationType.ComponentType>() {{ - put("profondeur", PatternComponentComponentExampleBuilder.PROFONDEUR); - put("repetition", PatternComponentComponentExampleBuilder.REPETITION); + put("profondeur", PatternComponentQualifierExampleBuilder.PROFONDEUR); + put("repetition", PatternComponentQualifierExampleBuilder.REPETITION); }}, - false, false, PatternComponentComponentType.EMPTY_INSTANCE()); + false, false, PatternComponentQualifierType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<FormatType> RIGHT_REQUEST_FORMATS = new CollectionType.MapType<FormatType>( new LinkedHashMap<String, FormatType>() {{ put("nom", FormatExampleBuilder.NOM); @@ -126,30 +126,63 @@ class CollectionExampleBuilder { put("tze_nom_key", I18nExampleBuilder.buildI18n("tze_nom_fr", "tze_nom_en")); put("tze_definition_fr", I18nExampleBuilder.buildI18n("tze_definition_fr", "tze_definition_en")); }}); - protected static final CollectionType.MapType<I18nType> ESPECE_DISPLAY = I18nExampleBuilder.buildI18nDisplay(I18nExampleBuilder.buildI18n("spe_definition_fr", "spe_definition_en")); - protected static final CollectionType.MapType<I18nType> NOM_DISPLAY = I18nExampleBuilder.buildI18nDisplay(I18nExampleBuilder.buildI18n("'{nom_key_pro}'", null)); - protected static final CollectionType.MapType<I18nType> NOM_ZET_DISPLAY = I18nExampleBuilder.buildI18nDisplay(I18nExampleBuilder.buildI18n("'{nom_key_zet}'", "'{nom_key_zet}'")); - protected static final CollectionType.MapType<I18nType> NOM_TZE_DISPLAY = I18nExampleBuilder.buildI18nDisplay(I18nExampleBuilder.buildI18n("'De type : {nom_key_tze}'", "'Of type : {nom_key_tze}'")); - protected static final CollectionType.MapType<I18nType> TAXON_DISPLAY = I18nExampleBuilder.buildI18nDisplay(I18nExampleBuilder.buildI18n("'{nom}'", "'{nom}'")); - protected static final CollectionType.MapType<I18nType> PROPRIETE_TAXON_DISPLAY = I18nExampleBuilder.buildI18nDisplay(I18nExampleBuilder.buildI18n("'{nom}'", "'{nom}'")); + protected static final TitleType ESPECE_DISPLAY = TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n("{spe_species}", "{spe_species}"), + I18nExampleBuilder.buildI18n("{spe_definition_fr}", "{spe_definition_en}") + ); + protected static final TitleType NOM_ZET_DISPLAY = TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n("'{zet_nom_fr}'", "'{zet_nom_en}'"), + I18nExampleBuilder.buildI18n("'{zet_description_fr}'", "'{zet_description_fr}'") + ); + protected static final TitleType PROJET_DISPLAY = TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n("'{pro_nom_fr}'", "'{pro_nom_en}'"), + I18nExampleBuilder.buildI18n("'{pro_definition_fr}'", "'{pro_definition_en}'") + ); + protected static final TitleType NOM_TZE_DISPLAY = TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n("'De type : {tze_nom_fr}'", "'Of type : {tze_nom_en}'"), + I18nExampleBuilder.buildI18n("'{tze_definition_fr}'", "'{tze_definition_en}'") + ); + protected static final TitleType TAXON_DISPLAY = TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n("'{tax_taxon}'", "'{tax_taxon}'"), + null + ); + protected static final TitleType PROPRIETE_TAXON_DISPLAY = TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n("'{ptx_propriete}'", "'{ptx_propriete}'"), + null + ); protected static CollectionType.MapType<I18nType> buildI18nColumns(final Map<String, I18nType> columns) { return new CollectionType.MapType<I18nType>(columns, false, false, I18nType.EMPTY_INSTANCE()); } - protected static final CollectionType.ArrayType<CollectionType.MapType<PatternComponentComponentType>> COMPONENTS(final String prefix) { - return new CollectionType.ArrayType<CollectionType.MapType<PatternComponentComponentType>>( + protected static final CollectionType.ArrayType<CollectionType.MapType<PatternComponentQualifierType>> COMPONENT_QUALIFIERS(final String prefix) { + return new CollectionType.ArrayType<CollectionType.MapType<PatternComponentQualifierType>>( + new LinkedList<>() {{ + add(new CollectionType.MapType<>(new HashMap<>() {{ + put("%s_profondeur".formatted(prefix), PatternComponentQualifierExampleBuilder.PROFONDEUR); + }}, false, false, PatternComponentQualifierType.EMPTY_INSTANCE() + )); + add(new CollectionType.MapType<>(new HashMap<>() {{ + put("%s_repetition".formatted(prefix), PatternComponentQualifierExampleBuilder.REPETITION); + }}, false, false, PatternComponentQualifierType.EMPTY_INSTANCE() + )); + }}, + false, false, CollectionType.MapType.PATTERN_COMPONENT_QUALIFIER_EMPTY_INSTANCE()); + } + + protected static final CollectionType.ArrayType<CollectionType.MapType<PatternComponentAdjacentType>> COMPONENT_ADJACENTS(final String prefix) { + return new CollectionType.ArrayType<CollectionType.MapType<PatternComponentAdjacentType>>( new LinkedList<>() {{ add(new CollectionType.MapType<>(new HashMap<>() {{ - put("%s_profondeur".formatted(prefix), PatternComponentComponentExampleBuilder.PROFONDEUR); - }},false,false, PatternComponentComponentType.EMPTY_INSTANCE() + put("%s_sd".formatted(prefix), PatternComponentAdjacentExampleBuilder.STANDARD_DEVIATION); + }}, false, false, PatternComponentAdjacentType.EMPTY_INSTANCE() )); add(new CollectionType.MapType<>(new HashMap<>() {{ - put("%s_repetition".formatted(prefix), PatternComponentComponentExampleBuilder.REPETITION); - }},false,false, PatternComponentComponentType.EMPTY_INSTANCE() + put("%s_qc".formatted(prefix), PatternComponentAdjacentExampleBuilder.QUALITY_CLASS); + }}, false, false, PatternComponentAdjacentType.EMPTY_INSTANCE() )); }}, - false, false, CollectionType.MapType.PATTERN_COMPONENT_COMPONENT_EMPTY_INSTANCE()); + false, false, CollectionType.MapType.PATTERN_COMPONENT_ADJACENT_EMPTY_INSTANCE()); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ComputedComponentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ComputedComponentExampleBuilder.java index 993b3edeb..89a7addf7 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ComputedComponentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ComputedComponentExampleBuilder.java @@ -6,38 +6,48 @@ import fr.inra.oresing.domain.application.configuration.type.*; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; class ComputedComponentExampleBuilder { protected static final ComputedComponentType SITES = buildComputedComponentWithNaturalKeyColumns( List.of("zet_chemin_parent", "zet_nom_key"), - DateCheckerExampleBuilder.DDMMYYYYHHMMSS, - ExportHeaderExampleBuilder.DATE_TIME + ReferenceCheckerExampleBuilder.SITE, + TitleExampleBuilder.DATE_TIME, + null ); protected static final ComputedComponentType DATE_HEURE = buildComputedComponent( StringExampleBuilder.DATE_TIME_GRROVY_EXPRESSION, DateCheckerExampleBuilder.DDMMYYYYHHMMSS, - ExportHeaderExampleBuilder.DATE_TIME + TitleExampleBuilder.DATE_TIME, + null ); protected static final ComputedComponentType DATA_DATE_HEURE = buildComputedComponent( StringExampleBuilder.DATA_DATE_TIME_GRROVY_EXPRESSION, DateCheckerExampleBuilder.DDMMYYYYHHMMSS, - ExportHeaderExampleBuilder.DATE_TIME + TitleExampleBuilder.DATE_TIME, + null ); - static ComputedComponentType buildComputedComponent(final StringType computation, final CheckerType checker, final ExportHeaderType exportHeaderType) { + static ComputedComponentType buildComputedComponent( + final StringType computation, + final CheckerType checker, + final TitleType exportHeaderType, + CollectionType.ArrayType<StringType> langRestriction) { return new ComputedComponentType( new LinkedHashMap<String, ConfigurationSchemaNodeType>() { { put(ConfigurationSchemaNode.OA_COMPUTATION, new GroovyExpressionType(Map.of(ConfigurationSchemaNode.OA_EXPRESSION, computation))); put(ConfigurationSchemaNode.OA_CHECKER, checker); put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeaderType); + put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); } } ); } - static ComputedComponentType buildComputedComponentWithNaturalKeyColumns(final List<String> naturalKeyColumns, final CheckerType checker, final ExportHeaderType exportHeaderType) { + static ComputedComponentType buildComputedComponentWithNaturalKeyColumns(final List<String> naturalKeyColumns, + final CheckerType checker, + final TitleType exportHeaderType, + CollectionType.ArrayType<StringType> langRestriction) { CollectionType.ArrayType<StringType> naStringTypeArrayType = new CollectionType.ArrayType<>(naturalKeyColumns.stream().map(StringType::new).toList(), false, true, StringType.EMPTY_INSTANCE()); return new ComputedComponentType( new LinkedHashMap<String, ConfigurationSchemaNodeType>() { @@ -45,6 +55,9 @@ class ComputedComponentExampleBuilder { put(ConfigurationSchemaNode.OA_WITH_NATURAL_KEY_COMPONENTS, naStringTypeArrayType); put(ConfigurationSchemaNode.OA_CHECKER, checker); put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeaderType); + if (langRestriction != null) { + put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); + } } } ); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ConstantComponentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ConstantComponentExampleBuilder.java index 495b9217d..1f0a7d18e 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ConstantComponentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ConstantComponentExampleBuilder.java @@ -11,29 +11,29 @@ import java.util.Map; class ConstantComponentExampleBuilder { protected static final ConstantComponentType TYPE_SITE = buildConstantType( - ExportHeaderExampleBuilder.TYPE_SITE, + TitleExampleBuilder.TYPE_SITE_COLUMN, true, - ConstantImportHeaderExampleBuilder.buildConstante(1, 2, null) + ConstantImportHeaderExampleBuilder.buildConstante(1, 2, null, null) ); protected static final ConstantComponentType SITE = buildConstantType( - ExportHeaderExampleBuilder.SITE, - true, - ConstantImportHeaderExampleBuilder.buildConstante(2, 2, null) - ); + TitleExampleBuilder.SITE_COLUMN, + true, + ConstantImportHeaderExampleBuilder.buildConstante(2, 2, null, null) + ); protected static final ConstantComponentType START_DATE = buildConstantType( - ExportHeaderExampleBuilder.START_DATE, + TitleExampleBuilder.START_DATE_COLUMN, false, - ConstantImportHeaderExampleBuilder.buildConstante(5, 0, "dat_date") + ConstantImportHeaderExampleBuilder.buildConstante(5, 0, "dat_date", null) ); - protected static final ConstantComponentType END_DATE= buildConstantType( - ExportHeaderExampleBuilder.END_DATE, + protected static final ConstantComponentType END_DATE = buildConstantType( + TitleExampleBuilder.END_DATE, false, - ConstantImportHeaderExampleBuilder.buildConstante(6, 0, "dat_date") + ConstantImportHeaderExampleBuilder.buildConstante(6, 0, "dat_date", null) ); - + static ConstantComponentType buildConstantType( - final ExportHeaderType exportHeaderType, + final TitleType exportHeaderType, final boolean required, final ConstantImportHeaderType constantImportHeaderType ) { @@ -51,8 +51,9 @@ class ConstantComponentExampleBuilder { final List<String> tags, final boolean required, final String importHeader, - final I18nType exportHeader, - final CheckerType checker + final TitleType exportHeader, + final CheckerType checker, + CollectionType.ArrayType<StringType> langRestriction ) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); children.put(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(required, false)); @@ -62,11 +63,14 @@ class ConstantComponentExampleBuilder { children.put(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(tagsArray, false, false, StringType.EMPTY_INSTANCE())); } if (exportHeader != null) { - children.put(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderExampleBuilder.buildExportHeader(exportHeader)); + children.put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeader); } if (checker != null) { children.put(ConfigurationSchemaNode.OA_CHECKER, checker); } + if (langRestriction != null) { + children.put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); + } return new ConstantComponentType(children); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ConstantImportHeaderExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ConstantImportHeaderExampleBuilder.java index 174fad893..ba7ff7b42 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ConstantImportHeaderExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ConstantImportHeaderExampleBuilder.java @@ -9,12 +9,15 @@ import java.util.Map; class ConstantImportHeaderExampleBuilder { protected static ConstantImportHeaderType buildExportHeader(final I18nType exportHeader) { return new ConstantImportHeaderType(Map.of( - ConfigurationSchemaNode.OA_I_18_N, + ConfigurationSchemaNode.OA_TITLE, exportHeader )); } - protected static ConstantImportHeaderType buildConstante(final int rowNumber, final int columnNumber, final String columnName) { + protected static ConstantImportHeaderType buildConstante(final int rowNumber, + final int columnNumber, + final String columnName, + CollectionType.ArrayType<StringType> langRestriction) { return new ConstantImportHeaderType(new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ put(ConfigurationSchemaNode.OA_CONSTANT_IMPORT_HEADER_ROW_NUMBER, new IntegerType(rowNumber)); if (columnName == null) { @@ -22,6 +25,9 @@ class ConstantImportHeaderExampleBuilder { } else { put(ConfigurationSchemaNode.OA_CONSTANT_IMPORT_HEADER_COLUMN_NAME, new StringType(columnName)); } + if (langRestriction != null) { + put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); + } }}); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/DataExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/DataExampleBuilder.java index ae677b96d..1be5db575 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/DataExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/DataExampleBuilder.java @@ -10,23 +10,22 @@ class DataExampleBuilder { protected static final DataType ESPECE = buildDataSchemas( 1, 2, List.of("spe_species"), - I18nExampleBuilder.ESPECE, - CollectionExampleBuilder.ESPECE_DEFINITION, - CollectionExampleBuilder.ESPECE_DISPLAY, + TitleExampleBuilder.ESPECE, List.of("data"), + CollectionExampleBuilder.ESPECE_DISPLAY, CollectionExampleBuilder.ESPECE_BASIC_COMPONENTS, CollectionExampleBuilder.ESPECE_COMPUTED_COMPONENTS, null, null, null, null, - null, null); + null, + null); protected static final DataType PROJET = buildDataSchemas( 1, 2, List.of("pro_nom_key"), - I18nExampleBuilder.PROJET, - CollectionExampleBuilder.NOM, - CollectionExampleBuilder.NOM_DISPLAY, + TitleExampleBuilder.PROJET, List.of("context", "data"), + CollectionExampleBuilder.PROJET_DISPLAY, CollectionExampleBuilder.PROJET_BASIC_COMPONENTS, null, null, @@ -36,10 +35,9 @@ class DataExampleBuilder { null, null); protected static final DataType ZONE_ETUDE = buildDataSchemas( 1, 2, List.of("zet_chemin_parent", "zet_nom_key"), - I18nExampleBuilder.SITE, - CollectionExampleBuilder.SITE_NOM, - CollectionExampleBuilder.NOM_ZET_DISPLAY, + TitleExampleBuilder.SITE, List.of("context", "data"), + CollectionExampleBuilder.NOM_ZET_DISPLAY, CollectionExampleBuilder.SITES_BASIC_COMPONENTS, CollectionExampleBuilder.SITES_COMPUTED_COMPONENTS, null, @@ -49,10 +47,9 @@ class DataExampleBuilder { null, null); protected static final DataType TYPE_DE_SITES = buildDataSchemas( 1, 2, List.of("tze_nom_key"), - I18nExampleBuilder.TYPE_DE_SITE, - CollectionExampleBuilder.TYPE_SITE_NOM_DEFINITION, - CollectionExampleBuilder.NOM_TZE_DISPLAY, + TitleExampleBuilder.TYPE_DE_SITE, List.of("context"), + CollectionExampleBuilder.NOM_TZE_DISPLAY, CollectionExampleBuilder.TYPE_DE_SITES_BASIC_COMPONENTS, null, null, @@ -62,10 +59,9 @@ class DataExampleBuilder { null, null); protected static final DataType PROPRIETE_TAXON = buildDataSchemas( 1, 2, List.of("ptx_propriete"), - I18nExampleBuilder.PROPRIETE_TAXON, - CollectionExampleBuilder.PROPRIETE_TAXON_COLUMNS, - CollectionExampleBuilder.PROPRIETE_TAXON_DISPLAY, + TitleExampleBuilder.PROPRIETE_TAXON, List.of("context"), + CollectionExampleBuilder.PROPRIETE_TAXON_DISPLAY, CollectionExampleBuilder.PROPRIETE_TAXON_BASIC_COMPONENTS, null, null, @@ -75,10 +71,9 @@ class DataExampleBuilder { null, null); protected static final DataType TAXON = buildDataSchemas( 1, 2, List.of("tax_taxon"), - I18nExampleBuilder.TAXON, - CollectionExampleBuilder.TAXON_COLUMNS, - CollectionExampleBuilder.TAXON_DISPLAY, + TitleExampleBuilder.TAXON, List.of("context"), + CollectionExampleBuilder.TAXON_DISPLAY, CollectionExampleBuilder.TAXON_BASIC_COMPONENTS, null, CollectionExampleBuilder.TAXON_DYNAMIC_COMPONENTS, @@ -86,14 +81,14 @@ class DataExampleBuilder { null, null, null, null); + protected static final DataType DATA = buildDataSchemas( 4, 7, List.of("dat_date"), - I18nExampleBuilder.DATA, - null, - null, + TitleExampleBuilder.DATA, List.of("context", "\"__DATA__\""), + null, CollectionExampleBuilder.DATA_BASIC_COMPONENTS, CollectionExampleBuilder.DATA_COMPUTED_COMPONENTS, null, @@ -108,10 +103,9 @@ class DataExampleBuilder { final int headerLine, final int firstRowLine, final List<String> naturalKey, - final I18nType i18n, - final CollectionType.MapType<I18nType> i18nColumns, - final CollectionType.MapType<I18nType> i18nDisplay, + final TitleType title, final List<String> tags, + final TitleType displayPattern, final CollectionType.MapType<BasicComponentType> basicComponents, final CollectionType.MapType<ComputedComponentType> computedComponents, final CollectionType.MapType<DynamicComponentType> dynamicComponents, @@ -125,9 +119,8 @@ class DataExampleBuilder { put(ConfigurationSchemaNode.OA_FIRST_ROW_LINE, new IntegerType(firstRowLine)); put(ConfigurationSchemaNode.OA_NATURAL_KEY, new CollectionType.ArrayType<StringType>(naturalKey.stream().map(StringType::new).toList(), true, false, StringType.EMPTY_INSTANCE())); put(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(TagExampleBuilder.buildTagArray(tags), false, false, StringType.EMPTY_INSTANCE())); - put(ConfigurationSchemaNode.OA_I_18_N, i18n); - put(ConfigurationSchemaNode.OA_I_18_N_COLUMNS, i18nColumns); - put(ConfigurationSchemaNode.OA_I_18_N_DISPLAY, i18nDisplay); + put(ConfigurationSchemaNode.OA_I_18_N, title); + put(ConfigurationSchemaNode.OA_I_18_N_DISPLAY_PATTERN, displayPattern); put(ConfigurationSchemaNode.OA_BASIC_COMPONENTS, basicComponents); put(ConfigurationSchemaNode.OA_COMPUTED_COMPONENTS, computedComponents); put(ConfigurationSchemaNode.OA_DYNAMIC_COMPONENTS, dynamicComponents); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/DynamicComponentsExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/DynamicComponentsExampleBuilder.java index 8c654ecf0..232d81f8c 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/DynamicComponentsExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/DynamicComponentsExampleBuilder.java @@ -1,6 +1,7 @@ package fr.inra.oresing.domain.application.configuration.examples; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; +import fr.inra.oresing.domain.application.configuration.type.CollectionType; import fr.inra.oresing.domain.application.configuration.type.ConfigurationSchemaNodeType; import fr.inra.oresing.domain.application.configuration.type.DynamicComponentType; import fr.inra.oresing.domain.application.configuration.type.StringType; @@ -11,19 +12,24 @@ class DynamicComponentsExampleBuilder { protected static final DynamicComponentType PROPRIETE_TAXON = buildDynamicComponent( StringExampleBuilder.PROPRIETE_TAXON_HEADER_PREFIX, StringExampleBuilder.PROPRIETE_TAXON_REFERENCE, - StringExampleBuilder.PROPRIETE_TAXON_REFERENCE_TO_LOOKUP + StringExampleBuilder.PROPRIETE_TAXON_REFERENCE_TO_LOOKUP, + null ); static DynamicComponentType buildDynamicComponent( final StringType prefix, final StringType reference, - final StringType columnToLookup + final StringType columnToLookup, + CollectionType.ArrayType<StringType> langRestriction ) { return new DynamicComponentType(new LinkedHashMap<String, ConfigurationSchemaNodeType>() { { put(ConfigurationSchemaNode.OA_HEADER_PREFIX, prefix); put(ConfigurationSchemaNode.OA_REFERENCE, reference); - put(ConfigurationSchemaNode.OA_REFERENCE_COLUMN_TO_LOOK_FOR_HEADER, columnToLookup); + put(ConfigurationSchemaNode.OA_REFERENCE_COMPONENT_TO_LOOK_FOR_HEADER, columnToLookup); + if (langRestriction != null) { + put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); + } } }); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ExportHeaderExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ExportHeaderExampleBuilder.java deleted file mode 100644 index 38a67453f..000000000 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ExportHeaderExampleBuilder.java +++ /dev/null @@ -1,29 +0,0 @@ -package fr.inra.oresing.domain.application.configuration.examples; - -import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; -import fr.inra.oresing.domain.application.configuration.type.ExportHeaderType; -import fr.inra.oresing.domain.application.configuration.type.I18nType; - -import java.util.Map; - -class ExportHeaderExampleBuilder { - protected static final ExportHeaderType TYPE_SITE = buildExportHeader(I18nExampleBuilder.buildI18n("Type de zone d'étude", "Site type")); - protected static final ExportHeaderType ESPECE = buildExportHeader(I18nExampleBuilder.buildI18n("Espèce", "Species")); - protected static final ExportHeaderType START_DATE = buildExportHeader(I18nExampleBuilder.buildI18n("Date de début", "Start date")); - protected static final ExportHeaderType END_DATE = buildExportHeader(I18nExampleBuilder.buildI18n("Date de fin", "End date")); - protected static final ExportHeaderType HEURE = buildExportHeader(I18nExampleBuilder.buildI18n("Heure", "Time")); - protected static final ExportHeaderType MASSE = buildExportHeader(I18nExampleBuilder.buildI18n("Masse", "Mass")); - protected static final ExportHeaderType OUTIL = buildExportHeader(I18nExampleBuilder.buildI18n("Outil", "Tool")); - protected static final ExportHeaderType SITE = buildExportHeader(I18nExampleBuilder.buildI18n("Site", null)); - protected static final ExportHeaderType SITE_PARENT = buildExportHeader(I18nExampleBuilder.buildI18n("Site parent", "Parent site")); - protected static final ExportHeaderType TYPE_DE_SITES = buildExportHeader(I18nExampleBuilder.buildI18n("Type de site", "Site types")); - protected static final ExportHeaderType REPETITION = buildExportHeader(I18nExampleBuilder.buildI18n("Répétition", "Repetition")); - protected static final ExportHeaderType PROFONDEUR = buildExportHeader(I18nExampleBuilder.buildI18n("Profondeur", "Depth")); - protected static final ExportHeaderType DATE_TIME = buildExportHeader(I18nExampleBuilder.buildI18n("Date complète", "Complete date")); - protected static final ExportHeaderType SWC = buildExportHeader(I18nExampleBuilder.buildI18n("Humidité volumique du sol", "Soil water content")); - protected static final ExportHeaderType SMP = buildExportHeader(I18nExampleBuilder.buildI18n("Tension d'humdité du sol", "Soil moisture pressure")); - - protected static ExportHeaderType buildExportHeader(final I18nType exportHeader) { - return new ExportHeaderType(Map.of(ConfigurationSchemaNode.OA_I_18_N, exportHeader)); - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FloatCheckerExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FloatCheckerExampleBuilder.java index 91df8db84..b82b5b03f 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FloatCheckerExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FloatCheckerExampleBuilder.java @@ -11,6 +11,7 @@ import java.util.Optional; class FloatCheckerExampleBuilder { protected static final FloatCheckerType OF = buildFloatChecker(0f, 2000f, Multiplicity.ONE); protected static final CheckerType PROFONDEUR = buildFloatChecker(0f, 500f, Multiplicity.ONE); + protected static final CheckerType STANDARD_DEVIATION = buildFloatChecker(0f, 500f, Multiplicity.ONE); protected static FloatCheckerType buildFloatChecker(final Float min, final Float max, final Multiplicity multiplicity) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FormatExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FormatExampleBuilder.java index 243c5095c..7be95a9dd 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FormatExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FormatExampleBuilder.java @@ -9,29 +9,29 @@ import java.util.Map; class FormatExampleBuilder { protected static final FormatType PROJET = buildFormatSchema( - I18nExampleBuilder.PROJET, + TitleExampleBuilder.PROJET, true, ReferenceCheckerExampleBuilder.buildReferenceChecker("tr_projet_pro", Multiplicity.MANY, false, false) ); protected static final FormatType NOM = buildFormatSchema( - I18nExampleBuilder.NOM, + TitleExampleBuilder.NOM, true, StringCheckerExampleBuilder.buildStringChecker("\"[a-z]*\"", Multiplicity.ONE) ); protected static final FormatType START_DATE = buildFormatSchema( - I18nExampleBuilder.START_DATE, + TitleExampleBuilder.START_DATE, true, DateCheckerExampleBuilder.DDMMYYYY ); protected static final FormatType ORGANISME = buildFormatSchema( - I18nExampleBuilder.ORGANISME, + TitleExampleBuilder.ORGANISME, false, StringCheckerExampleBuilder.ALL ); - protected static FormatType buildFormatSchema(final I18nType i18n, final boolean required, final CheckerType checker) { + protected static FormatType buildFormatSchema(final TitleType title, final boolean required, final CheckerType checker) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); - children.put(ConfigurationSchemaNode.OA_I_18_N, i18n); + children.put(ConfigurationSchemaNode.OA_I_18_N, title); if (required) { children.put(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(true)); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/I18nExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/I18nExampleBuilder.java index 49b575926..20c675aa9 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/I18nExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/I18nExampleBuilder.java @@ -3,22 +3,25 @@ package fr.inra.oresing.domain.application.configuration.examples; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.application.configuration.type.CollectionType; import fr.inra.oresing.domain.application.configuration.type.I18nType; +import fr.inra.oresing.domain.application.configuration.type.StringType; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; class I18nExampleBuilder { - protected static final I18nType NOM = buildI18n("Nom", "Name"); - protected static final I18nType SITE = buildI18n("Site", "Site"); - protected static final I18nType TYPE_DE_SITE = buildI18n("Types de sites", "Sites types"); - protected static final I18nType TAXON = buildI18n("Taxon", "Taxa"); - protected static final I18nType PROPRIETE_TAXON = buildI18n("Propriété des taxon", "Taxa properties"); - protected static final I18nType PROJET = buildI18n("Projet", "Project"); - protected static final I18nType SOERE_NAME = buildI18n("SOERE mon SOERE", "SOERE my SOERE"); - protected static final I18nType ESPECE = buildI18n("Espèce", "Species"); - protected static final I18nType START_DATE = buildI18n("Date de début", "Start Date"); - protected static final I18nType ORGANISME = buildI18n("Nom de l'organisme de recherche", "Name of research organization"); - protected static final I18nType DATA = buildI18n("Données", "Data"); + protected static CollectionType.ArrayType<StringType> LANG_RESTRICTION_FR = new CollectionType.ArrayType<>( + List.of( new StringType("fr", false)), + false, + false, + StringType.EMPTY_INSTANCE() + ); + protected static CollectionType.ArrayType<StringType> LANG_RESTRICTION_EN = new CollectionType.ArrayType<>( + List.of( new StringType("en", false)), + false, + false, + StringType.EMPTY_INSTANCE() + ); protected static I18nType buildI18n(final String fr, final String en) { return new I18nType( diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/IntegerCheckerExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/IntegerCheckerExampleBuilder.java index 21cfae62a..6c7a4fa57 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/IntegerCheckerExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/IntegerCheckerExampleBuilder.java @@ -9,8 +9,9 @@ import java.util.Map; import java.util.Optional; class IntegerCheckerExampleBuilder { + public static final CheckerType QUALITY_CLASS = buildIntegerChecker(0, 2, Multiplicity.ONE); protected static final IntegerCheckerType ZERO_DIX= buildIntegerChecker(0, 10, Multiplicity.ONE); - protected static final IntegerCheckerType REPETITION= buildIntegerChecker(null, null, Multiplicity.ONE); + protected static final IntegerCheckerType REPETITION= buildIntegerChecker(0, 10, Multiplicity.ONE); protected static IntegerCheckerType buildIntegerChecker(final Integer min, final Integer max, final Multiplicity multiplicity) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentAdjacentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentAdjacentExampleBuilder.java new file mode 100644 index 000000000..9ef3fbc99 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentAdjacentExampleBuilder.java @@ -0,0 +1,74 @@ +package fr.inra.oresing.domain.application.configuration.examples; + +import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; +import fr.inra.oresing.domain.application.configuration.type.*; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +class PatternComponentAdjacentExampleBuilder { + protected static final PatternComponentAdjacentType STANDARD_DEVIATION = buildPatternComponentAdjacentType( + "{$1}_sd", + false, + false, + TitleExampleBuilder.STANDARD_DEVIATION, + List.of("data"), + FloatCheckerExampleBuilder.STANDARD_DEVIATION + ); + protected static final PatternComponentAdjacentType QUALITY_CLASS = buildPatternComponentAdjacentType( + "{$1}_qc", + false, + false, + TitleExampleBuilder.QUALITY_CLASS, + List.of("data"), + IntegerCheckerExampleBuilder.QUALITY_CLASS + ); + + protected static PatternComponentAdjacentType buildPatternComponentAdjacentType( + final String importHeaderPattern, + final boolean required, + final boolean mandatory, + final TitleType exportHeader, + final List<String> tags, + final CheckerType checker) { + return new PatternComponentAdjacentType(new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ + put(ConfigurationSchemaNode.OA_IMPORT_HEADER_PATTERN, new StringType(importHeaderPattern)); + put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeader); + put(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(required)); + put(ConfigurationSchemaNode.OA_MANDATORY, new BooleanType(mandatory)); + put(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(TagExampleBuilder.buildTagArray(tags), false, false, StringType.EMPTY_INSTANCE())); + put(ConfigurationSchemaNode.OA_CHECKER, checker); + }} + ); + } + + protected static PatternComponentAdjacentType buildBasicComponents( + final List<String> tags, + final boolean required, + final String importHeader, + final TitleType exportHeader, + final CheckerType checker, + CollectionType.ArrayType<StringType> langRestriction + ) { + final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); + children.put(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(required, false)); + if (importHeader != null) children.put(ConfigurationSchemaNode.OA_IMPORT_HEADER, new StringType(importHeader)); + if (CollectionUtils.isNotEmpty(tags)) { + final List<StringType> tagsArray = tags.stream().map(StringType::new).toList(); + children.put(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(tagsArray, false, false, StringType.EMPTY_INSTANCE())); + } + if (exportHeader != null) { + children.put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeader); + } + if (checker != null) { + children.put(ConfigurationSchemaNode.OA_CHECKER, checker); + } + if (langRestriction != null) { + children.put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); + } + return new PatternComponentAdjacentType(children); + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentExampleBuilder.java index f123aa593..9454c02d9 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentExampleBuilder.java @@ -14,18 +14,18 @@ class PatternComponentExampleBuilder { protected static final String SMP_PATTERN = "\"SMP_(.*)_(.*)\""; protected static final PatternComponentType SWC = buildPatternComponent( SWC_PATTERN, - ExportHeaderExampleBuilder.SWC, + TitleExampleBuilder.SWC, "swc" ); - protected static final PatternComponentType SMP= buildPatternComponent( + protected static final PatternComponentType SMP = buildPatternComponent( SMP_PATTERN, - ExportHeaderExampleBuilder.SMP, + TitleExampleBuilder.SMP, "smp" ); static PatternComponentType buildPatternComponent( final String pattern, - final ExportHeaderType exportHeader, + final TitleType exportHeader, final String prefix ) { return new PatternComponentType(new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ @@ -34,7 +34,8 @@ class PatternComponentExampleBuilder { put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeader); put(ConfigurationSchemaNode.OA_REQUIRED, BooleanExampleBuilder.FALSE); put(ConfigurationSchemaNode.OA_CHECKER, FloatCheckerExampleBuilder.OF); - put(ConfigurationSchemaNode.OA_COMPONENTS, CollectionExampleBuilder.COMPONENTS(prefix)); + put(ConfigurationSchemaNode.OA_COMPONENT_QUALIFIERS, CollectionExampleBuilder.COMPONENT_QUALIFIERS(prefix)); + put(ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS, CollectionExampleBuilder.COMPONENT_ADJACENTS(prefix)); }}); } @@ -42,8 +43,9 @@ class PatternComponentExampleBuilder { final List<String> tags, final boolean required, final String importHeader, - final I18nType exportHeader, - final CheckerType checker + final TitleType exportHeader, + final CheckerType checker, + CollectionType.ArrayType<StringType> langRestriction ) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); children.put(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(required, false)); @@ -53,11 +55,14 @@ class PatternComponentExampleBuilder { children.put(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(tagsArray, false, false, StringType.EMPTY_INSTANCE())); } if (exportHeader != null) { - children.put(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderExampleBuilder.buildExportHeader(exportHeader)); + children.put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeader); } if (checker != null) { children.put(ConfigurationSchemaNode.OA_CHECKER, checker); } + if (langRestriction != null) { + children.put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); + } return new PatternComponentType(children); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentComponentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentQualifierExampleBuilder.java similarity index 69% rename from src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentComponentExampleBuilder.java rename to src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentQualifierExampleBuilder.java index 3a07658f0..76a661835 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentComponentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentQualifierExampleBuilder.java @@ -9,23 +9,23 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -class PatternComponentComponentExampleBuilder { - protected static final PatternComponentComponentType PROFONDEUR = buildPatternComponentComponentType( - ExportHeaderExampleBuilder.PROFONDEUR, - List.of("context"), +class PatternComponentQualifierExampleBuilder { + protected static final PatternComponentQualifierType PROFONDEUR = buildPatternComponentComponentType( + TitleExampleBuilder.PROFONDEUR, + List.of("data"), FloatCheckerExampleBuilder.PROFONDEUR ); - protected static final PatternComponentComponentType REPETITION = buildPatternComponentComponentType( - ExportHeaderExampleBuilder.REPETITION, - List.of("context"), + protected static final PatternComponentQualifierType REPETITION = buildPatternComponentComponentType( + TitleExampleBuilder.REPETITION, + List.of("data"), IntegerCheckerExampleBuilder.REPETITION - ); + ); - protected static PatternComponentComponentType buildPatternComponentComponentType( - final ExportHeaderType exportHeader, + protected static PatternComponentQualifierType buildPatternComponentComponentType( + final TitleType exportHeader, final List<String> tags, final CheckerType checker) { - return new PatternComponentComponentType(new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ + return new PatternComponentQualifierType(new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeader); put(ConfigurationSchemaNode.OA_REQUIRED, BooleanExampleBuilder.TRUE); put(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(TagExampleBuilder.buildTagArray(tags), false, false, StringType.EMPTY_INSTANCE())); @@ -34,12 +34,13 @@ class PatternComponentComponentExampleBuilder { ); } - protected static PatternComponentComponentType buildBasicComponents( + protected static PatternComponentQualifierType buildBasicComponents( final List<String> tags, final boolean required, final String importHeader, - final I18nType exportHeader, - final CheckerType checker + final TitleType exportHeader, + final CheckerType checker, + CollectionType.ArrayType<StringType> langRestriction ) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); children.put(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(required, false)); @@ -49,11 +50,14 @@ class PatternComponentComponentExampleBuilder { children.put(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(tagsArray, false, false, StringType.EMPTY_INSTANCE())); } if (exportHeader != null) { - children.put(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderExampleBuilder.buildExportHeader(exportHeader)); + children.put(ConfigurationSchemaNode.OA_EXPORT_HEADER, exportHeader); } if (checker != null) { children.put(ConfigurationSchemaNode.OA_CHECKER, checker); } - return new PatternComponentComponentType(children); + if (langRestriction != null) { + children.put(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, langRestriction); + } + return new PatternComponentQualifierType(children); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceExampleBuilder.java index aef013c5c..15fd4c409 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceExampleBuilder.java @@ -1,15 +1,13 @@ package fr.inra.oresing.domain.application.configuration.examples; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; -import fr.inra.oresing.domain.application.configuration.type.BooleanType; -import fr.inra.oresing.domain.application.configuration.type.ConfigurationSchemaNodeType; -import fr.inra.oresing.domain.application.configuration.type.ReferenceType; -import fr.inra.oresing.domain.application.configuration.type.StringType; +import fr.inra.oresing.domain.application.configuration.type.*; import java.util.HashMap; import java.util.Map; class ReferenceExampleBuilder { + protected static ReferenceType buildReference(final String reference, final boolean isParent, final boolean isRecursive) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); children.put(ConfigurationSchemaNode.OA_NAME, new StringType(reference, true)); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceScopeTypeExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceScopeTypeExampleBuilder.java index b5da3c773..dcd8f6938 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceScopeTypeExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceScopeTypeExampleBuilder.java @@ -2,7 +2,6 @@ package fr.inra.oresing.domain.application.configuration.examples; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.application.configuration.type.CollectionType; -import fr.inra.oresing.domain.application.configuration.type.I18nType; import fr.inra.oresing.domain.application.configuration.type.ReferenceScopeType; import fr.inra.oresing.domain.application.configuration.type.StringType; @@ -17,8 +16,8 @@ public class ReferenceScopeTypeExampleBuilder { new ReferenceScopeType(new LinkedHashMap<>(){{ put(ConfigurationSchemaNode.OA_COMPONENT, new StringType("dat_site", true)); put(ConfigurationSchemaNode.OA_REFERENCE, new StringType("tr_zone_etude_zet", false)); - put(ConfigurationSchemaNode.OA_I_18_N, I18nExampleBuilder.SITE); - put(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderExampleBuilder.SITE); + put(ConfigurationSchemaNode.OA_I_18_N, TitleExampleBuilder.SITE); + put(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleExampleBuilder.SITE); }}) ) ); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java new file mode 100644 index 000000000..778e26f25 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java @@ -0,0 +1,158 @@ +package fr.inra.oresing.domain.application.configuration.examples; + +import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; +import fr.inra.oresing.domain.application.configuration.type.*; + +import java.util.LinkedHashMap; + +import static fr.inra.oresing.domain.application.configuration.examples.I18nExampleBuilder.buildI18n; + +class TitleExampleBuilder { + public static final TitleType STANDARD_DEVIATION = buildTitle( + buildI18n("écart_type", "standard_deviation"), + null); + public static final TitleType QUALITY_CLASS = buildTitle( + buildI18n("Indic de qualité", "Quality class"), + buildI18n("0 pour une valeur valide ; 2 pour une valeur incorrecte", " 0 for valid value; 2 for bad value"));; + protected static final TitleType GENERIC_TITLE = buildTitle( + buildI18n("un titre", "a title"), + buildI18n("Ceci est un titre", " this is a title")); + protected static final TitleType SOERE_NAME = + buildTitle( + buildI18n("SOERE mon SOERE", "SOERE my SOERE"), + buildI18n("SOERE example basé sur petit fleuve côtiers", "Example of SOERE based on small coastal river") + ); + protected static final TitleType NOM = + buildTitle( + buildI18n("Nom", "Name"), + buildI18n("Nom", "Name") + ); + protected static final TitleType SITE = + buildTitle( + buildI18n("Site", "Site"), + buildI18n("Référentiel des Sites", "Site repository") + ); + protected static final TitleType TYPE_DE_SITE = + buildTitle( + buildI18n("Types de sites", "Sites types"), + buildI18n("Référentiel des types de sites", "Sites types repository") + ); + protected static final TitleType TAXON = + buildTitle( + buildI18n("Taxon", "Taxa"), + buildI18n("Référentiel des taxon", "Taxa repository") + ); + + protected static final TitleType PROPRIETE_TAXON = + buildTitle( + buildI18n("Propriété des taxon", "Taxa properties repository"), + buildI18n("Référentiel des propriété des taxon", "Taxa properties") + ); + + protected static final TitleType PROJET = + buildTitle( + buildI18n("Projet", "Project"), + buildI18n("Référentiel des projet", "Project repository") + ); + + + protected static final TitleType ESPECE = + buildTitle( + buildI18n("Espèce", "Species"), + buildI18n("Référentiel des espèce", "Species repository") + ); + + protected static final TitleType DATA = + buildTitle( + buildI18n("Données", "Data"), + buildI18n("Référentiel des données", "Data repository") + ); + + protected static final TitleType START_DATE = + buildTitle( + buildI18n("Date de début", "Start Date"), + buildI18n("La date de début au format dd/MM/yyyy", "The start date in dd/MM/yyyy format") + ); + + protected static final TitleType ORGANISME = + buildTitle( + buildI18n("Nom de l'organisme de recherche", "Name of research organization"), + buildI18n("Renseignez ke nom de votre organisme de recherche", "Enter the name of your research organization") + ); + + protected static final TitleType TYPE_SITE = buildTitle( + I18nExampleBuilder.buildI18n("Type de zone d'étude", "Site type"), + I18nExampleBuilder.buildI18n("Type de zone d'étude", "Site type") + ); + + protected static final TitleType TYPE_SITE_COLUMN = buildTitle( + I18nExampleBuilder.buildI18n("Type de zone d'étude", "Site type"), + I18nExampleBuilder.buildI18n("Nom du type de zone d'étude", "Site type name") + ); + protected static final TitleType END_DATE = buildTitle( + I18nExampleBuilder.buildI18n("Date de fin", "End date"), + I18nExampleBuilder.buildI18n("Date de fin", "End date") + ); + protected static final TitleType HEURE = buildTitle( + I18nExampleBuilder.buildI18n("Heure", "Time"), + I18nExampleBuilder.buildI18n("Heure", "Time") + ); + protected static final TitleType MASSE = buildTitle( + I18nExampleBuilder.buildI18n("Masse", "Mass"), + I18nExampleBuilder.buildI18n("Masse", "Mass") + ); + protected static final TitleType OUTIL = buildTitle( + I18nExampleBuilder.buildI18n("Outil", "Tool"), + I18nExampleBuilder.buildI18n("Outil", "Tool") + ); + protected static final TitleType ESPECE_COLUMN = buildTitle( + I18nExampleBuilder.buildI18n("Espèce", "Species"), + I18nExampleBuilder.buildI18n("Espèce", "Species") + ); + protected static final TitleType START_DATE_COLUMN = buildTitle( + I18nExampleBuilder.buildI18n("Date de début", "Start date"), + I18nExampleBuilder.buildI18n("Date de début", "Start date") + ); + protected static final TitleType SITE_COLUMN = buildTitle( + I18nExampleBuilder.buildI18n("Site", null), + I18nExampleBuilder.buildI18n("Nom du site", "Site Name") + ); + protected static final TitleType SITE_PARENT = buildTitle( + I18nExampleBuilder.buildI18n("Site parent", "Parent site"), + I18nExampleBuilder.buildI18n("Nom du site parent", "Parent site name") + ); + protected static final TitleType TYPE_DE_SITES = buildTitle( + I18nExampleBuilder.buildI18n("Type de site", "Site types"), + I18nExampleBuilder.buildI18n("Nom du type de site", "Site type name") + ); + protected static final TitleType REPETITION = buildTitle( + I18nExampleBuilder.buildI18n("Répétition", "Repetition"), + I18nExampleBuilder.buildI18n("N° de la répétition", "Repetition number") + ); + protected static final TitleType PROFONDEUR = buildTitle( + I18nExampleBuilder.buildI18n("Profondeur", "Depth"), + I18nExampleBuilder.buildI18n("Profondeur en valeur positive", "Depth in positive value") + ); + protected static final TitleType DATE_TIME = buildTitle( + I18nExampleBuilder.buildI18n("Date complète", "Complete date"), + I18nExampleBuilder.buildI18n("Date complète au format dd/MM/yyyy HH:mm:ss", "Complete date with format dd/MM/yyyy HH:mm:ss") + ); + protected static final TitleType SWC = buildTitle( + I18nExampleBuilder.buildI18n("Humidité volumique du sol", "Soil water content"), + I18nExampleBuilder.buildI18n("Définit l'humidité volumique du sol", "Define the soil water content") + ); + protected static final TitleType SMP = buildTitle( + I18nExampleBuilder.buildI18n("Tension d'humdité du sol", "Soil moisture pressure"), + I18nExampleBuilder.buildI18n("Définit la tension d'humdité du sol", "Define the soil moisture pressure") + ); + + protected static TitleType buildTitle( + I18nType title, + I18nType description + ) { + return new TitleType(new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ + put(ConfigurationSchemaNode.OA_TITLE, title); + put(ConfigurationSchemaNode.OA_DESCRIPTION, description); + }}); + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ValidationExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ValidationExampleBuilder.java index 8888c39d8..6719ddf8d 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ValidationExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ValidationExampleBuilder.java @@ -57,7 +57,7 @@ class ValidationExampleBuilder { put(ConfigurationSchemaNode.OA_I_18_N, i18n); put(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(required)); put(ConfigurationSchemaNode.OA_CHECKER, checker); - put(ConfigurationSchemaNode.OA_COLUMNS, new CollectionType.ArrayType<StringType>(columns.stream().map(StringType::new).collect(Collectors.toCollection(LinkedList::new)), false, false, StringType.EMPTY_INSTANCE())); + put(ConfigurationSchemaNode.OA_COMPONENTS, new CollectionType.ArrayType<StringType>(columns.stream().map(StringType::new).collect(Collectors.toCollection(LinkedList::new)), false, false, StringType.EMPTY_INSTANCE())); }}); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java index 6abee19d5..b9b4e4bfa 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java @@ -176,7 +176,7 @@ public class SectionBuilder { case ConfigurationSchemaNode.OA_PATTERN_COMPONENTS -> Optional.of(StaticMapType.PATTERN_COMPONENTS().type()); case ConfigurationSchemaNode.OA_COMPONENTS -> - Optional.of(StaticMapType.PATTERN_COMPONENTS_COMPONENTS().type()); + Optional.of(StaticMapType.PATTERN_COMPONENTS_QUALIFIERS().type()); case null, default -> getAllSections().stream() .filter(section -> section.matches(childLabel)) .map(Section::type) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/AdditionalFileType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/AdditionalFileType.java index 2007afe75..1e0c832eb 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/AdditionalFileType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/AdditionalFileType.java @@ -14,7 +14,7 @@ public record AdditionalFileType(SectionBuilder sectionBuilder, Map<String, Conf new LabelDescription(ConfigurationSchemaNode.OA_FORMAT, ApplicationDescriptionType.EMPTY_INSTANCE()) ) .withOptionalSections( - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, TitleType.EMPTY_INSTANCE()) ); } public static AdditionalFileType EMPTY_INSTANCE() { diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationDescriptionType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationDescriptionType.java index b39daa7bc..65d22b7b1 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationDescriptionType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationDescriptionType.java @@ -16,7 +16,8 @@ public record ApplicationDescriptionType(SectionBuilder sectionBuilder, new LabelDescription(ConfigurationSchemaNode.OA_VERSION, StringType.EMPTY_INSTANCE()) ) .withOptionalSections( - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N +, TitleType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_COMMENT, StringType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_LANGUAGE, StringType.EMPTY_INSTANCE()) ); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationType.java index ae501097d..4753903fb 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationType.java @@ -2,9 +2,9 @@ package fr.inra.oresing.domain.application.configuration.type; public sealed interface ApplicationType extends IntermediaryType - permits AdditionalFileType, ApplicationDescriptionType, ApplicationType.ComponentType, AuthorizationType, CheckerType, ConstantImportHeaderType, DataType, DatagroupType, ExportHeaderType, FileNameType, FormatType, ReferenceScopeType, ReferenceType, RightRequestType, RootType, SubmissionScopeType, SubmissionTimeScopeType, SubmissionType, TagType, TimeScopeType, ValidationType { + permits AdditionalFileType, ApplicationDescriptionType, ApplicationType.ComponentType, AuthorizationType, CheckerType, ConstantImportHeaderType, DataType, DatagroupType, FileNameType, FormatType, ReferenceScopeType, ReferenceType, RightRequestType, RootType, SubmissionScopeType, SubmissionTimeScopeType, SubmissionType, TagType, TimeScopeType, TitleType, ValidationType { - sealed interface ComponentType extends ApplicationType permits BasicComponentType, ComputedComponentType, ConstantComponentType, DynamicComponentType, PatternComponentComponentType, PatternComponentType { + sealed interface ComponentType extends ApplicationType permits BasicComponentType, ComputedComponentType, ConstantComponentType, DynamicComponentType, PatternComponentAdjacentType, PatternComponentQualifierType, PatternComponentType { ComponentType EMPTY_INSTANCE = null; } } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/BasicComponentType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/BasicComponentType.java index 58f1f7513..16c2ebf36 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/BasicComponentType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/BasicComponentType.java @@ -17,11 +17,12 @@ public record BasicComponentType(SectionBuilder sectionBuilder, Map<String, Conf .withOptionalSections( new LabelDescription(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())), new LabelDescription(ConfigurationSchemaNode.OA_IMPORT_HEADER, new StringType("")), - new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(false)), new LabelDescription(ConfigurationSchemaNode.OA_MANDATORY, new BooleanType(false)), new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE())); + new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE()))); } private BasicComponentType(final Map<String, ConfigurationSchemaNodeType> children, final RootType.CHECKING checking) { diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/CollectionType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/CollectionType.java index 7c67a2507..bed0ffa1b 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/CollectionType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/CollectionType.java @@ -10,11 +10,15 @@ public sealed interface CollectionType<T, C extends ConfigurationSchemaNodeType> C type(); record MapType<C extends ConfigurationSchemaNodeType>(Map<String, C> children, boolean required, - boolean nullable, - C type) implements CollectionType<Map<String, C>, C> { + boolean nullable, + C type) implements CollectionType<Map<String, C>, C> { - public static MapType<PatternComponentComponentType> PATTERN_COMPONENT_COMPONENT_EMPTY_INSTANCE() { - return new MapType<PatternComponentComponentType>(Map.of(), false, false, PatternComponentComponentType.EMPTY_INSTANCE()); + public static MapType<PatternComponentQualifierType> PATTERN_COMPONENT_QUALIFIER_EMPTY_INSTANCE() { + return new MapType<PatternComponentQualifierType>(Map.of(), false, false, PatternComponentQualifierType.EMPTY_INSTANCE()); + } + + public static MapType<PatternComponentAdjacentType> PATTERN_COMPONENT_ADJACENT_EMPTY_INSTANCE() { + return new MapType<PatternComponentAdjacentType>(Map.of(), false, false, PatternComponentAdjacentType.EMPTY_INSTANCE()); } @@ -38,7 +42,7 @@ public sealed interface CollectionType<T, C extends ConfigurationSchemaNodeType> } record ArrayType<C extends ConfigurationSchemaNodeType>(List<C> children, boolean required, boolean nullable, - C type) implements CollectionType<List<C>, C> { + C type) implements CollectionType<List<C>, C> { public static ArrayType<PatternComponentType> PATTERN_COMPONENT_EMPTY_INSTANCE() { return new ArrayType<>(List.of(), false, false, PatternComponentType.EMPTY_INSTANCE()); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ComputedComponentType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ComputedComponentType.java index 3b0e4f611..7c57d7d76 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ComputedComponentType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ComputedComponentType.java @@ -40,8 +40,9 @@ public record ComputedComponentType(SectionBuilder sectionBuilder, .withOptionalSections( new LabelDescription(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(false)), new LabelDescription(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())), - new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())) ); } } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ConstantComponentType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ConstantComponentType.java index ffff5ed3b..da7f4bfff 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ConstantComponentType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ConstantComponentType.java @@ -20,10 +20,11 @@ public record ConstantComponentType(SectionBuilder sectionBuilder, ) .withOptionalSections( new LabelDescription(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())), - new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(false)), new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())) ); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/DataType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/DataType.java index 43cfbacde..c5c397126 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/DataType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/DataType.java @@ -17,9 +17,10 @@ public record DataType(SectionBuilder sectionBuilder, Map<String, ConfigurationS new LabelDescription(ConfigurationSchemaNode.OA_ALLOW_UNEXPECTED_COLUMNS, new BooleanType(true)), new LabelDescription(ConfigurationSchemaNode.OA_SEPARATOR, StringType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())), - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N_DISPLAY, I18nType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N_COLUMNS, new CollectionType.MapType<I18nType>(Map.of(), false, false, I18nType.EMPTY_INSTANCE())), + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N +, TitleType + .EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N_DISPLAY_PATTERN, TitleType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_DATA_HEADER_LINE, IntegerType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_DATA_FIRST_LINE, IntegerType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_AUTHORIZATION, AuthorizationType.EMPTY_INSTANCE()) @@ -28,7 +29,7 @@ public record DataType(SectionBuilder sectionBuilder, Map<String, ConfigurationS new LabelDescription(ConfigurationSchemaNode.OA_BASIC_COMPONENTS, BasicComponentType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_COMPUTED_COMPONENTS, ComputedComponentType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_DYNAMIC_COMPONENTS, DynamicComponentType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_PATTERN_COMPONENTS, PatternComponentComponentType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_PATTERN_COMPONENTS, PatternComponentQualifierType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_CONSTANT_COMPONENTS, ConstantComponentType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_VALIDATIONS, StaticMapType.VALIDATIONS().type), new LabelDescription(ConfigurationSchemaNode.OA_SUBMISSION, SubmissionType.EMPTY_INSTANCE()) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/DatagroupType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/DatagroupType.java index 9c7c82fa8..c8735aeda 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/DatagroupType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/DatagroupType.java @@ -12,7 +12,7 @@ public record DatagroupType(SectionBuilder sectionBuilder, Map<String, Configura public static SectionBuilder SECTION_BUILDER(){ return SectionBuilder.getInstance() .withOptionalSections( - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, TitleType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_COMPONENTS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())) ); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/DynamicComponentType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/DynamicComponentType.java index 2b8b96bce..135c58fcd 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/DynamicComponentType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/DynamicComponentType.java @@ -35,13 +35,14 @@ public record DynamicComponentType(SectionBuilder sectionBuilder, .withMandatorySections( new LabelDescription(ConfigurationSchemaNode.OA_HEADER_PREFIX, StringType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_REFERENCE, StringType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_REFERENCE_COLUMN_TO_LOOK_FOR_HEADER, StringType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_REFERENCE_COMPONENT_TO_LOOK_FOR_HEADER, StringType.EMPTY_INSTANCE()) ) .withOptionalSections( new LabelDescription(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())), - new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())) ); } } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ExportHeaderType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ExportHeaderType.java deleted file mode 100644 index 69718eb9c..000000000 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ExportHeaderType.java +++ /dev/null @@ -1,36 +0,0 @@ -package fr.inra.oresing.domain.application.configuration.type; - -import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; -import fr.inra.oresing.domain.application.configuration.section.SectionBuilder; - -import java.util.Map; - -public record ExportHeaderType(SectionBuilder sectionBuilder, Map<String, ConfigurationSchemaNodeType> children, - boolean required, - boolean nullable) implements ApplicationType { - public static SectionBuilder SECTION_BUILDER(){ - return SectionBuilder.getInstance() - .withMandatorySections( - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE())); - } - public static ExportHeaderType EMPTY_INSTANCE() { - return new ExportHeaderType(Map.of(), RootType.CHECKING.NO_CHECK); - } - - - private ExportHeaderType(final Map<String, ConfigurationSchemaNodeType> children, final RootType.CHECKING checking) { - this(SECTION_BUILDER(), - children, - false, - false); - } - - public ExportHeaderType(final Map<String, ConfigurationSchemaNodeType> children) { - this(SECTION_BUILDER() - .test(children.keySet()), - children, - false, - false); - } - -} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/FormatType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/FormatType.java index 63c715e14..327ac02ba 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/FormatType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/FormatType.java @@ -14,7 +14,8 @@ public record FormatType(SectionBuilder sectionBuilder, .withOptionalSections( new LabelDescription(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(false)), new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N +, TitleType.EMPTY_INSTANCE()) ); } public static FormatType EMPTY_INSTANCE() { diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentAdjacentType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentAdjacentType.java new file mode 100644 index 000000000..d59b833f4 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentAdjacentType.java @@ -0,0 +1,45 @@ +package fr.inra.oresing.domain.application.configuration.type; + +import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; +import fr.inra.oresing.domain.application.configuration.section.SectionBuilder; + +import java.util.List; +import java.util.Map; + +public record PatternComponentAdjacentType(SectionBuilder sectionBuilder, + Map<String, ConfigurationSchemaNodeType> children, + boolean required, + boolean nullable) implements ApplicationType.ComponentType { + + public static PatternComponentAdjacentType EMPTY_INSTANCE(){ + return new PatternComponentAdjacentType(Map.of(), RootType.CHECKING.NO_CHECK); + } + public static SectionBuilder SECTION_BUILDER(){ + return SectionBuilder.getInstance() + .withOptionalSections( + new LabelDescription(ConfigurationSchemaNode.OA_IMPORT_HEADER_PATTERN, StringType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())), + new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(false)), + new LabelDescription(ConfigurationSchemaNode.OA_MANDATORY, new BooleanType(false)), + new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())) + ); + } + + private PatternComponentAdjacentType(final Map<String, ConfigurationSchemaNodeType> children, final RootType.CHECKING checking) { + this(SECTION_BUILDER(), + children, + false, + false); + } + + public PatternComponentAdjacentType(final Map<String, ConfigurationSchemaNodeType> children) { + this(SECTION_BUILDER() + .test(children.keySet()), + children, + false, + false); + } +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentComponentType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentQualifierType.java similarity index 72% rename from src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentComponentType.java rename to src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentQualifierType.java index 14af48158..a0fe9b14e 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentComponentType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentQualifierType.java @@ -6,33 +6,34 @@ import fr.inra.oresing.domain.application.configuration.section.SectionBuilder; import java.util.List; import java.util.Map; -public record PatternComponentComponentType(SectionBuilder sectionBuilder, +public record PatternComponentQualifierType(SectionBuilder sectionBuilder, Map<String, ConfigurationSchemaNodeType> children, boolean required, boolean nullable) implements ApplicationType.ComponentType { - public static PatternComponentComponentType EMPTY_INSTANCE(){ - return new PatternComponentComponentType(Map.of(), RootType.CHECKING.NO_CHECK); + public static PatternComponentQualifierType EMPTY_INSTANCE(){ + return new PatternComponentQualifierType(Map.of(), RootType.CHECKING.NO_CHECK); } public static SectionBuilder SECTION_BUILDER(){ return SectionBuilder.getInstance() .withOptionalSections( new LabelDescription(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())), - new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(false)), - new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())) ); } - private PatternComponentComponentType(final Map<String, ConfigurationSchemaNodeType> children, final RootType.CHECKING checking) { + private PatternComponentQualifierType(final Map<String, ConfigurationSchemaNodeType> children, final RootType.CHECKING checking) { this(SECTION_BUILDER(), children, false, false); } - public PatternComponentComponentType(final Map<String, ConfigurationSchemaNodeType> children) { + public PatternComponentQualifierType(final Map<String, ConfigurationSchemaNodeType> children) { this(SECTION_BUILDER() .test(children.keySet()), children, diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentType.java index 67823414e..f6d4ff2df 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/PatternComponentType.java @@ -18,12 +18,14 @@ public record PatternComponentType(SectionBuilder sectionBuilder, .withMandatorySections( new LabelDescription(ConfigurationSchemaNode.OA_PATTERN_FOR_COMPONENTS, new StringType(("")))) .withOptionalSections( - new LabelDescription(ConfigurationSchemaNode.OA_COMPONENTS, StaticMapType.PATTERN_COMPONENTS_COMPONENTS().type), + new LabelDescription(ConfigurationSchemaNode.OA_COMPONENT_QUALIFIERS, StaticMapType.PATTERN_COMPONENTS_QUALIFIERS().type), + new LabelDescription(ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS, StaticMapType.PATTERN_COMPONENTS_ADJACENT().type), new LabelDescription(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())), - new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_REQUIRED, new BooleanType(false)), new LabelDescription(ConfigurationSchemaNode.OA_CHECKER, CheckerType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_DEFAULT_VALUE, DefaultValueType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_LANG_RESTRICTIONS, new CollectionType.ArrayType<StringType>(List.of(), false, true, StringType.EMPTY_INSTANCE())) ); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ReferenceCheckerType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ReferenceCheckerType.java index b8754a084..6ef733848 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ReferenceCheckerType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ReferenceCheckerType.java @@ -10,6 +10,7 @@ public record ReferenceCheckerType(SectionBuilder sectionBuilder, Map<String, ConfigurationSchemaNodeType> children, boolean required, boolean nullable) implements CheckerType { + public static SectionBuilder SECTION_BUILDER(){ return SectionBuilder.getInstance() .withMandatorySections( diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ReferenceScopeType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ReferenceScopeType.java index c8e12f05f..db7b131ee 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ReferenceScopeType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ReferenceScopeType.java @@ -31,8 +31,9 @@ public record ReferenceScopeType(SectionBuilder sectionBuilder, new LabelDescription(ConfigurationSchemaNode.OA_COMPONENT, StringType.EMPTY_INSTANCE()) ) .withOptionalSections( - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, ExportHeaderType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N +, TitleType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_EXPORT_HEADER, TitleType.EMPTY_INSTANCE()) ); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/StaticMapType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/StaticMapType.java index 0296b65de..3c80fae71 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/StaticMapType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/StaticMapType.java @@ -113,9 +113,15 @@ public class StaticMapType { ); } - public static final StaticMapType PATTERN_COMPONENTS_COMPONENTS() { + public static final StaticMapType PATTERN_COMPONENTS_QUALIFIERS() { return new StaticMapType( - new CollectionType.ArrayType<>(List.of(), false, false, PatternComponentComponentType.EMPTY_INSTANCE()) + new CollectionType.ArrayType<>(List.of(), false, false, PatternComponentQualifierType.EMPTY_INSTANCE()) + ); + } + + public static final StaticMapType PATTERN_COMPONENTS_ADJACENT() { + return new StaticMapType( + new CollectionType.ArrayType<>(List.of(), false, false, PatternComponentAdjacentType.EMPTY_INSTANCE()) ); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/TitleType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/TitleType.java new file mode 100644 index 000000000..233612c1c --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/TitleType.java @@ -0,0 +1,38 @@ +package fr.inra.oresing.domain.application.configuration.type; + +import com.google.common.base.Strings; +import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; +import fr.inra.oresing.domain.application.configuration.section.SectionBuilder; + +import java.util.Map; + +public record TitleType(SectionBuilder sectionBuilder, Map<String, ConfigurationSchemaNodeType> children, + boolean required, + boolean nullable) implements ApplicationType { + public static SectionBuilder SECTION_BUILDER() { + return SectionBuilder.getInstance() + .withAnyOfMandatorySections( + new LabelDescription(ConfigurationSchemaNode.OA_TITLE, I18nType.EMPTY_INSTANCE()), + new LabelDescription(ConfigurationSchemaNode.OA_DESCRIPTION, I18nType.EMPTY_INSTANCE()) + ); + } + + public static TitleType EMPTY_INSTANCE() { + return new TitleType(Map.of(), RootType.CHECKING.NO_CHECK); + } + + public TitleType(final Map<String, ConfigurationSchemaNodeType> children) { + this(SECTION_BUILDER() + .test(children.keySet()), + children, + true, + false); + } + + private TitleType(final Map<String, ConfigurationSchemaNodeType> children, final RootType.CHECKING checking) { + this(SECTION_BUILDER(), + children, + true, + false); + } +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ValidationType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ValidationType.java index 737b9d598..efd909245 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ValidationType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ValidationType.java @@ -18,7 +18,7 @@ public record ValidationType(SectionBuilder sectionBuilder, .withOptionalSections( new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()), new LabelDescription(ConfigurationSchemaNode.OA_REQUIRED, BooleanType.EMPTY_INSTANCE()), - new LabelDescription(ConfigurationSchemaNode.OA_COLUMNS, new CollectionType.ArrayType<StringType>(List.of(), false, false, StringType.EMPTY_INSTANCE())) + new LabelDescription(ConfigurationSchemaNode.OA_COMPONENTS, new CollectionType.ArrayType<StringType>(List.of(), false, false, StringType.EMPTY_INSTANCE())) ); } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java index bed813824..5a182cb4b 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java @@ -4,7 +4,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.ComponentDescription; -import fr.inra.oresing.domain.application.configuration.PatternColumnComponent; +import fr.inra.oresing.domain.application.configuration.PatternComponentQualifiers; import fr.inra.oresing.domain.application.configuration.PatternComponent; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; import fr.inra.oresing.domain.checker.Multiplicity; @@ -147,11 +147,11 @@ public class PatternColumnFactory { patternComponentDescriptions() .patternColumnComponents().entrySet() .forEach(patternColumnComponentEntry -> { - final PatternColumnComponent patternColumnComponent = patternColumnComponentEntry.getValue(); + final PatternComponentQualifiers patternColumnComponent = patternColumnComponentEntry.getValue(); final String componentComponentKey = patternColumnComponent.componentKey(); final int patternNumber = patternColumnComponent.patternNumber(); final Multiplicity multiplicityForComponentComponent = Optional.ofNullable(patternColumnComponent) - .map(PatternColumnComponent::checker) + .map(PatternComponentQualifiers::checker) .map(CheckerDescription::multiplicity) .orElse(Multiplicity.ONE); final ComponentPresenceConstraint mandatoryForComponentComponent = Optional.ofNullable(patternColumnComponent) diff --git a/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java b/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java index 0b3a81307..5a0426ea6 100644 --- a/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java +++ b/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java @@ -29,7 +29,6 @@ import org.springframework.stereotype.Component; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDate; @@ -40,7 +39,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.function.Function; import java.util.stream.Collectors; @Component @@ -162,7 +160,7 @@ public class JsonRowMapper<T> implements RowMapper<T>, Mapper { case ConstantComponent -> jsonMapper.convertValue(node, ConstantComponent.class); case PatternComponent -> jsonMapper.convertValue(node, PatternComponent.class); case PatternComponentComponent -> - jsonMapper.convertValue(node, PatternColumnComponent.class); + jsonMapper.convertValue(node, PatternComponentQualifiers.class); }; } }) diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java index 4cd2842fc..f23d2fc3c 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java @@ -45,48 +45,17 @@ public record DataBuilder(RootBuilder rootBuilder) { ) ); } - final Map<String, Map> localizationColumns = rootBuilder.getMapper().convertValue(jsonNode.findPath(ConfigurationSchemaNode.OA_I_18_N_COLUMNS), Map.class); final List<String> listComponentKeys = rootBuilder.getListComponentKeys(dataKey); - for (final Map.Entry<String, Map> localizationColumnsEntry : Optional.ofNullable(localizationColumns).map(Map::entrySet).orElseGet(HashSet::new)) { - if (!listComponentKeys.contains(localizationColumnsEntry.getKey())) { - rootBuilder.buildError(ConfigurationException.UNKNOWN_COMPONENT_FOR_COMPONENT_NAME, Map.of( - "unknownComponent", localizationColumnsEntry.getKey(), - "knownComponents", listComponentKeys), - NodeSchemaValidator.joinPath( - ConfigurationSchemaNode.OA_DATA, - dataKey, - ConfigurationSchemaNode.OA_I_18_N_COLUMNS) - ); - } - try { - i18n = i18n.add( - NodeSchemaValidator.joinI18nPath( - Internationalizations.DATA, - dataKey, - Internationalizations.InternationalizationData.I18N_COLUMNS, - localizationColumnsEntry.getKey() - ), - rootBuilder.getMapper().convertValue(localizationColumnsEntry.getValue(), Map.class)); - } catch (final IllegalArgumentException illegalArgumentException) { - rootBuilder.buildError(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE, - Map.of(), - NodeSchemaValidator.joinPath( - ConfigurationSchemaNode.OA_DATA, - dataKey, - ConfigurationSchemaNode.OA_I_18_N_COLUMNS, - localizationColumnsEntry.getKey() - )); - } - } + final Map<String, Map> localizationDisplay = rootBuilder.getMapper().convertValue( - jsonNode.findPath(ConfigurationSchemaNode.OA_I_18_N_DISPLAY) + jsonNode.findPath(ConfigurationSchemaNode.OA_I_18_N_DISPLAY_PATTERN) .findPath(ConfigurationSchemaNode.OA_PATTERN), Map.class); try { i18n = i18n.add( NodeSchemaValidator.joinI18nPath( Internationalizations.DATA, dataKey, - Internationalizations.InternationalizationData.I18N_DISPLAY + Internationalizations.InternationalizationData.I18N_DISPLAY_PATTERN ), localizationDisplay); } catch (final IllegalArgumentException illegalArgumentException) { rootBuilder.buildError(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE, @@ -94,7 +63,7 @@ public record DataBuilder(RootBuilder rootBuilder) { NodeSchemaValidator.joinPath( ConfigurationSchemaNode.OA_DATA, dataKey, - ConfigurationSchemaNode.OA_I_18_N_DISPLAY, + ConfigurationSchemaNode.OA_I_18_N_DISPLAY_PATTERN, ConfigurationSchemaNode.OA_PATTERN ) ); diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java index 049f5250a..c79366aaa 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java @@ -1,6 +1,7 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.NullNode; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.*; @@ -97,8 +98,9 @@ public record DynamicComponentsBuilder(RootBuilder rootBuilder) { final ComponentPresenceConstraint mandatory = RootBuilder.isMandatory(componentNodeValue); final Set<String> columns = rootBuilder .getMapper() - .convertValue(componentNodeValue - .findPath(ConfigurationSchemaNode.OA_COLUMNS), + .convertValue(Optional.of(componentNodeValue) + .map(component -> component.get(ConfigurationSchemaNode.OA_COMPONENTS)) + .orElseGet(NullNode::getInstance), Set.class ); final String prefix = componentNodeValue.findPath(ConfigurationSchemaNode.OA_HEADER_PREFIX).asText(); @@ -126,7 +128,7 @@ public record DynamicComponentsBuilder(RootBuilder rootBuilder) { ); } final String referenceColumnToLookForHeader = componentNodeValue - .findPath(ConfigurationSchemaNode.OA_REFERENCE_COLUMN_TO_LOOK_FOR_HEADER) + .findPath(ConfigurationSchemaNode.OA_REFERENCE_COMPONENT_TO_LOOK_FOR_HEADER) .asText(); final Set<String> listColumnsNameReference = new TreeSet<>(); if (rootBuilder.getListDataKeys().contains(reference)) { @@ -146,7 +148,7 @@ public record DynamicComponentsBuilder(RootBuilder rootBuilder) { componentPath, ConfigurationSchemaNode.OA_DYNAMIC_COMPONENTS, componentKey, - ConfigurationSchemaNode.OA_REFERENCE_COLUMN_TO_LOOK_FOR_HEADER + ConfigurationSchemaNode.OA_REFERENCE_COMPONENT_TO_LOOK_FOR_HEADER ) ); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java index 52e0d4af6..7545d286f 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java @@ -6,7 +6,7 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.ComponentDescription; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; -import fr.inra.oresing.domain.application.configuration.PatternColumnComponent; +import fr.inra.oresing.domain.application.configuration.PatternComponentQualifiers; import fr.inra.oresing.domain.application.configuration.Tag; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; @@ -15,7 +15,7 @@ import java.util.Optional; import java.util.Set; public record PatternComponentComponentsBuilder(RootBuilder rootBuilder) { - Parsing<Map<String, PatternColumnComponent>> build( + Parsing<Map<String, PatternComponentQualifiers>> build( final String dataKey, final String componentPath, final String componentKey, @@ -29,7 +29,7 @@ public record PatternComponentComponentsBuilder(RootBuilder rootBuilder) { .orElse(new ArrayNode(JsonNodeFactory.instance)); if (!componentsArrayNode.isEmpty()) { int componentNumber = 0; - final ImmutableMap.Builder<String, PatternColumnComponent> patternColumnComponentBuilder = new ImmutableMap.Builder<String, PatternColumnComponent>(); + final ImmutableMap.Builder<String, PatternComponentQualifiers> patternColumnComponentBuilder = new ImmutableMap.Builder<String, PatternComponentQualifiers>(); for (final JsonNode node : componentsArrayNode) { ++componentNumber; final Map.Entry<String, JsonNode> patternColumnComponentNode = node.fields().next(); @@ -63,7 +63,7 @@ public record PatternComponentComponentsBuilder(RootBuilder rootBuilder) { componentNodeValue.get(ConfigurationSchemaNode.OA_CHECKER), label); i18n = checkerDescriptionParsing.i18n(); - final PatternColumnComponent patternColumnComponent = new PatternColumnComponent( + final PatternComponentQualifiers patternColumnComponent = new PatternComponentQualifiers( ComponentDescription.ComponentDescriptionType.PatternComponentComponent, label, oaTags, diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java index 97915e069..342e8856c 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java @@ -64,7 +64,7 @@ public record PatternComponentsBuilder(RootBuilder rootBuilder) { ConfigurationSchemaNode.OA_TAGS), rootBuilder); final ComponentPresenceConstraint mandatory = RootBuilder.isMandatory(patternComponentNode); - final Parsing<Map<String, PatternColumnComponent>> patternColumnComponentsParsing = rootBuilder().getPatternComponentComponentsBuilder() + final Parsing<Map<String, PatternComponentQualifiers>> patternColumnComponentsParsing = rootBuilder().getPatternComponentComponentsBuilder() .build( dataKey, componentPath, diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ValidationsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ValidationsBuilder.java index 445ce1f42..862241675 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ValidationsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ValidationsBuilder.java @@ -1,6 +1,7 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.NullNode; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.*; @@ -31,7 +32,10 @@ public record ValidationsBuilder(RootBuilder rootBuilder) { final boolean required = componentNodeValue.findPath(ConfigurationSchemaNode.OA_REQUIRED).asBoolean(false); final ComponentPresenceConstraint mandatory = RootBuilder.isMandatory(componentNodeValue); final Set<String> columns = rootBuilder.getMapper() - .convertValue(componentNodeValue.findPath(ConfigurationSchemaNode.OA_COLUMNS), Set.class); + .convertValue(Optional.of(componentNodeValue) + .map(component -> component.get(ConfigurationSchemaNode.OA_COMPONENTS)) + .orElseGet(NullNode::getInstance), + Set.class); final List<String> listComponentKey = rootBuilder.getListComponentKeys(key); @@ -72,7 +76,7 @@ public record ValidationsBuilder(RootBuilder rootBuilder) { key, ConfigurationSchemaNode.OA_VALIDATIONS, componentKey, - ConfigurationSchemaNode.OA_COLUMNS + ConfigurationSchemaNode.OA_COMPONENTS )); } checkers.put(column, checkerDescriptionParsing.result()); @@ -98,7 +102,7 @@ public record ValidationsBuilder(RootBuilder rootBuilder) { key, ConfigurationSchemaNode.OA_VALIDATIONS, componentKey, - ConfigurationSchemaNode.OA_COLUMNS + ConfigurationSchemaNode.OA_COMPONENTS )); } return i18n; @@ -123,7 +127,7 @@ public record ValidationsBuilder(RootBuilder rootBuilder) { key, ConfigurationSchemaNode.OA_VALIDATIONS, componentKey, - ConfigurationSchemaNode.OA_COLUMNS + ConfigurationSchemaNode.OA_COMPONENTS ) ); } diff --git a/src/test/resources/data/configuration/schemaExample.yaml b/src/test/resources/data/configuration/schemaExample.yaml index 93814b13a..00d8f8bff 100644 --- a/src/test/resources/data/configuration/schemaExample.yaml +++ b/src/test/resources/data/configuration/schemaExample.yaml @@ -4,9 +4,13 @@ OA_application: #mandatory OA_version: 3.0.1 #mandatory OA_comment: Fichier de test de l'application brokenADOM #optional OA_defaultLanguage: fr #optional - OA_i18n: #optional - fr: SOERE mon SOERE - en: SOERE my SOERE + OA_i18n: #mandatory + OA_title: #optional + fr: SOERE mon SOERE + en: SOERE my SOERE + OA_description: #optional + fr: SOERE example basé sur petit fleuve côtiers + en: Example of SOERE based on small coastal river OA_tags: #optional data: #optional fr: données @@ -22,21 +26,28 @@ OA_data: #optional - spe_species #optional OA_tags: #optional - data #optional - OA_i18n: #optional - fr: Espèce - en: Species - OA_i18nColumns: #optional - spe_definition_fr: #optional - fr: spe_definition_fr - en: spe_definition_en - OA_i18nDisplay: #mandatory - OA_pattern: #optional - fr: spe_definition_fr - en: spe_definition_en + OA_i18n: #mandatory + OA_title: #optional + fr: Espèce + en: Species + OA_description: #optional + fr: Référentiel des espèce + en: Species repository + OA_i18nDisplayPattern: #mandatory + OA_title: #optional + fr: {spe_species} + en: {spe_species} + OA_description: #optional + fr: {spe_definition_fr} + en: {spe_definition_en} OA_basicComponents: #optional spe_definition_fr: #optional + OA_langRestrictions: #optional + - fr #optional OA_required: false #optional spe_definition_en: #optional + OA_langRestrictions: #optional + - en #optional OA_required: false #optional spe_species: #optional OA_checker: #optional @@ -44,10 +55,13 @@ OA_data: #optional OA_params: #optional OA_pattern: SPE_.* #optional OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Espèce en: Species + OA_description: #optional + fr: Référentiel des espèce + en: Species repository OA_required: true #optional OA_importHeader: Espèce #optional spe_date: #optional @@ -59,10 +73,13 @@ OA_data: #optional OA_max: 31/12/2013 #optional OA_min: 01/01/2013 #optional OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Date de début - en: Start date + en: Start Date + OA_description: #optional + fr: La date de début au format dd/MM/yyyy + en: The start date in dd/MM/yyyy format OA_required: true #optional OA_importHeader: Date #optional spe_heure: #optional @@ -73,8 +90,11 @@ OA_data: #optional OA_max: 17:00:00 #optional OA_min: 08:00:00 #optional OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Heure + en: Time + OA_description: #optional fr: Heure en: Time OA_required: true #optional @@ -86,8 +106,11 @@ OA_data: #optional OA_max: 2000.0 #optional OA_min: 0.0 #optional OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Masse + en: Mass + OA_description: #optional fr: Masse en: Mass OA_required: true #optional @@ -114,8 +137,11 @@ OA_data: #optional fr: la valeur ${value} doit être l'une des valeurs de ${values} en: value ${value} must be in ${values} OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Outil + en: Tool + OA_description: #optional fr: Outil en: Tool OA_required: true #optional @@ -127,9 +153,13 @@ OA_data: #optional OA_reference: #mandatory OA_name: tr_type_zone_etude_tze #mandatory OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Site + en: Site + OA_description: #optional + fr: Référentiel des Sites + en: Site repository OA_required: true #optional OA_importHeader: Site #optional spe_is_iso: #optional @@ -147,26 +177,32 @@ OA_data: #optional OA_max: 10 #optional OA_min: 0 #optional OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Répétition en: Repetition + OA_description: #optional + fr: N° de la répétition + en: Repetition number OA_required: false #optional OA_importHeader: Répétition #optional OA_computedComponents: #optional spe_date_heure: #optional OA_computation: OA_expression: > #optional - return datum.date + " " + datum.heure + return datum.date " " datum.heure OA_checker: #mandatory OA_name: OA_date #mandatory OA_params: #optional OA_pattern: dd/MM/yyyy HH:mm:ss #mandatory OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Date complète en: Complete date + OA_description: #optional + fr: Date complète au format dd/MM/yyyy HH:mm:ss + en: Complete date with format dd/MM/yyyy HH:mm:ss tr_projet_pro: #mandatory OA_dataHeaderLine: 1 #optional OA_dataFirstLine: 2 #optional @@ -175,16 +211,20 @@ OA_data: #optional OA_tags: #optional - context #optional - data #optional - OA_i18n: #optional - fr: Projet - en: Project - OA_i18nColumns: #optional - pro_nom_key: #optional - fr: pro_nom_fr - en: pro_nom_en - OA_i18nDisplay: #mandatory - OA_pattern: #optional - fr: '{nom_key_pro}' + OA_i18n: #mandatory + OA_title: #optional + fr: Projet + en: Project + OA_description: #optional + fr: Référentiel des projet + en: Project repository + OA_i18nDisplayPattern: #mandatory + OA_title: #optional + fr: '{pro_nom_fr}' + en: '{pro_nom_en}' + OA_description: #optional + fr: '{pro_definition_fr}' + en: '{pro_definition_en}' OA_basicComponents: #optional pro_nom_key: #optional pro_nom_fr: #optional @@ -198,20 +238,20 @@ OA_data: #optional - tze_nom_key #optional OA_tags: #optional - context #optional - OA_i18n: #optional - fr: Types de sites - en: Sites types - OA_i18nColumns: #optional - tze_nom_key: #optional - fr: tze_nom_fr - en: tze_nom_en - tze_definition_fr: #optional - fr: tze_definition_fr - en: tze_definition_en - OA_i18nDisplay: #mandatory - OA_pattern: #optional - fr: 'De type : {nom_key_tze}' - en: 'Of type : {nom_key_tze}' + OA_i18n: #mandatory + OA_title: #optional + fr: Types de sites + en: Sites types + OA_description: #optional + fr: Référentiel des types de sites + en: Sites types repository + OA_i18nDisplayPattern: #mandatory + OA_title: #optional + fr: 'De type : {tze_nom_fr}' + en: 'Of type : {tze_nom_en}' + OA_description: #optional + fr: '{tze_definition_fr}' + en: '{tze_definition_en}' OA_basicComponents: #optional tze_nom_key: #optional tze_nom_fr: #optional @@ -227,17 +267,20 @@ OA_data: #optional OA_tags: #optional - context #optional - data #optional - OA_i18n: #optional - fr: Site - en: Site - OA_i18nColumns: #optional - zet_nom_key: #optional - fr: zet_nom_fr - en: zet_nom_en - OA_i18nDisplay: #mandatory - OA_pattern: #optional - fr: '{nom_key_zet}' - en: '{nom_key_zet}' + OA_i18n: #mandatory + OA_title: #optional + fr: Site + en: Site + OA_description: #optional + fr: Référentiel des Sites + en: Site repository + OA_i18nDisplayPattern: #mandatory + OA_title: #optional + fr: '{zet_nom_fr}' + en: '{zet_nom_en}' + OA_description: #optional + fr: '{zet_description_fr}' + en: '{zet_description_fr}' OA_basicComponents: #optional tze_type_nom: #optional OA_checker: #mandatory @@ -247,10 +290,13 @@ OA_data: #optional OA_isParent: true #optional OA_name: tr_type_zone_etude_tze #mandatory OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Type de site en: Site types + OA_description: #optional + fr: Nom du type de site + en: Site type name OA_required: true #optional OA_importHeader: Site #optional zet_nom_key: #optional @@ -264,10 +310,13 @@ OA_data: #optional OA_reference: #mandatory OA_name: tr_type_zone_etude_tze #mandatory OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Site parent en: Parent site + OA_description: #optional + fr: Nom du site parent + en: Parent site name OA_required: false #optional OA_importHeader: Site parent #optional OA_computedComponents: #optional @@ -276,14 +325,18 @@ OA_data: #optional - zet_chemin_parent #optional - zet_nom_key #optional OA_checker: #mandatory - OA_name: OA_date #mandatory + OA_name: OA_reference #mandatory OA_params: #optional - OA_pattern: dd/MM/yyyy HH:mm:ss #mandatory + OA_reference: #mandatory + OA_name: tr_type_zone_etude_tze #mandatory OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Date complète en: Complete date + OA_description: #optional + fr: Date complète au format dd/MM/yyyy HH:mm:ss + en: Complete date with format dd/MM/yyyy HH:mm:ss tr_propriete_taxon_ptx: #mandatory OA_dataHeaderLine: 1 #optional OA_dataFirstLine: 2 #optional @@ -291,17 +344,17 @@ OA_data: #optional - ptx_propriete #optional OA_tags: #optional - context #optional - OA_i18n: #optional - fr: Propriété des taxon - en: Taxa properties - OA_i18nColumns: #optional - ptx_propriete: #optional - fr: Nom de la propriété de taxon - en: Taxa property name - OA_i18nDisplay: #mandatory - OA_pattern: #optional - fr: '{nom}' - en: '{nom}' + OA_i18n: #mandatory + OA_title: #optional + fr: Propriété des taxon + en: Taxa properties repository + OA_description: #optional + fr: Référentiel des propriété des taxon + en: Taxa properties + OA_i18nDisplayPattern: #mandatory + OA_title: #optional + fr: '{ptx_propriete}' + en: '{ptx_propriete}' OA_basicComponents: #optional ptx_date: #optional OA_checker: #mandatory @@ -312,10 +365,13 @@ OA_data: #optional OA_max: 31/12/2013 #optional OA_min: 01/01/2013 #optional OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Date de début - en: Start date + en: Start Date + OA_description: #optional + fr: La date de début au format dd/MM/yyyy + en: The start date in dd/MM/yyyy format OA_required: true #optional OA_importHeader: Date #optional ptx_propriete: #optional @@ -328,17 +384,17 @@ OA_data: #optional - tax_taxon #optional OA_tags: #optional - context #optional - OA_i18n: #optional - fr: Taxon - en: Taxa - OA_i18nColumns: #optional - tax_taxon: #optional - fr: Nom du taxon - en: Taxa name - OA_i18nDisplay: #mandatory - OA_pattern: #optional - fr: '{nom}' - en: '{nom}' + OA_i18n: #mandatory + OA_title: #optional + fr: Taxon + en: Taxa + OA_description: #optional + fr: Référentiel des taxon + en: Taxa repository + OA_i18nDisplayPattern: #mandatory + OA_title: #optional + fr: '{tax_taxon}' + en: '{tax_taxon}' OA_basicComponents: #optional tax_taxon: #optional OA_required: true #optional @@ -347,7 +403,7 @@ OA_data: #optional tax_propriete_taxon: #optional OA_headerPrefix: pt_ #optional OA_reference: tr_propriete_taxon_ptx #optional - OA_referenceColumnToLookForHeader: ptx_propriete #optional + OA_referenceComponentToLookForHeader: ptx_propriete #optional t_data_dat: #mandatory OA_dataHeaderLine: 4 #optional OA_dataFirstLine: 7 #optional @@ -356,9 +412,13 @@ OA_data: #optional OA_tags: #optional - context #optional - "__DATA__" #optional - OA_i18n: #optional - fr: Données - en: Data + OA_i18n: #mandatory + OA_title: #optional + fr: Données + en: Data + OA_description: #optional + fr: Référentiel des données + en: Data repository OA_basicComponents: #optional dat_date: #optional dat_heure: #optional @@ -372,19 +432,25 @@ OA_data: #optional OA_params: #optional OA_pattern: dd/MM/yyyy HH:mm:ss #mandatory OA_multiplicity: ONE #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Date complète en: Complete date + OA_description: #optional + fr: Date complète au format dd/MM/yyyy HH:mm:ss + en: Complete date with format dd/MM/yyyy HH:mm:ss OA_patternComponents: #optional swc: #optional OA_patternForComponents: "SWC_(.*)_(.*)" #optional OA_tags: #optional - context #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Humidité volumique du sol en: Soil water content + OA_description: #optional + fr: Définit l'humidité volumique du sol + en: Define the soil water content OA_required: false #optional OA_checker: #mandatory OA_name: OA_float #mandatory @@ -392,16 +458,19 @@ OA_data: #optional OA_max: 2000.0 #optional OA_min: 0.0 #optional OA_multiplicity: ONE #optional - OA_components: #optional + OA_componentQualifiers: #optional - #optional swc_profondeur: #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Profondeur en: Depth + OA_description: #optional + fr: Profondeur en valeur positive + en: Depth in positive value OA_required: true #optional OA_tags: #optional - - context #optional + - data #optional OA_checker: #mandatory OA_name: OA_float #mandatory OA_params: #optional @@ -410,25 +479,71 @@ OA_data: #optional OA_multiplicity: ONE #optional - #optional swc_repetition: #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Répétition en: Repetition + OA_description: #optional + fr: N° de la répétition + en: Repetition number OA_required: true #optional OA_tags: #optional - - context #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_integer #mandatory + OA_params: #optional + OA_max: 10 #optional + OA_min: 0 #optional + OA_multiplicity: ONE #optional + OA_componentAdjacents: #optional + - #optional + swc_sd: #optional + OA_importHeaderPattern: {$1}_sd #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: écart_type + en: standard_deviation + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_float #mandatory + OA_params: #optional + OA_max: 500.0 #optional + OA_min: 0.0 #optional + OA_multiplicity: ONE #optional + - #optional + swc_qc: #optional + OA_importHeaderPattern: {$1}_qc #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Indic de qualité + en: Quality class + OA_description: #optional + fr: 0 pour une valeur valide ; 2 pour une valeur incorrecte + en: 0 for valid value; 2 for bad value + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional OA_checker: #mandatory OA_name: OA_integer #mandatory OA_params: #optional + OA_max: 2 #optional + OA_min: 0 #optional OA_multiplicity: ONE #optional smp: #optional OA_patternForComponents: "SMP_(.*)_(.*)" #optional OA_tags: #optional - context #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Tension d'humdité du sol en: Soil moisture pressure + OA_description: #optional + fr: Définit la tension d'humdité du sol + en: Define the soil moisture pressure OA_required: false #optional OA_checker: #mandatory OA_name: OA_float #mandatory @@ -436,16 +551,19 @@ OA_data: #optional OA_max: 2000.0 #optional OA_min: 0.0 #optional OA_multiplicity: ONE #optional - OA_components: #optional + OA_componentQualifiers: #optional - #optional smp_profondeur: #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Profondeur en: Depth + OA_description: #optional + fr: Profondeur en valeur positive + en: Depth in positive value OA_required: true #optional OA_tags: #optional - - context #optional + - data #optional OA_checker: #mandatory OA_name: OA_float #mandatory OA_params: #optional @@ -454,38 +572,90 @@ OA_data: #optional OA_multiplicity: ONE #optional - #optional smp_repetition: #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Répétition en: Repetition + OA_description: #optional + fr: N° de la répétition + en: Repetition number OA_required: true #optional OA_tags: #optional - - context #optional + - data #optional OA_checker: #mandatory OA_name: OA_integer #mandatory OA_params: #optional + OA_max: 10 #optional + OA_min: 0 #optional + OA_multiplicity: ONE #optional + OA_componentAdjacents: #optional + - #optional + smp_sd: #optional + OA_importHeaderPattern: {$1}_sd #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: écart_type + en: standard_deviation + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_float #mandatory + OA_params: #optional + OA_max: 500.0 #optional + OA_min: 0.0 #optional + OA_multiplicity: ONE #optional + - #optional + smp_qc: #optional + OA_importHeaderPattern: {$1}_qc #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Indic de qualité + en: Quality class + OA_description: #optional + fr: 0 pour une valeur valide ; 2 pour une valeur incorrecte + en: 0 for valid value; 2 for bad value + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_integer #mandatory + OA_params: #optional + OA_max: 2 #optional + OA_min: 0 #optional OA_multiplicity: ONE #optional OA_constantComponents: #optional dat_type_site: #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Type de zone d'étude en: Site type + OA_description: #optional + fr: Nom du type de zone d'étude + en: Site type name OA_required: true #optional OA_importHeaderTarget: #optional OA_rowNumber: 1 #optional OA_columnNumber: 2 #optional dat_site: #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional fr: Site + OA_description: #optional + fr: Nom du site + en: Site Name OA_required: true #optional OA_importHeaderTarget: #optional OA_rowNumber: 2 #optional OA_columnNumber: 2 #optional dat_start_date: #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Date de début + en: Start date + OA_description: #optional fr: Date de début en: Start date OA_required: false #optional @@ -493,8 +663,11 @@ OA_data: #optional OA_rowNumber: 5 #optional OA_columnName: dat_date #optional dat_end_date: #optional - OA_exportHeader: #optional - OA_i18n: #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Date de fin + en: End date + OA_description: #optional fr: Date de fin en: End date OA_required: false #optional @@ -514,7 +687,7 @@ OA_data: #optional OA_isParent: true #optional OA_name: tr_type_zone_etude_tze #mandatory OA_multiplicity: ONE #optional - OA_columns: #optional + OA_components: #optional - dat_type_site #optional site_validation: #mandatory OA_i18n: #optional @@ -527,7 +700,7 @@ OA_data: #optional OA_reference: #mandatory OA_name: tr_type_zone_etude_tze #mandatory OA_multiplicity: ONE #optional - OA_columns: #optional + OA_components: #optional - dat_site #optional start_date_validation: #mandatory OA_i18n: #optional @@ -541,7 +714,7 @@ OA_data: #optional OA_duration: 1 Day #optional OA_min: 01/01/2004 #optional OA_multiplicity: ONE #optional - OA_columns: #optional + OA_components: #optional - dat_start_date #optional end_date_validation: #mandatory OA_i18n: #optional @@ -555,7 +728,7 @@ OA_data: #optional OA_duration: 1 Day #optional OA_min: 01/01/2004 #optional OA_multiplicity: ONE #optional - OA_columns: #optional + OA_components: #optional - dat_end_date #optional date_validation: #mandatory OA_i18n: #optional @@ -569,7 +742,7 @@ OA_data: #optional OA_duration: 1 Day #optional OA_min: 01/01/2004 #optional OA_multiplicity: ONE #optional - OA_columns: #optional + OA_components: #optional - dat_end_date #optional interval_date_validation: #mandatory OA_i18n: #optional @@ -642,7 +815,7 @@ OA_data: #optional fr: la date ${date} n'est pas au format ${format} en: the date ${date} is not in format ${format} OA_multiplicity: ONE #optional - OA_columns: #optional + OA_components: #optional - dat_end_date #optional OA_submission: #optional OA_strategy: OA_VERSIONING #optional @@ -651,12 +824,20 @@ OA_data: #optional - #optional OA_component: dat_site #mandatory OA_reference: tr_zone_etude_zet #optional - OA_i18n: #optional - fr: Site - en: Site - OA_exportHeader: #optional - OA_i18n: #optional + OA_i18n: #mandatory + OA_title: #optional + fr: Site + en: Site + OA_description: #optional + fr: Référentiel des Sites + en: Site repository + OA_exportHeader: #mandatory + OA_title: #optional fr: Site + en: Site + OA_description: #optional + fr: Référentiel des Sites + en: Site repository OA_timeScope: #optional OA_component: dat_date_heure #mandatory OA_fileName: #optional @@ -681,14 +862,22 @@ OA_rightsRequest: #optional OA_params: #optional OA_pattern: .* #optional OA_multiplicity: ONE #optional - OA_i18n: #optional - fr: Nom de l'organisme de recherche - en: Name of research organization + OA_i18n: #mandatory + OA_title: #optional + fr: Nom de l'organisme de recherche + en: Name of research organization + OA_description: #optional + fr: Renseignez ke nom de votre organisme de recherche + en: Enter the name of your research organization OA_additionalFiles: #optional firstAdditionalfile: #mandatory - OA_i18n: #optional - fr: Fichier - en: File + OA_i18n: #mandatory + OA_title: #optional + fr: Fichier + en: File + OA_description: #optional + fr: Fichier à joindre à l'application + en: File to oin to application OA_format: #optional nom: #optional OA_checker: #optional @@ -697,9 +886,13 @@ OA_additionalFiles: #optional OA_pattern: "[a-z]*" #optional OA_multiplicity: ONE #optional OA_required: true #optional - OA_i18n: #optional - fr: Nom - en: Name + OA_i18n: #mandatory + OA_title: #optional + fr: Nom + en: Name + OA_description: #optional + fr: Nom + en: Name projet: #optional OA_checker: #mandatory OA_name: OA_reference #mandatory @@ -708,13 +901,21 @@ OA_additionalFiles: #optional OA_name: tr_projet_pro #mandatory OA_multiplicity: MANY #optional OA_required: true #optional - OA_i18n: #optional - fr: Projet - en: Project + OA_i18n: #mandatory + OA_title: #optional + fr: Projet + en: Project + OA_description: #optional + fr: Référentiel des projet + en: Project repository secondAdditionalfile: #mandatory - OA_i18n: #optional - fr: Données brutes - en: Initial data + OA_i18n: #mandatory + OA_title: #optional + fr: Données brutes + en: Initial data + OA_description: #optional + fr: Données brutes à traiter + en: Initial data to analyse OA_format: #optional nom: #optional OA_checker: #optional @@ -723,9 +924,13 @@ OA_additionalFiles: #optional OA_pattern: "[a-z]*" #optional OA_multiplicity: ONE #optional OA_required: true #optional - OA_i18n: #optional - fr: Nom - en: Name + OA_i18n: #mandatory + OA_title: #optional + fr: Nom + en: Name + OA_description: #optional + fr: Nom + en: Name projet: #optional OA_checker: #mandatory OA_name: OA_reference #mandatory @@ -734,6 +939,10 @@ OA_additionalFiles: #optional OA_name: tr_projet_pro #mandatory OA_multiplicity: MANY #optional OA_required: true #optional - OA_i18n: #optional - fr: Projet - en: Project + OA_i18n: #mandatory + OA_title: #optional + fr: Projet + en: Project + OA_description: #optional + fr: Référentiel des projet + en: Project repository -- GitLab From 90312b46e2b69be0186da63b6d24613ce87d00c0 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Fri, 18 Oct 2024 11:11:32 +0200 Subject: [PATCH 17/52] update de la structure des pages additionnal file et right request en composition API --- .../common/AuthorizationTableForDatatype.vue | 423 ++++++----- ui/src/router/index.js | 4 +- .../AdditionalFilesManagementView.vue | 35 +- .../views/application/ApplicationInfoView.vue | 18 +- ...onsManagementForApplicationCreatorView.vue | 1 - .../AuthorizationsRightsRequestInfoView.vue | 656 ++++++++++++++++++ .../DataTypeAuthorizationInfoView.vue | 149 +--- ...ataTypeAuthorizationsRightsRequestView.vue | 648 ----------------- 8 files changed, 922 insertions(+), 1012 deletions(-) create mode 100644 ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue delete mode 100644 ui/src/views/authorizations/DataTypeAuthorizationsRightsRequestView.vue diff --git a/ui/src/components/common/AuthorizationTableForDatatype.vue b/ui/src/components/common/AuthorizationTableForDatatype.vue index 647402cfb..a004c8a75 100644 --- a/ui/src/components/common/AuthorizationTableForDatatype.vue +++ b/ui/src/components/common/AuthorizationTableForDatatype.vue @@ -1,245 +1,240 @@ <template> <div> - <li class="card-content authorizationTable datepicker-row"> - <slot class="row"></slot> - <div class="columns"> + <b-collapse + v-if=" + localeInitialized && + (localeReferences.withoutScope && + Object.keys(localeReferences.withoutScope).length !== 0) || + (localeReferences.withScope && + Object.keys(localeReferences.withScope).length !== 0) + " + :open="false" + animation="slide" + aria-id="contentIdForA11y3" + class="card" + style="box-shadow: none" + > + <template #trigger="detail"> <div - v-for="(column, indexColumn) of columnsVisible" - :key="indexColumn" - :style="!column.display ? 'display : contents' : ''" - class="column" + :aria-expanded="!detail.open" + aria-controls="contentIdForA11y3" + class="card-header" + role="button" + style="box-shadow: none; border-bottom: thick double #009d9d" > - <a - v-if="column.display && indexColumn === 'label'" - :field="indexColumn" - class="folder" - style="min-height: 10px; display: table-cell; vertical-align: middle" - @click="indexColumn === 'label' && toggle()" - > - <span style="margin-right: 10px"> - <FontAwesomeIcon :icon="openChild ? 'caret-down' : 'caret-right'" tabindex="0" /> - </span> - <span> {{ datatype.name }} </span> + <p class="card-header-title"> + {{ $t("applications.references") }} + </p> + <a class="card-header-icon"> + <b-icon :icon="detail.open ? 'chevron-up' : 'chevron-down'" type="is-primary"></b-icon> </a> - - <b-field - v-else-if="column.display && indexColumn === 'admin'" - :field="indexColumn" - class="column" + </div> + </template> + <div class="card-content"> + <div class="content"> + <AuthorizationsForNoAuthorization + v-if=" + localeInitialized && + localeReferences.withoutScope && + Object.keys(localeReferences.withoutScope).length !== 0 + " + :application="localeApplication" + :authorization=" + localeCurrentAuthorization.authorizations + ? localeCurrentAuthorization.authorizations + : localeAuthorizations + " + :data-types="localeReferences.withoutScope" + :has-dependencies="localeHasDependencies" + :list-column-name="localeListColumnName['withoutScope']" + @update:authorization="$emit('update:authorization', $event);" > - <b-tooltip - :label=" - canShowWarning(indexColumn) - ? $t('validation.noRightsForThisOPeration') - : $t('dataTypeAuthorizations.all-autorisation') - " - type="is-warning" - > - <b-icon - :disabled="canShowWarning(indexColumn)" - :icon="STATES[getState(indexColumn)]" - :type=" - hasPublicStates(indexColumn) || canShowWarning(indexColumn) - ? 'is-light' - : 'is-warning' - " - class="clickable" - pack="far" - size="is-medium" - @click.native="!canShowWarning(indexColumn) && selectCheckboxAll(indexColumn)" - /> - </b-tooltip> - </b-field> - - <b-field v-else-if="column.display" :field="indexColumn" class="column"> - <b-tooltip - :active="canShowWarning(indexColumn)" - :label="$t('validation.noRightsForThisOPeration')" - type="is-warning" - > - <b-icon - :disabled="canShowWarning(indexColumn)" - :icon="STATES[getState(indexColumn)]" - :type=" - hasPublicStates(indexColumn) || canShowWarning(indexColumn) - ? 'is-light' - : 'is-primary' - " - class="clickable" - pack="far" - size="is-medium" - @click.native="!canShowWarning(indexColumn) && selectCheckboxAll(indexColumn)" - /> - </b-tooltip> - </b-field> + </AuthorizationsForNoAuthorization> + <AuthorizationForScope + v-if=" + localeInitialized && localeReferences.withScope && Object.keys(localeReferences.withScope).length !== 0 + " + :application="localeApplication" + :authorization=" + localeCurrentAuthorization.authorizations + ? localeCurrentAuthorization.authorizations + : localeAuthorizations + " + :authorizations-description="localeAuthorizations" + :data-types="datatypes.withScope" + :has-dependencies="localeHasDependencies" + :list-column-name="localeListColumnName['withScope']" + :references-scopes="localeReferencesScopes" + @update:authorization="$emit('update:authorization', $event);" + > + </AuthorizationForScope> </div> </div> - <ul class="rows"> - <AuthorizationTable - v-if="openChild && dataGroups && authReferences && columnsVisible && authReferences[0]" - :auth-reference="authReferences[0]" - :authorization="authorization" - :authorization-scopes="authorizationScopes" - :columns-visible="columnsVisible" - :current-authorization-scope="{}" - :data-groups="dataGroups" - :is-root="true" - :isApplicationAdmin="isApplicationAdmin" - :ownAuthorizations="ownAuthorizations" - :ownAuthorizationsColumnsByPath="ownAuthorizationsColumnsByPath" - :publicAuthorizations="publicAuthorizations" - :remaining-option="authReferences.slice && authReferences.slice(1, authReferences.length)" - class="rows" - @modifyAuthorization="$emit('modifyAuthorization', { ...$event, datatype: datatype.id })" - @registerCurrentAuthorization=" - $emit('registerCurrentAuthorization', { ...$event, datatype: datatype.id }) - " + </b-collapse> + <b-collapse + v-if=" + localeInitialized && + (localeDatatypes.withoutScope && + Object.keys(localeDatatypes.withoutScope).length !== 0) || + (localeDatatypes.withScope && + Object.keys(localeDatatypes.withScope).length !== 0) + " + :open="false" + animation="slide" + aria-id="contentIdForA11y3" + class="card" + style="box-shadow: none" + > + <template #trigger="detail"> + <div + :aria-expanded="!detail.open" + aria-controls="contentIdForA11y3" + class="card-header" + role="button" + style="box-shadow: none; border-bottom: thick double #009d9d" > - </AuthorizationTable> - </ul> - </li> + <p class="card-header-title"> + {{ $t("applications.dataset") }} + </p> + <a class="card-header-icon"> + <b-icon :icon="detail.open ? 'chevron-up' : 'chevron-down'" type="is-primary"></b-icon> + </a> + </div> + </template> + <div class="card-content"> + <div class="content"> + <AuthorizationsForNoAuthorization + v-if=" + localeInitialized && + localeDatatypes.withoutScope && + Object.keys(localeDatatypes.withoutScope).length !== 0 + " + :application="localeApplication" + :authorization=" + localeCurrentAuthorization.authorizations + ? localeCurrentAuthorization.authorizations + : localeAuthorizations + " + :data-types="localeDatatypes.withoutScope" + :has-dependencies="localeHasDependencies" + :list-column-name="localeListColumnName['withoutScope']" + @update:authorization="$emit('update:authorization', $event);" + > + </AuthorizationsForNoAuthorization> + <AuthorizationForScope + v-if=" + localeInitialized && localeDatatypes.withScope && Object.keys(localeDatatypes.withScope).length !== 0 + " + :application="localeApplication" + :authorization=" + localeCurrentAuthorization.authorizations + ? localeCurrentAuthorization.authorizations + : localeAuthorizations + " + :authorizations-description="localeAuthorizations" + :data-types="localeDatatypes.withScope" + :has-dependencies="localeHasDependencies" + :list-column-name="localeListColumnName['withScope']" + :references-scopes="localeReferencesScopes" + @update:authorization="$emit('update:authorization', $event);" + > + </AuthorizationForScope> + </div> + </div> + </b-collapse> </div> </template> <script> -import AuthorizationTable from "@/components/common/AuthorizationTable"; -import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; -import { Authorization } from "@/model/authorization/Authorization"; +import AuthorizationsForNoAuthorization from "@/components/common/authorization/AuthorizationsForNoAuthorization.vue"; +import AuthorizationForScope from "@/components/common/authorization/AuthorizationForScope.vue"; +import {ref, watchEffect} from "vue"; export default { name: "AuthorizationTableForDatatype", - emits: ["modifyAuthorization", "registerCurrentAuthorization"], + emits: ["update:authorization"], components: { - AuthorizationTable, - FontAwesomeIcon, + AuthorizationsForNoAuthorization, + AuthorizationForScope, }, props: { - columnsVisible: Object, - dataGroups: Array, - authReferences: {}, - authorization: Object, - authorizationScopes: Array, - isApplicationAdmin: Boolean, - isRoot: Boolean, - ownAuthorizations: Array, - ownAuthorizationsColumnsByPath: Object, - publicAuthorizations: Object, - datatype: Object, - }, - data: () => { - return { - openChild: false, - isLoading: true, - STATES: { "-1": "square-minus", 0: "square", 1: "square-check" }, - }; - }, - created() { - this.isLoading = false; - }, - methods: { - getColumnTitle: function (column) { - if (column.display) { - return ( - (column.internationalizationName && column.internationalizationName[this.$i18n.locale]) || - column.title - ); - } + applicationName: String, + authorizationId: { + type: String, + default: "new", }, - toggle() { - this.openChild = !this.openChild; + datatypes: { + type: Object, }, - getState(indexColumn) { - let nb = this.authorization?.authorizations?.[indexColumn]?.length; - if (!nb) return 0; - if ( - nb === - Object.keys(this.authReferences[0]).filter( - (path) => - this.isApplicationAdmin || - (this.ownAuthorizationsColumnsByPath[path] || []).includes("admin") - ).length - ) - return 1; - return -1; + listColumnName: { + type: Array, + required: true, }, - - hasPublicStates(indexColumn) { - if (this.publicAuthorizations[indexColumn]) - return (this.publicAuthorizations[indexColumn] || []).some((path) => - Object.keys(this.authReferences?.[0] || {}) - .filter( - (path) => - this.isApplicationAdmin || - (this.ownAuthorizationsColumnsByPath[path] || []).includes("admin") - ) - .some((authPath) => authPath.pathStartsWith(path)) - ); + hasDependencies: { + type: Array, + default: () => [], + }, + initialized: Boolean, + references: { + type: Object, }, - canShowWarning(indexColumn) { - return !( - this.isApplicationAdmin || - this.hasPublicStates("admin") || - Object.keys(this.authReferences[0]) - .filter( - (path) => - this.isApplicationAdmin || - (this.ownAuthorizationsColumnsByPath[path] || []).includes("admin") - ) - .some((scopedpath) => { - return (this.ownAuthorizationsColumnsByPath[scopedpath] || []).includes(indexColumn); - }) - ); + application: { + type: Object, + required: true, }, - isAuthorizedColumnForPath(scope, column) { - this.ownAuthorizationsColumnsByPath[scope] && - this.ownAuthorizationsColumnsByPath[scope].includes(column); + currentAuthorization: { + type: Object, + required: true, }, - selectCheckboxAll(indexColumn) { - let state = this.getState(indexColumn); - let auths = Object.keys(this.authReferences[0]).filter( - (path) => - this.isApplicationAdmin || - (this.ownAuthorizationsColumnsByPath[path] || []).includes("admin") - ); - for (const index in auths) { - if (this.haveRightsOn(index, indexColumn)) { - let requiredAuthorizations = {}; - requiredAuthorizations[this.authReferences[0][auths[index]].authorizationScope] = - auths[index]; - let authorizations = new Authorization([], requiredAuthorizations); - let eventToEmit = { - datatype: this.datatype.id, - event: null, - index, - indexColumn, - authorizations: state ? { toDelete: [authorizations] } : { toAdd: [authorizations] }, - }; - if (indexColumn === "admin") { - Object.keys(this.columnsVisible || []) - .filter((label) => label !== "label") - .map((label) => { - return { - ...eventToEmit, - indexColumn: label, - }; - }) - .forEach((event) => this.$emit("modifyAuthorization", event)); - } else { - this.$emit("modifyAuthorization", eventToEmit); - } - } - } + authorizations: { + type: Object, }, - haveRightsOn(scope, column) { - return ( - this.isApplicationAdmin || - (this.ownAuthorizationsColumnsByPath[scope] && - this.ownAuthorizationsColumnsByPath[scope].includes(column) && - this.ownAuthorizationsColumnsByPath[scope].includes("admin")) - ); + referencesScopes: { + type: Object, }, }, -}; + setup(props) { + const localeApplicationName = ref(''); + const localeAuthorizationId = ref(''); + const localeDatatypes = ref({}); + const localeListColumnName = ref([]); + const localeHasDependencies = ref([]); + const localeInitialized = ref(false); + const localeReferences = ref({}); + const localeApplication = ref({}); + const localeCurrentAuthorization = ref({}); + const localeAuthorizations = ref({}); + const localeReferencesScopes = ref({}); + + watchEffect(() => { + localeApplicationName.value = props.applicationName || ''; + localeAuthorizationId.value = props.authorizationId || ''; + localeDatatypes.value = props.datatypes || {}; + localeListColumnName.value = props.listColumnName || []; + localeHasDependencies.value = props.hasDependencies || []; + localeInitialized.value = props.initialized || false; + localeReferences.value = props.references || {}; + localeApplication.value = props.application || {}; + localeCurrentAuthorization.value = props.currentAuthorization || {}; + localeAuthorizations.value = props.authorizations || {}; + localeReferencesScopes.value = props.referencesScopes || {}; + }); + + return { + localeApplicationName, + localeAuthorizationId, + localeDatatypes, + localeListColumnName, + localeHasDependencies, + localeInitialized, + localeReferences, + localeApplication, + localeCurrentAuthorization, + localeAuthorizations, + localeReferencesScopes + } + } +} </script> <style lang="scss" scoped> diff --git a/ui/src/router/index.js b/ui/src/router/index.js index 7eee90eb6..73f95f224 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -16,7 +16,7 @@ import AdditionalFilesAuthorizationInfoView from "@/views/authorizations/Additio import DataTypeAuthorizationsView from "@/views/authorizations/DataTypeAuthorizationsView.vue"; import DataTypeAuthorizationInfoView from "@/views/authorizations/DataTypeAuthorizationInfoView.vue"; import AuthorizationsManagementForApplicationCreatorView from "@/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue"; -import DataTypeAuthorizationsRightsRequestView from "@/views/authorizations/DataTypeAuthorizationsRightsRequestView.vue"; +import AuthorizationsRightsRequestInfoView from "@/views/authorizations/AuthorizationsRightsRequestInfoView.vue"; import RequestAuthorizationManagementView from "@/views/authorizations/RequestAuthorizationManagementView.vue"; import DatasManagementView from "@/views/data/DatasManagementView.vue"; import DataTableView from "@/views/data/DataTableView.vue"; @@ -166,7 +166,7 @@ const routes = [ }, { path: "/applications/:applicationName/authorizationsRequest/:authorizationId", - component: DataTypeAuthorizationsRightsRequestView, + component: AuthorizationsRightsRequestInfoView, props: true, }, { diff --git a/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue b/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue index c4992c6ea..70ed8d241 100644 --- a/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue +++ b/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue @@ -177,9 +177,11 @@ import { Button } from "@/model/Button"; import CollapsibleTree from "@/components/common/CollapsibleTree.vue"; import { AdditionalFilesInfos } from "@/model/additionalFiles/AdditionalFilesInfos"; import services from "@/composable/services"; -import { onMounted, onUpdated } from "vue"; +import {onMounted, onUpdated} from "vue"; import app, { i18n } from "@/main"; import useArray from "@/composable/components/array"; +import useObject from "@/composable/components/object"; +import useBoolean from "@/composable/components/boolean"; export default { name: "AdditionalFilesManagementView", @@ -200,7 +202,9 @@ export default { setup(props) { let vid = null; let toList; - let application = new ApplicationResult(); + const { reactiveObject: application, doChangeObject: changeApplication } = useObject( + new ApplicationResult() + ); // pagination let offset = 0; let currentPage = 1; @@ -211,7 +215,6 @@ export default { let isCardModalActive2 = false; let localizations = {}; let additionalFiles = {}; - let canManageRights = false; let users = []; let filterState = 0; let filterStates = [ @@ -228,7 +231,8 @@ export default { label: i18n.t("dataTypeAuthorizations.filterScope.all"), }, ]; - let additionalFileNames = []; + const { shallowRefArray: additionalFileNames, doChangeArray: changeAdditionalFileNames } = useArray(); + const { refBoolean: canManageRights, doChangeBoolean: changeCanManageRights } = useBoolean(); let getReadableFileSizeStringfunction; let currentUserId = JSON.parse(localStorage.authenticatedUser).id; const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); @@ -259,18 +263,23 @@ export default { async function init() { try { - application = await services.applicationService.getApplication(props.applicationName, [ + changeApplication(await services.applicationService.getApplication(props.applicationName, [ "CONFIGURATION", "DATATYPE", "RIGHTSREQUEST", - ]); - application = services.internationalisationService.mergeInternationalization(application); - additionalFileNames = Object.keys(application.additionalFiles || {}); - canManageRights = - application.isAdministrator || - Object.values(application.authorizationsDatatypesRights || []).some( - (rights) => rights.ADMIN - ); + ])); + changeApplication({ + ...services.internationalisationService.mergeInternationalization(application), + localRefName: services.internationalisationService.localeReferenceNames( + props.applicationName, + application + ), + }); + changeAdditionalFileNames(Object.keys(application.additionalFiles || [])); + changeCanManageRights(application.isAdministrator || + Object.values(application.authorizations || []).some( + (rights) => rights.ADMIN + )); } catch (error) { services.alertService.toastServerError; } diff --git a/ui/src/views/application/ApplicationInfoView.vue b/ui/src/views/application/ApplicationInfoView.vue index 55e72df79..e0d344c03 100644 --- a/ui/src/views/application/ApplicationInfoView.vue +++ b/ui/src/views/application/ApplicationInfoView.vue @@ -68,6 +68,7 @@ export default { ); const authenticatedUser = services.loginService.getAuthenticatedUser(); const canCreateApplication = authenticatedUser.isApplicationCreator(application); + const currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); const { createApplication, @@ -97,6 +98,7 @@ export default { () => app.$router.push(`/applications`) ), ]); + console.log(currentUser) }); async function init() { @@ -369,7 +371,7 @@ export default { </div> </div> </b-tab-item> - <b-tab-item aria-description="authorization" disabled> + <b-tab-item aria-description="authorization"> <template #header> <span class="rubriqueTitle">{{ $t("applications.functions.right-requests-manage") @@ -437,6 +439,20 @@ export default { {{ $t("applications.additionalFile") }} </b-button> </div> + <div + class="buttonWarper" + v-if=" + application.configuration.rightsRequest && Object.keys(application.configuration.rightsRequest).length !== 0 + " + > + <b-button + icon-left="users-cog" + type="is-primary" + @click="showRequestRights(application.name)" + > + {{ $t("dataTypeAuthorizations.showRequests") }} + </b-button> + </div> </div> </div> </div> diff --git a/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue b/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue index 56a909640..5315c1d30 100644 --- a/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue +++ b/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue @@ -181,7 +181,6 @@ export default { async function makeChanges() { let localeListUsersAuth = listUsersAuth.value; if (Object.keys(changes.applications).length !== 0) { - console.log("makeChanges changes", changes); for (const userId in changes.applications) { if (changes.applications[userId].add) { changes.applications[userId].add.forEach((applicationPattern) => { diff --git a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue new file mode 100644 index 000000000..594888109 --- /dev/null +++ b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue @@ -0,0 +1,656 @@ +<template> + <PageView class="with-submenu"> + <SubMenu + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="application.localName || application.title" + role="navigation" + /> + + <h1 class="title main-title"> + <span>{{ $t("dataTypeAuthorizations.title", {label: currentUser.label}) }}</span> + </h1> + <LoadingAnimate v-if="!columnsVisible" :size="'is-medium'"></LoadingAnimate> + <ValidationObserver ref="observer" v-slot="{ handleSubmit }"> + <FieldsForm + :application="application" + :comment="comment" + :description="description" + :fields="fields" + :format="format" + :ref-values="references" + :showComment="true" + pathForKey="rightsRequest.format" + @update:fields="updateFields" + @update:comment="updateComment" + > + </FieldsForm> + + <AuthorizationTableForDatatype + :application="application" + :current-authorization="currentAuthorization" + :list-column-name="listColumnName" + :authorization-id="authorizationId" + :authorizations="authorizations" + :datatypes="datatypes" + :references="references" + :has-dependencies="hasDependencies" + :initialized="initialized" + :application-name="applicationName" + :references-scopes="referencesScopes" + @update:authorization="updateAuthorization"> + </AuthorizationTableForDatatype> + + <div class="buttons"> + <b-button + v-if="canCreateApplication" + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(confirmGrantAuthorization)" + > + {{ $t("dataTypeAuthorizations.grantRequests") }} + </b-button> + <b-button + v-else-if="'new' === authorizationId" + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(createRequest)" + > + {{ $t("dataTypeAuthorizations.showRequests") }} + </b-button> + <b-button + v-else + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(createRequest)" + > + {{ $t("dataTypeAuthorizations.modifyRequests") }} + </b-button> + </div> + </ValidationObserver> + </PageView> +</template> + +<script> +import {ValidationObserver} from "vee-validate"; +import SubMenu, {SubMenuPath} from "@/components/common/SubMenu.vue"; +import PageView from "../common/PageView.vue"; +import {ApplicationResult} from "@/model/ApplicationResult"; +import AuthorizationTableForDatatype from "@/components/common/AuthorizationTableForDatatype.vue"; +import {Authorization} from "@/model/authorization/Authorization"; +import {Authorizations} from "@/model/authorization/Authorizations"; +import FieldsForm from "@/components/common/provider/FieldsForm.vue"; +import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; +import services from "@/composable/services"; +import {inject, onMounted, ref, watch} from "vue"; +import useObject from "@/composable/components/object"; +import app, {i18n} from "@/main"; +import useArray from "@/composable/components/array"; + +export default { + name: "AuthorizationsManagementForApplicationCreatorView", + components: { + LoadingAnimate, + AuthorizationTableForDatatype, + PageView, + SubMenu, + ValidationObserver, + FieldsForm, + }, + props: { + applicationName: { + type: String + }, + authorizationId: { + type: String, + default: "new" + } + }, + setup(props) { + const applications = inject("application:applications"); + const loadApplications = inject("application:loadApplications"); + const {reactiveObject: application, doChangeObject: changeApplication} = useObject( + new ApplicationResult() + ); + const {shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths} = useArray(); + const isLoading = ref(false); + const authenticatedUser = services.loginService.getAuthenticatedUser(); + const canCreateApplication = authenticatedUser.isApplicationCreator(application); + const {shallowRefArray: datatypes, doChangeArray: changeDataTypes} = useArray(); + const {reactiveObject: references} = useObject({}); + const {reactiveObject: authorization, doChangeObject: changeAuthorization} = useObject({}); + let selectedUsers = []; + let publicAuthorizations = {}; + let ownAuthorizations = []; + let ownAuthorizationsColumnsByPath = {}; + let authorizations = []; + let users = []; + let name = null; + let authorizationScopes = {}; + let canManage = false; + + let fields = {}; + let valid = false; + let COLUMNS_VISIBLE = { + label: { + title: "Label", + display: true, + internationalizationName: {fr: "Domaine", en: "Domain"}, + }, + }; + let columnsVisible = false; + const {reactiveObject: period} = useObject(); + let startDate = ref(null); + let endDate = ref(null); + let configuration = {}; + let authReferences = ref({}); + let repository = null; + let format = {}; + let description = ""; + + let currentUser = {}; + let comment = null; + + watch(authReferences, (newVal) => { + authReferences.value = newVal; + }); + + watch(period, () => { + endDate.value = null; + startDate.value = null; + }); + + onMounted(async () => { + await init(); + changeSubMenuPaths([ + new SubMenuPath( + i18n.t("menu.accueil").toLowerCase(), + () => app.$router.push(`/applications/${props.applicationName}`), + () => app.$router.push("/applications") + ), + new SubMenuPath( + i18n.t(`dataTypeAuthorizations.sub-menu-request-authorization`), + () => { + app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + }, + () => app.$router.push(`/applications/${props.applicationName}`) + ), + new SubMenuPath( + i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), + () => { + }, + () => { + app.$router.push(`/applications/${props.applicationName}/authorizationsRequest/new`); + } + ), + ]); + isLoading.value = false; + }) + + async function init() { + isLoading.value = true; + try { + changeApplication(await services.applicationService.getApplication(props.applicationName, [ + "CONFIGURATION", + "DATATYPE", + "RIGHTSREQUEST", + ])); + console.log(application) + changeDataTypes((Object.keys(application.dataTypes) || []).reduce( + (acc, datatype) => { + acc[datatype] = { + name: + services.internationalisationService.localeDataTypeIdName( + application, + application.dataTypes[datatype] + ) || datatype, + }; + return acc; + }, + {} + )); + format = application?.rightsRequest?.description?.format || {}; + description = + application?.rightsRequest?.description?.description[ + services.userPreferencesService.getUserPrefLocale() + ] || + i18n.t("dataTypeAuthorizations.field_form_description", { + applicationName: application.localName, + }); + fields = (Object.keys(format) || []).reduce((acc, field) => { + acc[field] = ""; + return acc; + }, {}); + configuration = (Object.keys(datatypes.value) || []).reduce((acc, datatype) => { + acc[datatype] = application.configuration.dataTypes[datatype]; + return acc; + }, {}); + changeApplication(services.internationalisationService.mergeInternationalization( + application + )); + loadApplications(["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "ADDITIONALFILE"]); + for (let i = 0; i < applications.value.length; i++) { + if (applications.value[i].name === application.name) { + application.configFile = applications.value[i].configFile; + application.creationDate = applications.value[i].creationDate; + application.updateDate = applications.value[i].updateDate; + } + } + authorizations = (Object.keys(datatypes.value) || []).reduce((acc, datatype) => { + acc[datatype] = configuration[datatype]?.authorization?.authorizationScopes || []; + return acc; + }, {}); + repository = (Object.keys(datatypes.value) || []).reduce((acc, datatype) => { + acc[datatype] = application.dataTypes[datatype].repository; + return acc; + }, {}); + const grantableInfos = await services.authorizationService.getAuthorizationGrantableInfos( + props.applicationName + ); + ({ + authorizationScopes: authorizationScopes, + users: users, + publicAuthorizations: publicAuthorizations, + canCreateApplication: canCreateApplication.value, + ownAuthorizations: ownAuthorizations, + ownAuthorizationsColumnsByPath: ownAuthorizationsColumnsByPath, + columnsVisible: columnsVisible, + } = Authorizations.parseGrantableInfos(grantableInfos, datatypes.value, repository)); + + if (props.authorizationId !== "new") { + valid = true; + let request = await services.requestRightsService.getRightsRequests(props.applicationName, { + uuids: [props.authorizationId], + }); + + currentUser = request.users.find( + (user) => + user.id === + ((request && + request.rightsRequests && + request.rightsRequests[0] && + request.rightsRequests[0].user) || + JSON.parse(localStorage.authenticatedUser).id) + ); + let rightsRequest = request.rightsRequests[0]; + comment = rightsRequest.comment; + fields = (Object.keys(format) || []).reduce((acc, field) => { + acc[field] = rightsRequest.rightsRequestForm[field]; + return acc; + }, {}); + let authorizations = (rightsRequest && rightsRequest.rightsRequest) || {}; + let initialValue = new Authorizations( + { + authorizations: {}, + applicationNameOrId: props.applicationName, + users: authorizations.users, + name: authorizations.name, + uuid: authorizations.uuid, + }, + [] + ); + changeAuthorization((Object.keys(datatypes.value) || []).reduce((auth, datatype) => { + auth.authorizations[datatype] = new Authorizations( + {authorizations: authorizations[datatype]}, + (authorizationScopes[datatype] || []).map((as) => as.id) + ); + return auth; + }, initialValue)); + canManage = + canCreateApplication || + (authorizations.users && + authorizations.users[0].login === + JSON.parse(localStorage.getItem("authenticatedUser")).login); + } else { + let initialValue = new Authorizations( + { + authorizations: {}, + applicationNameOrId: props.applicationName, + users: [], + name: "", + uuid: null, + }, + [] + ); + changeAuthorization((Object.keys(datatypes.value) || []).reduce((acc, datatype) => { + acc.authorizations[datatype] = new Authorizations( + {dataType: datatype, applicationNameOrId: props.applicationName}, + (authorizationScopes[datatype] || []).map((as) => as.id) + ); + return acc; + }, initialValue)); + canManage = true; + } + console.log(currentUser); + let currentAuthorizationUsers = authorization.value.users || []; + selectedUsers = (users || []).filter((user) => { + return currentAuthorizationUsers.find((u) => { + return u.id === user.id; + }); + }); + selectedUsers.sort(); + authReferences = await Authorizations.initAuthReferences( + configuration, + authorizations, + authorizationScopes, + getOrLoadReferences + ); + let localeColumnsVisible = columnsVisible ? columnsVisible : {}; + for (const datatype in localeColumnsVisible) { + for (const scope in localeColumnsVisible[datatype]) { + let columnsVisibleFordatatypeAndScope = localeColumnsVisible[datatype][scope]; + if ( + columnsVisibleFordatatypeAndScope.forRequest || + (columnsVisibleFordatatypeAndScope.display && + !columnsVisibleFordatatypeAndScope.forPublic) + ) { + localeColumnsVisible[datatype][scope] = columnsVisibleFordatatypeAndScope; + } + } + } + columnsVisible = localeColumnsVisible; + } catch (error) { + services.alertService.toastServerError(error); + } + } + + function getColumnTitle(column) { + if (column.display) { + return ( + (column.internationalizationName && column.internationalizationName[app.$i18n.locale]) || + column.title + ); + } + } + + function modifyAuthorization(event) { + let datatype = event.datatype; + const authorization = authorization.authorizations[datatype]; + let authorizations = authorization.authorizations[event.indexColumn] || []; + for (const authorizationKeytoAdd in event.authorizations.toAdd) { + authorizations.push(event.authorizations.toAdd[authorizationKeytoAdd]); + } + for (const authorizationKeytoDelete in event.authorizations.toDelete) { + const toDeleteElement = event.authorizations.toDelete[authorizationKeytoDelete]; + authorizations = authorizations.filter((auth) => { + return !new Authorization(auth).equals( + toDeleteElement, + authorizationScopes[datatype].map((scope) => scope.id) + ); + }); + } + authorization.authorizations[event.indexColumn] = authorizations; + app.$set( + authorization.authorizations, + datatype, + new Authorizations( + authorization, + authorizationScopes[datatype].map((as) => as.id) + ) + ); + } + + function registerCurrentAuthorization(event) { + let datatype = event.datatype; + const authorization = authorization.authorizations[event.datatype]; + let authorizations = authorization.authorizations[event.indexColumn] || []; + const authorizationToReplace = event.authorizations; + authorizationToReplace.fromDay = authorizationToReplace.from && [ + authorizationToReplace.from.getFullYear(), + authorizationToReplace.from.getMonth() + 1, + authorizationToReplace.from.getDate(), + ]; + authorizationToReplace.toDay = authorizationToReplace.to && [ + authorizationToReplace.to.getFullYear(), + authorizationToReplace.to.getMonth() + 1, + authorizationToReplace.to.getDate(), + ]; + authorizations = authorizations.map((auth) => { + if ( + !new Authorization(auth).equals( + authorizationToReplace, + authorizationScopes[datatype].map((scope) => scope.id) + ) + ) { + return auth; + } else { + return authorizationToReplace; + } + }); + authorization.authorizations[event.indexColumn] = authorizations; + app.$set( + authorization.authorizations, + event.datatype, + new Authorizations( + authorization, + authorizationScopes.map((as) => as.id) + ) + ); + } + + async function getOrLoadReferences(reference) { + if (references.value[reference]) { + return references.value[reference]; + } + let ref = await services.dataService.getData(props.applicationName, reference); + app.$set(references.value, reference, ref); + return ref; + } + + function updateFields(event) { + fields = event.fields; + valid = event.valid; + } + + function updateComment(event) { + comment = event.comment; + valid = event.valid; + } + + async function grantAuthorization() { + try { + const auth = await createAuthorization(); + console.log(auth); + await createRequest(true); + } catch (e) { + console.log("error", e); + } + } + + async function createRequest(isSetted) { + if (!valid) { + return; + } + try { + let authorizationToSend = { + uuid: authorization.value.uuid, + name: authorization.value.name, + applicationNameOrId: props.applicationName, + authorizations: {}, + }; + authorizationToSend.usersId = selectedUsers.map((user) => user.id); + for (const datatype in authorization.value.authorizations) { + let authorizationForDatatype = authorization.value.authorizations[datatype].authorizations; + for (const scope in authorizationForDatatype) { + authorizationForDatatype[scope] = authorizationForDatatype[scope].map((auth) => { + const returnedAuth = new Authorization(auth); + returnedAuth.intervalDates = { + fromDay: returnedAuth.fromDay, + toDay: returnedAuth.toDay, + }; + return returnedAuth; + }); + authorizationToSend.authorizations[datatype] = authorizationForDatatype; + } + } + if (!(comment && comment.length)) { + app.$buefy.dialog.prompt({ + message: i18n.t("dataTypeAuthorizations.addComment"), + inputAttrs: { + placeholder: i18n.t("dataTypeAuthorizations.commentExample"), + maxlength: 255, + minLength: 3, + canCancel: false, + confirmText: i18n.t("dataTypeAuthorizations.grantRequestConfirm"), + }, + trapFocus: true, + onConfirm: (value) => (comment = value), + }); + } + await services.requestRightsService.createRequestRights(props.applicationName, { + id: props.authorizationId === "new" ? null : props.authorizationId, + fields: fields, + rightsRequest: authorizationToSend, + setted: isSetted, + comment: comment, + }); + if ("new" === props.authorizationId) { + services.alertService.toastSuccess(i18n.t("alert.create-request")); + } else if (isSetted) { + services.alertService.toastSuccess(i18n.t("alert.valid-request")); + } else { + services.alertService.toastSuccess(i18n.t("alert.modified-request")); + } + await app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + } catch (error) { + services.alertService.toastServerError(error); + } + } + + async function createAuthorization() { + try { + let authorizationToSend = { + uuid: authorization.value.uuid, + name: `request ${props.authorizationId}} for user ${currentUser.label}}`, + applicationNameOrId: props.applicationName, + authorizations: {}, + usersId: [currentUser.id], + }; + for (const datatype in authorization.value.authorizations) { + let authorizationForDatatype = authorization.value.authorizations[datatype].authorizations; + for (const scope in authorizationForDatatype) { + authorizationForDatatype[scope] = authorizationForDatatype[scope].map((auth) => { + const returnedAuth = new Authorization(auth); + returnedAuth.intervalDates = { + fromDay: returnedAuth.fromDay, + toDay: returnedAuth.toDay, + }; + return returnedAuth; + }); + authorizationToSend.authorizations[datatype] = authorizationForDatatype; + } + } + const auth = await services.authorizationService.createAuthorization( + props.applicationName, + authorizationToSend + ); + services.alertService.toastSuccess(i18n.t("alert.create-authorization")); + return auth; + } catch (error) { + services.alertService.toastServerError(error); + } + } + + function confirmGrantAuthorization() { + app.$buefy.dialog.confirm({ + title: i18n.t("dataTypeAuthorizations.confirmGrantRequestsTitle"), + message: i18n.t("dataTypeAuthorizations.confirmGrantRequests", currentUser), + cancelText: i18n.t("dataTypeAuthorizations.grantRequestDismiss"), + confirmText: i18n.t("dataTypeAuthorizations.grantRequestConfirm"), + onConfirm: () => grantAuthorization(), + }); + } + + return { + subMenuPaths, + applications, + loadApplications, + publicAuthorizations, + ownAuthorizations, + ownAuthorizationsColumnsByPath, + name, + canManage, + COLUMNS_VISIBLE, + columnsVisible, + description, + canCreateApplication, + datatypes, + application, + currentUser, + comment, + fields, + format, + references, + authReferences, + authorization, + authorizationScopes, + getColumnTitle, + modifyAuthorization, + registerCurrentAuthorization, + updateFields, + updateComment, + confirmGrantAuthorization, + createRequest, + } + } +} +</script> + +<style lang="scss"> +.DataTypeAuthorizationInfoView-periods-container { + .field-body .field.has-addons { + display: flex; + flex-direction: column; + } +} + +.DataTypeAuthorizationInfoView-radio-field { + height: 40px; + + &.b-radio { + .control-label { + display: flex; + align-items: center; + width: 100%; + } + } +} + +.DataTypeAuthorizationInfoView-radio-label { + width: 200px; +} + +.collapse-content .card-content .content .CollapsibleTree-header .CollapsibleTree-buttons { + visibility: hidden; + display: none; +} + +.leaf label { + font-weight: lighter; + font-style: italic; + color: #2c3e50; +} + +.folder label { + font-weight: bolder; + color: $dark; +} + +.rows .card-content .row.label .columns .column { + padding: 0 0 0 10px; + border-bottom: 2px solid; + border-color: $dark; + margin-bottom: 12px; +} + +ul li.card-content { + background-color: rgba(0, 0, 0, 0.05); +} + +a { + color: $dark; +} +</style> diff --git a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue index b21bc9de0..32223b257 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue @@ -61,135 +61,20 @@ </div> <LoadingAnimate v-if="false" :size="'is-large'"></LoadingAnimate> </ValidationObserver> - - <b-collapse - :open="false" - animation="slide" - aria-id="contentIdForA11y3" - class="card" - style="box-shadow: none" - > - <template #trigger="detail"> - <div - :aria-expanded="!detail.open" - aria-controls="contentIdForA11y3" - class="card-header" - role="button" - style="box-shadow: none; border-bottom: thick double #009d9d" - > - <p class="card-header-title"> - {{ $t("applications.references") }} - </p> - <a class="card-header-icon"> - <b-icon :icon="detail.open ? 'chevron-up' : 'chevron-down'" type="is-primary"></b-icon> - </a> - </div> - </template> - <div class="card-content"> - <div class="content"> - <AuthorizationsForNoAuthorization - v-if=" - initialized && - references.withoutScope && - Object.keys(references.withoutScope).length !== 0 - " - :application="application" - :authorization=" - currentAuthorization.authorizations - ? currentAuthorization.authorizations - : authorizations - " - :data-types="references.withoutScope" - :has-dependencies="hasDependencies" - :list-column-name="listColumnName['withoutScope']" - @update:authorization="updateAuthorization" - > - </AuthorizationsForNoAuthorization> - <AuthorizationForScope - v-if=" - initialized && references.withScope && Object.keys(references.withScope).length !== 0 - " - :application="application" - :authorization=" - currentAuthorization.authorizations - ? currentAuthorization.authorizations - : authorizations - " - :authorizations-description="authorizations" - :data-types="datatypes.withScope" - :has-dependencies="hasDependencies" - :list-column-name="listColumnName['withScope']" - :references-scopes="referencesScopes" - @update:authorization="updateAuthorization" - > - </AuthorizationForScope> - </div> - </div> - </b-collapse> - <b-collapse - :open="false" - animation="slide" - aria-id="contentIdForA11y3" - class="card" - style="box-shadow: none" - > - <template #trigger="detail"> - <div - :aria-expanded="!detail.open" - aria-controls="contentIdForA11y3" - class="card-header" - role="button" - style="box-shadow: none; border-bottom: thick double #009d9d" - > - <p class="card-header-title"> - {{ $t("applications.dataset") }} - </p> - <a class="card-header-icon"> - <b-icon :icon="detail.open ? 'chevron-up' : 'chevron-down'" type="is-primary"></b-icon> - </a> - </div> - </template> - <div class="card-content"> - <div class="content"> - <AuthorizationsForNoAuthorization - v-if=" - initialized && - datatypes.withoutScope && - Object.keys(datatypes.withoutScope).length !== 0 - " - :application="application" - :authorization=" - currentAuthorization.authorizations - ? currentAuthorization.authorizations - : authorizations - " - :data-types="datatypes.withoutScope" - :has-dependencies="hasDependencies" - :list-column-name="listColumnName['withoutScope']" - @update:authorization="updateAuthorization" - > - </AuthorizationsForNoAuthorization> - <AuthorizationForScope - v-if=" - initialized && datatypes.withScope && Object.keys(datatypes.withScope).length !== 0 - " - :application="application" - :authorization=" - currentAuthorization.authorizations - ? currentAuthorization.authorizations - : authorizations - " - :authorizations-description="authorizations" - :data-types="datatypes.withScope" - :has-dependencies="hasDependencies" - :list-column-name="listColumnName['withScope']" - :references-scopes="referencesScopes" - @update:authorization="updateAuthorization" - > - </AuthorizationForScope> - </div> - </div> - </b-collapse> + <AuthorizationTableForDatatype + :application="application" + :current-authorization="currentAuthorization" + :list-column-name="listColumnName" + :authorization-id="authorizationId" + :authorizations="authorizations" + :datatypes="datatypes" + :references="references" + :has-dependencies="hasDependencies" + :initialized="initialized" + :application-name="applicationName" + :references-scopes="referencesScopes" + @update:authorization="updateAuthorization"> + </AuthorizationTableForDatatype> <div class="buttons"> <b-button v-if="currentAuthorization.name && currentAuthorization.description" @@ -220,16 +105,14 @@ import { onMounted, provide, ref, computed, onUpdated } from "vue"; import useArray from "@/composable/components/array"; import app, { i18n } from "@/main"; import services from "@/composable/services"; -import AuthorizationForScope from "@/components/common/authorization/AuthorizationForScope.vue"; -import AuthorizationsForNoAuthorization from "@/components/common/authorization/AuthorizationsForNoAuthorization.vue"; import { dataLoader } from "@/composable/data/dataLoader"; +import AuthorizationTableForDatatype from "@/components/common/AuthorizationTableForDatatype.vue"; export default { name: "DataTypeAuthorizationInfoView", emits: ["update:infoAuth"], components: { - AuthorizationsForNoAuthorization, - AuthorizationForScope, + AuthorizationTableForDatatype, PageView, SubMenu, ValidationObserver, diff --git a/ui/src/views/authorizations/DataTypeAuthorizationsRightsRequestView.vue b/ui/src/views/authorizations/DataTypeAuthorizationsRightsRequestView.vue deleted file mode 100644 index b4088da66..000000000 --- a/ui/src/views/authorizations/DataTypeAuthorizationsRightsRequestView.vue +++ /dev/null @@ -1,648 +0,0 @@ -<template> - <PageView class="with-submenu"> - <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="application.localName || application.title" - role="navigation" - /> - - <h1 class="title main-title"> - <span>{{ $t("dataTypeAuthorizations.title", { label: currentUser.label }) }}</span> - </h1> - <LoadingAnimate v-if="!this.columnsVisible" :size="'is-medium'"></LoadingAnimate> - <ValidationObserver ref="observer" v-slot="{ handleSubmit }"> - <FieldsForm - :application="application" - :comment="comment" - :description="description" - :fields="fields" - :format="format" - :ref-values="references" - :showComment="true" - pathForKey="rightsRequest.format" - @update:fields="updateFields" - @update:comment="updateComment" - > - </FieldsForm> - <div v-for="(datatypeInfos, datatype) in datatypes" :key="datatype"> - <div v-if="dataGroups[datatype] && authReferences[datatype] && columnsVisible[datatype]"> - <AuthorizationTableForDatatype - :auth-references="authReferences[datatype]" - :authorization="authorization.authorizations[datatype]" - :authorization-scopes="authorizationScopes[datatype]" - :columns-visible="columnsVisible[datatype]" - :current-authorization-scope="{}" - :data-groups="dataGroups[datatype]" - :datatype="{ id: datatype, name: datatypeInfos.name }" - :is-root="true" - :isApplicationAdmin="canManage" - :ownAuthorizations="ownAuthorizations[datatype]" - :ownAuthorizationsColumnsByPath="ownAuthorizationsColumnsByPath[datatype]" - :publicAuthorizations="publicAuthorizations[datatype] || {}" - class="rows" - @modifyAuthorization="modifyAuthorization($event, datatype)" - @registerCurrentAuthorization="registerCurrentAuthorization($event, datatype)" - > - <div class="row"> - <div class="columns"> - <b-field - v-for="(column, indexColumn) of columnsVisible[datatype]" - :key="indexColumn" - :field="indexColumn" - :label="getColumnTitle(column)" - :style="!column.display ? 'display : contents' : ''" - class="column" - ></b-field> - </div> - </div> - </AuthorizationTableForDatatype> - </div> - </div> - - <div class="buttons"> - <b-button - v-if="isApplicationAdmin" - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(confirmGrantAuthorization)" - > - {{ $t("dataTypeAuthorizations.grantRequests") }} - </b-button> - <b-button - v-else-if="'new' === authorizationId" - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(createRequest)" - > - {{ $t("dataTypeAuthorizations.showRequests") }} - </b-button> - <b-button - v-else - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(createRequest)" - > - {{ $t("dataTypeAuthorizations.modifyRequests") }} - </b-button> - </div> - </ValidationObserver> - </PageView> -</template> - -<script> -import { ValidationObserver } from "vee-validate"; - -import CollapsibleTree from "@/components/common/CollapsibleTree.vue"; -import SubMenu, { SubMenuPath } from "@/components/common/SubMenu.vue"; -import { Component, Prop, Vue, Watch } from "vue-property-decorator"; -import PageView from "../common/PageView.vue"; -import { ApplicationResult } from "@/model/ApplicationResult"; -import AuthorizationTable from "@/components/common/AuthorizationTable"; -import AuthorizationTableForDatatype from "@/components/common/AuthorizationTableForDatatype.vue"; -import { Authorization } from "@/model/authorization/Authorization"; -import { Authorizations } from "@/model/authorization/Authorizations"; -import FieldsForm from "@/components/common/provider/FieldsForm.vue"; -import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; -import services from "@/composable/services"; - -@Component({ - components: { - LoadingAnimate, - AuthorizationTable, - AuthorizationTableForDatatype, - PageView, - SubMenu, - CollapsibleTree, - ValidationObserver, - FieldsForm, - }, -}) -export default class DataTypeAuthorizationsRightsRequestView extends Vue { - @Prop() applicationName; - @Prop({ default: "new" }) authorizationId; - __DEFAULT__ = "__DEFAULT__"; - dataService = services.dataService; - references = {}; - authorizationService = services.authorizationService; - alertService = services.alertService; - applicationService = services.applicationService; - userPreferencesService = services.userPreferencesService; - internationalisationService = services.internationalisationService; - requestRightsService = services.requestRightsService; - authorization = {}; - publicAuthorizations = {}; - ownAuthorizations = []; - ownAuthorizationsColumnsByPath = {}; - authorizations = []; - users = []; - name = null; - dataGroups = {}; - authorizationScopes = {}; - application = new ApplicationResult(); - selectedUsers = []; - isApplicationAdmin = false; - canManage = false; - isLoading; - datatypes = []; - - fields = {}; - valid = false; - periods = { - FROM_DATE: this.$t("dataTypeAuthorizations.from-date"), - TO_DATE: this.$t("dataTypeAuthorizations.to-date"), - FROM_DATE_TO_DATE: this.$t("dataTypeAuthorizations.from-date-to-date"), - ALWAYS: this.$t("dataTypeAuthorizations.always"), - }; - COLUMNS_VISIBLE = { - label: { - title: "Label", - display: true, - internationalizationName: { fr: "Domaine", en: "Domain" }, - }, - }; - columnsVisible = false; - period = this.periods.FROM_DATE_TO_DATE; - startDate = null; - endDate = null; - configuration = {}; - authReferences = {}; - subMenuPaths = []; - repository = null; - filteredTags = []; - format = {}; - description = ""; - - currentUser = {}; - comment = null; - - @Watch("authReferences") - onExternalOpenStateChanged(newVal) { - this.authReferences = newVal; - } - - getColumnTitle(column) { - if (column.display) { - return ( - (column.internationalizationName && column.internationalizationName[this.$i18n.locale]) || - column.title - ); - } - } - - modifyAuthorization(event) { - let datatype = event.datatype; - const authorization = this.authorization.authorizations[datatype]; - let authorizations = authorization.authorizations[event.indexColumn] || []; - for (const authorizationKeytoAdd in event.authorizations.toAdd) { - authorizations.push(event.authorizations.toAdd[authorizationKeytoAdd]); - } - for (const authorizationKeytoDelete in event.authorizations.toDelete) { - const toDeleteElement = event.authorizations.toDelete[authorizationKeytoDelete]; - authorizations = authorizations.filter((auth) => { - return !new Authorization(auth).equals( - toDeleteElement, - this.authorizationScopes[datatype].map((scope) => scope.id) - ); - }); - } - authorization.authorizations[event.indexColumn] = authorizations; - this.$set( - this.authorization.authorizations, - datatype, - new Authorizations( - authorization, - this.authorizationScopes[datatype].map((as) => as.id) - ) - ); - } - - registerCurrentAuthorization(event) { - let datatype = event.datatype; - const authorization = this.authorization.authorizations[event.datatype]; - let authorizations = authorization.authorizations[event.indexColumn] || []; - const authorizationToReplace = event.authorizations; - authorizationToReplace.fromDay = authorizationToReplace.from && [ - authorizationToReplace.from.getFullYear(), - authorizationToReplace.from.getMonth() + 1, - authorizationToReplace.from.getDate(), - ]; - authorizationToReplace.toDay = authorizationToReplace.to && [ - authorizationToReplace.to.getFullYear(), - authorizationToReplace.to.getMonth() + 1, - authorizationToReplace.to.getDate(), - ]; - authorizations = authorizations.map((auth) => { - if ( - !new Authorization(auth).equals( - authorizationToReplace, - this.authorizationScopes[datatype].map((scope) => scope.id) - ) - ) { - return auth; - } else { - return authorizationToReplace; - } - }); - authorization.authorizations[event.indexColumn] = authorizations; - this.$set( - this.authorization.authorizations, - event.datatype, - new Authorizations( - authorization, - this.authorizationScopes.map((as) => as.id) - ) - ); - } - - async created() { - await this.init(); - this.chosenLocale = this.userPreferencesService.getUserPrefLocale(); - this.subMenuPaths = [ - new SubMenuPath( - this.$t("menu.accueil").toLowerCase(), - () => this.$router.push(`/applications/${this.applicationName}`), - () => this.$router.push("/applications") - ), - new SubMenuPath( - this.$t(`dataTypeAuthorizations.sub-menu-request-authorization`), - () => { - this.$router.push(`/applications/${this.applicationName}/authorizationsRequest`); - }, - () => this.$router.push(`/applications/${this.applicationName}`) - ), - new SubMenuPath( - this.$t(`dataTypeAuthorizations.sub-menu-new-authorization`), - () => {}, - () => { - this.$router.push(`/applications/${this.applicationName}/authorizationsRequest/new`); - } - ), - ]; - this.isLoading = false; - } - - mounted() {} - - async init() { - this.isLoading = true; - try { - this.application = await this.applicationService.getApplication(this.applicationName, [ - "CONFIGURATION", - "DATATYPE", - "RIGHTSREQUEST", - ]); - this.datatypes = (Object.keys(this.application.configuration.dataTypes) || []).reduce( - (acc, datatype) => { - acc[datatype] = { - name: - this.internationalisationService.localeDataTypeIdName( - this.application, - this.application.dataTypes[datatype] - ) || datatype, - }; - return acc; - }, - {} - ); - this.format = this.application?.rightsRequest?.description?.format || {}; - this.description = - this.application?.rightsRequest?.description?.description[ - this.userPreferencesService.getUserPrefLocale() - ] || - this.$t("dataTypeAuthorizations.field_form_description", { - applicationName: this.application.localName, - }); - this.fields = (Object.keys(this.format) || []).reduce((acc, field) => { - acc[field] = ""; - return acc; - }, {}); - this.configuration = (Object.keys(this.datatypes) || []).reduce((acc, datatype) => { - acc[datatype] = this.application.configuration.dataTypes[datatype]; - return acc; - }, {}); - this.application = this.internationalisationService.mergeInternationalization( - this.application - ); - this.authorizations = (Object.keys(this.datatypes) || []).reduce((acc, datatype) => { - acc[datatype] = this.configuration[datatype]?.authorization?.authorizationScopes || []; - return acc; - }, {}); - this.repository = (Object.keys(this.datatypes) || []).reduce((acc, datatype) => { - acc[datatype] = this.application.dataTypes[datatype].repository; - return acc; - }, {}); - const grantableInfos = await this.authorizationService.getAuthorizationGrantableInfos( - this.applicationName - ); - ({ - authorizationScopes: this.authorizationScopes, - dataGroups: this.dataGroups, - users: this.users, - publicAuthorizations: this.publicAuthorizations, - isApplicationAdmin: this.isApplicationAdmin, - ownAuthorizations: this.ownAuthorizations, - ownAuthorizationsColumnsByPath: this.ownAuthorizationsColumnsByPath, - columnsVisible: this.columnsVisible, - } = Authorizations.parseGrantableInfos(grantableInfos, this.datatypes, this.repository)); - - if (this.authorizationId !== "new") { - this.valid = true; - let request = await this.requestRightsService.getRightsRequests(this.applicationName, { - uuids: [this.authorizationId], - }); - - this.currentUser = request.users.find( - (user) => - user.id === - ((request && - request.rightsRequests && - request.rightsRequests[0] && - request.rightsRequests[0].user) || - JSON.parse(localStorage.authenticatedUser).id) - ); - let rightsRequest = request.rightsRequests[0]; - this.comment = rightsRequest.comment; - this.fields = (Object.keys(this.format) || []).reduce((acc, field) => { - acc[field] = rightsRequest.rightsRequestForm[field]; - return acc; - }, {}); - let authorizations = (rightsRequest && rightsRequest.rightsRequest) || {}; - let initialValue = new Authorizations( - { - authorizations: {}, - applicationNameOrId: this.applicationName, - users: authorizations.users, - name: authorizations.name, - uuid: authorizations.uuid, - }, - [] - ); - this.authorization = (Object.keys(this.datatypes) || []).reduce((auth, datatype) => { - auth.authorizations[datatype] = new Authorizations( - { authorizations: authorizations[datatype] }, - (this.authorizationScopes[datatype] || []).map((as) => as.id) - ); - return auth; - }, initialValue); - this.canManage = - this.isApplicationAdmin || - (authorizations.users && - authorizations.users[0].login === - JSON.parse(localStorage.getItem("authenticatedUser")).login); - } else { - let initialValue = new Authorizations( - { - authorizations: {}, - applicationNameOrId: this.applicationName, - users: [], - name: "", - uuid: null, - }, - [] - ); - this.authorization = (Object.keys(this.datatypes) || []).reduce((acc, datatype) => { - acc.authorizations[datatype] = new Authorizations( - { dataType: datatype, applicationNameOrId: this.applicationName }, - (this.authorizationScopes[datatype] || []).map((as) => as.id) - ); - return acc; - }, initialValue); - this.canManage = true; - } - console.log(this.currentUser); - let currentAuthorizationUsers = this.authorization.users || []; - this.selectedUsers = (this.users || []).filter((user) => { - return currentAuthorizationUsers.find((u) => { - return u.id === user.id; - }); - }); - this.selectedUsers.sort(); - this.authReferences = await Authorizations.initAuthReferences( - this.configuration, - this.authorizations, - this.authorizationScopes, - this.getOrLoadReferences - ); - - let columnsVisible = {}; - for (const datatype in this.columnsVisible) { - columnsVisible[datatype] = {}; - for (const scope in this.columnsVisible[datatype]) { - let columnsVisibleFordatatypeAndScope = this.columnsVisible[datatype][scope]; - if ( - columnsVisibleFordatatypeAndScope.forRequest || - (columnsVisibleFordatatypeAndScope.display && - !columnsVisibleFordatatypeAndScope.forPublic) - ) { - columnsVisible[datatype][scope] = columnsVisibleFordatatypeAndScope; - } - } - } - this.columnsVisible = columnsVisible; - } catch (error) { - this.alertService.toastServerError(error); - } - } - - async getOrLoadReferences(reference) { - if (this.references[reference]) { - return this.references[reference]; - } - let ref = await this.dataService.getData(this.applicationName, reference); - this.$set(this.references, reference, ref); - return ref; - } - - updateFields(event) { - this.fields = event.fields; - this.valid = event.valid; - } - - updateComment(event) { - this.comment = event.comment; - this.valid = event.valid; - } - - @Watch("period") - onPeriodChanged() { - this.endDate = null; - this.startDate = null; - } - - async grantAuthorization() { - try { - const auth = await this.createAuthorization(); - console.log(auth); - await this.createRequest(true); - } catch (e) { - console.log("error", e); - } - } - - async createRequest(isSetted) { - if (!this.valid) { - return; - } - try { - let authorizationToSend = { - uuid: this.authorization.uuid, - name: this.authorization.name, - applicationNameOrId: this.applicationName, - authorizations: {}, - }; - authorizationToSend.usersId = this.selectedUsers.map((user) => user.id); - for (const datatype in this.authorization.authorizations) { - let authorizationForDatatype = this.authorization.authorizations[datatype].authorizations; - for (const scope in authorizationForDatatype) { - authorizationForDatatype[scope] = authorizationForDatatype[scope].map((auth) => { - const returnedAuth = new Authorization(auth); - returnedAuth.intervalDates = { - fromDay: returnedAuth.fromDay, - toDay: returnedAuth.toDay, - }; - returnedAuth.dataGroups = returnedAuth.dataGroups.map((dg) => dg.id || dg); - return returnedAuth; - }); - authorizationToSend.authorizations[datatype] = authorizationForDatatype; - } - } - if (!(this.comment && this.comment.length)) { - this.$buefy.dialog.prompt({ - message: this.$t("dataTypeAuthorizations.addComment"), - inputAttrs: { - placeholder: this.$t("dataTypeAuthorizations.commentExample"), - maxlength: 255, - minLength: 3, - canCancel: false, - confirmText: this.$t("dataTypeAuthorizations.grantRequestConfirm"), - }, - trapFocus: true, - onConfirm: (value) => (this.comment = value), - }); - } - await this.requestRightsService.createRequestRights(this.applicationName, { - id: this.authorizationId === "new" ? null : this.authorizationId, - fields: this.fields, - rightsRequest: authorizationToSend, - setted: isSetted, - comment: this.comment, - }); - if ("new" === this.authorizationId) { - this.alertService.toastSuccess(this.$t("alert.create-request")); - } else if (isSetted) { - this.alertService.toastSuccess(this.$t("alert.valid-request")); - } else { - this.alertService.toastSuccess(this.$t("alert.modified-request")); - } - await this.$router.push(`/applications/${this.applicationName}/authorizationsRequest`); - } catch (error) { - this.alertService.toastServerError(error); - } - } - - async createAuthorization() { - try { - let authorizationToSend = { - uuid: this.authorization.uuid, - name: `request ${this.authorizationId}} for user ${this.currentUser.label}}`, - applicationNameOrId: this.applicationName, - authorizations: {}, - usersId: [this.currentUser.id], - }; - for (const datatype in this.authorization.authorizations) { - let authorizationForDatatype = this.authorization.authorizations[datatype].authorizations; - for (const scope in authorizationForDatatype) { - authorizationForDatatype[scope] = authorizationForDatatype[scope].map((auth) => { - const returnedAuth = new Authorization(auth); - returnedAuth.intervalDates = { - fromDay: returnedAuth.fromDay, - toDay: returnedAuth.toDay, - }; - returnedAuth.dataGroups = returnedAuth.dataGroups.map((dg) => dg.id || dg); - return returnedAuth; - }); - authorizationToSend.authorizations[datatype] = authorizationForDatatype; - } - } - const auth = await this.authorizationService.createAuthorization( - this.applicationName, - authorizationToSend - ); - this.alertService.toastSuccess(this.$t("alert.create-authorization")); - return auth; - } catch (error) { - this.alertService.toastServerError(error); - } - } - - confirmGrantAuthorization() { - this.$buefy.dialog.confirm({ - title: this.$t("dataTypeAuthorizations.confirmGrantRequestsTitle"), - message: this.$t("dataTypeAuthorizations.confirmGrantRequests", this.currentUser), - cancelText: this.$t("dataTypeAuthorizations.grantRequestDismiss"), - confirmText: this.$t("dataTypeAuthorizations.grantRequestConfirm"), - onConfirm: () => this.grantAuthorization(), - }); - } -} -</script> - -<style lang="scss"> -.DataTypeAuthorizationInfoView-periods-container { - .field-body .field.has-addons { - display: flex; - flex-direction: column; - } -} - -.DataTypeAuthorizationInfoView-radio-field { - height: 40px; - - &.b-radio { - .control-label { - display: flex; - align-items: center; - width: 100%; - } - } -} - -.DataTypeAuthorizationInfoView-radio-label { - width: 200px; -} - -.collapse-content .card-content .content .CollapsibleTree-header .CollapsibleTree-buttons { - visibility: hidden; - display: none; -} - -.leaf label { - font-weight: lighter; - font-style: italic; - color: #2c3e50; -} - -.folder label { - font-weight: bolder; - color: $dark; -} - -.rows .card-content .row.label .columns .column { - padding: 0 0 0 10px; - border-bottom: 2px solid; - border-color: $dark; - margin-bottom: 12px; -} - -ul li.card-content { - background-color: rgba(0, 0, 0, 0.05); -} - -a { - color: $dark; -} -</style> -- GitLab From 738f3eceb7b73396e7733af692a1b7f204b2eb7a Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Fri, 18 Oct 2024 11:48:15 +0200 Subject: [PATCH 18/52] Correction du builder pour ajouter les titres --- ...atternComponentAdjacentExampleBuilder.java | 4 +- .../configuration/section/SectionBuilder.java | 4 +- .../model/configuration/builder/I18n.java | 19 + .../builder/NodeSchemaValidator.java | 4 +- .../PatternComponentComponentsBuilder.java | 2 +- .../configuration/data.result.example.json | 52 ++- .../localization.example.result.json | 438 +----------------- .../data/configuration/schemaExample.yaml | 8 +- 8 files changed, 65 insertions(+), 466 deletions(-) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentAdjacentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentAdjacentExampleBuilder.java index 9ef3fbc99..88021e14f 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentAdjacentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentAdjacentExampleBuilder.java @@ -11,7 +11,7 @@ import java.util.Map; class PatternComponentAdjacentExampleBuilder { protected static final PatternComponentAdjacentType STANDARD_DEVIATION = buildPatternComponentAdjacentType( - "{$1}_sd", + "\"{$1}_sd\"", false, false, TitleExampleBuilder.STANDARD_DEVIATION, @@ -19,7 +19,7 @@ class PatternComponentAdjacentExampleBuilder { FloatCheckerExampleBuilder.STANDARD_DEVIATION ); protected static final PatternComponentAdjacentType QUALITY_CLASS = buildPatternComponentAdjacentType( - "{$1}_qc", + "\"{$1}_qc\"", false, false, TitleExampleBuilder.QUALITY_CLASS, diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java index b9b4e4bfa..4e91d18cb 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java @@ -175,8 +175,10 @@ public class SectionBuilder { Optional.of(StaticMapType.COMPUTED_COMPONENTS().type()); case ConfigurationSchemaNode.OA_PATTERN_COMPONENTS -> Optional.of(StaticMapType.PATTERN_COMPONENTS().type()); - case ConfigurationSchemaNode.OA_COMPONENTS -> + case ConfigurationSchemaNode.OA_COMPONENT_QUALIFIERS -> Optional.of(StaticMapType.PATTERN_COMPONENTS_QUALIFIERS().type()); + case ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS -> + Optional.of(StaticMapType.PATTERN_COMPONENTS_ADJACENT().type()); case null, default -> getAllSections().stream() .filter(section -> section.matches(childLabel)) .map(Section::type) diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java index 438f99629..c25b49527 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java @@ -1,16 +1,35 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.google.common.base.Strings; +import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; public record I18n(Map i18n) { public I18n add(final String path, final Map i18n) { + if(i18n().isEmpty()){ + return this; + } + Set<String> titleI18nKeys = Set.of(ConfigurationSchemaNode.OA_TITLE, ConfigurationSchemaNode.OA_DESCRIPTION); + if(titleI18nKeys.stream() + .anyMatch(i18n.keySet()::contains) + ){ + final Map<String, Map> localizations = i18n(); + for (String titleI18nKey : titleI18nKeys) { + Map internationalizationForTitleI18nKey = (Map) i18n.get(titleI18nKey); + if(MapUtils.isNotEmpty(internationalizationForTitleI18nKey)) {continue;} + String pathForTitleI18nKey = String.join(".", path, titleI18nKey); + localizations.putAll(add(pathForTitleI18nKey, internationalizationForTitleI18nKey).i18n()); + } + return new I18n(localizations); + } final String[] labels = path.split("\\."); final Map<String, Map> localizations = i18n(); Map<String, Map> currentLocalization = localizations; diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/NodeSchemaValidator.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/NodeSchemaValidator.java index d41b9e854..2695e4e50 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/NodeSchemaValidator.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/NodeSchemaValidator.java @@ -223,8 +223,8 @@ public class NodeSchemaValidator { case final ArrayNode arrayNode -> { AtomicInteger index = new AtomicInteger(0); for (final JsonNode jsonElement : childNode.get(childLabel)) { - - if (childLabel.equals(ConfigurationSchemaNode.OA_COMPONENTS)) { + List<String> componentsForIteration = List.of(ConfigurationSchemaNode.OA_COMPONENTS, ConfigurationSchemaNode.OA_COMPONENT_QUALIFIERS, ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS); + if (componentsForIteration.contains(childLabel)) { jsonElement.fields().forEachRemaining(nodeEntry -> { areChildrenValid .compareAndSet(false, diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java index 7545d286f..e5a04c7be 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java @@ -24,7 +24,7 @@ public record PatternComponentComponentsBuilder(RootBuilder rootBuilder) { final JsonNode patternComponentNode ) { final ArrayNode componentsArrayNode = Optional.ofNullable(patternComponentNode) - .map(node -> node.findPath(ConfigurationSchemaNode.OA_COMPONENTS)) + .map(node -> node.findPath(ConfigurationSchemaNode.OA_COMPONENT_QUALIFIERS)) .map(ArrayNode.class::cast) .orElse(new ArrayNode(JsonNodeFactory.instance)); if (!componentsArrayNode.isEmpty()) { diff --git a/src/test/resources/data/configuration/data.result.example.json b/src/test/resources/data/configuration/data.result.example.json index 5412c2fc6..d71227665 100644 --- a/src/test/resources/data/configuration/data.result.example.json +++ b/src/test/resources/data/configuration/data.result.example.json @@ -116,13 +116,13 @@ "required" : false, "mandatory" : "OPTIONAL", "checker" : { - "type" : "DateChecker", + "type" : "ReferenceChecker", + "componentKey" : "zet_computed_key", "multiplicity" : "ONE", "required" : false, - "pattern" : "dd/MM/yyyy HH:mm:ss", - "min" : [ -999999999, 1, 1, 0, 0 ], - "max" : [ 999999999, 12, 31, 23, 59, 59, 999999999 ], - "duration" : null + "refType" : "tr_type_zone_etude_tze", + "isRecursive" : false, + "isParent" : false }, "computationChecker" : { "type" : "ComputationChecker", @@ -136,9 +136,9 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", + "referenceCheckerType" : "tr_type_zone_etude_tze", "chartDescription" : null, - "reference" : false + "reference" : true }, "zet_nom_en" : { "type" : "BasicComponent", @@ -240,6 +240,10 @@ "type" : "DependsParent", "references" : "tr_type_zone_etude_tze", "component" : "tze_type_nom" + }, { + "type" : "DependsReferences", + "references" : "tr_type_zone_etude_tze", + "component" : "zet_computed_key" }, { "type" : "DependsReferences", "references" : "tr_type_zone_etude_tze", @@ -796,7 +800,7 @@ "componentKey" : "smp_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", - "tagName" : "context" + "tagName" : "data" } ], "exportHeaderName" : "smp_repetition", "patternNumber" : 2, @@ -804,8 +808,8 @@ "type" : "IntegerChecker", "multiplicity" : "ONE", "required" : false, - "min" : -2147483648, - "max" : 2147483647 + "min" : 0, + "max" : 10 }, "submissionAuthorizationScope" : null, "hidden" : false, @@ -846,7 +850,7 @@ "componentKey" : "swc_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", - "tagName" : "context" + "tagName" : "data" } ], "exportHeaderName" : "swc_repetition", "patternNumber" : 2, @@ -854,8 +858,8 @@ "type" : "IntegerChecker", "multiplicity" : "ONE", "required" : false, - "min" : -2147483648, - "max" : 2147483647 + "min" : 0, + "max" : 10 }, "submissionAuthorizationScope" : null, "hidden" : false, @@ -900,7 +904,7 @@ "componentKey" : "swc_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", - "tagName" : "context" + "tagName" : "data" } ], "exportHeaderName" : "swc_profondeur", "patternNumber" : 1, @@ -1020,7 +1024,7 @@ "componentKey" : "smp_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", - "tagName" : "context" + "tagName" : "data" } ], "exportHeaderName" : "smp_profondeur", "patternNumber" : 1, @@ -1042,7 +1046,7 @@ "componentKey" : "smp_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", - "tagName" : "context" + "tagName" : "data" } ], "exportHeaderName" : "smp_repetition", "patternNumber" : 2, @@ -1050,8 +1054,8 @@ "type" : "IntegerChecker", "multiplicity" : "ONE", "required" : false, - "min" : -2147483648, - "max" : 2147483647 + "min" : 0, + "max" : 10 }, "submissionAuthorizationScope" : null, "hidden" : false, @@ -1125,7 +1129,7 @@ "componentKey" : "smp_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", - "tagName" : "context" + "tagName" : "data" } ], "exportHeaderName" : "smp_profondeur", "patternNumber" : 1, @@ -1176,7 +1180,7 @@ "componentKey" : "swc_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", - "tagName" : "context" + "tagName" : "data" } ], "exportHeaderName" : "swc_profondeur", "patternNumber" : 1, @@ -1198,7 +1202,7 @@ "componentKey" : "swc_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", - "tagName" : "context" + "tagName" : "data" } ], "exportHeaderName" : "swc_repetition", "patternNumber" : 2, @@ -1206,8 +1210,8 @@ "type" : "IntegerChecker", "multiplicity" : "ONE", "required" : false, - "min" : -2147483648, - "max" : 2147483647 + "min" : 0, + "max" : 10 }, "submissionAuthorizationScope" : null, "hidden" : false, @@ -1714,7 +1718,7 @@ "type" : "ComputationChecker", "multiplicity" : "ONE", "required" : false, - "expression" : "return datum.date + \" \" + datum.heure\n", + "expression" : "return datum.date \" \" datum.heure\n", "references" : null, "exceptionMessages" : [ ], "codify" : false, diff --git a/src/test/resources/data/configuration/localization.example.result.json b/src/test/resources/data/configuration/localization.example.result.json index 9b8010e9a..914ff9b90 100644 --- a/src/test/resources/data/configuration/localization.example.result.json +++ b/src/test/resources/data/configuration/localization.example.result.json @@ -1,436 +1,10 @@ { - "tags" : { - "data" : { - "en" : "data", - "fr" : "données" - }, - "context" : { - "en" : "context", - "fr" : "contexte" - } - }, - "application" : { - "en" : "SOERE my SOERE", - "fr" : "SOERE mon SOERE" - }, - "data" : { - "tr_zone_etude_zet" : { - "validations" : { }, - "components" : { - "tze_type_nom" : { - "exportHeader" : { - "en" : "Site types", - "fr" : "Type de site" - }, - "computation" : { } - }, - "zet_computed_key" : { - "exportHeader" : { - "en" : "Complete date", - "fr" : "Date complète" - }, - "computation" : { } - }, - "zet_chemin_parent" : { - "exportHeader" : { - "en" : "Parent site", - "fr" : "Site parent" - }, - "computation" : { } - } - }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { - "zet_nom_key" : { - "en" : "zet_nom_en", - "fr" : "zet_nom_fr" - } - }, - "i18nDisplay" : { - "en" : "{nom_key_zet}", - "fr" : "{nom_key_zet}" - }, - "i18n" : { - "en" : "Site", - "fr" : "Site" - } - }, - "tr_type_zone_etude_tze" : { - "validations" : { }, - "components" : { }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { - "tze_nom_key" : { - "en" : "tze_nom_en", - "fr" : "tze_nom_fr" - }, - "tze_definition_fr" : { - "en" : "tze_definition_en", - "fr" : "tze_definition_fr" - } - }, - "i18nDisplay" : { - "en" : "Of type : {nom_key_tze}", - "fr" : "De type : {nom_key_tze}" - }, - "i18n" : { - "en" : "Sites types", - "fr" : "Types de sites" - } - }, - "tr_propriete_taxon_ptx" : { - "validations" : { }, - "components" : { - "ptx_date" : { - "exportHeader" : { - "en" : "Start date", - "fr" : "Date de début" - }, - "computation" : { } - } - }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { - "ptx_propriete" : { - "en" : "Taxa property name", - "fr" : "Nom de la propriété de taxon" - } - }, - "i18nDisplay" : { - "en" : "{nom}", - "fr" : "{nom}" - }, - "i18n" : { - "en" : "Taxa properties", - "fr" : "Propriété des taxon" - } - }, - "tr_projet_pro" : { - "validations" : { }, - "components" : { }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { - "pro_nom_key" : { - "en" : "pro_nom_en", - "fr" : "pro_nom_fr" - } - }, - "i18nDisplay" : { - "fr" : "{nom_key_pro}" - }, - "i18n" : { - "en" : "Project", - "fr" : "Projet" - } - }, - "OA_validations" : { - "validations" : { }, - "components" : { - "OA_validations" : { - "exportHeader" : { }, - "computation" : { - "exceptions" : { - "DATE_NOT_IN_INTERVAL" : { - "en" : "the date ${date} is not in date intervale [${dateDebut},${dateFin}]", - "fr" : "la date ${date} n'est pas dans l'intervale de dates [${dateDebut},${dateFin}]" - }, - "MISSING_DATE" : { - "en" : "missing date", - "fr" : "la date est manquante" - }, - "BAD_DATE_FORMAT" : { - "en" : "the date ${date} is not in format ${format}", - "fr" : "la date ${date} n'est pas au format ${format}" - } - } - } - } - }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { }, - "i18nDisplay" : { }, - "i18n" : { } - }, - "t_data_dat" : { - "validations" : { - "site_validation" : { - "en" : "Site validation", - "fr" : "Validation du site" - }, - "date_validation" : { - "en" : "Date validation", - "fr" : "Validation de la date" - }, - "type_site_validation" : { - "en" : "Site type validation", - "fr" : "Validation du type de sites" - }, - "start_date_validation" : { - "en" : "Min date validation", - "fr" : "Validation de la borne inférieure de date" - }, - "interval_date_validation" : { - "en" : "Checks that the date is included in the interval", - "fr" : "Vérifie que la date est comprise dans l'interval" - }, - "end_date_validation" : { - "en" : "Max date validation", - "fr" : "Validation de la borne supérieure de date" - } - }, - "components" : { - "dat_type_site" : { - "exportHeader" : { - "en" : "Site type", - "fr" : "Type de zone d'étude" - }, - "computation" : { } - }, - "dat_end_date" : { - "exportHeader" : { - "en" : "End date", - "fr" : "Date de fin" - }, - "computation" : { } - }, - "smp_repetition" : { - "exportHeader" : { - "en" : "Repetition", - "fr" : "Répétition" - }, - "computation" : { } - }, - "dat_date_heure" : { - "exportHeader" : { - "en" : "Complete date", - "fr" : "Date complète" - }, - "computation" : { } - }, - "smp" : { - "exportHeader" : { - "en" : "Soil moisture pressure", - "fr" : "Tension d'humdité du sol" - }, - "computation" : { } - }, - "swc_repetition" : { - "exportHeader" : { - "en" : "Repetition", - "fr" : "Répétition" - }, - "computation" : { } - }, - "dat_start_date" : { - "exportHeader" : { - "en" : "Start date", - "fr" : "Date de début" - }, - "computation" : { } - }, - "dat_site" : { - "exportHeader" : { - "fr" : "Site" - }, - "computation" : { } - }, - "swc_profondeur" : { - "exportHeader" : { - "en" : "Depth", - "fr" : "Profondeur" - }, - "computation" : { } - }, - "smp_profondeur" : { - "exportHeader" : { - "en" : "Depth", - "fr" : "Profondeur" - }, - "computation" : { } - }, - "swc" : { - "exportHeader" : { - "en" : "Soil water content", - "fr" : "Humidité volumique du sol" - }, - "computation" : { } - } - }, - "submissions" : { - "referenceScopes" : { - "tr_zone_etude_zet" : { - "en" : "Site", - "fr" : "Site" - } - } - }, - "i18nColumns" : { }, - "i18nDisplay" : { }, - "i18n" : { - "en" : "Data", - "fr" : "Données" - } - }, - "tr_taxon_tax" : { - "validations" : { }, - "components" : { }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { - "tax_taxon" : { - "en" : "Taxa name", - "fr" : "Nom du taxon" - } - }, - "i18nDisplay" : { - "en" : "{nom}", - "fr" : "{nom}" - }, - "i18n" : { - "en" : "Taxa", - "fr" : "Taxon" - } - }, - "tr_espece_spe" : { - "validations" : { }, - "components" : { - "spe_date" : { - "exportHeader" : { - "en" : "Start date", - "fr" : "Date de début" - }, - "computation" : { } - }, - "spe_species" : { - "exportHeader" : { - "en" : "Species", - "fr" : "Espèce" - }, - "computation" : { } - }, - "spe_tool" : { - "exportHeader" : { - "en" : "Tool", - "fr" : "Outil" - }, - "computation" : { - "exceptions" : { - "BAD_VALUE" : { - "en" : "value ${value} must be in ${values}", - "fr" : "la valeur ${value} doit être l'une des valeurs de ${values}" - } - } - } - }, - "spe_site" : { - "exportHeader" : { - "fr" : "Site" - }, - "computation" : { } - }, - "spe_heure" : { - "exportHeader" : { - "en" : "Time", - "fr" : "Heure" - }, - "computation" : { } - }, - "spe_weight" : { - "exportHeader" : { - "en" : "Mass", - "fr" : "Masse" - }, - "computation" : { } - }, - "spe_date_heure" : { - "exportHeader" : { - "en" : "Complete date", - "fr" : "Date complète" - }, - "computation" : { } - }, - "spe_repetition" : { - "exportHeader" : { - "en" : "Repetition", - "fr" : "Répétition" - }, - "computation" : { } - } - }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { - "spe_definition_fr" : { - "en" : "spe_definition_en", - "fr" : "spe_definition_fr" - } - }, - "i18nDisplay" : { - "en" : "spe_definition_en", - "fr" : "spe_definition_fr" - }, - "i18n" : { - "en" : "Species", - "fr" : "Espèce" - } - } - }, + "tags" : { }, + "application" : { }, + "data" : { }, "rightsrequest" : { - "description" : { - "en" : "You can request rights to the monsore application by filling out this form", - "fr" : "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire" - }, - "fields" : { - "nom" : { - "en" : "Name of research organization", - "fr" : "Nom de l'organisme de recherche" - } - } + "description" : { }, + "fields" : { } }, - "additionalFiles" : { - "firstAdditionalfile" : { - "i18n" : { - "en" : "File", - "fr" : "Fichier" - }, - "fields" : { - "projet" : { - "en" : "Project", - "fr" : "Projet" - }, - "nom" : { - "en" : "Name", - "fr" : "Nom" - } - } - }, - "secondAdditionalfile" : { - "i18n" : { - "en" : "Initial data", - "fr" : "Données brutes" - }, - "fields" : { - "projet" : { - "en" : "Project", - "fr" : "Projet" - }, - "nom" : { - "en" : "Name", - "fr" : "Nom" - } - } - } - } + "additionalFiles" : { } } \ No newline at end of file diff --git a/src/test/resources/data/configuration/schemaExample.yaml b/src/test/resources/data/configuration/schemaExample.yaml index 00d8f8bff..fc7cd8358 100644 --- a/src/test/resources/data/configuration/schemaExample.yaml +++ b/src/test/resources/data/configuration/schemaExample.yaml @@ -498,7 +498,7 @@ OA_data: #optional OA_componentAdjacents: #optional - #optional swc_sd: #optional - OA_importHeaderPattern: {$1}_sd #optional + OA_importHeaderPattern: "{$1}_sd" #optional OA_exportHeader: #mandatory OA_title: #optional fr: écart_type @@ -515,7 +515,7 @@ OA_data: #optional OA_multiplicity: ONE #optional - #optional swc_qc: #optional - OA_importHeaderPattern: {$1}_qc #optional + OA_importHeaderPattern: "{$1}_qc" #optional OA_exportHeader: #mandatory OA_title: #optional fr: Indic de qualité @@ -591,7 +591,7 @@ OA_data: #optional OA_componentAdjacents: #optional - #optional smp_sd: #optional - OA_importHeaderPattern: {$1}_sd #optional + OA_importHeaderPattern: "{$1}_sd" #optional OA_exportHeader: #mandatory OA_title: #optional fr: écart_type @@ -608,7 +608,7 @@ OA_data: #optional OA_multiplicity: ONE #optional - #optional smp_qc: #optional - OA_importHeaderPattern: {$1}_qc #optional + OA_importHeaderPattern: "{$1}_qc" #optional OA_exportHeader: #mandatory OA_title: #optional fr: Indic de qualité -- GitLab From 134b5783d9deceecb9109846657f21ff53dc8396 Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Fri, 18 Oct 2024 13:16:31 +0200 Subject: [PATCH 19/52] =?UTF-8?q?OA=5FlangRestriction=20-->=20OA=5FlangRes?= =?UTF-8?q?trictions=20correction=20OA=5Ftitle=20et=20OA=5Fdescription=20d?= =?UTF-8?q?ans=20OA=5Fi18nDisplayPattern=20correction=20erreur=20dans=20OA?= =?UTF-8?q?=5FexportHeader=20de=20OA=5Fsubmission=20ajout=20commentaire=20?= =?UTF-8?q?sur=20OA=5FcompoentQualifiers=20pour=20suggestion=20d'un=20autr?= =?UTF-8?q?e=20nom=20de=20section=20pour=20=C3=AAtre=20plus=20g=C3=A9n?= =?UTF-8?q?=C3=A9rique=20ajout=20info=20sur=20usage=20de=20OA=5Ftile=20et?= =?UTF-8?q?=20OA=5Fdescription=20dans=20section=20OA=5Fi18nDisplayPattern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internationnalisation_i18n.md | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md index 313d71e00..9d55421cc 100644 --- a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md +++ b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md @@ -158,14 +158,12 @@ En revanche, quand il n'y a pas de file pattern et que les éléments identifian fr: "Choisir un projet..." en: "Choose a project..." OA_exportHeader: #si doit être stocké en base - OA_i18n: - OA_title: - fr: "projet" - en: "project" - OA_description: - fr: "Nom codique du projet" - en: "Project code name" + OA_title: + fr: "projet" + en: "project" OA_description: + fr: "Nom codique du projet" + en: "Project code name" - OA_component: chemin OA_reference: sites OA_i18n: @@ -176,13 +174,12 @@ En revanche, quand il n'y a pas de file pattern et que les éléments identifian fr: "Choisir un site..." en: "Choose a site..." OA_exportHeader: - OA_i18n: - OA_title: - fr: "site" - en: "site" - OA_description: - fr: "Nom codique du site" - en: "Site code name" + OA_title: + fr: "site" + en: "site" + OA_description: + fr: "Nom codique du site" + en: "Site code name" OA_timeScope: OA_component: date ```` @@ -266,7 +263,7 @@ Afin de reprendre les sections OA_title et OA_description déjà utilisée par d OA_description: fr: "valeur de la variable" en: "value of the variable" - OA_components: + OA_componentQualifiers: # OA_componentQualifiers correspond à un cas spécifique où on capture des qualificatifs de la variable, mais on peut très bien utilisé cette section pour capturer le nom de la variable (ex ici avec (.*)). Je propose OA_matchingComponents ou OA_tokenToComponents pour être plus générique - tel_variable: OA_exportHeader: OA_title: @@ -284,7 +281,7 @@ Cette section couvre deux besoins: Si la langue demandée pour l'ihm est le français par exemple, on peut souhaiter pour une information donnée restreindre l'affichage/l'extraction aux valeurs d'un composant associé à cette langue. Par exemple si on a deux colonnes dans le fichier csv, l'une contenant la description d'un site en français et l'autre la description en anglais, on souhaite que ce soit la bonne colonne qui soit utilisée pour l'affichage et l'export selon la langue demandée dans l'ihm. -Pour cela, on utilise la section `OA_langRestriction` dans la déclaration des composants ; elle contient une liste des codes des langues pour lesquels les valeurs du component concerné sont à afficher/extraire. +Pour cela, on utilise la section `OA_langRestrictions` dans la déclaration des composants ; elle contient une liste des codes des langues pour lesquels les valeurs du component concerné sont à afficher/extraire. Exemple dans cet extrait d'un yaml : @@ -301,7 +298,7 @@ Exemple dans cet extrait d'un yaml : OA_title: fr: "libellé" en: "label" - OA_langRestriction: [fr,it] + OA_langRestrictions: [fr,it] pty_label_en: OA_importHeader: plot_type_label_en OA_tags: [__ORDER_3__] @@ -309,18 +306,18 @@ Exemple dans cet extrait d'un yaml : OA_title: fr: "libellé" en: "label" - OA_langRestriction: [en,es] + OA_langRestrictions: [en,es] ```` Attention, cette option d'affichage/extraction est réservée aux cas suivants : * pour les référentiels fournis lors de l'extraction de données `\__DATA___` * pour la recherche et l'extraction en mode expert (approfondie) -Lors de l'affichage ou l'extraction de données de référentiel directement, la section `OA_langRestriction` ne s'applique pas, tous les composants sont restitués. +Lors de l'affichage ou l'extraction de données de référentiel directement, la section `OA_langRestrictions` ne s'applique pas, tous les composants sont restitués. **2. la surcharge et l'internationalisation des valeurs d'une clé naturelle** -Lorsqu'un affichage de données, référentiels ou data, ou une extraction contient une ou plusieurs colonnes faisant référence à des colonnes d'autres données (référentiels ou données expérimentales), c'est la valeur de la clé naturelle qui est est fournie par défaut (faisant office de clé étangère). La clé naturelle n'est pas dans tous les cas explicite pour les utilisateurs finaux et on peut surcharger son affichage et l'internationaliser avec l'emploi d'une section `OA_i18nDisplayPattern` dans la section `OA_naturalKey` comme dans l'exemple ci-dessous: +Lorsqu'un affichage de données, référentiels ou data, ou une extraction contient une ou plusieurs colonnes faisant référence à des colonnes d'autres données (référentiels ou données expérimentales), c'est la valeur de la clé naturelle qui est est fournie par défaut (faisant office de clé étangère). La clé naturelle n'est pas dans tous les cas explicite pour les utilisateurs finaux et on peut surcharger son affichage et l'internationaliser avec l'emploi d'une section `OA_i18nDisplayPattern` dans la section `OA_naturalKey` comme dans l'exemple ci-dessous. Le titre correspond à la valeur qui sera affichée. Ce titre est cliquable dans l'ihm et ouvre une modale affichant le détail de la ligne correspondante dans le référentiel. La description sera elle affichée au survol par le curseur de la valeur affichée (le titre ici). ````yaml tr_site_sit: #site.csv (= dispositif dans OPTmix) @@ -338,8 +335,12 @@ Lorsqu'un affichage de données, référentiels ou data, ou une extraction conti OA_component: - sit_code OA_i18nDisplayPattern: - fr: "{sit_code} ({sit_label_fr})" # {sit_code} sera remplacé par les valeur du composant sit_code et {sit_label_fr} par les valeurs du composant sit_label_fr. Ex: O108 (mélange) - en: "{sit_code} ({sit_label_en})" # ex: O108 (mixed) + OA_title: + fr: "{sit_code} ({sit_label_fr})" # {sit_code} sera remplacé par les valeur du composant sit_code et {sit_label_fr} par les valeurs du composant sit_label_fr. Ex: O108 (mélange) + en: "{sit_code} ({sit_label_en})" # ex: O108 (mixed) + OA_description: + fr: "{sit_description_fr}" + en: "{sit_description_en}" OA_basicComponents: sit_code: OA_importHeader: "site_code" @@ -348,16 +349,16 @@ Lorsqu'un affichage de données, référentiels ou data, ou une extraction conti sit_label_fr: OA_importHeader: "site_label_fr" OA_tags: [__ORDER_2__] - OA_langRestriction: [fr] #sans effet sur OA_i18nDisplayPattern + OA_langRestrictions: [fr] #sans effet sur OA_i18nDisplayPattern sit_label_en: OA_importHeader: "site_label_en" OA_tags: [__ORDER_3__] - OA_langRestriction: [en] #sans effet sur OA_i18nDisplayPattern + OA_langRestrictions: [en] #sans effet sur OA_i18nDisplayPattern ```` Dans la section `OA_i18nDisplayPattern`, on attend pour chaque langue un pattern d'affichage. il peut contenir une référence à un ou plusieurs composant du référentiel ou type de données en cours. Chaque composant est entouré par des accolades. Des caractères libres peuvent être inclus. -Chaque composant d'un référentiel ou d'un type de données qui est lié au référentiel ou au type de données faisant l'objet d'une surcharge de sa clé naturelle affichera et exportera les valeurs résultantes du pattern de la langue demandée. Les éventuelles sections `OA_langRestriction` des composants intégrés aux patterns sont sans effect sur ces valeurs résultantes des paterns. +Chaque composant d'un référentiel ou d'un type de données qui est lié au référentiel ou au type de données faisant l'objet d'une surcharge de sa clé naturelle affichera et exportera les valeurs résultantes du pattern de la langue demandée. Les éventuelles sections `OA_langRestrictions` des composants intégrés aux patterns sont sans effect sur ces valeurs résultantes des paterns. Pour illustrer le résultat de l'utilisation de la surcharge de la clé naturelle du referentiel `tr_site_sit` dans le yaml ci-dessus, voici un extrait de yaml d'un type de données dont le component `plom_sit_code` fait référence à `tr_site_sit` -- GitLab From b71711eca165199e87f865c7e9410001ad0e79de Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Mon, 21 Oct 2024 18:24:30 +0200 Subject: [PATCH 20/52] =?UTF-8?q?Mise=20en=20place=20d'une=20premi=C3=A8re?= =?UTF-8?q?=20version=20de=20schemaExample?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - génération - internationalisation - configuration --- .../domain/application/Application.java | 20 +- .../configuration/BasicComponent.java | 15 +- .../ColumnConstantHeaderByHeaderName.java | 11 +- .../configuration/ComputedComponent.java | 14 +- .../configuration/Configuration.java | 33 +- .../ConfigurationSchemaNode.java | 2 +- .../configuration/DynamicComponent.java | 20 +- .../configuration/Internationalizations.java | 104 --- .../configuration/PatternComponent.java | 18 +- .../PatternComponentQualifiers.java | 12 +- .../examples/AdditionalFileBuildExample.java | 4 +- .../BasicComponentExampleBuilder.java | 10 + .../examples/CollectionExampleBuilder.java | 60 +- .../examples/FormatExampleBuilder.java | 10 +- .../examples/I18nExampleBuilder.java | 10 +- .../examples/RightRequestExampleBuilder.java | 4 +- .../examples/TitleExampleBuilder.java | 47 +- .../InternationalizationAdditionalFile.java | 15 + ...nternationalizationAuthorizationScope.java | 15 + .../InternationalizationComponent.java | 16 + .../InternationalizationData.java | 29 + ...nternationalizationExceptionComponent.java | 4 + .../InternationalizationRightrequest.java | 16 + ...ternationalizationSubmissionComponent.java | 16 + .../InternationalizationTitle.java | 21 + .../Internationalizations.java | 31 + .../configuration/section/SectionBuilder.java | 2 +- .../type/AdditionalFileType.java | 2 +- .../configuration/type/RightRequestType.java | 4 +- .../configuration/type/StringType.java | 3 + .../domain/data/deposit/PublishContext.java | 4 +- .../deposit/context/ContextConstants.java | 36 +- .../deposit/context/DataImporterContext.java | 4 - .../configuration/ConfigurationException.java | 1 + .../FileSenderInternationalisation.java | 1 + ...ernationalisationForBuildBundleReport.java | 14 +- ...ationalisationForDownloadDatasetQuery.java | 23 +- .../InternationalizationDisplay.java | 6 +- .../fr/inra/oresing/rest/DataCsvBuilder.java | 3 +- .../fr/inra/oresing/rest/OreSiService.java | 1 + .../inra/oresing/rest/data/DataService.java | 6 +- .../model/application/ApplicationResult.java | 3 +- .../builder/AdditionalFilesBuilder.java | 9 +- .../ApplicationdescriptionBuilder.java | 2 +- .../builder/BasicComponentBuilder.java | 8 +- .../builder/CheckerDescriptionBuilder.java | 37 +- .../builder/ComputationBuilder.java | 10 +- .../builder/ComputedComponentBuilder.java | 6 +- .../builder/ConstantComponentsBuilder.java | 3 +- .../configuration/builder/DataBuilder.java | 27 +- .../builder/DynamicComponentsBuilder.java | 1 + .../configuration/builder/FieldBuilder.java | 1 + .../model/configuration/builder/I18n.java | 15 +- .../PatternComponentComponentsBuilder.java | 1 + .../builder/PatternComponentsBuilder.java | 5 +- .../builder/RightsRequestBuilder.java | 11 +- .../configuration/builder/RootBuilder.java | 41 +- .../builder/SubmissionBuilder.java | 8 +- .../configuration/builder/TagsBuilder.java | 2 +- .../builder/ValidationsBuilder.java | 9 +- .../configuration/ConfigurationTest.java | 1 + .../ConfigurationBuilderTest.java | 2 +- .../data/configuration/configuration.yaml | 6 +- .../configuration/data.result.example.json | 91 ++- .../localization.example.result.json | 772 +++++++++++++++++- .../data/configuration/schemaExample.yaml | 198 ++++- .../resources/data/configuration/travail.yaml | 2 +- .../data/monsore/monsore-with-repository.yaml | 6 +- src/test/resources/data/monsore/monsore.yaml | 6 +- .../data/validation/broken-fake-app.yaml | 2 +- 70 files changed, 1596 insertions(+), 356 deletions(-) delete mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/Internationalizations.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAdditionalFile.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAuthorizationScope.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationComponent.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationData.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationExceptionComponent.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationRightrequest.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationSubmissionComponent.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationTitle.java create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/Internationalizations.java diff --git a/src/main/java/fr/inra/oresing/domain/application/Application.java b/src/main/java/fr/inra/oresing/domain/application/Application.java index 030c54ff1..2a2496143 100644 --- a/src/main/java/fr/inra/oresing/domain/application/Application.java +++ b/src/main/java/fr/inra/oresing/domain/application/Application.java @@ -3,6 +3,9 @@ package fr.inra.oresing.domain.application; import com.google.common.collect.Maps; import fr.inra.oresing.domain.OreSiEntity; import fr.inra.oresing.domain.application.configuration.*; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationComponent; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -151,15 +154,26 @@ public class Application extends OreSiEntity { return Optional.ofNullable(getConfiguration().i18n()) .map(Internationalizations::getData) .map(data -> data.get(dataName)) - .map(Internationalizations.InternationalizationData::getComponents) + .map(InternationalizationData::getComponents) .map(component -> component.get(componentName)) - .map(Internationalizations.InternationalizationData.InternationalizationComponent::getExportHeader) - .map(exportHeader -> exportHeader.get(language)) + .map(InternationalizationComponent::getExportHeader) + .map(exportHeader -> exportHeader.getTitle().get(language)) .orElse(findComponentOfData(dataName, componentName) .map(ComponentDescription::importHeader) .orElse(componentName)); } + public String internationalizeHeaderDescription(String dataName, String componentName, String language) { + return Optional.ofNullable(getConfiguration().i18n()) + .map(Internationalizations::getData) + .map(data -> data.get(dataName)) + .map(InternationalizationData::getComponents) + .map(component -> component.get(componentName)) + .map(InternationalizationComponent::getExportHeader) + .map(exportHeader -> exportHeader.getDescription().get(language)) + .orElse(null); + } + private Function<Node, Optional<Node>> findParentNodeForDataName(String dataName) { return node -> findParentNode(dataName, node); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/BasicComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/BasicComponent.java index 5108499b2..74be8149d 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/BasicComponent.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/BasicComponent.java @@ -5,6 +5,8 @@ import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; import fr.inra.oresing.domain.application.configuration.checker.ComputationChecker; +import java.util.List; +import java.util.Locale; import java.util.Optional; import java.util.Set; @@ -15,6 +17,7 @@ public record BasicComponent( Set<Tag> tags, String importHeader, String exportHeaderName, + List<Locale> langRestrictions, boolean required, ComponentPresenceConstraint mandatory, CheckerDescription checker, @@ -22,7 +25,17 @@ public record BasicComponent( ) implements ComponentDescription { @Override public ComponentDescription withSubmission(final String submission) { - return new BasicComponent(type(), componentKey(), defaultValue(), tags(), importHeader(), exportHeaderName(), required(), mandatory(), checker(), submission); + return new BasicComponent(type(), + componentKey(), + defaultValue(), + tags(), + importHeader(), + exportHeaderName(), + langRestrictions(), + required(), + mandatory(), + checker(), + submission); } @Override diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ColumnConstantHeaderByHeaderName.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ColumnConstantHeaderByHeaderName.java index 43b3475de..b7eefd7f1 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ColumnConstantHeaderByHeaderName.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ColumnConstantHeaderByHeaderName.java @@ -1,5 +1,12 @@ package fr.inra.oresing.domain.application.configuration; -public record ColumnConstantHeaderByHeaderName(ConstantImportHeaderType type, int rowNumber, - String headerName) implements ColumnConstantHeader { +import java.util.List; +import java.util.Locale; + +public record ColumnConstantHeaderByHeaderName( + ConstantImportHeaderType type, + int rowNumber, + String headerName, + List<Locale>langRestrictions +) implements ColumnConstantHeader { } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ComputedComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ComputedComponent.java index 94cfc1bba..1ffdf540b 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ComputedComponent.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ComputedComponent.java @@ -6,6 +6,8 @@ import fr.inra.oresing.domain.application.configuration.checker.ComputationCheck import fr.inra.oresing.domain.checker.Multiplicity; import fr.inra.oresing.domain.transformer.transformer.TransformationConfiguration; +import java.util.List; +import java.util.Locale; import java.util.Optional; import java.util.Set; @@ -13,6 +15,7 @@ public record ComputedComponent(ComponentDescriptionType type, String componentKey, Set<Tag> tags, String exportHeaderName, + List<Locale> langRestrictions, boolean required, ComponentPresenceConstraint mandatory, CheckerDescription checker, @@ -24,7 +27,16 @@ public record ComputedComponent(ComponentDescriptionType type, } public ComponentDescription withSubmission(final String submission) { - return new ComputedComponent(type(), componentKey(), tags(), exportHeaderName(), required(), mandatory(), checker(), computationChecker(), submission); + return new ComputedComponent(type(), + componentKey(), + tags(), + exportHeaderName(), + langRestrictions(), + required(), + mandatory(), + checker(), + computationChecker(), + submission); } Multiplicity multiplicity(){ return Optional.ofNullable(checker) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java b/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java index 5b80520f7..611a85422 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java @@ -1,6 +1,10 @@ package fr.inra.oresing.domain.application.configuration; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationComponent; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationTitle; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.data.read.query.ComponentType; import org.apache.commons.collections4.CollectionUtils; @@ -206,16 +210,35 @@ public record Configuration(Version version, Set<Tag> tags, )); } - public String getInternationalizedHeader(String dataName, String componentName, String locale) { - Optional<Map<Locale, String>> localizedExportHeaders = Optional.ofNullable(i18n()) + public String getInternationalizedHeaderDescription(String dataName, + String componentName, + String locale) { + Optional<InternationalizationTitle> localizedExportHeaders = Optional.ofNullable(i18n()) .map(Internationalizations::getData) .map(stringInternationalizationDataMap -> stringInternationalizationDataMap.get(dataName)) - .map(Internationalizations.InternationalizationData::getComponents) + .map(InternationalizationData::getComponents) .map(stringInternationalizationComponentMap -> stringInternationalizationComponentMap.get(componentName)) - .map(Internationalizations.InternationalizationData.InternationalizationComponent::getExportHeader); + .map(InternationalizationComponent::getExportHeader); return localizedExportHeaders + .map(exportHeaderI18n->exportHeaderI18n.getDescription()) .map(localizationMap -> localizationMap.get(locale)) - .orElse(localizedExportHeaders.map(localizationMap -> localizationMap.get(applicationDescription().defaultLanguage().getLanguage())).orElse(componentName)); + .orElse(null); + + } + + public String getInternationalizedHeader(String dataName, + String componentName, + String locale) { + Optional<InternationalizationTitle> localizedExportHeaders = Optional.ofNullable(i18n()) + .map(Internationalizations::getData) + .map(stringInternationalizationDataMap -> stringInternationalizationDataMap.get(dataName)) + .map(InternationalizationData::getComponents) + .map(stringInternationalizationComponentMap -> stringInternationalizationComponentMap.get(componentName)) + .map(InternationalizationComponent::getExportHeader); + return localizedExportHeaders + .map(exportHeaderI18n->exportHeaderI18n.getTitle()) + .map(localizationMap -> localizationMap.get(locale)) + .orElse(localizedExportHeaders.map(localizationMap -> localizationMap.getTitle().get(applicationDescription().defaultLanguage().getLanguage())).orElse(componentName)); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java index 054ae6859..f80015442 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java @@ -13,7 +13,7 @@ public class ConfigurationSchemaNode { public static final String OA_I_18_N_DISPLAY_PATTERN = "OA_i18nDisplayPattern"; public static final String OA_TITLE = "OA_title"; public static final String OA_LANG_RESTRICTIONS = "OA_langRestrictions"; - public static final String OA_FORMAT = "OA_format"; + public static final String OA_FORM_FIELDS = "OA_formFields"; public static final String OA_MIN = "OA_min"; public static final String OA_DURATION = "OA_duration"; public static final String OA_PATTERN = "OA_pattern"; diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/DynamicComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/DynamicComponent.java index 63ac14e19..dad09d79b 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/DynamicComponent.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/DynamicComponent.java @@ -4,20 +4,36 @@ import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; import fr.inra.oresing.domain.application.configuration.checker.ComputationChecker; +import java.util.List; +import java.util.Locale; import java.util.Optional; import java.util.Set; public record DynamicComponent(ComponentDescriptionType type, String componentKey, ComputationChecker defaultValue, - String exportHeaderName, Set<Tag> tags, + String exportHeaderName, + List<Locale> langRestrictions, + Set<Tag> tags, boolean required, ComponentPresenceConstraint mandatory, CheckerDescription checker, String prefix, String reference, String referenceColumnToLookForHeader, String submissionAuthorizationScope) implements ComponentDescription { public ComponentDescription withSubmission(final String submission) { - return new DynamicComponent(type(), componentKey(), defaultValue(), exportHeaderName(), tags(), required(), mandatory(), checker(), prefix(), reference(), referenceColumnToLookForHeader(), submission); + return new DynamicComponent(type(), + componentKey(), + defaultValue(), + exportHeaderName(), + langRestrictions(), + tags(), + required(), + mandatory(), + checker(), + prefix(), + reference(), + referenceColumnToLookForHeader(), + submission); } @Override diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/Internationalizations.java b/src/main/java/fr/inra/oresing/domain/application/configuration/Internationalizations.java deleted file mode 100644 index 7b583092f..000000000 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/Internationalizations.java +++ /dev/null @@ -1,104 +0,0 @@ -package fr.inra.oresing.domain.application.configuration; - -import lombok.Getter; -import lombok.Setter; - -import java.util.Locale; -import java.util.Map; - -@Setter -public class Internationalizations { - public static final String TAGS = "tags"; - public static final String APPLICATION = "application"; - public static final String DATA = "data"; - public static final String FIELDS = "fields"; - public static final String DESCRIPTION = "description"; - public static final String RIGHT_REQUEST = "rightsrequest"; - public static final String ADDITIONAL_FILES = "additionalFiles"; - Map<String, Map<Locale, String>> tags = Map.of(); - @Getter - Map<Locale, String> application = Map.of(); - @Getter - Map<String, InternationalizationData> data = Map.of(); - @Getter - InternationalizationRightrequest rightsrequest= new InternationalizationRightrequest(); - @Getter - Map<String, InternationalizationAdditionalFile> additionalFiles = Map.of(); - - public Map getTags() { - return tags; - } - - @Setter - @Getter - public static class InternationalizationRightrequest { - Map<Locale, String> description = Map.of(); - Map<String, Map<Locale, String>> fields = Map.of(); - - } - - @Setter - @Getter - public static class InternationalizationAuthorizations { - Map<String, InternationalizationAuthorizationscope> authorizationscope = Map.of(); - Map<String, Map<Locale, String>> datagroups = Map.of(); - - } - - @Setter - @Getter - public static class InternationalizationAuthorizationscope { - Map<Locale, String> exportHeader = Map.of(); - Map<Locale, String> i18n = Map.of(); - - } - - @Setter - @Getter - public static class InternationalizationAdditionalFile { - Map<Locale, String> i18n = Map.of(); - Map<String, Map<Locale, String>> fields = Map.of(); - - } - - @Setter - @Getter - public static class InternationalizationData { - public static final String I18N = "i18n"; - public static final String I18N_DISPLAY_PATTERN = "i18nDisplayPattern"; - public static final String COMPONENTS = "components"; - public static final String VALIDATIONS = "validations"; - public static final String SUBMISSIONS = "submissions"; - - Map<String, Map<Locale, String>> validations = Map.of(); - - Map<String, InternationalizationComponent> components = Map.of(); - InternationalizationSubmissionComponent submissions = new InternationalizationSubmissionComponent(); - - Map<String, Map<Locale, String>> i18nColumns = Map.of(); - Map<Locale, String> i18nDisplay = Map.of(); - Map<Locale, String> i18n = Map.of(); - - @Setter - @Getter - public static class InternationalizationComponent{ - public static final String EXPORT_HEADER = "exportHeader"; - public static final String COMPUTATION = "computation"; - public static final String EXCEPTIONS = "exceptions"; - Map<Locale, String> exportHeader = Map.of(); - Map<String, Map<String, Map<Locale, String>>> computation = Map.of(); - - } - - @Setter - @Getter - public static class InternationalizationSubmissionComponent{ - public static final String REFERENCE_SCOPES = "referenceScopes"; - - Map<String, Map<Locale, String>> referenceScopes = Map.of(); - - } - - - } -} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java index cf7e654fc..976a9b25b 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java @@ -4,15 +4,14 @@ import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; import fr.inra.oresing.domain.application.configuration.checker.ComputationChecker; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; public record PatternComponent(ComponentDescriptionType type, String componentKey, ComputationChecker defaultValue, String exportHeaderName, + List<Locale> langRestrictions, Set<Tag> tags, boolean required, ComponentPresenceConstraint mandatory, @@ -21,7 +20,18 @@ public record PatternComponent(ComponentDescriptionType type, Map<String, PatternComponentQualifiers> patternColumnComponents, String submissionAuthorizationScope) implements ComponentDescription { public ComponentDescription withSubmission(final String submission) { - return new PatternComponent(type(), componentKey(), defaultValue(), exportHeaderName(), tags(), required(), mandatory(), checker(), patternForComponents(), patternColumnComponents(), submission); + return new PatternComponent(type(), + componentKey(), + defaultValue(), + exportHeaderName(), + langRestrictions(), + tags(), + required(), + mandatory(), + checker(), + patternForComponents(), + patternColumnComponents(), + submission); } public String buildImportHeaderForComponent() { diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentQualifiers.java b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentQualifiers.java index 33c0b0246..e0cfbb11f 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentQualifiers.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentQualifiers.java @@ -2,6 +2,8 @@ package fr.inra.oresing.domain.application.configuration; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; +import java.util.List; +import java.util.Locale; import java.util.Set; public record PatternComponentQualifiers( @@ -9,12 +11,20 @@ public record PatternComponentQualifiers( String componentKey, Set<Tag> tags, String exportHeaderName, + List<Locale> langRestrictions, int patternNumber, CheckerDescription checker, String submissionAuthorizationScope) implements ComponentDescription { @Override public ComponentDescription withSubmission(final String submission) { - return new PatternComponentQualifiers(type(), componentKey(), tags(), exportHeaderName(), patternNumber(), checker(), submission); + return new PatternComponentQualifiers(type(), + componentKey(), + tags(), + exportHeaderName(), + langRestrictions(), + patternNumber(), + checker(), + submission); } } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/AdditionalFileBuildExample.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/AdditionalFileBuildExample.java index b78e36815..9a1c9fc8a 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/AdditionalFileBuildExample.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/AdditionalFileBuildExample.java @@ -9,7 +9,7 @@ class AdditionalFileBuildExample { protected static final AdditionalFileType FIRST = buildAdditionalFileSchema( TitleExampleBuilder.buildTitle( I18nExampleBuilder.buildI18n("Fichier", "File"), - I18nExampleBuilder.buildI18n("Fichier à joindre à l'application", "File to oin to application") + I18nExampleBuilder.buildI18n("Fichier à joindre à l'application", "File to join to application") ) ); protected static final AdditionalFileType SECOND = buildAdditionalFileSchema( @@ -23,7 +23,7 @@ class AdditionalFileBuildExample { return new AdditionalFileType( new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ put(ConfigurationSchemaNode.OA_I_18_N, title); - put(ConfigurationSchemaNode.OA_FORMAT, new CollectionType.MapType<FormatType>( + put(ConfigurationSchemaNode.OA_FORM_FIELDS, new CollectionType.MapType<FormatType>( new LinkedHashMap<String, FormatType>() {{ put("nom", FormatExampleBuilder.NOM); put("projet", FormatExampleBuilder.PROJET); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java index c396f95f2..297ab1e26 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java @@ -9,6 +9,16 @@ import java.util.List; import java.util.Map; class BasicComponentExampleBuilder { + public static final BasicComponentType TYPE_DE_SITES_KEY = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR_EN); + public static final BasicComponentType TYPE_DE_SITES_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.TYPE_SITES_NOM, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType TYPE_DE_SITES_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.TYPE_SITES_NOM, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType TYPE_DE_SITES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.TYPE_SITES_DEFINITION, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType TYPE_DE_SITES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.TYPE_SITES_DEFINITION, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType PROJET_KEY = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR_EN); + public static final BasicComponentType PROJET_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.PROJET_NOM, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType PROJET_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.PROJET_NOM, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType PROJET_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.PROJET_DEFINITION, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType PROJET_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.PROJET_DEFINITION, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); protected static final BasicComponentType ESPECES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); protected static final BasicComponentType ESPECES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); protected static final BasicComponentType ESPECES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.ESPECE, TitleExampleBuilder.ESPECE, StringCheckerExampleBuilder.ESPECE, null, null); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java index 3ac42e2a3..66902d6cf 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java @@ -24,11 +24,11 @@ class CollectionExampleBuilder { }}, false, false, BasicComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<BasicComponentType> SITES_BASIC_COMPONENTS = new CollectionType.MapType<BasicComponentType>(new LinkedHashMap<String, BasicComponentType>() {{ put("tze_type_nom", BasicComponentExampleBuilder.TYPE_DE_SITES); - put("zet_nom_key", BasicComponentType.EMPTY_INSTANCE()); - put("zet_nom_fr", BasicComponentType.EMPTY_INSTANCE()); - put("zet_nom_en", BasicComponentType.EMPTY_INSTANCE()); - put("zet_description_fr", BasicComponentType.EMPTY_INSTANCE()); - put("zet_chemin_parent", BasicComponentExampleBuilder.CHEMIN_PARENT); + put("zet_nom_key", BasicComponentExampleBuilder.TYPE_DE_SITES_KEY); + put("zet_nom_fr", BasicComponentExampleBuilder.TYPE_DE_SITES_FR); + put("zet_nom_en", BasicComponentExampleBuilder.TYPE_DE_SITES_EN); + put("zet_description_fr", BasicComponentExampleBuilder.TYPE_DE_SITES_DEFINITION_FR); + put("zet_chemin_parent", BasicComponentExampleBuilder.TYPE_DE_SITES_DEFINITION_EN); }}, false, false, BasicComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<ComputedComponentType> SITES_COMPUTED_COMPONENTS = new CollectionType.MapType<ComputedComponentType>(new LinkedHashMap<String, ComputedComponentType>() {{ put("zet_computed_key", ComputedComponentExampleBuilder.SITES); @@ -41,18 +41,18 @@ class CollectionExampleBuilder { protected static final CollectionType.MapType<DynamicComponentType> TAXON_DYNAMIC_COMPONENTS = new CollectionType.MapType<DynamicComponentType>(Map.of("tax_propriete_taxon", DynamicComponentsExampleBuilder.PROPRIETE_TAXON), false, false, DynamicComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<ComputedComponentType> ESPECE_COMPUTED_COMPONENTS = new CollectionType.MapType<ComputedComponentType>(Map.of("spe_date_heure", ComputedComponentExampleBuilder.DATE_HEURE), false, false, ComputedComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<BasicComponentType> PROJET_BASIC_COMPONENTS = new CollectionType.MapType<BasicComponentType>(new LinkedHashMap<String, BasicComponentType>() {{ - put("pro_nom_key", BasicComponentType.EMPTY_INSTANCE()); - put("pro_nom_fr", BasicComponentType.EMPTY_INSTANCE()); - put("pro_nom_en", BasicComponentType.EMPTY_INSTANCE()); - put("pro_definition_fr", BasicComponentType.EMPTY_INSTANCE()); - put("pro_definition_en", BasicComponentType.EMPTY_INSTANCE()); + put("pro_nom_key", BasicComponentExampleBuilder.PROJET_KEY); + put("pro_nom_fr", BasicComponentExampleBuilder.PROJET_FR); + put("pro_nom_en", BasicComponentExampleBuilder.PROJET_EN); + put("pro_definition_fr", BasicComponentExampleBuilder.PROJET_DEFINITION_FR); + put("pro_definition_en", BasicComponentExampleBuilder.PROJET_DEFINITION_EN); }}, false, false, BasicComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<BasicComponentType> TYPE_DE_SITES_BASIC_COMPONENTS = new CollectionType.MapType<BasicComponentType>(new LinkedHashMap<String, BasicComponentType>() {{ - put("tze_nom_key", BasicComponentType.EMPTY_INSTANCE()); - put("tze_nom_fr", BasicComponentType.EMPTY_INSTANCE()); - put("tze_nom_en", BasicComponentType.EMPTY_INSTANCE()); - put("tze_definition_fr", BasicComponentType.EMPTY_INSTANCE()); - put("tze_definition_en", BasicComponentType.EMPTY_INSTANCE()); + put("tze_nom_key", BasicComponentExampleBuilder.TYPE_DE_SITES_KEY); + put("tze_nom_fr", BasicComponentExampleBuilder.TYPE_DE_SITES_FR); + put("tze_nom_en", BasicComponentExampleBuilder.TYPE_DE_SITES_EN); + put("tze_definition_fr", BasicComponentExampleBuilder.TYPE_DE_SITES_DEFINITION_FR); + put("tze_definition_en", BasicComponentExampleBuilder.TYPE_DE_SITES_DEFINITION_EN); }}, false, false, BasicComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<BasicComponentType> DATA_BASIC_COMPONENTS = new CollectionType.MapType<BasicComponentType>(new LinkedHashMap<String, BasicComponentType>() {{ @@ -95,21 +95,13 @@ class CollectionExampleBuilder { put("secondAdditionalfile", AdditionalFileBuildExample.SECOND); }} , false, false, AdditionalFileType.EMPTY_INSTANCE()); - protected static final CollectionType.MapType<I18nType> RIGHT_REQUEST_DESCRIPTION = new CollectionType.MapType<I18nType>( - Map.of(ConfigurationSchemaNode.OA_I_18_N, - I18nExampleBuilder.buildI18n( - "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire", - "You can request rights to the monsore application by filling out this form") - ), - false, false, I18nType.EMPTY_INSTANCE() - ); protected static final CollectionType.MapType<ApplicationType.ComponentType> COMPONENT_QUALIFIERS = new CollectionType.MapType<ApplicationType.ComponentType>( new LinkedHashMap<String, ApplicationType.ComponentType>() {{ put("profondeur", PatternComponentQualifierExampleBuilder.PROFONDEUR); put("repetition", PatternComponentQualifierExampleBuilder.REPETITION); }}, false, false, PatternComponentQualifierType.EMPTY_INSTANCE()); - protected static final CollectionType.MapType<FormatType> RIGHT_REQUEST_FORMATS = new CollectionType.MapType<FormatType>( + protected static final CollectionType.MapType<FormatType> RIGHT_REQUEST_FORM_FIELDS = new CollectionType.MapType<FormatType>( new LinkedHashMap<String, FormatType>() {{ put("nom", FormatExampleBuilder.NOM); put("nom", FormatExampleBuilder.PROJET); @@ -127,27 +119,27 @@ class CollectionExampleBuilder { put("tze_definition_fr", I18nExampleBuilder.buildI18n("tze_definition_fr", "tze_definition_en")); }}); protected static final TitleType ESPECE_DISPLAY = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n("{spe_species}", "{spe_species}"), - I18nExampleBuilder.buildI18n("{spe_definition_fr}", "{spe_definition_en}") + I18nExampleBuilder.buildI18n("\"{spe_species}\"", "\"{spe_species}\""), + I18nExampleBuilder.buildI18n("\"{spe_definition_fr}\"", "\"{spe_definition_en}\"") ); protected static final TitleType NOM_ZET_DISPLAY = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n("'{zet_nom_fr}'", "'{zet_nom_en}'"), - I18nExampleBuilder.buildI18n("'{zet_description_fr}'", "'{zet_description_fr}'") + I18nExampleBuilder.buildI18n("\"'{zet_nom_fr}'\"", "\"'{zet_nom_en}'\""), + I18nExampleBuilder.buildI18n("\"'{zet_description_fr}'\"", "\"'{zet_description_fr}'\"") ); protected static final TitleType PROJET_DISPLAY = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n("'{pro_nom_fr}'", "'{pro_nom_en}'"), - I18nExampleBuilder.buildI18n("'{pro_definition_fr}'", "'{pro_definition_en}'") + I18nExampleBuilder.buildI18n("\"'{pro_nom_fr}'\"", "\"'{pro_nom_en}'\""), + I18nExampleBuilder.buildI18n("\"'{pro_definition_fr}'\"", "\"'{pro_definition_en}'\"") ); protected static final TitleType NOM_TZE_DISPLAY = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n("'De type : {tze_nom_fr}'", "'Of type : {tze_nom_en}'"), - I18nExampleBuilder.buildI18n("'{tze_definition_fr}'", "'{tze_definition_en}'") + I18nExampleBuilder.buildI18n("\"'De type : {tze_nom_fr}'\"", "\"'Of type : {tze_nom_en}'\""), + I18nExampleBuilder.buildI18n("\"'{tze_definition_fr}'\"", "\"'{tze_definition_en}'\"") ); protected static final TitleType TAXON_DISPLAY = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n("'{tax_taxon}'", "'{tax_taxon}'"), + I18nExampleBuilder.buildI18n("\"'{tax_taxon}'\"", "\"'{tax_taxon}'\""), null ); protected static final TitleType PROPRIETE_TAXON_DISPLAY = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n("'{ptx_propriete}'", "'{ptx_propriete}'"), + I18nExampleBuilder.buildI18n("\"'{ptx_propriete}'\"", "\"'{ptx_propriete}'\""), null ); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FormatExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FormatExampleBuilder.java index 7be95a9dd..4cffb592f 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FormatExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/FormatExampleBuilder.java @@ -8,28 +8,28 @@ import java.util.HashMap; import java.util.Map; class FormatExampleBuilder { - protected static final FormatType PROJET = buildFormatSchema( + protected static final FormatType PROJET = buildFormFieldsSchema( TitleExampleBuilder.PROJET, true, ReferenceCheckerExampleBuilder.buildReferenceChecker("tr_projet_pro", Multiplicity.MANY, false, false) ); - protected static final FormatType NOM = buildFormatSchema( + protected static final FormatType NOM = buildFormFieldsSchema( TitleExampleBuilder.NOM, true, StringCheckerExampleBuilder.buildStringChecker("\"[a-z]*\"", Multiplicity.ONE) ); - protected static final FormatType START_DATE = buildFormatSchema( + protected static final FormatType START_DATE = buildFormFieldsSchema( TitleExampleBuilder.START_DATE, true, DateCheckerExampleBuilder.DDMMYYYY ); - protected static final FormatType ORGANISME = buildFormatSchema( + protected static final FormatType ORGANISME = buildFormFieldsSchema( TitleExampleBuilder.ORGANISME, false, StringCheckerExampleBuilder.ALL ); - protected static FormatType buildFormatSchema(final TitleType title, final boolean required, final CheckerType checker) { + protected static FormatType buildFormFieldsSchema(final TitleType title, final boolean required, final CheckerType checker) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); children.put(ConfigurationSchemaNode.OA_I_18_N, title); if (required) { diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/I18nExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/I18nExampleBuilder.java index 20c675aa9..203eed4f6 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/I18nExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/I18nExampleBuilder.java @@ -11,13 +11,19 @@ import java.util.Map; class I18nExampleBuilder { protected static CollectionType.ArrayType<StringType> LANG_RESTRICTION_FR = new CollectionType.ArrayType<>( - List.of( new StringType("fr", false)), + List.of(StringType.FR), false, false, StringType.EMPTY_INSTANCE() ); protected static CollectionType.ArrayType<StringType> LANG_RESTRICTION_EN = new CollectionType.ArrayType<>( - List.of( new StringType("en", false)), + List.of( StringType.EN), + false, + false, + StringType.EMPTY_INSTANCE() + ); + protected static CollectionType.ArrayType<StringType> LANG_RESTRICTION_FR_EN = new CollectionType.ArrayType<>( + List.of( StringType.FR, StringType.EN), false, false, StringType.EMPTY_INSTANCE() diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/RightRequestExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/RightRequestExampleBuilder.java index 20339c740..4bf488802 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/RightRequestExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/RightRequestExampleBuilder.java @@ -12,11 +12,11 @@ import java.util.Map; class RightRequestExampleBuilder { protected static RightRequestType buildRightRequestSchema() { final Map<String, ConfigurationSchemaNodeType> children = new LinkedHashMap<String, ConfigurationSchemaNodeType>() {{ - put(ConfigurationSchemaNode.OA_DESCRIPTION, CollectionExampleBuilder.RIGHT_REQUEST_DESCRIPTION); + put(ConfigurationSchemaNode.OA_I_18_N, TitleExampleBuilder.RIGHT_REQUEST_DESCRIPTION); }}; final Map<String, FormatType> formats = new HashMap<String, FormatType>(); - children.put(ConfigurationSchemaNode.OA_FORMAT, CollectionExampleBuilder.RIGHT_REQUEST_FORMATS); + children.put(ConfigurationSchemaNode.OA_FORM_FIELDS, CollectionExampleBuilder.RIGHT_REQUEST_FORM_FIELDS); return new RightRequestType(children); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java index 778e26f25..5921cf8f0 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java @@ -14,6 +14,51 @@ class TitleExampleBuilder { public static final TitleType QUALITY_CLASS = buildTitle( buildI18n("Indic de qualité", "Quality class"), buildI18n("0 pour une valeur valide ; 2 pour une valeur incorrecte", " 0 for valid value; 2 for bad value"));; + public static final ConfigurationSchemaNodeType RIGHT_REQUEST_DESCRIPTION = TitleExampleBuilder.buildTitle( + I18nExampleBuilder.buildI18n( + "Formulaire de demande de droits de l'application MONSORE", + "MONSORE App Rights Request Form"), + I18nExampleBuilder.buildI18n( + "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire", + "You can request rights to the monsore application by filling out this form") + ); + public static final TitleType TYPE_SITES_NOM = TitleExampleBuilder.buildTitle( + + + I18nExampleBuilder.buildI18n( + "Nom du type de site", + "Site type name"), + I18nExampleBuilder.buildI18n( + "Le nom du type de site", + "A site type name") + ); + public static final TitleType TYPE_SITES_DEFINITION = TitleExampleBuilder.buildTitle( + + I18nExampleBuilder.buildI18n( + "Description du type de site", + "Site type description"), + I18nExampleBuilder.buildI18n( + "Une description du type de site", + "A site type description") + ); + public static final TitleType PROJET_NOM = TitleExampleBuilder.buildTitle( + + I18nExampleBuilder.buildI18n( + "Nom du projet", + "Project name"), + I18nExampleBuilder.buildI18n( + "Le nom du projet", + "The project name") + ); + public static final TitleType PROJET_DEFINITION = TitleExampleBuilder.buildTitle( + + I18nExampleBuilder.buildI18n( + "Définition du projet", + "Project définition"), + I18nExampleBuilder.buildI18n( + "Une description du projet", + "A roject description") + ); protected static final TitleType GENERIC_TITLE = buildTitle( buildI18n("un titre", "a title"), buildI18n("Ceci est un titre", " this is a title")); @@ -59,7 +104,7 @@ class TitleExampleBuilder { protected static final TitleType ESPECE = buildTitle( buildI18n("Espèce", "Species"), - buildI18n("Référentiel des espèce", "Species repository") + buildI18n("Référentiel des espèces", "Species repository") ); protected static final TitleType DATA = diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAdditionalFile.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAdditionalFile.java new file mode 100644 index 000000000..db25aee3a --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAdditionalFile.java @@ -0,0 +1,15 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Locale; +import java.util.Map; + +@Setter +@Getter +public class InternationalizationAdditionalFile { + InternationalizationTitle i18n; + Map<String, InternationalizationTitle> fields = Map.of(); + +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAuthorizationScope.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAuthorizationScope.java new file mode 100644 index 000000000..6436de121 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAuthorizationScope.java @@ -0,0 +1,15 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Locale; +import java.util.Map; + +@Setter +@Getter +public class InternationalizationAuthorizationScope { + InternationalizationTitle exportHeader; + InternationalizationTitle i18n; + +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationComponent.java new file mode 100644 index 000000000..7ce9aab62 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationComponent.java @@ -0,0 +1,16 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Locale; +import java.util.Map; + +@Setter +@Getter +public class InternationalizationComponent { + public static final String EXPORT_HEADER = "exportHeader"; + public static final String EXCEPTIONS = "exceptions"; + InternationalizationTitle exportHeader; + +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationData.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationData.java new file mode 100644 index 000000000..ef3df6b98 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationData.java @@ -0,0 +1,29 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +import lombok.Getter; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +@Setter +@Getter +public class InternationalizationData { + public static final String I18N = "i18n"; + public static final String I18N_DISPLAY_PATTERN = "i18nDisplayPattern"; + public static final String COMPONENTS = "components"; + public static final String VALIDATIONS = "validations"; + public static final String SUBMISSIONS = "submissions"; + + Map<String, Map<Locale, String>> validations = Map.of(); + Map<String, Map<String, Map<Locale, String>>> exceptions = Map.of(); + + Map<String, InternationalizationComponent> components = Map.of(); + InternationalizationSubmissionComponent submissions = new InternationalizationSubmissionComponent(); + + InternationalizationTitle i18nDisplayPattern; + InternationalizationTitle i18n; + + +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationExceptionComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationExceptionComponent.java new file mode 100644 index 000000000..4743b5b48 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationExceptionComponent.java @@ -0,0 +1,4 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +public class InternationalizationExceptionComponent extends InternationalizationSubmissionComponent { +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationRightrequest.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationRightrequest.java new file mode 100644 index 000000000..14c4081c3 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationRightrequest.java @@ -0,0 +1,16 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +@Setter +@Getter +public class InternationalizationRightrequest { + public static final String FIELDS = "fields"; + public static final String I_18_N = "i18n"; + Map<String, InternationalizationTitle> fields = Map.of(); + InternationalizationTitle i18n; + +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationSubmissionComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationSubmissionComponent.java new file mode 100644 index 000000000..ca6365380 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationSubmissionComponent.java @@ -0,0 +1,16 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Locale; +import java.util.Map; + +@Setter +@Getter +public class InternationalizationSubmissionComponent { + public static final String REFERENCE_SCOPES = "referenceScopes"; + + Map<String, InternationalizationTitle> referenceScopes = Map.of(); + +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationTitle.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationTitle.java new file mode 100644 index 000000000..bfd5371a2 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationTitle.java @@ -0,0 +1,21 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Locale; +import java.util.Map; + +@Setter +@Getter +public class InternationalizationTitle { + + public static final String TITLE = "title"; + public static final String DESCRIPTION = "description"; + + public static final String REFERENCE_SCOPES = "referenceScopes"; + + Map<Locale, String> title = Map.of(); + Map<Locale, String> description = Map.of(); + +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/Internationalizations.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/Internationalizations.java new file mode 100644 index 000000000..5696fb701 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/Internationalizations.java @@ -0,0 +1,31 @@ +package fr.inra.oresing.domain.application.configuration.internationalization; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Locale; +import java.util.Map; + +@Setter +public class Internationalizations { + public static final String TAGS = "tags"; + public static final String APPLICATION = "application"; + public static final String DATA = "data"; + public static final String FIELDS = "fields"; + public static final String RIGHT_REQUEST = "rightsrequest"; + public static final String ADDITIONAL_FILES = "additionalFiles"; + Map<String, Map<Locale, String>> tags = Map.of(); + @Getter + InternationalizationTitle application ; + @Getter + Map<String, InternationalizationData> data = Map.of(); + @Getter + InternationalizationRightrequest rightsrequest= new InternationalizationRightrequest(); + @Getter + Map<String, InternationalizationAdditionalFile> additionalFiles = Map.of(); + + public Map getTags() { + return tags; + } + +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java index 4e91d18cb..ca0e3c21f 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/section/SectionBuilder.java @@ -163,7 +163,7 @@ public class SectionBuilder { Optional.of(StaticMapType.VALIDATIONS().type()); case ConfigurationSchemaNode.OA_REFERENCE_SCOPES -> Optional.of(StaticMapType.REFERENCE_SCOPES().type()); - case ConfigurationSchemaNode.OA_FORMAT -> + case ConfigurationSchemaNode.OA_FORM_FIELDS -> Optional.of(StaticMapType.FORMATS().type()); case ConfigurationSchemaNode.OA_BASIC_COMPONENTS -> Optional.of(StaticMapType.BASIC_COMPONENTS().type()); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/AdditionalFileType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/AdditionalFileType.java index 1e0c832eb..51e7ef363 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/AdditionalFileType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/AdditionalFileType.java @@ -11,7 +11,7 @@ public record AdditionalFileType(SectionBuilder sectionBuilder, Map<String, Conf public static SectionBuilder SECTION_BUILDER(){ return SectionBuilder.getInstance() .withMandatorySections( - new LabelDescription(ConfigurationSchemaNode.OA_FORMAT, ApplicationDescriptionType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_FORM_FIELDS, ApplicationDescriptionType.EMPTY_INSTANCE()) ) .withOptionalSections( new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, TitleType.EMPTY_INSTANCE()) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/RightRequestType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/RightRequestType.java index 7000e1678..0adfa1a5a 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/RightRequestType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/RightRequestType.java @@ -12,10 +12,10 @@ public record RightRequestType(SectionBuilder sectionBuilder, public static SectionBuilder SECTION_BUILDER(){ return SectionBuilder.getInstance() .withMandatorySections( - new LabelDescription(ConfigurationSchemaNode.OA_FORMAT, FormatType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_FORM_FIELDS, FormatType.EMPTY_INSTANCE()) ) .withOptionalSections( - new LabelDescription(ConfigurationSchemaNode.OA_DESCRIPTION, I18nType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()) ); } public static RightRequestType EMPTY_INSTANCE(){ diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/StringType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/StringType.java index 61447619f..b2ad5610c 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/StringType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/StringType.java @@ -3,6 +3,9 @@ package fr.inra.oresing.domain.application.configuration.type; public record StringType(String children, boolean required) implements FinalType<String> { + public static final StringType FR = new StringType("fr", false); + public static final StringType EN = new StringType("en", false); + public static StringType EMPTY_INSTANCE() { return new StringType(""); } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/PublishContext.java b/src/main/java/fr/inra/oresing/domain/data/deposit/PublishContext.java index 3ad9c1f43..0f1182180 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/PublishContext.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/PublishContext.java @@ -4,7 +4,7 @@ import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.BinaryFileDataset; import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.configuration.Configuration; -import fr.inra.oresing.domain.application.configuration.Internationalizations; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.checker.LineChecker; import fr.inra.oresing.domain.data.DataValue; import fr.inra.oresing.domain.file.FileOrUUID; @@ -12,8 +12,6 @@ import fr.inra.oresing.domain.file.FileOrUUID; import java.util.*; import java.util.function.Function; -import static org.springframework.data.repository.util.ClassUtils.ifPresent; - public record PublishContext( FileOrUUID fileOrUUID, diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/ContextConstants.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/ContextConstants.java index bd4777557..91fa90c9f 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/ContextConstants.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/ContextConstants.java @@ -2,7 +2,9 @@ package fr.inra.oresing.domain.data.deposit.context; import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.configuration.Configuration; -import fr.inra.oresing.domain.application.configuration.Internationalizations; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationTitle; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.application.configuration.StandardDataDescription; import fr.inra.oresing.domain.data.deposit.context.hierarchicalkey.HierarchicalKeyFactory; import fr.inra.oresing.domain.internationalization.InternationalizationDisplay; @@ -13,51 +15,43 @@ import java.util.stream.Collectors; public record ContextConstants( Application application, String refType, - Internationalizations.InternationalizationData internationalizationReferenceMap, - Map<String, Map<Locale, String>> displayColumns, + InternationalizationData internationalizationReferenceMap, Map<Locale, String> displayPattern, HierarchicalKeyFactory hierarchicalKeyFactory, - Map<Locale, List<String>> patternColumns, + InternationalizationTitle patternColumns, Map<Locale, List<InternationalizationDisplay.PatternSection>> patternSection, StandardDataDescription dataConfiguration ) { public static ContextConstants with(Application application, final String refType) { final StandardDataDescription dataDescription = application.getConfiguration().dataDescription().get(refType); - final Internationalizations.InternationalizationData internationalizationData = buildInternationalizationReferenceMap(application.getConfiguration(), refType).orElse(null); - final Optional<Map<Locale, String>> displayPattern = buildDisplayPattern(internationalizationData); + final InternationalizationData internationalizationData = buildInternationalizationReferenceMap(application.getConfiguration(), refType).orElse(null); + final Optional<InternationalizationTitle> displayPattern = buildDisplayPattern(internationalizationData); return new ContextConstants( application, refType, internationalizationData, - buildDisplayColumns(internationalizationData), - displayPattern.orElse(null), - buildHierarchicalKeyFactory(application, refType), - displayPattern.map(ContextConstants::buildPatternColumns).orElse(null), - displayPattern.map(ContextConstants::buildPatternSection).orElse(null), + null,//displayPattern.orElse(null), + null,//buildHierarchicalKeyFactory(application, refType), + null,//displayPattern.map(ContextConstants::buildPatternColumns).orElse(null), + null,//displayPattern.map(ContextConstants::buildPatternSection).orElse(null), dataDescription ); } - static Optional<Internationalizations.InternationalizationData> buildInternationalizationReferenceMap(final Configuration conf, final String refType) { - final Optional<Internationalizations.InternationalizationData> internationalizationData = Optional.ofNullable(conf) + static Optional<InternationalizationData> buildInternationalizationReferenceMap(final Configuration conf, final String refType) { + final Optional<InternationalizationData> internationalizationData = Optional.ofNullable(conf) .map(Configuration::i18n) .map(Internationalizations::getData) .map(references -> references.getOrDefault(refType, null)); return internationalizationData; } - static Map<String, Map<Locale, String>> buildDisplayColumns(final Internationalizations.InternationalizationData internationalizationData) { + static Optional<InternationalizationTitle> buildDisplayPattern(final InternationalizationData internationalizationData) { return Optional.ofNullable(internationalizationData) - .map(Internationalizations.InternationalizationData::getI18nColumns) - .orElseGet(HashMap::new); - } - - static Optional<Map<Locale, String>> buildDisplayPattern(final Internationalizations.InternationalizationData internationalizationData) { - return Optional.ofNullable(internationalizationData) - .map(Internationalizations.InternationalizationData::getI18nDisplay); + .map(InternationalizationData::getI18nDisplayPattern); } static HierarchicalKeyFactory buildHierarchicalKeyFactory(final Application application, final String refType) { diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java index f6532bd45..d0626d586 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java @@ -261,10 +261,6 @@ public class DataImporterContext { return Optional.ofNullable(constants.displayPattern()); } - public Map<String, Map<Locale, String>> getDisplayColumns() { - return constants.displayColumns(); - } - public String getParent() { return constants.hierarchicalKeyFactory().parent(); } diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java b/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java index 7df165788..74e03dcfc 100644 --- a/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java +++ b/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java @@ -194,6 +194,7 @@ public enum ConfigurationException { BAD_FLOAT_REQUIRED_SECTIONS, UNEXPECTED_SECTIONS, BAD_LOCALE_SECTION_TYPE, + BAD_LOCALE, BAD_GROOVY_EXPRESSION, /* submieesion diff --git a/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisation.java b/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisation.java index 30ee11a78..0a8dc77d1 100644 --- a/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisation.java +++ b/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisation.java @@ -6,6 +6,7 @@ public interface FileSenderInternationalisation { String mailMessagefor(String message, int expirationDelay); String getInternationnalizedApplication(Locale locale); + String getInternationnalizedApplicationDescription(Locale locale); String getInternationnalizedDataName(Locale locale, String s); diff --git a/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisationForBuildBundleReport.java b/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisationForBuildBundleReport.java index ff3b29ab5..a31db69fc 100644 --- a/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisationForBuildBundleReport.java +++ b/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisationForBuildBundleReport.java @@ -2,8 +2,7 @@ package fr.inra.oresing.domain.filesenderclient; import fr.inra.oresing.domain.application.configuration.ApplicationDescription; import fr.inra.oresing.domain.application.configuration.Configuration; -import fr.inra.oresing.domain.application.configuration.Internationalizations; -import fr.inra.oresing.domain.data.read.query.DownloadDatasetQuery; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.rest.filesenderclient.BuildBundleReport; import org.apache.commons.lang3.NotImplementedException; @@ -94,7 +93,16 @@ implements FileSenderInternationalisation{ return Optional.ofNullable(buildBundleReport.applicationName().getConfiguration()) .map(Configuration::i18n) .map(Internationalizations::getApplication) - .map(i18nApplication -> i18nApplication.get(locale.getLanguage())) + .map(i18nApplication -> i18nApplication.getTitle().get(locale.getLanguage())) + .orElse(buildBundleReport.applicationName().getName()); + } + + @Override + public String getInternationnalizedApplicationDescription(Locale locale) { + return Optional.ofNullable(buildBundleReport.applicationName().getConfiguration()) + .map(Configuration::i18n) + .map(Internationalizations::getApplication) + .map(i18nApplication -> i18nApplication.getDescription().get(locale.getLanguage())) .orElse(buildBundleReport.applicationName().getName()); } diff --git a/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisationForDownloadDatasetQuery.java b/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisationForDownloadDatasetQuery.java index 03b35f810..24c643ccc 100644 --- a/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisationForDownloadDatasetQuery.java +++ b/src/main/java/fr/inra/oresing/domain/filesenderclient/FileSenderInternationalisationForDownloadDatasetQuery.java @@ -2,7 +2,7 @@ package fr.inra.oresing.domain.filesenderclient; import fr.inra.oresing.domain.application.configuration.ApplicationDescription; import fr.inra.oresing.domain.application.configuration.Configuration; -import fr.inra.oresing.domain.application.configuration.Internationalizations; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.data.read.query.DownloadDatasetQuery; import java.util.Locale; @@ -46,7 +46,14 @@ implements FileSenderInternationalisation{ return Optional.ofNullable(downloadDatasetQuery().application().getConfiguration()) .map(Configuration::i18n) .map(Internationalizations::getApplication) - .map(i18napplication -> i18napplication.get(locale.getLanguage())) + .map(i18napplication -> i18napplication.getTitle().get(locale.getLanguage())) + .orElse(null); + } + public String getInternationnalizedApplicationDescription(Locale locale) { + return Optional.ofNullable(downloadDatasetQuery().application().getConfiguration()) + .map(Configuration::i18n) + .map(Internationalizations::getApplication) + .map(i18napplication -> i18napplication.getDescription().get(locale.getLanguage())) .orElse(null); } @@ -56,7 +63,17 @@ implements FileSenderInternationalisation{ .map(Internationalizations::getData) .map(data -> data.get(dataName)) .map(internationalizationData -> internationalizationData.getI18n()) - .map(i18nData -> i18nData.get(locale.getLanguage())) + .map(i18nData -> i18nData.getTitle().get(locale.getLanguage())) + .orElse(dataName); + } + + public String getInternationnalizedDataNameDescription(Locale locale, String dataName) { + return Optional.ofNullable(downloadDatasetQuery().application().getConfiguration()) + .map(Configuration::i18n) + .map(Internationalizations::getData) + .map(data -> data.get(dataName)) + .map(internationalizationData -> internationalizationData.getI18n()) + .map(i18nData -> i18nData.getDescription().get(locale.getLanguage())) .orElse(dataName); } diff --git a/src/main/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplay.java b/src/main/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplay.java index 2cb97cfb1..9d115bcea 100644 --- a/src/main/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplay.java +++ b/src/main/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplay.java @@ -26,7 +26,7 @@ public class InternationalizationDisplay { public static DataDatum getDisplays(final DataImporterContext dataImporterContext, final DataDatum refValues) { final Optional<Map<Locale, String>> displayPattern =dataImporterContext.getDisplayPattern(); - final Map<String, Map<Locale, String>> displayColumns = dataImporterContext.getDisplayColumns(); + //final Map<String, Map<Locale, String>> displayColumns = dataImporterContext.getDisplayColumns(); final String refType = dataImporterContext.getRefType(); final DataDatum displays = new DataDatum(); displayPattern @@ -41,9 +41,9 @@ public class InternationalizationDisplay { String internationalizedPattern = patternSection.text; if (!Strings.isNullOrEmpty(patternSection.variable)) { String referencedColumn = patternSection.variable; - if (displayColumns.containsKey(referencedColumn)) { + /*if (displayColumns.containsKey(referencedColumn)) { referencedColumn = displayColumns.get(referencedColumn).getOrDefault(stringEntry.getKey(), referencedColumn); - } + }*/ internationalizedPattern += refValues.get(new DataColumn(referencedColumn)).toValueString(dataImporterContext, referencedColumn, stringEntry.getKey().getDisplayName()); } return internationalizedPattern; } diff --git a/src/main/java/fr/inra/oresing/rest/DataCsvBuilder.java b/src/main/java/fr/inra/oresing/rest/DataCsvBuilder.java index 066c1c787..4408878f4 100644 --- a/src/main/java/fr/inra/oresing/rest/DataCsvBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/DataCsvBuilder.java @@ -3,6 +3,7 @@ package fr.inra.oresing.rest; import com.google.common.collect.ImmutableSet; import com.opencsv.CSVWriter; import fr.inra.oresing.domain.application.configuration.*; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; import fr.inra.oresing.domain.checker.type.*; import fr.inra.oresing.domain.data.UUIDsfromData; import fr.inra.oresing.domain.data.deposit.context.DataImporterContext; @@ -40,7 +41,7 @@ public class DataCsvBuilder { private Flux<DataRow> datas; private OutputStream outputStream; private Locale locale; - Function<String, Internationalizations.InternationalizationData> internationalizationData; + Function<String, InternationalizationData> internationalizationData; public DataCsvBuilder(final BiFunction<String, String, DataImporterContext> buildReferenceImporterContext) { super(); diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index bc0f91712..4cfea2754 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -12,6 +12,7 @@ import fr.inra.oresing.domain.application.ApplicationInformation; import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.Ltree; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.chart.Chart; import fr.inra.oresing.domain.chart.OreSiSynthesis; import fr.inra.oresing.domain.checker.CheckerFactory; diff --git a/src/main/java/fr/inra/oresing/rest/data/DataService.java b/src/main/java/fr/inra/oresing/rest/data/DataService.java index 3be39130c..7b5f19073 100644 --- a/src/main/java/fr/inra/oresing/rest/data/DataService.java +++ b/src/main/java/fr/inra/oresing/rest/data/DataService.java @@ -206,9 +206,9 @@ public class DataService { ContextConstants constants = ContextConstants.with( application, dataName); - final Set<String> patternColumnsNames = Optional.ofNullable(constants.patternColumns()) + /*final Set<String> patternColumnsNames = Optional.ofNullable(constants.patternColumns()) .map(m -> m.values().stream().flatMap(List::stream).collect(Collectors.toSet())) - .orElseGet(HashSet::new); + .orElseGet(HashSet::new);*/ Map<String, List<String>> referenceToColumnName = lineCheckers.stream() .filter(lc -> lc.underlyingType() instanceof ReferenceType) .collect(Collectors.groupingBy( @@ -220,7 +220,7 @@ public class DataService { lineCheckers.stream() .filter(lc -> lc.underlyingType() instanceof ReferenceType) .map(lc -> ((ReferenceType) lc.underlyingType()).getRefType()) - .filter(rt -> patternColumnsNames.contains(rt)) + .filter(rt -> false)//patternColumnsNames.contains(rt)) .collect(Collectors.toMap(ref -> Optional.ofNullable(referenceToColumnName.getOrDefault(ref, null)) .map(l -> l.get(0)) diff --git a/src/main/java/fr/inra/oresing/rest/model/application/ApplicationResult.java b/src/main/java/fr/inra/oresing/rest/model/application/ApplicationResult.java index 454b21d05..b668d4bf0 100644 --- a/src/main/java/fr/inra/oresing/rest/model/application/ApplicationResult.java +++ b/src/main/java/fr/inra/oresing/rest/model/application/ApplicationResult.java @@ -1,5 +1,6 @@ package fr.inra.oresing.rest.model.application; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.checker.type.FieldType; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.rest.model.authorization.AuthorizationsForUserResult; @@ -8,9 +9,7 @@ import lombok.Setter; import java.util.*; import java.util.function.Consumer; -import java.util.function.Function; import java.util.function.Predicate; -import java.util.stream.Collectors; public record ApplicationResult( diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/AdditionalFilesBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/AdditionalFilesBuilder.java index a1588e872..6c9c07acf 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/AdditionalFilesBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/AdditionalFilesBuilder.java @@ -5,7 +5,8 @@ import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.AdditionalFileDescription; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.application.configuration.FieldDescription; -import fr.inra.oresing.domain.application.configuration.Internationalizations; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import java.util.Iterator; @@ -28,19 +29,19 @@ public record AdditionalFilesBuilder(RootBuilder rootBuilder) { NodeSchemaValidator.joinI18nPath( Internationalizations.ADDITIONAL_FILES, additionalType, - Internationalizations.InternationalizationData.I18N + InternationalizationData.I18N ), rootBuilder.getMapper() .convertValue(additionalTypeValue.findPath(ConfigurationSchemaNode.OA_I_18_N), Map.class)); - final Parsing<Map<String, FieldDescription>> oaFormat = Optional.ofNullable(additionalTypeValue.get(ConfigurationSchemaNode.OA_FORMAT)) + final Parsing<Map<String, FieldDescription>> oaFormat = Optional.ofNullable(additionalTypeValue.get(ConfigurationSchemaNode.OA_FORM_FIELDS)) .map(JsonNode::fields) .map(entryIterator -> rootBuilder.getFieldBuilder() .build(ConfigurationSchemaNode.OA_ADDITIONAL_FILES, FieldDescription.FieldDescriptionType.AdditionalFileField, localI18n, entryIterator, NodeSchemaValidator.joinPath( ConfigurationSchemaNode.OA_ADDITIONAL_FILES, additionalType, - ConfigurationSchemaNode.OA_FORMAT), + ConfigurationSchemaNode.OA_FORM_FIELDS), NodeSchemaValidator.joinI18nPath(Internationalizations.ADDITIONAL_FILES, additionalType) )) .orElse(new Parsing<Map<String, FieldDescription>>(i18n1, null)); diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ApplicationdescriptionBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ApplicationdescriptionBuilder.java index 1d82fc3ee..9f29e2c5f 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ApplicationdescriptionBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ApplicationdescriptionBuilder.java @@ -3,7 +3,7 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.base.Strings; import fr.inra.oresing.domain.application.configuration.ApplicationDescription; -import fr.inra.oresing.domain.application.configuration.Internationalizations; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.application.configuration.Version; import fr.inra.oresing.domain.exceptions.application.SiOreConfigurationFormatException; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/BasicComponentBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/BasicComponentBuilder.java index d856393c9..4712db3ca 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/BasicComponentBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/BasicComponentBuilder.java @@ -12,10 +12,7 @@ import fr.inra.oresing.domain.application.configuration.checker.ComputationCheck import fr.inra.oresing.domain.checker.Multiplicity; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; -import java.util.Iterator; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; public record BasicComponentBuilder(RootBuilder rootBuilder) { @@ -114,7 +111,8 @@ public record BasicComponentBuilder(RootBuilder rootBuilder) { defaultValueParsing.result(), oaTags, importHeader, - exportHeaderName == null ? componentKey : exportHeaderName, + exportHeaderName, + rootBuilder().getLangRestrictions(componentPath, componentKey, componentNodeValue), required, mandatory, checkerDescriptionParsing.result(), diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/CheckerDescriptionBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/CheckerDescriptionBuilder.java index 8db7bcaa0..afa213122 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/CheckerDescriptionBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/CheckerDescriptionBuilder.java @@ -2,7 +2,9 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; -import fr.inra.oresing.domain.application.configuration.Internationalizations; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationComponent; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.application.configuration.checker.*; import fr.inra.oresing.domain.application.configuration.date.DatePattern; import fr.inra.oresing.domain.application.configuration.type.CheckerEnum; @@ -11,7 +13,6 @@ import fr.inra.oresing.domain.exceptions.SiOreIllegalArgumentException; import fr.inra.oresing.domain.exceptions.application.SiOreConfigurationFormatException; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import fr.inra.oresing.domain.groovy.GroovyExpression; -import fr.inra.oresing.domain.groovy.exception.GroovyException; import java.time.LocalDateTime; import java.time.temporal.TemporalAccessor; @@ -64,7 +65,13 @@ public record CheckerDescriptionBuilder(RootBuilder rootBuilder) { return null; } final JsonNode params = checkerNode.findPath(ConfigurationSchemaNode.OA_PARAMS); - final Multiplicity multiplicity = Optional.ofNullable(params.findPath(ConfigurationSchemaNode.OA_MULTIPLICITY)) + I18n localI18n = new I18n(i18n.i18n()); + + Parsing<Set<String>> exceptionMessagesParsing = Optional.ofNullable(params.get(ConfigurationSchemaNode.OA_GROOVY_EXCEPTIONS)) + .map(exceptionsNode -> buildMessagesExceptions(localI18n, dataKey, componentKey, path, exceptionsNode)) + .orElse(new Parsing<Set<String>>(localI18n, Set.of())); + i18n = exceptionMessagesParsing.i18n(); + final Multiplicity multiplicity = Optional.ofNullable(params.get(ConfigurationSchemaNode.OA_MULTIPLICITY)) .map(multi -> rootBuilder.getMapper().convertValue(multi, Multiplicity.class)) .orElse(Multiplicity.ONE); final CheckerDescription checkerDescription = switch (name) { @@ -235,8 +242,10 @@ public record CheckerDescriptionBuilder(RootBuilder rootBuilder) { case OA_groovyExpression -> { final String expression = params.findPath(ConfigurationSchemaNode.OA_EXPRESSION).asText(); final Set<String> references = rootBuilder.getMapper().convertValue(params.findPath(ConfigurationSchemaNode.OA_REFERENCES), Set.class); - Parsing<Set<String>> exceptionMessagesParsing = buildMessages( + exceptionMessagesParsing = buildMessagesExceptions( i18n, + dataKey, + componentKey, NodeSchemaValidator.joinPath( path, ConfigurationSchemaNode.OA_CHECKER, @@ -284,9 +293,11 @@ public record CheckerDescriptionBuilder(RootBuilder rootBuilder) { return new Parsing<>(i18n, checkerDescription); } - public Parsing<Set<String>> buildMessages(I18n i18n, - String path, - JsonNode exceptionsMessagesNode) { + public Parsing<Set<String>> buildMessagesExceptions(I18n i18n, + String dataKey, + String componentOrvalidationKey, + String path, + JsonNode exceptionsMessagesNode) { Set<String> exceptionMessages = new HashSet<>(); if (exceptionsMessagesNode != null && exceptionsMessagesNode.isObject()) { @@ -297,16 +308,12 @@ public record CheckerDescriptionBuilder(RootBuilder rootBuilder) { JsonNode valueNode = entry.getValue(); if (valueNode.isObject()) { try { - String[] pathes = NodeSchemaValidator.joinI18nPath(path) - .split("\\."); i18n = i18n.add( NodeSchemaValidator.joinI18nPath( - Internationalizations.DATA, - pathes[1], - Internationalizations.InternationalizationData.COMPONENTS, - pathes[3], - Internationalizations.InternationalizationData.InternationalizationComponent.COMPUTATION, - Internationalizations.InternationalizationData.InternationalizationComponent.EXCEPTIONS, + "data", + dataKey, + InternationalizationComponent.EXCEPTIONS, + componentOrvalidationKey, key ), rootBuilder.getMapper().convertValue(valueNode, Map.class)); diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputationBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputationBuilder.java index ea27d4a31..df6cb4738 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputationBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputationBuilder.java @@ -7,10 +7,7 @@ import fr.inra.oresing.domain.application.configuration.checker.ComputationCheck import fr.inra.oresing.domain.checker.Multiplicity; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; public record ComputationBuilder(RootBuilder rootBuilder) { @@ -27,9 +24,12 @@ public record ComputationBuilder(RootBuilder rootBuilder) { Multiplicity multiplicity, final String computationPath, final JsonNode computationNode) { + List<String> pathNodes = Arrays.stream(computationPath.split(" > ")).toList(); final String expression = computationNode.findPath(ConfigurationSchemaNode.OA_EXPRESSION).asText("return \"\";"); - Parsing<Set<String>> exceptionMessagesParsing = rootBuilder().checkerDescriptionBuilder.buildMessages( + Parsing<Set<String>> exceptionMessagesParsing = rootBuilder().checkerDescriptionBuilder.buildMessagesExceptions( i18n, + pathNodes.get(1), + pathNodes.get(pathNodes.size()-2), NodeSchemaValidator.joinPath( computationPath, ConfigurationSchemaNode.OA_GROOVY_EXCEPTIONS diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputedComponentBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputedComponentBuilder.java index 7682a1d28..c641f3482 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputedComponentBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputedComponentBuilder.java @@ -85,7 +85,11 @@ public record ComputedComponentBuilder(RootBuilder rootBuilder) { componentDescriptionBuilder.put(componentKey, new ComputedComponent( ComponentDescription.ComponentDescriptionType.ComputedComponent, componentKey, - oaTags, exportHeaderName, required, mandatory, + oaTags, + exportHeaderName, + rootBuilder().getLangRestrictions(componentPath, componentKey, componentNodeValue), + required, + mandatory, checkerDescriptionParsing.result(), computationCheckerParsing.result(), null)); diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ConstantComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ConstantComponentsBuilder.java index b7f9662e5..ddabb1dc4 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ConstantComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ConstantComponentsBuilder.java @@ -29,7 +29,8 @@ public record ConstantComponentsBuilder(RootBuilder rootBuilder) { return new ColumnConstantHeaderByHeaderName( ConstantImportHeader.ConstantImportHeaderType.ColumnConstantHeaderByHeaderName, constantRowNumber, - constantHeaderName + constantHeaderName, + rootBuilder().getLangRestrictions(path, null, importHeaderColumnName) ); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java index f23d2fc3c..0fc48e6aa 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java @@ -4,6 +4,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; @@ -31,10 +33,31 @@ public record DataBuilder(RootBuilder rootBuilder) { NodeSchemaValidator.joinI18nPath( "data", dataKey, - Internationalizations.InternationalizationData.I18N + InternationalizationData.I18N ), rootBuilder.getMapper().convertValue(localizationNames, Map.class)); + } catch (final IllegalArgumentException illegalArgumentException) { + rootBuilder.buildError(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE, + Map.of(), + NodeSchemaValidator.joinPath( + ConfigurationSchemaNode.OA_DATA, + dataKey, + ConfigurationSchemaNode.OA_I_18_N + ) + ); + } + final Map localizationPatternNames = rootBuilder.getMapper().convertValue(jsonNode.findPath(ConfigurationSchemaNode.OA_I_18_N_DISPLAY_PATTERN), Map.class); + + try { + i18n = i18n.add( + NodeSchemaValidator.joinI18nPath( + "data", + dataKey, + InternationalizationData.I18N_DISPLAY_PATTERN + ), + rootBuilder.getMapper().convertValue(localizationPatternNames, Map.class)); + } catch (final IllegalArgumentException illegalArgumentException) { rootBuilder.buildError(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE, Map.of(), @@ -55,7 +78,7 @@ public record DataBuilder(RootBuilder rootBuilder) { NodeSchemaValidator.joinI18nPath( Internationalizations.DATA, dataKey, - Internationalizations.InternationalizationData.I18N_DISPLAY_PATTERN + InternationalizationData.I18N_DISPLAY_PATTERN ), localizationDisplay); } catch (final IllegalArgumentException illegalArgumentException) { rootBuilder.buildError(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE, diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java index c79366aaa..1024517f0 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java @@ -158,6 +158,7 @@ public record DynamicComponentsBuilder(RootBuilder rootBuilder) { componentKey, defaultValueParsing.result(), exportHeaderName == null ? componentKey : exportHeaderName, + rootBuilder().getLangRestrictions(componentPath, componentKey, componentNodeValue), oaTags, required, mandatory, diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/FieldBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/FieldBuilder.java index 025605cd6..3a80027ec 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/FieldBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/FieldBuilder.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import java.util.Iterator; diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java index c25b49527..b050daf78 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java @@ -1,7 +1,9 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.google.common.base.Strings; +import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationTitle; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -13,19 +15,23 @@ import java.util.function.Function; import java.util.stream.Collectors; public record I18n(Map i18n) { + public static final Map<String, String> titles = ImmutableMap.of( + ConfigurationSchemaNode.OA_TITLE, InternationalizationTitle.TITLE, + ConfigurationSchemaNode.OA_DESCRIPTION , InternationalizationTitle.DESCRIPTION + ); public I18n add(final String path, final Map i18n) { - if(i18n().isEmpty()){ + if(MapUtils.isEmpty(i18n)){ return this; } - Set<String> titleI18nKeys = Set.of(ConfigurationSchemaNode.OA_TITLE, ConfigurationSchemaNode.OA_DESCRIPTION); + Set<String> titleI18nKeys = titles.keySet(); if(titleI18nKeys.stream() .anyMatch(i18n.keySet()::contains) ){ final Map<String, Map> localizations = i18n(); for (String titleI18nKey : titleI18nKeys) { Map internationalizationForTitleI18nKey = (Map) i18n.get(titleI18nKey); - if(MapUtils.isNotEmpty(internationalizationForTitleI18nKey)) {continue;} - String pathForTitleI18nKey = String.join(".", path, titleI18nKey); + if(MapUtils.isEmpty(internationalizationForTitleI18nKey)) {continue;} + String pathForTitleI18nKey = String.join(".", path, titles.get(titleI18nKey)); localizations.putAll(add(pathForTitleI18nKey, internationalizationForTitleI18nKey).i18n()); } return new I18n(localizations); @@ -47,6 +53,7 @@ public record I18n(Map i18n) { currentLocalization.put( labels[labels.length - 1], (Map) i18n.keySet().stream() + .filter(i18n::containsKey) .filter(k -> !Strings.isNullOrEmpty((String) i18n.get(k))) .collect(Collectors.toMap(Function.identity(), i18n::get))); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java index e5a04c7be..05814db31 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java @@ -68,6 +68,7 @@ public record PatternComponentComponentsBuilder(RootBuilder rootBuilder) { label, oaTags, label, + rootBuilder().getLangRestrictions(componentPath, componentKey, componentNodeValue), componentNumber, checkerDescriptionParsing.result(), null diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java index 342e8856c..b842a2487 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java @@ -33,7 +33,7 @@ public record PatternComponentsBuilder(RootBuilder rootBuilder) { "%1$s.OA_patternComponents.%2$s".formatted(componentPath, componentKey), patternComponentNode.get(ConfigurationSchemaNode.OA_CHECKER), dataKey); - i18n=checkerDescriptionParsing.i18n(); + i18n = checkerDescriptionParsing.i18n(); Multiplicity multiplicity = Optional.ofNullable(checkerDescriptionParsing.result()) .map(CheckerDescription::multiplicity) .orElse(Multiplicity.ONE); @@ -73,7 +73,7 @@ public record PatternComponentsBuilder(RootBuilder rootBuilder) { i18n, patternComponentNode ); - if(patternColumnComponentsParsing!=null){ + if (patternColumnComponentsParsing != null) { i18n = patternColumnComponentsParsing.i18n(); } componentDescriptionBuilder.put( @@ -83,6 +83,7 @@ public record PatternComponentsBuilder(RootBuilder rootBuilder) { componentKey, defaultValueParsing.result(), exportHeaderName == null ? componentKey : exportHeaderName, + rootBuilder().getLangRestrictions(componentPath, componentKey, patternComponentNode), oaTags, required, mandatory, diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RightsRequestBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RightsRequestBuilder.java index 43d531037..24335befa 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RightsRequestBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RightsRequestBuilder.java @@ -3,7 +3,8 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.application.configuration.FieldDescription; -import fr.inra.oresing.domain.application.configuration.Internationalizations; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationRightrequest; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.application.configuration.RightRequestDescription; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; @@ -18,11 +19,11 @@ public record RightsRequestBuilder(RootBuilder rootBuilder) { localI18n = i18n.add( NodeSchemaValidator.joinI18nPath( Internationalizations.RIGHT_REQUEST, - Internationalizations.DESCRIPTION + InternationalizationRightrequest.I_18_N ), rootBuilder.getMapper() - .convertValue(oaRightsRequest.findPath(ConfigurationSchemaNode.OA_DESCRIPTION) - .findPath(ConfigurationSchemaNode.OA_I_18_N), + .convertValue(oaRightsRequest + .get(ConfigurationSchemaNode.OA_I_18_N), Map.class) ); } catch (final IllegalArgumentException illegalArgumentException) { @@ -34,7 +35,7 @@ public record RightsRequestBuilder(RootBuilder rootBuilder) { ConfigurationSchemaNode.OA_I_18_N )); } - final Parsing<Map<String, FieldDescription>> oaFormat = Optional.ofNullable(oaRightsRequest.get(ConfigurationSchemaNode.OA_FORMAT)) + final Parsing<Map<String, FieldDescription>> oaFormat = Optional.ofNullable(oaRightsRequest.get(ConfigurationSchemaNode.OA_FORM_FIELDS)) .map(JsonNode::fields) .map(entryIterator -> rootBuilder.getFieldBuilder().build(ConfigurationSchemaNode.OA_RIGHTS_REQUEST, FieldDescription.FieldDescriptionType.RightsRequestField, i18n, entryIterator, "rightsrequest.fields", Internationalizations.RIGHT_REQUEST)) .orElse(new Parsing<Map<String, FieldDescription>>(i18n, null)); diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java index 9d04de190..94b5701e0 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java @@ -7,6 +7,9 @@ import com.jayway.jsonpath.DocumentContext; import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationComponent; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.application.configuration.type.RootType; import fr.inra.oresing.domain.exceptions.SiOreIllegalArgumentException; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; @@ -65,6 +68,7 @@ public class RootBuilder { @Getter final Consumer<ValidationParams> buildErrorWithValidationParams = validationParams -> buildError(validationParams.exception(), validationParams.params(), validationParams.path()); + public RootBuilder(final ReactiveProgression.Progression progression, final JsonNode rootNode, final DocumentContext documentContext) { @@ -198,7 +202,7 @@ public class RootBuilder { Parsing<String> addExportHeaders(final String key, I18n i18n, final Map.Entry<String, JsonNode> componentEntry, final String componentSectionName) { final JsonNode exportHeaderNode = componentEntry.getValue().findPath(OA_EXPORT_HEADER); if (!exportHeaderNode.isMissingNode()) { - final Map oaI18n = Optional.ofNullable(exportHeaderNode.get(OA_I_18_N)) + final Map oaI18n = Optional.ofNullable(exportHeaderNode) .map(eh -> getMapper().convertValue(eh, Map.class)) .orElse(null); if (oaI18n != null) { @@ -207,9 +211,9 @@ public class RootBuilder { NodeSchemaValidator.joinI18nPath( Internationalizations.DATA, key, - Internationalizations.InternationalizationData.COMPONENTS, + InternationalizationData.COMPONENTS, componentEntry.getKey(), - Internationalizations.InternationalizationData.InternationalizationComponent.EXPORT_HEADER + InternationalizationComponent.EXPORT_HEADER ), oaI18n); } catch (final IllegalArgumentException illegalArgumentException) { buildError(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE, @@ -269,4 +273,35 @@ public class RootBuilder { public List<String> getListComponentKeys(final String dataKey) { return dataAndComponentTestDoublon.listReferencableComponentKeysByDataKey().getOrDefault(dataKey, List.of()); } + + public List<Locale> getLangRestrictions(String componentPath, String key, JsonNode componentNodeValue) { + return Optional.ofNullable(componentNodeValue) + .map(node -> node.get(OA_LANG_RESTRICTIONS)) + .map(restrictionNode -> getMapper().convertValue(restrictionNode, List.class)) + .map(locales -> testLocales( + NodeSchemaValidator.joinPath( + componentPath, + OA_LANG_RESTRICTIONS + ), + locales + )) + .orElseGet(List::of); + } + + private List<Locale> testLocales(String path, List list) { + List<Locale> localesList = new ArrayList<>(); + for (Object o : list) { + Locale locale = (Locale) Locale.of(o.toString()); + if (locale == null) { + buildError( + ConfigurationException.BAD_LOCALE, + Map.of("locale", o.toString()), + path + ); + continue; + } + localesList.add(locale); + } + return localesList; + } } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/SubmissionBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/SubmissionBuilder.java index 39902eb78..0eafd32d2 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/SubmissionBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/SubmissionBuilder.java @@ -6,7 +6,9 @@ import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; -import fr.inra.oresing.domain.application.configuration.type.ReferenceCheckerType; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationSubmissionComponent; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import javax.annotation.Nullable; @@ -167,8 +169,8 @@ public record SubmissionBuilder(RootBuilder rootBuilder) { NodeSchemaValidator.joinI18nPath( Internationalizations.DATA, dataKey, - Internationalizations.InternationalizationData.SUBMISSIONS, - Internationalizations.InternationalizationData.InternationalizationSubmissionComponent.REFERENCE_SCOPES, + InternationalizationData.SUBMISSIONS, + InternationalizationSubmissionComponent.REFERENCE_SCOPES, referenceScopeReference ), rootBuilder.getMapper().convertValue(referenceScopeNode.findPath(ConfigurationSchemaNode.OA_I_18_N), Map.class) diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/TagsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/TagsBuilder.java index ccf526402..2f0c3c9aa 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/TagsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/TagsBuilder.java @@ -3,7 +3,7 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; -import fr.inra.oresing.domain.application.configuration.Internationalizations; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.application.configuration.Tag; import fr.inra.oresing.domain.application.configuration.Validation; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ValidationsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ValidationsBuilder.java index 862241675..5dcab7bb7 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ValidationsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ValidationsBuilder.java @@ -7,6 +7,8 @@ import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; import fr.inra.oresing.domain.application.configuration.checker.GroovyExpressionChecker; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import java.util.*; @@ -63,7 +65,10 @@ public record ValidationsBuilder(RootBuilder rootBuilder) { atomicReferenceI18n.get(), column, required, - "%2$s > OA_validations > %2$s > OA_validations".formatted(componentPath, componentKey), componentNodeValue.get(ConfigurationSchemaNode.OA_CHECKER), key + "%1$s > OA_validations > %2$s > OA_validations".formatted( + componentPath, componentKey), + componentNodeValue.get(ConfigurationSchemaNode.OA_CHECKER), + key ); atomicReferenceI18n.set(checkerDescriptionParsing.i18n()); @@ -156,7 +161,7 @@ public record ValidationsBuilder(RootBuilder rootBuilder) { NodeSchemaValidator.joinI18nPath( Internationalizations.DATA, key, - Internationalizations.InternationalizationData.VALIDATIONS, + InternationalizationData.VALIDATIONS, componentKey ), rootBuilder.getMapper().convertValue(localizationNames, Map.class)); diff --git a/src/test/java/fr/inra/oresing/domain/application/configuration/ConfigurationTest.java b/src/test/java/fr/inra/oresing/domain/application/configuration/ConfigurationTest.java index 7612a54c6..84f0157c6 100644 --- a/src/test/java/fr/inra/oresing/domain/application/configuration/ConfigurationTest.java +++ b/src/test/java/fr/inra/oresing/domain/application/configuration/ConfigurationTest.java @@ -137,6 +137,7 @@ class ConfigurationTest { tags, componentDefinition.name(), componentDefinition.name(), + List.of(), false, ComponentPresenceConstraint.OPTIONAL, null, diff --git a/src/test/java/fr/inra/oresing/rest/model/configuration/ConfigurationBuilderTest.java b/src/test/java/fr/inra/oresing/rest/model/configuration/ConfigurationBuilderTest.java index e84ba68cc..8846a820e 100644 --- a/src/test/java/fr/inra/oresing/rest/model/configuration/ConfigurationBuilderTest.java +++ b/src/test/java/fr/inra/oresing/rest/model/configuration/ConfigurationBuilderTest.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.google.common.io.Resources; import fr.inra.oresing.domain.application.configuration.*; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.persistence.JsonRowMapper; import fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder; import fr.inra.oresing.rest.reactive.ReactiveProgression; @@ -22,7 +23,6 @@ import reactor.core.publisher.Mono; import java.io.IOException; import java.net.URL; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.*; diff --git a/src/test/resources/data/configuration/configuration.yaml b/src/test/resources/data/configuration/configuration.yaml index 00ba0a8f7..309357c67 100644 --- a/src/test/resources/data/configuration/configuration.yaml +++ b/src/test/resources/data/configuration/configuration.yaml @@ -923,7 +923,7 @@ OA_additionalFiles: OA_i18n: fr: Fichiers en: Files - OA_format: + OA_FORM_FIELDS: nom: OA_i18n: fr: Nom @@ -969,7 +969,7 @@ OA_additionalFiles: OA_i18n: fr: Users en: User - OA_format: + OA_FORM_FIELDS: nom: OA_i18n: fr: Nom @@ -991,7 +991,7 @@ OA_rightsRequest: OA_i18n: fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire en: You can request rights to the monsore application by filling out this form - OA_format: + OA_FORM_FIELDS: organization: OA_i18n: fr: Nom de l'organisme de recherche diff --git a/src/test/resources/data/configuration/data.result.example.json b/src/test/resources/data/configuration/data.result.example.json index d71227665..f3797f684 100644 --- a/src/test/resources/data/configuration/data.result.example.json +++ b/src/test/resources/data/configuration/data.result.example.json @@ -32,6 +32,7 @@ } ], "importHeader" : "Site", "exportHeaderName" : "tze_type_nom", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -68,6 +69,7 @@ } ], "importHeader" : "zet_nom_fr", "exportHeaderName" : "zet_nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -95,7 +97,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_nom_key", - "exportHeaderName" : "zet_nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ "fr", "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -113,6 +116,7 @@ "tagName" : "no_tag" } ], "exportHeaderName" : "zet_computed_key", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -159,6 +163,7 @@ } ], "importHeader" : "zet_nom_en", "exportHeaderName" : "zet_nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -187,6 +192,7 @@ } ], "importHeader" : "zet_description_fr", "exportHeaderName" : "zet_description_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -213,24 +219,17 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "Site parent", + "importHeader" : "zet_chemin_parent", "exportHeaderName" : "zet_chemin_parent", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", - "checker" : { - "type" : "ReferenceChecker", - "componentKey" : "zet_chemin_parent", - "multiplicity" : "ONE", - "required" : false, - "refType" : "tr_type_zone_etude_tze", - "isRecursive" : false, - "isParent" : false - }, + "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_type_zone_etude_tze", + "referenceCheckerType" : "StringChecker", "chartDescription" : null, - "reference" : true + "reference" : false } }, "submission" : null, @@ -244,10 +243,6 @@ "type" : "DependsReferences", "references" : "tr_type_zone_etude_tze", "component" : "zet_computed_key" - }, { - "type" : "DependsReferences", - "references" : "tr_type_zone_etude_tze", - "component" : "zet_chemin_parent" } ], "migrations" : null, "hidden" : false, @@ -282,7 +277,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_nom_key", - "exportHeaderName" : "tze_nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ "fr", "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -311,6 +307,7 @@ } ], "importHeader" : "tze_nom_fr", "exportHeaderName" : "tze_nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -339,6 +336,7 @@ } ], "importHeader" : "tze_definition_fr", "exportHeaderName" : "tze_definition_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -367,6 +365,7 @@ } ], "importHeader" : "tze_nom_en", "exportHeaderName" : "tze_nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -395,6 +394,7 @@ } ], "importHeader" : "tze_definition_en", "exportHeaderName" : "tze_definition_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -443,6 +443,7 @@ } ], "importHeader" : "Date", "exportHeaderName" : "ptx_date", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -478,7 +479,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Proprieté", - "exportHeaderName" : "ptx_propriete", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -534,7 +536,8 @@ "tagName" : "no_tag" } ], "importHeader" : "pro_nom_key", - "exportHeaderName" : "pro_nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ "fr", "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -563,6 +566,7 @@ } ], "importHeader" : "pro_nom_fr", "exportHeaderName" : "pro_nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -591,6 +595,7 @@ } ], "importHeader" : "pro_definition_fr", "exportHeaderName" : "pro_definition_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -619,6 +624,7 @@ } ], "importHeader" : "pro_nom_en", "exportHeaderName" : "pro_nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -647,6 +653,7 @@ } ], "importHeader" : "pro_definition_en", "exportHeaderName" : "pro_definition_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -694,7 +701,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Nom du taxon", - "exportHeaderName" : "tax_taxon", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -723,6 +731,7 @@ "data" : null }, "exportHeaderName" : "tax_propriete_taxon", + "langRestrictions" : [ ], "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" @@ -768,6 +777,7 @@ "tagName" : "no_tag" } ], "exportHeaderName" : "dat_date_heure", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -803,6 +813,7 @@ "tagName" : "data" } ], "exportHeaderName" : "smp_repetition", + "langRestrictions" : [ ], "patternNumber" : 2, "checker" : { "type" : "IntegerChecker", @@ -835,7 +846,8 @@ "tagName" : "no_tag" } ], "importHeader" : "dat_heure", - "exportHeaderName" : "dat_heure", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -853,6 +865,7 @@ "tagName" : "data" } ], "exportHeaderName" : "swc_repetition", + "langRestrictions" : [ ], "patternNumber" : 2, "checker" : { "type" : "IntegerChecker", @@ -890,7 +903,8 @@ "constantImportHeader" : { "type" : "ColumnConstantHeaderByHeaderName", "rowNumber" : 5, - "headerName" : "dat_date" + "headerName" : "dat_date", + "langRestrictions" : [ ] }, "exportHeaderName" : "dat_start_date", "submissionAuthorizationScope" : null, @@ -907,6 +921,7 @@ "tagName" : "data" } ], "exportHeaderName" : "swc_profondeur", + "langRestrictions" : [ ], "patternNumber" : 1, "checker" : { "type" : "FloatChecker", @@ -981,7 +996,8 @@ "constantImportHeader" : { "type" : "ColumnConstantHeaderByHeaderName", "rowNumber" : 6, - "headerName" : "dat_date" + "headerName" : "dat_date", + "langRestrictions" : [ ] }, "exportHeaderName" : "dat_end_date", "submissionAuthorizationScope" : null, @@ -1004,6 +1020,7 @@ "data" : null }, "exportHeaderName" : "smp", + "langRestrictions" : [ ], "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "context" @@ -1027,6 +1044,7 @@ "tagName" : "data" } ], "exportHeaderName" : "smp_profondeur", + "langRestrictions" : [ ], "patternNumber" : 1, "checker" : { "type" : "FloatChecker", @@ -1049,6 +1067,7 @@ "tagName" : "data" } ], "exportHeaderName" : "smp_repetition", + "langRestrictions" : [ ], "patternNumber" : 2, "checker" : { "type" : "IntegerChecker", @@ -1088,7 +1107,8 @@ "tagName" : "no_tag" } ], "importHeader" : "dat_date", - "exportHeaderName" : "dat_date", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1132,6 +1152,7 @@ "tagName" : "data" } ], "exportHeaderName" : "smp_profondeur", + "langRestrictions" : [ ], "patternNumber" : 1, "checker" : { "type" : "FloatChecker", @@ -1160,6 +1181,7 @@ "data" : null }, "exportHeaderName" : "swc", + "langRestrictions" : [ ], "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "context" @@ -1183,6 +1205,7 @@ "tagName" : "data" } ], "exportHeaderName" : "swc_profondeur", + "langRestrictions" : [ ], "patternNumber" : 1, "checker" : { "type" : "FloatChecker", @@ -1205,6 +1228,7 @@ "tagName" : "data" } ], "exportHeaderName" : "swc_repetition", + "langRestrictions" : [ ], "patternNumber" : 2, "checker" : { "type" : "IntegerChecker", @@ -1414,6 +1438,7 @@ } ], "importHeader" : "Date", "exportHeaderName" : "spe_date", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1450,6 +1475,7 @@ } ], "importHeader" : "Espèce", "exportHeaderName" : "spe_species", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1483,6 +1509,7 @@ } ], "importHeader" : "Outil", "exportHeaderName" : "spe_tool", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1518,7 +1545,8 @@ "tagDefinition" : "HIDDEN_TAG" } ], "importHeader" : "spe_is_iso", - "exportHeaderName" : "spe_is_iso", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1551,7 +1579,8 @@ "tagName" : "no_tag" } ], "importHeader" : "spe_definition_fr", - "exportHeaderName" : "spe_definition_fr", + "exportHeaderName" : null, + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1580,6 +1609,7 @@ } ], "importHeader" : "Site", "exportHeaderName" : "spe_site", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1616,6 +1646,7 @@ } ], "importHeader" : "Heure", "exportHeaderName" : "spe_heure", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1652,6 +1683,7 @@ } ], "importHeader" : "Quantité", "exportHeaderName" : "spe_weight", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1685,7 +1717,8 @@ "tagName" : "no_tag" } ], "importHeader" : "spe_definition_en", - "exportHeaderName" : "spe_definition_en", + "exportHeaderName" : null, + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1703,6 +1736,7 @@ "tagName" : "no_tag" } ], "exportHeaderName" : "spe_date_heure", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -1749,6 +1783,7 @@ } ], "importHeader" : "Répétition", "exportHeaderName" : "spe_repetition", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { diff --git a/src/test/resources/data/configuration/localization.example.result.json b/src/test/resources/data/configuration/localization.example.result.json index 914ff9b90..1e611e5e4 100644 --- a/src/test/resources/data/configuration/localization.example.result.json +++ b/src/test/resources/data/configuration/localization.example.result.json @@ -1,10 +1,770 @@ { - "tags" : { }, - "application" : { }, - "data" : { }, + "tags" : { + "data" : { + "en" : "data", + "fr" : "données" + }, + "context" : { + "en" : "context", + "fr" : "contexte" + } + }, + "application" : { + "title" : { + "en" : "SOERE my SOERE", + "fr" : "SOERE mon SOERE" + }, + "description" : { + "en" : "Example of SOERE based on small coastal river", + "fr" : "SOERE example basé sur petit fleuve côtiers" + } + }, + "data" : { + "tr_zone_etude_zet" : { + "validations" : { }, + "exceptions" : { }, + "components" : { + "tze_type_nom" : { + "exportHeader" : { + "title" : { + "en" : "Site types", + "fr" : "Type de site" + }, + "description" : { + "en" : "Site type name", + "fr" : "Nom du type de site" + } + } + }, + "zet_nom_fr" : { + "exportHeader" : { + "title" : { + "en" : "Site type name", + "fr" : "Nom du type de site" + }, + "description" : { + "en" : "A site type name", + "fr" : "Le nom du type de site" + } + } + }, + "zet_computed_key" : { + "exportHeader" : { + "title" : { + "en" : "Complete date", + "fr" : "Date complète" + }, + "description" : { + "en" : "Complete date with format dd/MM/yyyy HH:mm:ss", + "fr" : "Date complète au format dd/MM/yyyy HH:mm:ss" + } + } + }, + "zet_nom_en" : { + "exportHeader" : { + "title" : { + "en" : "Site type name", + "fr" : "Nom du type de site" + }, + "description" : { + "en" : "A site type name", + "fr" : "Le nom du type de site" + } + } + }, + "zet_chemin_parent" : { + "exportHeader" : { + "title" : { + "en" : "Site type description", + "fr" : "Description du type de site" + }, + "description" : { + "en" : "A site type description", + "fr" : "Une description du type de site" + } + } + }, + "zet_description_fr" : { + "exportHeader" : { + "title" : { + "en" : "Site type description", + "fr" : "Description du type de site" + }, + "description" : { + "en" : "A site type description", + "fr" : "Une description du type de site" + } + } + } + }, + "submissions" : { + "referenceScopes" : { } + }, + "i18nDisplayPattern" : { + "title" : { + "en" : "'{zet_nom_en}'", + "fr" : "'{zet_nom_fr}'" + }, + "description" : { + "en" : "'{zet_description_fr}'", + "fr" : "'{zet_description_fr}'" + } + }, + "i18n" : { + "title" : { + "en" : "Site", + "fr" : "Site" + }, + "description" : { + "en" : "Site repository", + "fr" : "Référentiel des Sites" + } + } + }, + "tr_type_zone_etude_tze" : { + "validations" : { }, + "exceptions" : { }, + "components" : { + "tze_nom_fr" : { + "exportHeader" : { + "title" : { + "en" : "Site type name", + "fr" : "Nom du type de site" + }, + "description" : { + "en" : "A site type name", + "fr" : "Le nom du type de site" + } + } + }, + "tze_nom_en" : { + "exportHeader" : { + "title" : { + "en" : "Site type name", + "fr" : "Nom du type de site" + }, + "description" : { + "en" : "A site type name", + "fr" : "Le nom du type de site" + } + } + }, + "tze_definition_en" : { + "exportHeader" : { + "title" : { + "en" : "Site type description", + "fr" : "Description du type de site" + }, + "description" : { + "en" : "A site type description", + "fr" : "Une description du type de site" + } + } + }, + "tze_definition_fr" : { + "exportHeader" : { + "title" : { + "en" : "Site type description", + "fr" : "Description du type de site" + }, + "description" : { + "en" : "A site type description", + "fr" : "Une description du type de site" + } + } + } + }, + "submissions" : { + "referenceScopes" : { } + }, + "i18nDisplayPattern" : { + "title" : { + "en" : "'Of type : {tze_nom_en}'", + "fr" : "'De type : {tze_nom_fr}'" + }, + "description" : { + "en" : "'{tze_definition_en}'", + "fr" : "'{tze_definition_fr}'" + } + }, + "i18n" : { + "title" : { + "en" : "Sites types", + "fr" : "Types de sites" + }, + "description" : { + "en" : "Sites types repository", + "fr" : "Référentiel des types de sites" + } + } + }, + "tr_propriete_taxon_ptx" : { + "validations" : { }, + "exceptions" : { }, + "components" : { + "ptx_date" : { + "exportHeader" : { + "title" : { + "en" : "Start Date", + "fr" : "Date de début" + }, + "description" : { + "en" : "The start date in dd/MM/yyyy format", + "fr" : "La date de début au format dd/MM/yyyy" + } + } + } + }, + "submissions" : { + "referenceScopes" : { } + }, + "i18nDisplayPattern" : { + "title" : { + "en" : "'{ptx_propriete}'", + "fr" : "'{ptx_propriete}'" + }, + "description" : { } + }, + "i18n" : { + "title" : { + "en" : "Taxa properties repository", + "fr" : "Propriété des taxon" + }, + "description" : { + "en" : "Taxa properties", + "fr" : "Référentiel des propriété des taxon" + } + } + }, + "tr_projet_pro" : { + "validations" : { }, + "exceptions" : { }, + "components" : { + "pro_nom_fr" : { + "exportHeader" : { + "title" : { + "en" : "Project name", + "fr" : "Nom du projet" + }, + "description" : { + "en" : "The project name", + "fr" : "Le nom du projet" + } + } + }, + "pro_definition_fr" : { + "exportHeader" : { + "title" : { + "en" : "Project définition", + "fr" : "Définition du projet" + }, + "description" : { + "en" : "A roject description", + "fr" : "Une description du projet" + } + } + }, + "pro_definition_en" : { + "exportHeader" : { + "title" : { + "en" : "Project définition", + "fr" : "Définition du projet" + }, + "description" : { + "en" : "A roject description", + "fr" : "Une description du projet" + } + } + }, + "pro_nom_en" : { + "exportHeader" : { + "title" : { + "en" : "Project name", + "fr" : "Nom du projet" + }, + "description" : { + "en" : "The project name", + "fr" : "Le nom du projet" + } + } + } + }, + "submissions" : { + "referenceScopes" : { } + }, + "i18nDisplayPattern" : { + "title" : { + "en" : "'{pro_nom_en}'", + "fr" : "'{pro_nom_fr}'" + }, + "description" : { + "en" : "'{pro_definition_en}'", + "fr" : "'{pro_definition_fr}'" + } + }, + "i18n" : { + "title" : { + "en" : "Project", + "fr" : "Projet" + }, + "description" : { + "en" : "Project repository", + "fr" : "Référentiel des projet" + } + } + }, + "t_data_dat" : { + "validations" : { + "site_validation" : { + "en" : "Site validation", + "fr" : "Validation du site" + }, + "date_validation" : { + "en" : "Date validation", + "fr" : "Validation de la date" + }, + "type_site_validation" : { + "en" : "Site type validation", + "fr" : "Validation du type de sites" + }, + "start_date_validation" : { + "en" : "Min date validation", + "fr" : "Validation de la borne inférieure de date" + }, + "interval_date_validation" : { + "en" : "Checks that the date is included in the interval", + "fr" : "Vérifie que la date est comprise dans l'interval" + }, + "end_date_validation" : { + "en" : "Max date validation", + "fr" : "Validation de la borne supérieure de date" + } + }, + "exceptions" : { + "dat_end_date" : { + "DATE_NOT_IN_INTERVAL" : { + "en" : "the date ${date} is not in date intervale [${dateDebut},${dateFin}]", + "fr" : "la date ${date} n'est pas dans l'intervale de dates [${dateDebut},${dateFin}]" + }, + "MISSING_DATE" : { + "en" : "missing date", + "fr" : "la date est manquante" + }, + "BAD_DATE_FORMAT" : { + "en" : "the date ${date} is not in format ${format}", + "fr" : "la date ${date} n'est pas au format ${format}" + } + } + }, + "components" : { + "dat_type_site" : { + "exportHeader" : { + "title" : { + "en" : "Site type", + "fr" : "Type de zone d'étude" + }, + "description" : { + "en" : "Site type name", + "fr" : "Nom du type de zone d'étude" + } + } + }, + "dat_end_date" : { + "exportHeader" : { + "title" : { + "en" : "End date", + "fr" : "Date de fin" + }, + "description" : { + "en" : "End date", + "fr" : "Date de fin" + } + } + }, + "smp_repetition" : { + "exportHeader" : { + "title" : { + "en" : "Repetition", + "fr" : "Répétition" + }, + "description" : { + "en" : "Repetition number", + "fr" : "N° de la répétition" + } + } + }, + "dat_date_heure" : { + "exportHeader" : { + "title" : { + "en" : "Complete date", + "fr" : "Date complète" + }, + "description" : { + "en" : "Complete date with format dd/MM/yyyy HH:mm:ss", + "fr" : "Date complète au format dd/MM/yyyy HH:mm:ss" + } + } + }, + "smp" : { + "exportHeader" : { + "title" : { + "en" : "Soil moisture pressure", + "fr" : "Tension d'humdité du sol" + }, + "description" : { + "en" : "Define the soil moisture pressure", + "fr" : "Définit la tension d'humdité du sol" + } + } + }, + "swc_repetition" : { + "exportHeader" : { + "title" : { + "en" : "Repetition", + "fr" : "Répétition" + }, + "description" : { + "en" : "Repetition number", + "fr" : "N° de la répétition" + } + } + }, + "dat_start_date" : { + "exportHeader" : { + "title" : { + "en" : "Start date", + "fr" : "Date de début" + }, + "description" : { + "en" : "Start date", + "fr" : "Date de début" + } + } + }, + "dat_site" : { + "exportHeader" : { + "title" : { + "fr" : "Site" + }, + "description" : { + "en" : "Site Name", + "fr" : "Nom du site" + } + } + }, + "swc_profondeur" : { + "exportHeader" : { + "title" : { + "en" : "Depth", + "fr" : "Profondeur" + }, + "description" : { + "en" : "Depth in positive value", + "fr" : "Profondeur en valeur positive" + } + } + }, + "smp_profondeur" : { + "exportHeader" : { + "title" : { + "en" : "Depth", + "fr" : "Profondeur" + }, + "description" : { + "en" : "Depth in positive value", + "fr" : "Profondeur en valeur positive" + } + } + }, + "swc" : { + "exportHeader" : { + "title" : { + "en" : "Soil water content", + "fr" : "Humidité volumique du sol" + }, + "description" : { + "en" : "Define the soil water content", + "fr" : "Définit l'humidité volumique du sol" + } + } + } + }, + "submissions" : { + "referenceScopes" : { + "tr_zone_etude_zet" : { + "title" : { + "en" : "Site", + "fr" : "Site" + }, + "description" : { + "en" : "Site repository", + "fr" : "Référentiel des Sites" + } + } + } + }, + "i18nDisplayPattern" : null, + "i18n" : { + "title" : { + "en" : "Data", + "fr" : "Données" + }, + "description" : { + "en" : "Data repository", + "fr" : "Référentiel des données" + } + } + }, + "tr_taxon_tax" : { + "validations" : { }, + "exceptions" : { }, + "components" : { }, + "submissions" : { + "referenceScopes" : { } + }, + "i18nDisplayPattern" : { + "title" : { + "en" : "'{tax_taxon}'", + "fr" : "'{tax_taxon}'" + }, + "description" : { } + }, + "i18n" : { + "title" : { + "en" : "Taxa", + "fr" : "Taxon" + }, + "description" : { + "en" : "Taxa repository", + "fr" : "Référentiel des taxon" + } + } + }, + "tr_espece_spe" : { + "validations" : { }, + "exceptions" : { + "spe_tool" : { + "BAD_VALUE" : { + "en" : "value ${value} must be in ${values}", + "fr" : "la valeur ${value} doit être l'une des valeurs de ${values}" + } + } + }, + "components" : { + "spe_date" : { + "exportHeader" : { + "title" : { + "en" : "Start Date", + "fr" : "Date de début" + }, + "description" : { + "en" : "The start date in dd/MM/yyyy format", + "fr" : "La date de début au format dd/MM/yyyy" + } + } + }, + "spe_species" : { + "exportHeader" : { + "title" : { + "en" : "Species", + "fr" : "Espèce" + }, + "description" : { + "en" : "Species repository", + "fr" : "Référentiel des espèces" + } + } + }, + "spe_tool" : { + "exportHeader" : { + "title" : { + "en" : "Tool", + "fr" : "Outil" + }, + "description" : { + "en" : "Tool", + "fr" : "Outil" + } + } + }, + "spe_site" : { + "exportHeader" : { + "title" : { + "en" : "Site", + "fr" : "Site" + }, + "description" : { + "en" : "Site repository", + "fr" : "Référentiel des Sites" + } + } + }, + "spe_heure" : { + "exportHeader" : { + "title" : { + "en" : "Time", + "fr" : "Heure" + }, + "description" : { + "en" : "Time", + "fr" : "Heure" + } + } + }, + "spe_weight" : { + "exportHeader" : { + "title" : { + "en" : "Mass", + "fr" : "Masse" + }, + "description" : { + "en" : "Mass", + "fr" : "Masse" + } + } + }, + "spe_date_heure" : { + "exportHeader" : { + "title" : { + "en" : "Complete date", + "fr" : "Date complète" + }, + "description" : { + "en" : "Complete date with format dd/MM/yyyy HH:mm:ss", + "fr" : "Date complète au format dd/MM/yyyy HH:mm:ss" + } + } + }, + "spe_repetition" : { + "exportHeader" : { + "title" : { + "en" : "Repetition", + "fr" : "Répétition" + }, + "description" : { + "en" : "Repetition number", + "fr" : "N° de la répétition" + } + } + } + }, + "submissions" : { + "referenceScopes" : { } + }, + "i18nDisplayPattern" : { + "title" : { + "en" : "{spe_species}", + "fr" : "{spe_species}" + }, + "description" : { + "en" : "{spe_definition_en}", + "fr" : "{spe_definition_fr}" + } + }, + "i18n" : { + "title" : { + "en" : "Species", + "fr" : "Espèce" + }, + "description" : { + "en" : "Species repository", + "fr" : "Référentiel des espèces" + } + } + } + }, "rightsrequest" : { - "description" : { }, - "fields" : { } + "fields" : { + "nom" : { + "title" : { + "en" : "Name of research organization", + "fr" : "Nom de l'organisme de recherche" + }, + "description" : { + "en" : "Enter the name of your research organization", + "fr" : "Renseignez ke nom de votre organisme de recherche" + } + } + }, + "i18n" : { + "title" : { + "en" : "MONSORE App Rights Request Form", + "fr" : "Formulaire de demande de droits de l'application MONSORE" + }, + "description" : { + "en" : "You can request rights to the monsore application by filling out this form", + "fr" : "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire" + } + } }, - "additionalFiles" : { } + "additionalFiles" : { + "firstAdditionalfile" : { + "i18n" : { + "title" : { + "en" : "File", + "fr" : "Fichier" + }, + "description" : { + "en" : "File to join to application", + "fr" : "Fichier à joindre à l'application" + } + }, + "fields" : { + "projet" : { + "title" : { + "en" : "Project", + "fr" : "Projet" + }, + "description" : { + "en" : "Project repository", + "fr" : "Référentiel des projet" + } + }, + "nom" : { + "title" : { + "en" : "Name", + "fr" : "Nom" + }, + "description" : { + "en" : "Name", + "fr" : "Nom" + } + } + } + }, + "secondAdditionalfile" : { + "i18n" : { + "title" : { + "en" : "Initial data", + "fr" : "Données brutes" + }, + "description" : { + "en" : "Initial data to analyse", + "fr" : "Données brutes à traiter" + } + }, + "fields" : { + "projet" : { + "title" : { + "en" : "Project", + "fr" : "Projet" + }, + "description" : { + "en" : "Project repository", + "fr" : "Référentiel des projet" + } + }, + "nom" : { + "title" : { + "en" : "Name", + "fr" : "Nom" + }, + "description" : { + "en" : "Name", + "fr" : "Nom" + } + } + } + } + } } \ No newline at end of file diff --git a/src/test/resources/data/configuration/schemaExample.yaml b/src/test/resources/data/configuration/schemaExample.yaml index fc7cd8358..e97614a0a 100644 --- a/src/test/resources/data/configuration/schemaExample.yaml +++ b/src/test/resources/data/configuration/schemaExample.yaml @@ -31,15 +31,15 @@ OA_data: #optional fr: Espèce en: Species OA_description: #optional - fr: Référentiel des espèce + fr: Référentiel des espèces en: Species repository OA_i18nDisplayPattern: #mandatory OA_title: #optional - fr: {spe_species} - en: {spe_species} + fr: "{spe_species}" + en: "{spe_species}" OA_description: #optional - fr: {spe_definition_fr} - en: {spe_definition_en} + fr: "{spe_definition_fr}" + en: "{spe_definition_en}" OA_basicComponents: #optional spe_definition_fr: #optional OA_langRestrictions: #optional @@ -60,7 +60,7 @@ OA_data: #optional fr: Espèce en: Species OA_description: #optional - fr: Référentiel des espèce + fr: Référentiel des espèces en: Species repository OA_required: true #optional OA_importHeader: Espèce #optional @@ -220,17 +220,61 @@ OA_data: #optional en: Project repository OA_i18nDisplayPattern: #mandatory OA_title: #optional - fr: '{pro_nom_fr}' - en: '{pro_nom_en}' + fr: "'{pro_nom_fr}'" + en: "'{pro_nom_en}'" OA_description: #optional - fr: '{pro_definition_fr}' - en: '{pro_definition_en}' + fr: "'{pro_definition_fr}'" + en: "'{pro_definition_en}'" OA_basicComponents: #optional pro_nom_key: #optional + OA_langRestrictions: #optional + - fr #optional + - en #optional + OA_required: false #optional pro_nom_fr: #optional + OA_langRestrictions: #optional + - fr #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Nom du projet + en: Project name + OA_description: #optional + fr: Le nom du projet + en: The project name + OA_required: false #optional pro_nom_en: #optional + OA_langRestrictions: #optional + - en #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Nom du projet + en: Project name + OA_description: #optional + fr: Le nom du projet + en: The project name + OA_required: false #optional pro_definition_fr: #optional + OA_langRestrictions: #optional + - fr #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Définition du projet + en: Project définition + OA_description: #optional + fr: Une description du projet + en: A roject description + OA_required: false #optional pro_definition_en: #optional + OA_langRestrictions: #optional + - en #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Définition du projet + en: Project définition + OA_description: #optional + fr: Une description du projet + en: A roject description + OA_required: false #optional tr_type_zone_etude_tze: #mandatory OA_dataHeaderLine: 1 #optional OA_dataFirstLine: 2 #optional @@ -247,17 +291,61 @@ OA_data: #optional en: Sites types repository OA_i18nDisplayPattern: #mandatory OA_title: #optional - fr: 'De type : {tze_nom_fr}' - en: 'Of type : {tze_nom_en}' + fr: "'De type : {tze_nom_fr}'" + en: "'Of type : {tze_nom_en}'" OA_description: #optional - fr: '{tze_definition_fr}' - en: '{tze_definition_en}' + fr: "'{tze_definition_fr}'" + en: "'{tze_definition_en}'" OA_basicComponents: #optional tze_nom_key: #optional + OA_langRestrictions: #optional + - fr #optional + - en #optional + OA_required: false #optional tze_nom_fr: #optional + OA_langRestrictions: #optional + - fr #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Nom du type de site + en: Site type name + OA_description: #optional + fr: Le nom du type de site + en: A site type name + OA_required: false #optional tze_nom_en: #optional + OA_langRestrictions: #optional + - en #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Nom du type de site + en: Site type name + OA_description: #optional + fr: Le nom du type de site + en: A site type name + OA_required: false #optional tze_definition_fr: #optional + OA_langRestrictions: #optional + - fr #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Description du type de site + en: Site type description + OA_description: #optional + fr: Une description du type de site + en: A site type description + OA_required: false #optional tze_definition_en: #optional + OA_langRestrictions: #optional + - en #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Description du type de site + en: Site type description + OA_description: #optional + fr: Une description du type de site + en: A site type description + OA_required: false #optional tr_zone_etude_zet: #mandatory OA_dataHeaderLine: 1 #optional OA_dataFirstLine: 2 #optional @@ -276,11 +364,11 @@ OA_data: #optional en: Site repository OA_i18nDisplayPattern: #mandatory OA_title: #optional - fr: '{zet_nom_fr}' - en: '{zet_nom_en}' + fr: "'{zet_nom_fr}'" + en: "'{zet_nom_en}'" OA_description: #optional - fr: '{zet_description_fr}' - en: '{zet_description_fr}' + fr: "'{zet_description_fr}'" + en: "'{zet_description_fr}'" OA_basicComponents: #optional tze_type_nom: #optional OA_checker: #mandatory @@ -300,25 +388,54 @@ OA_data: #optional OA_required: true #optional OA_importHeader: Site #optional zet_nom_key: #optional + OA_langRestrictions: #optional + - fr #optional + - en #optional + OA_required: false #optional zet_nom_fr: #optional + OA_langRestrictions: #optional + - fr #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Nom du type de site + en: Site type name + OA_description: #optional + fr: Le nom du type de site + en: A site type name + OA_required: false #optional zet_nom_en: #optional + OA_langRestrictions: #optional + - en #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Nom du type de site + en: Site type name + OA_description: #optional + fr: Le nom du type de site + en: A site type name + OA_required: false #optional zet_description_fr: #optional + OA_langRestrictions: #optional + - fr #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Description du type de site + en: Site type description + OA_description: #optional + fr: Une description du type de site + en: A site type description + OA_required: false #optional zet_chemin_parent: #optional - OA_checker: #mandatory - OA_name: OA_reference #mandatory - OA_params: #optional - OA_reference: #mandatory - OA_name: tr_type_zone_etude_tze #mandatory - OA_multiplicity: ONE #optional + OA_langRestrictions: #optional + - en #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Site parent - en: Parent site + fr: Description du type de site + en: Site type description OA_description: #optional - fr: Nom du site parent - en: Parent site name + fr: Une description du type de site + en: A site type description OA_required: false #optional - OA_importHeader: Site parent #optional OA_computedComponents: #optional zet_computed_key: #optional OA_withNaturalKeyComponents: #optional @@ -353,8 +470,8 @@ OA_data: #optional en: Taxa properties OA_i18nDisplayPattern: #mandatory OA_title: #optional - fr: '{ptx_propriete}' - en: '{ptx_propriete}' + fr: "'{ptx_propriete}'" + en: "'{ptx_propriete}'" OA_basicComponents: #optional ptx_date: #optional OA_checker: #mandatory @@ -393,8 +510,8 @@ OA_data: #optional en: Taxa repository OA_i18nDisplayPattern: #mandatory OA_title: #optional - fr: '{tax_taxon}' - en: '{tax_taxon}' + fr: "'{tax_taxon}'" + en: "'{tax_taxon}'" OA_basicComponents: #optional tax_taxon: #optional OA_required: true #optional @@ -851,11 +968,14 @@ OA_data: #optional - dat_site #optional OA_timeScope: dat_date_heure #optional OA_rightsRequest: #optional - OA_description: #optional - OA_i18n: #optional + OA_i18n: #mandatory + OA_title: #optional + fr: Formulaire de demande de droits de l'application MONSORE + en: MONSORE App Rights Request Form + OA_description: #optional fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire en: You can request rights to the monsore application by filling out this form - OA_format: #optional + OA_formFields: #optional nom: #optional OA_checker: #optional OA_name: OA_string #mandatory @@ -877,8 +997,8 @@ OA_additionalFiles: #optional en: File OA_description: #optional fr: Fichier à joindre à l'application - en: File to oin to application - OA_format: #optional + en: File to join to application + OA_formFields: #optional nom: #optional OA_checker: #optional OA_name: OA_string #mandatory @@ -916,7 +1036,7 @@ OA_additionalFiles: #optional OA_description: #optional fr: Données brutes à traiter en: Initial data to analyse - OA_format: #optional + OA_formFields: #optional nom: #optional OA_checker: #optional OA_name: OA_string #mandatory diff --git a/src/test/resources/data/configuration/travail.yaml b/src/test/resources/data/configuration/travail.yaml index 1d25c9cca..267d66b2a 100644 --- a/src/test/resources/data/configuration/travail.yaml +++ b/src/test/resources/data/configuration/travail.yaml @@ -620,7 +620,7 @@ dataTypes: # types de données à gérer (un type = un modèle de fichier csv) plot: datum.location.tel_experimental_plot treatment: datum.treatment.tel_experimental_treatment - OA_format: # comment remplir les données décrites dans la section data à partir du fichier csv de ce type de données + OA_FORM_FIELDS: # comment remplir les données décrites dans la section data à partir du fichier csv de ce type de données #allowUnexpectedColumns: true #pas d'erreur avec colonnes suppléméntaires non traitées ("Date & Heure") --> ne fonctionne pas actuellement headerLine: 11 #numéro de la ligne contenant les en-têtes de colonnes firstRowLine: 12 # numéro de la première ligne de données diff --git a/src/test/resources/data/monsore/monsore-with-repository.yaml b/src/test/resources/data/monsore/monsore-with-repository.yaml index 12fb7357a..9563e1550 100644 --- a/src/test/resources/data/monsore/monsore-with-repository.yaml +++ b/src/test/resources/data/monsore/monsore-with-repository.yaml @@ -28,7 +28,7 @@ OA_rightsRequest: OA_i18n: fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire en: You can request rights to the monsore application by filling out this form - OA_format: + OA_FORM_FIELDS: organization: OA_i18n: fr: Nom de l'organisme de recherche @@ -67,7 +67,7 @@ OA_additionalFiles: OA_i18n: fr: Fichiers en: Files - OA_format: + OA_FORM_FIELDS: nom: OA_i18n: fr: Nom @@ -113,7 +113,7 @@ OA_additionalFiles: OA_i18n: fr: Users en: User - OA_format: + OA_FORM_FIELDS: nom: OA_i18n: fr: Nom diff --git a/src/test/resources/data/monsore/monsore.yaml b/src/test/resources/data/monsore/monsore.yaml index 47e1f2a65..7d55f183d 100644 --- a/src/test/resources/data/monsore/monsore.yaml +++ b/src/test/resources/data/monsore/monsore.yaml @@ -28,7 +28,7 @@ OA_rightsRequest: OA_i18n: fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire en: You can request rights to the monsore application by filling out this form - OA_format: + OA_FORM_FIELDS: organization: OA_i18n: fr: Nom de l'organisme de recherche @@ -67,7 +67,7 @@ OA_additionalFiles: OA_i18n: fr: Fichiers en: Files - OA_format: + OA_FORM_FIELDS: nom: OA_i18n: fr: Nom @@ -113,7 +113,7 @@ OA_additionalFiles: OA_i18n: fr: Users en: User - OA_format: + OA_FORM_FIELDS: nom: OA_i18n: fr: Nom diff --git a/src/test/resources/data/validation/broken-fake-app.yaml b/src/test/resources/data/validation/broken-fake-app.yaml index 6e183476f..434b0bd98 100644 --- a/src/test/resources/data/validation/broken-fake-app.yaml +++ b/src/test/resources/data/validation/broken-fake-app.yaml @@ -19,7 +19,7 @@ OA_rightsRequest: OA_i18n: fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire en: You can request rights to the monsore application by filling out this form - OA_format: + OA_FORM_FIELDS: organization: OA_i18n: fr: Nom de l'organisme de recherche -- GitLab From caee78fcc4c6adfc40300b9d4aa33580997ab73b Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Tue, 22 Oct 2024 11:21:30 +0200 Subject: [PATCH 21/52] =?UTF-8?q?Correction=20du=20fichier=20d'example=20-?= =?UTF-8?q?=20derni=C3=A8re=20correction=20des=20noms=20de=20section=20-?= =?UTF-8?q?=20enrichissement=20des=20sections=20-=20coh=C3=A9rence=20des?= =?UTF-8?q?=20sections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BasicComponentExampleBuilder.java | 44 ++++--- .../examples/CollectionExampleBuilder.java | 17 +-- .../ReferenceCheckerExampleBuilder.java | 2 +- .../examples/StringExampleBuilder.java | 64 ++++++---- .../examples/TitleExampleBuilder.java | 91 ++++++++++++-- .../configuration/data.result.example.json | 113 ++++++++++++------ .../localization.example.result.json | 64 ++++------ .../data/configuration/schemaExample.yaml | 82 ++++++++----- .../fixtures/applications/errors/errors.json | 2 +- .../ore/monsore/validateMonsore.txt | 31 +++-- 10 files changed, 334 insertions(+), 176 deletions(-) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java index 297ab1e26..ae475a400 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/BasicComponentExampleBuilder.java @@ -3,36 +3,42 @@ package fr.inra.oresing.domain.application.configuration.examples; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.application.configuration.type.*; import org.apache.commons.collections4.CollectionUtils; +import static fr.inra.oresing.domain.application.configuration.examples.StringExampleBuilder.*; import java.util.HashMap; import java.util.List; import java.util.Map; class BasicComponentExampleBuilder { - public static final BasicComponentType TYPE_DE_SITES_KEY = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR_EN); - public static final BasicComponentType TYPE_DE_SITES_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.TYPE_SITES_NOM, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); - public static final BasicComponentType TYPE_DE_SITES_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.TYPE_SITES_NOM, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); - public static final BasicComponentType TYPE_DE_SITES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.TYPE_SITES_DEFINITION, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); - public static final BasicComponentType TYPE_DE_SITES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.TYPE_SITES_DEFINITION, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); - public static final BasicComponentType PROJET_KEY = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR_EN); - public static final BasicComponentType PROJET_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.PROJET_NOM, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); - public static final BasicComponentType PROJET_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.PROJET_NOM, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); - public static final BasicComponentType PROJET_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.PROJET_DEFINITION, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); - public static final BasicComponentType PROJET_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, TitleExampleBuilder.PROJET_DEFINITION, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); - protected static final BasicComponentType ESPECES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); - protected static final BasicComponentType ESPECES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, null, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); - protected static final BasicComponentType ESPECES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.ESPECE, TitleExampleBuilder.ESPECE, StringCheckerExampleBuilder.ESPECE, null, null); - protected static final BasicComponentType TYPE_DE_SITES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.TYPE_DE_SITE, TitleExampleBuilder.TYPE_DE_SITES, ReferenceCheckerExampleBuilder.TYPE_DE_SITES, null, null); - protected static final BasicComponentType DATE_START = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.DATE, TitleExampleBuilder.START_DATE, DateCheckerExampleBuilder.DDMMYYYY, null, null); - protected static final BasicComponentType HEURE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.HEURE, TitleExampleBuilder.HEURE, DateCheckerExampleBuilder.HHMMSS, null, null); - protected static final BasicComponentType MASSE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.QUANTITE, TitleExampleBuilder.MASSE, FloatCheckerExampleBuilder.OF, DefaultValueType.FLOAT_0, null); + public static final BasicComponentType SITES_KEY = buildBasicComponents(null, BooleanExampleBuilder.FALSE, NOM_CODIQUE_DU_SITE, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR_EN); + public static final BasicComponentType SITES_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, FRENCH_SITE_NAME, TitleExampleBuilder.SITES_NOM_FR, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType SITES_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, ENGLISH_SITE_NAME, TitleExampleBuilder.SITES_NOM_EN, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType SITES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, FRENCH_SITE_DESCRIPTION, TitleExampleBuilder.TYPE_SITES_DEFINITION_FR, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType SITES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, ENGLISH_SITE_DESCRIPTION, TitleExampleBuilder.SITES_DEFINITION_EN, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType SITES_PARENT = buildBasicComponents(null, BooleanExampleBuilder.FALSE, NOM_DU_SITE_PARENT, TitleExampleBuilder.SITES_PARENT, ReferenceCheckerExampleBuilder.SITE, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType TYPE_DE_SITES_KEY = buildBasicComponents(null, BooleanExampleBuilder.FALSE, TYPE_SITE_CODIC_NAME, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR_EN); + public static final BasicComponentType TYPE_DE_SITES_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, FRENCH_TYPE_SITE_NAME, TitleExampleBuilder.TYPE_SITES_NOM_FR, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType TYPE_DE_SITES_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, ENGLISH_TYPE_SITE_NAME, TitleExampleBuilder.TYPE_SITES_NOM_EN, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType TYPE_DE_SITES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, FRENCH_TYPE_SITE_DESCRIPTION, TitleExampleBuilder.TYPE_SITES_DEFINITION_FR, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType TYPE_DE_SITES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, ENGLISH_TYPE_SITE_DESCRIPTION, TitleExampleBuilder.TYPE_SITES_DEFINITION_EN, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType PROJET_KEY = buildBasicComponents(null, BooleanExampleBuilder.FALSE, NOM_CODIQUE_DU_PROJET, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR_EN); + public static final BasicComponentType PROJET_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, NOM_DU_PROJET_EN_FRANÇAIS, TitleExampleBuilder.PROJET_NOM_FR, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType PROJET_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, ENGLISH_PROJECT_NAME, TitleExampleBuilder.PROJET_NOM_EN, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + public static final BasicComponentType PROJET_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, DÉFINITION_DU_PROJET_EN_FRANÇAIS, TitleExampleBuilder.PROJET_DEFINITION_FR, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + public static final BasicComponentType PROJET_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, ENGLISH_PROJECT_DEFINITION, TitleExampleBuilder.PROJET_DEFINITION_EN, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + protected static final BasicComponentType ESPECES_DEFINITION_FR = buildBasicComponents(null, BooleanExampleBuilder.FALSE, SPECIES_DEFINITION_FR, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_FR); + protected static final BasicComponentType ESPECES_DEFINITION_EN = buildBasicComponents(null, BooleanExampleBuilder.FALSE, ENGLISH_SPECIES_DEFINITION, null, null, null, I18nExampleBuilder.LANG_RESTRICTION_EN); + protected static final BasicComponentType ESPECES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, ESPECE, TitleExampleBuilder.ESPECE, StringCheckerExampleBuilder.ESPECE, null, null); + protected static final BasicComponentType TYPE_DE_SITES = buildBasicComponents(null, BooleanExampleBuilder.TRUE, TYPE_DE_SITE, TitleExampleBuilder.TYPE_DE_SITES, ReferenceCheckerExampleBuilder.TYPE_DE_SITES, null, null); + protected static final BasicComponentType DATE_START = buildBasicComponents(null, BooleanExampleBuilder.TRUE, DATE, TitleExampleBuilder.START_DATE, DateCheckerExampleBuilder.DDMMYYYY, null, null); + protected static final BasicComponentType HEURE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.HEURE, TitleExampleBuilder.HEURE, DateCheckerExampleBuilder.HHMMSS, null, null), MASSE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, QUANTITE, TitleExampleBuilder.MASSE, FloatCheckerExampleBuilder.OF, DefaultValueType.FLOAT_0, null); protected static final BasicComponentType OUTIL = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.OUTIL, TitleExampleBuilder.OUTIL, GroovyCheckerExampleBuilder.T_11, null, null); protected static final BasicComponentType PROPRIETE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.PROPRIETE, null, null, null, null); protected static final BasicComponentType TAXON_NOM = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.TAXON_NOM, null, null, null, null); protected static final BasicComponentType SITE = buildBasicComponents(null, BooleanExampleBuilder.TRUE, StringExampleBuilder.SITE, TitleExampleBuilder.SITE, ReferenceCheckerExampleBuilder.SITE, null, null); - protected static final BasicComponentType IS_ISO = buildBasicComponents(List.of(StringExampleBuilder.HIDDEN), BooleanExampleBuilder.TRUE, null, null, BooleanCheckerExampleBuilder.BOOLEAN_CHECKER_TYPE, null, null); + protected static final BasicComponentType IS_ISO = buildBasicComponents(List.of(HIDDEN), BooleanExampleBuilder.TRUE, new StringType("iso"), null, BooleanCheckerExampleBuilder.BOOLEAN_CHECKER_TYPE, null, null); protected static final BasicComponentType REPETITION = buildBasicComponents(null, BooleanExampleBuilder.FALSE, StringExampleBuilder.REPETITION, TitleExampleBuilder.REPETITION, IntegerCheckerExampleBuilder.ZERO_DIX, null, null); - protected static final BasicComponentType CHEMIN_PARENT = buildBasicComponents(null, BooleanExampleBuilder.FALSE, StringExampleBuilder.SITE_PARENT, TitleExampleBuilder.SITE_PARENT, ReferenceCheckerExampleBuilder.SITE, null, null); + protected static final BasicComponentType CHEMIN_PARENT = buildBasicComponents(null, BooleanExampleBuilder.FALSE, SITE_PARENT, TitleExampleBuilder.SITE_PARENT, ReferenceCheckerExampleBuilder.SITE, null, null); protected static BasicComponentType buildBasicComponents(final List<StringType> tags, diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java index 66902d6cf..b1209f720 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/CollectionExampleBuilder.java @@ -24,11 +24,12 @@ class CollectionExampleBuilder { }}, false, false, BasicComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<BasicComponentType> SITES_BASIC_COMPONENTS = new CollectionType.MapType<BasicComponentType>(new LinkedHashMap<String, BasicComponentType>() {{ put("tze_type_nom", BasicComponentExampleBuilder.TYPE_DE_SITES); - put("zet_nom_key", BasicComponentExampleBuilder.TYPE_DE_SITES_KEY); - put("zet_nom_fr", BasicComponentExampleBuilder.TYPE_DE_SITES_FR); - put("zet_nom_en", BasicComponentExampleBuilder.TYPE_DE_SITES_EN); - put("zet_description_fr", BasicComponentExampleBuilder.TYPE_DE_SITES_DEFINITION_FR); - put("zet_chemin_parent", BasicComponentExampleBuilder.TYPE_DE_SITES_DEFINITION_EN); + put("zet_nom_key", BasicComponentExampleBuilder.SITES_KEY); + put("zet_nom_fr", BasicComponentExampleBuilder.SITES_FR); + put("zet_nom_en", BasicComponentExampleBuilder.SITES_EN); + put("zet_description_fr", BasicComponentExampleBuilder.SITES_DEFINITION_FR); + put("zet_description_en", BasicComponentExampleBuilder.SITES_DEFINITION_EN); + put("zet_chemin_parent", BasicComponentExampleBuilder.SITES_PARENT); }}, false, false, BasicComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<ComputedComponentType> SITES_COMPUTED_COMPONENTS = new CollectionType.MapType<ComputedComponentType>(new LinkedHashMap<String, ComputedComponentType>() {{ put("zet_computed_key", ComputedComponentExampleBuilder.SITES); @@ -54,13 +55,15 @@ class CollectionExampleBuilder { put("tze_definition_fr", BasicComponentExampleBuilder.TYPE_DE_SITES_DEFINITION_FR); put("tze_definition_en", BasicComponentExampleBuilder.TYPE_DE_SITES_DEFINITION_EN); }}, false, false, BasicComponentType.EMPTY_INSTANCE()); - protected static final CollectionType.MapType<BasicComponentType> DATA_BASIC_COMPONENTS = new CollectionType.MapType<BasicComponentType>(new LinkedHashMap<String, BasicComponentType>() {{ + protected static final CollectionType.MapType<BasicComponentType> DATA_BASIC_COMPONENTS = new CollectionType.MapType<BasicComponentType>( + new LinkedHashMap<String, BasicComponentType>() {{ put("dat_date", BasicComponentType.EMPTY_INSTANCE()); put("dat_heure", BasicComponentType.EMPTY_INSTANCE()); }}, false, false, BasicComponentType.EMPTY_INSTANCE() ); - protected static final CollectionType.MapType<ComputedComponentType> DATA_COMPUTED_COMPONENTS = new CollectionType.MapType<ComputedComponentType>(Map.of("dat_date_heure", ComputedComponentExampleBuilder.DATA_DATE_HEURE), false, false, ComputedComponentType.EMPTY_INSTANCE()); + protected static final CollectionType.MapType<ComputedComponentType> DATA_COMPUTED_COMPONENTS = new CollectionType.MapType<ComputedComponentType>( + Map.of("dat_date_heure", ComputedComponentExampleBuilder.DATA_DATE_HEURE), false, false, ComputedComponentType.EMPTY_INSTANCE()); protected static final CollectionType.MapType<PatternComponentType> DATA_PATTERN_COMPONENTS = new CollectionType.MapType<PatternComponentType>(new LinkedHashMap<String, PatternComponentType>() { { diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceCheckerExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceCheckerExampleBuilder.java index 9b0efd7cc..dc0e822de 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceCheckerExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceCheckerExampleBuilder.java @@ -8,7 +8,7 @@ import java.util.HashMap; import java.util.Map; class ReferenceCheckerExampleBuilder { - protected static final ReferenceCheckerType SITE = buildReferenceChecker("tr_type_zone_etude_tze", Multiplicity.ONE, false, false); + protected static final ReferenceCheckerType SITE = buildReferenceChecker("tr_zone_etude_zet", Multiplicity.ONE, false, true); protected static final ReferenceCheckerType TYPE_DE_SITES = buildReferenceChecker("tr_type_zone_etude_tze", Multiplicity.ONE, true, false); protected static ReferenceCheckerType buildReferenceChecker(final String reference, final Multiplicity multiplicity, final boolean isParent, final boolean isRecursive) { final Map<String, ConfigurationSchemaNodeType> children = new HashMap<String, ConfigurationSchemaNodeType>(); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/StringExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/StringExampleBuilder.java index de8348b06..2e72d4870 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/StringExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/StringExampleBuilder.java @@ -5,28 +5,46 @@ import fr.inra.oresing.domain.application.configuration.SubmissionType; import fr.inra.oresing.domain.application.configuration.type.StringType; class StringExampleBuilder { - protected static final StringType REPOSITORY = new StringType(SubmissionType.OA_VERSIONING.name(), false); - protected static final StringType MONSORE = new StringType("monsore", true); - protected static final StringType INITIAL_VERSION = new StringType("3.0.1", true); - protected static final StringType COMMENT = new StringType("Fichier de test de l'application brokenADOM"); - protected static final StringType DEFAULT_LANGUAGE = new StringType("fr"); - protected static final StringType ESPECE = new StringType("Espèce"); - protected static final StringType DATE = new StringType("Date"); - protected static final StringType HEURE = new StringType("Heure"); - protected static final StringType QUANTITE = new StringType("Quantité"); - protected static final StringType PROPRIETE = new StringType("Proprieté"); - protected static final StringType TAXON_NOM = new StringType("Nom du taxon"); - protected static final StringType PROPRIETE_TAXON_HEADER_PREFIX = new StringType("pt_"); - protected static final StringType PROPRIETE_TAXON_REFERENCE = new StringType("tr_propriete_taxon_ptx"); - protected static final StringType PROPRIETE_TAXON_REFERENCE_TO_LOOKUP = new StringType("ptx_propriete"); - protected static final StringType DATE_TIME_GRROVY_EXPRESSION = new StringType("return datum.date + \" \" + datum.heure"); - protected static final StringType DATA_DATE_TIME_GRROVY_EXPRESSION = new StringType("return datum.dat_date + \" \" + datum.dat_heure"); - protected static final StringType OUTIL = new StringType("Outil"); - protected static final StringType SITE = new StringType("Site"); - protected static final StringType TYPE_DE_SITE = new StringType("Site"); - protected static final StringType SITE_PARENT = new StringType("Site parent"); - protected static final StringType HIDDEN = new StringType("__HIDDEN__"); - protected static final StringType REPETITION = new StringType("Répétition"); - protected static final StringType OPENADOM_VERSION = new StringType(Configuration.OPEN_ADOM_VERSION_PATTERN); + public static final StringType NOM_CODIQUE_DU_SITE = new StringType("Nom codique du site"); + public static final StringType FRENCH_SITE_NAME = new StringType("Nom du site en français"); + public static final StringType ENGLISH_SITE_NAME = new StringType("English site name"); + public static final StringType FRENCH_SITE_DESCRIPTION = new StringType("Description du site en français"); + public static final StringType ENGLISH_SITE_DESCRIPTION = new StringType("English site description"); + public static final StringType NOM_DU_SITE_PARENT = new StringType("Nom du site parent"); + public static final StringType TYPE_SITE_CODIC_NAME = new StringType("Nom codique du type de site"); + public static final StringType FRENCH_TYPE_SITE_NAME = new StringType("Nom du type de site en français"); + public static final StringType ENGLISH_TYPE_SITE_NAME = new StringType("English type site name"); + public static final StringType FRENCH_TYPE_SITE_DESCRIPTION = new StringType("Description du type de site en français"); + public static final StringType ENGLISH_TYPE_SITE_DESCRIPTION = new StringType("English type site description"); + public static final StringType NOM_CODIQUE_DU_PROJET = new StringType("Nom codique du projet"); + public static final StringType NOM_DU_PROJET_EN_FRANÇAIS = new StringType("Nom du projet en français"); + public static final StringType ENGLISH_PROJECT_NAME = new StringType("English project name"); + public static final StringType DÉFINITION_DU_PROJET_EN_FRANÇAIS = new StringType("Définition du projet en français"); + public static final StringType ENGLISH_PROJECT_DEFINITION = new StringType("English project definition"); + public static final StringType SPECIES_DEFINITION_FR = new StringType("Défintion de l'espèce en français"); + public static final StringType ENGLISH_SPECIES_DEFINITION = new StringType("English species definition"); + public static final StringType REPOSITORY = new StringType(SubmissionType.OA_VERSIONING.name(), false); + public static final StringType MONSORE = new StringType("monsore", true); + public static final StringType INITIAL_VERSION = new StringType("3.0.1", true); + public static final StringType COMMENT = new StringType("Fichier de test de l'application brokenADOM"); + public static final StringType DEFAULT_LANGUAGE = new StringType("fr"); + public static final StringType ESPECE = new StringType("Espèce"); + public static final StringType DATE = new StringType("Date"); + public static final StringType HEURE = new StringType("Heure"); + public static final StringType QUANTITE = new StringType("Quantité"); + public static final StringType PROPRIETE = new StringType("Proprieté"); + public static final StringType TAXON_NOM = new StringType("Nom du taxon"); + public static final StringType PROPRIETE_TAXON_HEADER_PREFIX = new StringType("pt_"); + public static final StringType PROPRIETE_TAXON_REFERENCE = new StringType("tr_propriete_taxon_ptx"); + public static final StringType PROPRIETE_TAXON_REFERENCE_TO_LOOKUP = new StringType("ptx_propriete"); + public static final StringType DATE_TIME_GRROVY_EXPRESSION = new StringType("return datum.date + \" \" + datum.heure"); + public static final StringType DATA_DATE_TIME_GRROVY_EXPRESSION = new StringType("return datum.dat_date + \" \" + datum.dat_heure"); + public static final StringType OUTIL = new StringType("Outil"); + public static final StringType SITE = new StringType("Site"); + public static final StringType TYPE_DE_SITE = new StringType("Site"); + public static final StringType SITE_PARENT = new StringType("Site parent"); + public static final StringType HIDDEN = new StringType("__HIDDEN__"); + public static final StringType REPETITION = new StringType("Répétition"); + public static final StringType OPENADOM_VERSION = new StringType(Configuration.OPEN_ADOM_VERSION_PATTERN); } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java index 5921cf8f0..f8639844e 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java @@ -22,41 +22,116 @@ class TitleExampleBuilder { "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire", "You can request rights to the monsore application by filling out this form") ); - public static final TitleType TYPE_SITES_NOM = TitleExampleBuilder.buildTitle( + public static final TitleType SITES_NOM_FR = TitleExampleBuilder.buildTitle( + + + I18nExampleBuilder.buildI18n( + "Nom du site", + null), + I18nExampleBuilder.buildI18n( + "Le nom du site", + null) + ); + public static final TitleType SITES_NOM_EN = TitleExampleBuilder.buildTitle( + + + I18nExampleBuilder.buildI18n( + null, + "Site name"), + I18nExampleBuilder.buildI18n( + null, + "A site name") + ); + public static final TitleType TYPE_SITES_NOM_FR = TitleExampleBuilder.buildTitle( I18nExampleBuilder.buildI18n( "Nom du type de site", - "Site type name"), + null), I18nExampleBuilder.buildI18n( "Le nom du type de site", + null) + ); + public static final TitleType TYPE_SITES_NOM_EN = TitleExampleBuilder.buildTitle( + + + I18nExampleBuilder.buildI18n( + null, + "Site type name"), + I18nExampleBuilder.buildI18n( + null, "A site type name") ); - public static final TitleType TYPE_SITES_DEFINITION = TitleExampleBuilder.buildTitle( + public static final TitleType TYPE_SITES_DEFINITION_FR = TitleExampleBuilder.buildTitle( I18nExampleBuilder.buildI18n( "Description du type de site", - "Site type description"), + null), I18nExampleBuilder.buildI18n( "Une description du type de site", + null) + ); + public static final TitleType TYPE_SITES_DEFINITION_EN = TitleExampleBuilder.buildTitle( + + I18nExampleBuilder.buildI18n( + null, + "Site type description"), + I18nExampleBuilder.buildI18n( + null, "A site type description") ); - public static final TitleType PROJET_NOM = TitleExampleBuilder.buildTitle( + public static final TitleType SITES_DEFINITION_EN = TitleExampleBuilder.buildTitle( + + I18nExampleBuilder.buildI18n( + null, + "Site description"), + I18nExampleBuilder.buildI18n( + null, + "A site description") + ); + public static final TitleType SITES_PARENT = TitleExampleBuilder.buildTitle( + + I18nExampleBuilder.buildI18n( + "Site parent", + "Parent site"), + I18nExampleBuilder.buildI18n( + "La zone d'étude parente contenant le site.", + "The parent study area containing the site.") + ); + public static final TitleType PROJET_NOM_FR = TitleExampleBuilder.buildTitle( I18nExampleBuilder.buildI18n( "Nom du projet", - "Project name"), + null), I18nExampleBuilder.buildI18n( "Le nom du projet", + null) + ); + public static final TitleType PROJET_NOM_EN = TitleExampleBuilder.buildTitle( + + I18nExampleBuilder.buildI18n( + null, + "Project name"), + I18nExampleBuilder.buildI18n( + null, "The project name") ); - public static final TitleType PROJET_DEFINITION = TitleExampleBuilder.buildTitle( + public static final TitleType PROJET_DEFINITION_FR = TitleExampleBuilder.buildTitle( I18nExampleBuilder.buildI18n( "Définition du projet", - "Project définition"), + null), I18nExampleBuilder.buildI18n( "Une description du projet", + null) + ); + public static final TitleType PROJET_DEFINITION_EN = TitleExampleBuilder.buildTitle( + + I18nExampleBuilder.buildI18n( + null, + "Project définition"), + I18nExampleBuilder.buildI18n( + null, "A roject description") ); protected static final TitleType GENERIC_TITLE = buildTitle( diff --git a/src/test/resources/data/configuration/data.result.example.json b/src/test/resources/data/configuration/data.result.example.json index f3797f684..6fbbb74a7 100644 --- a/src/test/resources/data/configuration/data.result.example.json +++ b/src/test/resources/data/configuration/data.result.example.json @@ -50,6 +50,35 @@ "chartDescription" : null, "reference" : true }, + "zet_description_en" : { + "type" : "BasicComponent", + "componentKey" : "zet_description_en", + "defaultValue" : { + "type" : "ComputationChecker", + "multiplicity" : "ONE", + "required" : false, + "expression" : "return \"\";", + "references" : null, + "exceptionMessages" : [ ], + "codify" : false, + "data" : null + }, + "tags" : [ { + "tagDefinition" : "NO_TAG", + "tagName" : "no_tag" + } ], + "importHeader" : "English site description", + "exportHeaderName" : "zet_description_en", + "langRestrictions" : [ "en" ], + "required" : false, + "mandatory" : "OPTIONAL", + "checker" : null, + "submissionAuthorizationScope" : null, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + }, "zet_nom_fr" : { "type" : "BasicComponent", "componentKey" : "zet_nom_fr", @@ -67,7 +96,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "zet_nom_fr", + "importHeader" : "Nom du site en français", "exportHeaderName" : "zet_nom_fr", "langRestrictions" : [ "fr" ], "required" : false, @@ -96,7 +125,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "zet_nom_key", + "importHeader" : "Nom codique du site", "exportHeaderName" : null, "langRestrictions" : [ "fr", "en" ], "required" : false, @@ -124,9 +153,9 @@ "componentKey" : "zet_computed_key", "multiplicity" : "ONE", "required" : false, - "refType" : "tr_type_zone_etude_tze", - "isRecursive" : false, - "isParent" : false + "refType" : "tr_zone_etude_zet", + "isRecursive" : true, + "isParent" : true }, "computationChecker" : { "type" : "ComputationChecker", @@ -140,7 +169,7 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_type_zone_etude_tze", + "referenceCheckerType" : "tr_zone_etude_zet", "chartDescription" : null, "reference" : true }, @@ -161,7 +190,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "zet_nom_en", + "importHeader" : "English site name", "exportHeaderName" : "zet_nom_en", "langRestrictions" : [ "en" ], "required" : false, @@ -190,7 +219,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "zet_description_fr", + "importHeader" : "Description du site en français", "exportHeaderName" : "zet_description_fr", "langRestrictions" : [ "fr" ], "required" : false, @@ -219,17 +248,25 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "zet_chemin_parent", + "importHeader" : "Nom du site parent", "exportHeaderName" : "zet_chemin_parent", "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", - "checker" : null, + "checker" : { + "type" : "ReferenceChecker", + "componentKey" : "zet_chemin_parent", + "multiplicity" : "ONE", + "required" : false, + "refType" : "tr_zone_etude_zet", + "isRecursive" : true, + "isParent" : true + }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", + "referenceCheckerType" : "tr_zone_etude_zet", "chartDescription" : null, - "reference" : false + "reference" : true } }, "submission" : null, @@ -240,9 +277,13 @@ "references" : "tr_type_zone_etude_tze", "component" : "tze_type_nom" }, { - "type" : "DependsReferences", - "references" : "tr_type_zone_etude_tze", + "type" : "DependsParent", + "references" : "tr_zone_etude_zet", "component" : "zet_computed_key" + }, { + "type" : "DependsParent", + "references" : "tr_zone_etude_zet", + "component" : "zet_chemin_parent" } ], "migrations" : null, "hidden" : false, @@ -276,7 +317,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "tze_nom_key", + "importHeader" : "Nom codique du type de site", "exportHeaderName" : null, "langRestrictions" : [ "fr", "en" ], "required" : false, @@ -305,7 +346,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "tze_nom_fr", + "importHeader" : "Nom du type de site en français", "exportHeaderName" : "tze_nom_fr", "langRestrictions" : [ "fr" ], "required" : false, @@ -334,7 +375,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "tze_definition_fr", + "importHeader" : "Description du type de site en français", "exportHeaderName" : "tze_definition_fr", "langRestrictions" : [ "fr" ], "required" : false, @@ -363,7 +404,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "tze_nom_en", + "importHeader" : "English type site name", "exportHeaderName" : "tze_nom_en", "langRestrictions" : [ "en" ], "required" : false, @@ -392,7 +433,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "tze_definition_en", + "importHeader" : "English type site description", "exportHeaderName" : "tze_definition_en", "langRestrictions" : [ "en" ], "required" : false, @@ -535,7 +576,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "pro_nom_key", + "importHeader" : "Nom codique du projet", "exportHeaderName" : null, "langRestrictions" : [ "fr", "en" ], "required" : false, @@ -564,7 +605,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "pro_nom_fr", + "importHeader" : "Nom du projet en français", "exportHeaderName" : "pro_nom_fr", "langRestrictions" : [ "fr" ], "required" : false, @@ -593,7 +634,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "pro_definition_fr", + "importHeader" : "Définition du projet en français", "exportHeaderName" : "pro_definition_fr", "langRestrictions" : [ "fr" ], "required" : false, @@ -622,7 +663,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "pro_nom_en", + "importHeader" : "English project name", "exportHeaderName" : "pro_nom_en", "langRestrictions" : [ "en" ], "required" : false, @@ -651,7 +692,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "pro_definition_en", + "importHeader" : "English project definition", "exportHeaderName" : "pro_definition_en", "langRestrictions" : [ "en" ], "required" : false, @@ -1304,9 +1345,9 @@ "componentKey" : "dat_site", "multiplicity" : "ONE", "required" : true, - "refType" : "tr_type_zone_etude_tze", - "isRecursive" : false, - "isParent" : false + "refType" : "tr_zone_etude_zet", + "isRecursive" : true, + "isParent" : true } }, "tags" : [ { @@ -1544,7 +1585,7 @@ "tags" : [ { "tagDefinition" : "HIDDEN_TAG" } ], - "importHeader" : "spe_is_iso", + "importHeader" : "iso", "exportHeaderName" : null, "langRestrictions" : [ ], "required" : true, @@ -1578,7 +1619,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "spe_definition_fr", + "importHeader" : "Défintion de l'espèce en français", "exportHeaderName" : null, "langRestrictions" : [ "fr" ], "required" : false, @@ -1617,13 +1658,13 @@ "componentKey" : "spe_site", "multiplicity" : "ONE", "required" : true, - "refType" : "tr_type_zone_etude_tze", - "isRecursive" : false, - "isParent" : false + "refType" : "tr_zone_etude_zet", + "isRecursive" : true, + "isParent" : true }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_type_zone_etude_tze", + "referenceCheckerType" : "tr_zone_etude_zet", "chartDescription" : null, "reference" : true }, @@ -1716,7 +1757,7 @@ "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "importHeader" : "spe_definition_en", + "importHeader" : "English species definition", "exportHeaderName" : null, "langRestrictions" : [ "en" ], "required" : false, @@ -1804,8 +1845,8 @@ "authorization" : null, "validations" : { }, "depends" : [ { - "type" : "DependsReferences", - "references" : "tr_type_zone_etude_tze", + "type" : "DependsParent", + "references" : "tr_zone_etude_zet", "component" : "spe_site" } ], "migrations" : null, diff --git a/src/test/resources/data/configuration/localization.example.result.json b/src/test/resources/data/configuration/localization.example.result.json index 1e611e5e4..ebe804639 100644 --- a/src/test/resources/data/configuration/localization.example.result.json +++ b/src/test/resources/data/configuration/localization.example.result.json @@ -36,15 +36,23 @@ } } }, + "zet_description_en" : { + "exportHeader" : { + "title" : { + "en" : "Site description" + }, + "description" : { + "en" : "A site description" + } + } + }, "zet_nom_fr" : { "exportHeader" : { "title" : { - "en" : "Site type name", - "fr" : "Nom du type de site" + "fr" : "Nom du site" }, "description" : { - "en" : "A site type name", - "fr" : "Le nom du type de site" + "fr" : "Le nom du site" } } }, @@ -63,35 +71,31 @@ "zet_nom_en" : { "exportHeader" : { "title" : { - "en" : "Site type name", - "fr" : "Nom du type de site" + "en" : "Site name" }, "description" : { - "en" : "A site type name", - "fr" : "Le nom du type de site" + "en" : "A site name" } } }, "zet_chemin_parent" : { "exportHeader" : { "title" : { - "en" : "Site type description", - "fr" : "Description du type de site" + "en" : "Parent site", + "fr" : "Site parent" }, "description" : { - "en" : "A site type description", - "fr" : "Une description du type de site" + "en" : "The parent study area containing the site.", + "fr" : "La zone d'étude parente contenant le site." } } }, "zet_description_fr" : { "exportHeader" : { "title" : { - "en" : "Site type description", "fr" : "Description du type de site" }, "description" : { - "en" : "A site type description", "fr" : "Une description du type de site" } } @@ -128,11 +132,9 @@ "tze_nom_fr" : { "exportHeader" : { "title" : { - "en" : "Site type name", "fr" : "Nom du type de site" }, "description" : { - "en" : "A site type name", "fr" : "Le nom du type de site" } } @@ -140,35 +142,29 @@ "tze_nom_en" : { "exportHeader" : { "title" : { - "en" : "Site type name", - "fr" : "Nom du type de site" + "en" : "Site type name" }, "description" : { - "en" : "A site type name", - "fr" : "Le nom du type de site" + "en" : "A site type name" } } }, "tze_definition_en" : { "exportHeader" : { "title" : { - "en" : "Site type description", - "fr" : "Description du type de site" + "en" : "Site type description" }, "description" : { - "en" : "A site type description", - "fr" : "Une description du type de site" + "en" : "A site type description" } } }, "tze_definition_fr" : { "exportHeader" : { "title" : { - "en" : "Site type description", "fr" : "Description du type de site" }, "description" : { - "en" : "A site type description", "fr" : "Une description du type de site" } } @@ -243,11 +239,9 @@ "pro_nom_fr" : { "exportHeader" : { "title" : { - "en" : "Project name", "fr" : "Nom du projet" }, "description" : { - "en" : "The project name", "fr" : "Le nom du projet" } } @@ -255,11 +249,9 @@ "pro_definition_fr" : { "exportHeader" : { "title" : { - "en" : "Project définition", "fr" : "Définition du projet" }, "description" : { - "en" : "A roject description", "fr" : "Une description du projet" } } @@ -267,24 +259,20 @@ "pro_definition_en" : { "exportHeader" : { "title" : { - "en" : "Project définition", - "fr" : "Définition du projet" + "en" : "Project définition" }, "description" : { - "en" : "A roject description", - "fr" : "Une description du projet" + "en" : "A roject description" } } }, "pro_nom_en" : { "exportHeader" : { "title" : { - "en" : "Project name", - "fr" : "Nom du projet" + "en" : "Project name" }, "description" : { - "en" : "The project name", - "fr" : "Le nom du projet" + "en" : "The project name" } } } diff --git a/src/test/resources/data/configuration/schemaExample.yaml b/src/test/resources/data/configuration/schemaExample.yaml index e97614a0a..55dfdcecb 100644 --- a/src/test/resources/data/configuration/schemaExample.yaml +++ b/src/test/resources/data/configuration/schemaExample.yaml @@ -45,10 +45,12 @@ OA_data: #optional OA_langRestrictions: #optional - fr #optional OA_required: false #optional + OA_importHeader: Défintion de l'espèce en français #optional spe_definition_en: #optional OA_langRestrictions: #optional - en #optional OA_required: false #optional + OA_importHeader: English species definition #optional spe_species: #optional OA_checker: #optional OA_name: OA_string #mandatory @@ -151,7 +153,8 @@ OA_data: #optional OA_name: OA_reference #mandatory OA_params: #optional OA_reference: #mandatory - OA_name: tr_type_zone_etude_tze #mandatory + OA_isRecursive: true #optional + OA_name: tr_zone_etude_zet #mandatory OA_multiplicity: ONE #optional OA_exportHeader: #mandatory OA_title: #optional @@ -168,6 +171,7 @@ OA_data: #optional OA_params: #optional OA_multiplicity: ONE #optional OA_required: true #optional + OA_importHeader: iso #optional OA_tags: #optional - __HIDDEN__ #optional spe_repetition: #optional @@ -231,50 +235,47 @@ OA_data: #optional - fr #optional - en #optional OA_required: false #optional + OA_importHeader: Nom codique du projet #optional pro_nom_fr: #optional OA_langRestrictions: #optional - fr #optional OA_exportHeader: #mandatory OA_title: #optional fr: Nom du projet - en: Project name OA_description: #optional fr: Le nom du projet - en: The project name OA_required: false #optional + OA_importHeader: Nom du projet en français #optional pro_nom_en: #optional OA_langRestrictions: #optional - en #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Nom du projet en: Project name OA_description: #optional - fr: Le nom du projet en: The project name OA_required: false #optional + OA_importHeader: English project name #optional pro_definition_fr: #optional OA_langRestrictions: #optional - fr #optional OA_exportHeader: #mandatory OA_title: #optional fr: Définition du projet - en: Project définition OA_description: #optional fr: Une description du projet - en: A roject description OA_required: false #optional + OA_importHeader: Définition du projet en français #optional pro_definition_en: #optional OA_langRestrictions: #optional - en #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Définition du projet en: Project définition OA_description: #optional - fr: Une description du projet en: A roject description OA_required: false #optional + OA_importHeader: English project definition #optional tr_type_zone_etude_tze: #mandatory OA_dataHeaderLine: 1 #optional OA_dataFirstLine: 2 #optional @@ -302,50 +303,47 @@ OA_data: #optional - fr #optional - en #optional OA_required: false #optional + OA_importHeader: Nom codique du type de site #optional tze_nom_fr: #optional OA_langRestrictions: #optional - fr #optional OA_exportHeader: #mandatory OA_title: #optional fr: Nom du type de site - en: Site type name OA_description: #optional fr: Le nom du type de site - en: A site type name OA_required: false #optional + OA_importHeader: Nom du type de site en français #optional tze_nom_en: #optional OA_langRestrictions: #optional - en #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Nom du type de site en: Site type name OA_description: #optional - fr: Le nom du type de site en: A site type name OA_required: false #optional + OA_importHeader: English type site name #optional tze_definition_fr: #optional OA_langRestrictions: #optional - fr #optional OA_exportHeader: #mandatory OA_title: #optional fr: Description du type de site - en: Site type description OA_description: #optional fr: Une description du type de site - en: A site type description OA_required: false #optional + OA_importHeader: Description du type de site en français #optional tze_definition_en: #optional OA_langRestrictions: #optional - en #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Description du type de site en: Site type description OA_description: #optional - fr: Une description du type de site en: A site type description OA_required: false #optional + OA_importHeader: English type site description #optional tr_zone_etude_zet: #mandatory OA_dataHeaderLine: 1 #optional OA_dataFirstLine: 2 #optional @@ -392,50 +390,66 @@ OA_data: #optional - fr #optional - en #optional OA_required: false #optional + OA_importHeader: Nom codique du site #optional zet_nom_fr: #optional OA_langRestrictions: #optional - fr #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Nom du type de site - en: Site type name + fr: Nom du site OA_description: #optional - fr: Le nom du type de site - en: A site type name + fr: Le nom du site OA_required: false #optional + OA_importHeader: Nom du site en français #optional zet_nom_en: #optional OA_langRestrictions: #optional - en #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Nom du type de site - en: Site type name + en: Site name OA_description: #optional - fr: Le nom du type de site - en: A site type name + en: A site name OA_required: false #optional + OA_importHeader: English site name #optional zet_description_fr: #optional OA_langRestrictions: #optional - fr #optional OA_exportHeader: #mandatory OA_title: #optional fr: Description du type de site - en: Site type description OA_description: #optional fr: Une description du type de site - en: A site type description OA_required: false #optional + OA_importHeader: Description du site en français #optional + zet_description_en: #optional + OA_langRestrictions: #optional + - en #optional + OA_exportHeader: #mandatory + OA_title: #optional + en: Site description + OA_description: #optional + en: A site description + OA_required: false #optional + OA_importHeader: English site description #optional zet_chemin_parent: #optional + OA_checker: #mandatory + OA_name: OA_reference #mandatory + OA_params: #optional + OA_reference: #mandatory + OA_isRecursive: true #optional + OA_name: tr_zone_etude_zet #mandatory + OA_multiplicity: ONE #optional OA_langRestrictions: #optional - en #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Description du type de site - en: Site type description + fr: Site parent + en: Parent site OA_description: #optional - fr: Une description du type de site - en: A site type description + fr: La zone d'étude parente contenant le site. + en: The parent study area containing the site. OA_required: false #optional + OA_importHeader: Nom du site parent #optional OA_computedComponents: #optional zet_computed_key: #optional OA_withNaturalKeyComponents: #optional @@ -445,7 +459,8 @@ OA_data: #optional OA_name: OA_reference #mandatory OA_params: #optional OA_reference: #mandatory - OA_name: tr_type_zone_etude_tze #mandatory + OA_isRecursive: true #optional + OA_name: tr_zone_etude_zet #mandatory OA_multiplicity: ONE #optional OA_exportHeader: #mandatory OA_title: #optional @@ -815,7 +830,8 @@ OA_data: #optional OA_name: OA_reference #mandatory OA_params: #optional OA_reference: #mandatory - OA_name: tr_type_zone_etude_tze #mandatory + OA_isRecursive: true #optional + OA_name: tr_zone_etude_zet #mandatory OA_multiplicity: ONE #optional OA_components: #optional - dat_site #optional diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index 4ea67fa7c..f56999c0b 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2024-10-16T09:30:36.393063803","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2024-10-16T09:32:14.137638293","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2024-10-16T09:31:18.76425455","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2024-10-16T09:30:20.937068846","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2024-10-16T09:30:23.562681183","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-16T09:30:10.06993681","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-16T09:30:10.07103055","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-16T09:31:58.146902007","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-16T09:32:23.300177248","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-16T09:30:17.995938957","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-16T09:30:17.996791989","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"submissionReference":"projet","componentReference":"proj","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2024-10-16T09:32:52.05381787","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > especes > OA_i18nDisplay > OA_pattern"}},"time":"2024-10-16T09:33:01.726227746","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > especes > OA_i18n"}},"time":"2024-10-16T09:31:34.721097735","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_version","OA_application","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2024-10-16T09:31:23.397324307","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2024-10-16T09:30:31.24924969","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_rightsRequest > OA_description > OA_i18n"}},"time":"2024-10-16T09:32:30.504799705","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2024-10-16T09:32:28.253434837","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-16T09:31:30.202233905","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ncolumns":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > especes > OA_i18nColumns > esp_definition_fr"}},"time":"2024-10-16T09:32:42.502871427","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2024-10-16T09:30:12.819377039","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2024-10-16T09:31:44.350799403","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2024-10-16T09:31:16.448509836","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2024-10-16T09:31:00.251159241","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-16T09:31:46.801699894","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-16T09:33:03.96417302","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2024-10-16T09:31:02.49989248","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2024-10-16T09:30:26.005036417","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-16T09:31:21.19158052","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-16T09:31:21.192501977","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-16T09:31:21.193029202","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-16T09:32:44.873899967","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-16T09:32:44.874455875","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-16T09:32:44.874564999","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-16T09:32:44.874744618","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-16T09:32:44.874800738","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-16T09:32:44.874970227","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-16T09:32:44.875033519","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"reference > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-16T09:32:44.875414266","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2024-10-16T09:31:13.982101235","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2024-10-16T09:31:09.471093002","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2024-10-16T09:31:09.471283913","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-16T09:31:42.040927496","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_columns"}},"time":"2024-10-16T09:31:37.082684607","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-16T09:30:43.904608196","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_i18n"}},"time":"2024-10-16T09:32:09.656175585","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-16T09:30:55.705365539","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-16T09:30:38.820455729","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-16T09:32:11.843894667","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2024-10-16T09:30:57.893274923","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2024-10-16T09:30:28.565566208","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2024-10-16T09:32:57.031779933","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-16T09:32:57.032970885","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-16T09:32:57.033285638","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_i18n"}},"time":"2024-10-16T09:32:37.7079354","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2024-10-16T09:30:51.106149679","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-16T09:32:47.047538621","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-16T09:32:20.946342807","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:20.946557483","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:20.947511765","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:20.947835208","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:20.948109426","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:20.97616049","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:20.9765006","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_i18n"}},"time":"2024-10-16T09:32:05.127574884","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2024-10-16T09:32:07.426301098","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2024-10-16T09:31:07.186616931","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2024-10-16T09:30:46.24925235","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2024-10-16T09:32:25.956356941","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2024-10-16T09:32:02.819054684","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 3 > OA_exportHeader"}},"time":"2024-10-16T09:31:32.474291791","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_i18n"}},"time":"2024-10-16T09:30:15.409904943","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_application > OA_i18n"}},"time":"2024-10-16T09:31:53.603677136","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-16T09:31:04.83108563","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceColumnToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2024-10-16T09:30:34.043815149","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-16T09:32:00.455317546","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2024-10-16T09:31:11.710830116","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date","componentName":"tel_date"}},"time":"2024-10-16T09:30:48.672197531","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":209,"duplicateKeys":"sites"}},"time":"2024-10-16T09:31:25.613817857","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"zet_nom_ke","knownComponents":["tze_type_nom","zet_description_en","zet_nom_fr","zet_nom_key","zet_nom_en","zet_chemin_parent","zet_description_fr"],"path":"OA_data > sites > OA_i18nColumns"}},"time":"2024-10-16T09:31:27.911778198","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-16T09:32:16.346118637","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_data > pem > OA_validations > reference"}},"time":"2024-10-16T09:32:18.639611582","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-16T09:32:35.122760766","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2024-10-16T09:32:32.903501382","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2024-10-16T09:31:55.911748826","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2024-10-16T09:32:49.471367186","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2024-10-16T09:32:59.508615199","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-16T09:31:51.315119542","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_columns"}},"time":"2024-10-16T09:31:49.114955824","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-16T09:31:39.533454501","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_columns"}},"time":"2024-10-16T09:32:54.658874758","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-16T09:32:40.277309722","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-16T09:32:40.277706722","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:40.277825189","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-16T09:32:40.278419248","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2024-10-16T09:32:40.278682651","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:40.278974342","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-16T09:32:40.279252655","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2024-10-16T09:32:40.279679988","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2024-10-16T09:32:40.279781014","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-16T09:32:40.280039277","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-16T09:32:40.280346163","type":"REACTIVE_ERROR"}]} \ No newline at end of file +{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:29.331292111","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:29.331486317","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:29.331896738","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:29.332103083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:29.332242659","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:29.332388375","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:29.332571617","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:44.2764476","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:44.276520719","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:44.276736431","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:44.276850339","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:44.276900568","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:44.277001245","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:44.277081174","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:00.300494364","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:00.300705452","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:00.301160781","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:00.301294494","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:00.301405421","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:00.301521827","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:00.301666507","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:17.128075391","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:17.128334621","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:17.128901491","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:17.129102641","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:17.129287096","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:17.129514154","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:17.129757792","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:19.226740511","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:19.226917721","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:19.227260083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:19.227354591","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:19.227443441","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:19.227543845","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:19.227656119","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:08.776762551","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:08.777548415","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:08.778308817","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:08.778554243","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:08.778780836","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:08.779023808","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:08.779324606","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:32.832077217","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:32.832196068","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:32.832416303","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:32.832478359","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:32.832530897","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:32.832604723","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:32.832677277","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:52.498684214","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-22T09:42:52.498744508","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:52.498810502","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:52.499078479","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:52.499134475","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:52.499191783","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:52.499452027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:52.499641527","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:15.016164889","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:15.016326023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:15.016756104","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:15.016872104","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:15.017001377","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:15.017112222","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:15.017312826","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:16.799317234","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:16.79941852","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:16.799651667","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:16.799727983","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:16.799799625","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:16.799874175","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:16.800023159","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:25.899377434","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:25.899543239","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:25.899935786","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:25.900076672","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:25.900173808","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:25.900286072","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:25.900417879","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:10.568622507","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:10.568747296","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:10.569038933","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:10.569105744","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:10.569165459","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:10.569249705","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:10.569357455","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:25.262743477","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:25.262969365","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:25.26340931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:25.263556065","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:25.263690422","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:25.26383346","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:25.264077801","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:58.939733513","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:58.939849407","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:58.940121784","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:58.940194167","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:58.940243746","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:58.940295019","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:58.94036333","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:56.821517023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:56.821682788","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:56.823114928","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:56.823317696","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:56.823446213","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:56.823692099","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:56.823894079","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:06.416455146","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:06.416616849","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:06.417049563","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:06.417201443","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:06.417302936","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:06.417406126","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:06.417572474","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ncolumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:10.012556556","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:10.012692859","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:10.01300123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:10.013063145","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:10.013134293","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:10.013194553","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:10.013271256","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:10.831948959","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:10.832161056","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:10.832574348","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:10.83268887","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:10.83279489","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:10.832905052","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:10.833056669","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:18.784662581","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:18.784776021","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:18.785042523","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:18.785103027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:18.785156417","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:18.785212701","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:18.785282404","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:58.240330172","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:58.240435194","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:58.240670445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:58.240735422","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:58.240838041","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:58.240901799","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:58.241007433","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:48.129539726","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:48.129740398","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:48.130150186","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:48.130258531","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:48.130363657","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:48.130473685","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:48.130609651","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:20.951673897","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:20.951816193","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:20.952205562","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:20.952305913","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:20.952403822","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:20.952490464","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:20.952621728","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:28.269407177","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:28.26953199","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:28.269805129","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:28.26986697","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:28.269923232","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:28.27011139","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:28.270300333","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:21.23821641","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:21.238420356","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:21.239062682","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:21.239214827","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:21.239374879","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:21.239527397","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:21.239744769","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:02.347162336","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:02.347322517","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:02.347636323","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:02.347719147","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:02.347828175","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:02.34796388","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:02.348158014","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:54.156728234","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:54.156912006","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:54.157373079","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:54.157502485","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:54.157646906","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:54.157791424","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:54.157995938","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:16.638538514","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:16.638649821","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:16.638914177","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:16.639033131","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:16.639095722","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:16.639157654","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:16.639236118","type":"REACTIVE_ERROR"}],"testValidConfiguration":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:33.449282931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:33.449409361","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:33.449676984","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:33.449750326","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:33.449819318","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:33.449890254","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:33.450023353","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:12.667604783","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:12.66783249","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:12.668250745","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:12.668377226","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:12.668474308","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:12.668576513","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:12.668703813","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:35.56626102","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:35.566412647","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:35.566661248","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:35.566733623","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:35.566802881","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:35.566871231","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:35.567013859","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:40.084312152","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:40.084404316","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:40.084635247","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:40.084697025","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:40.084754538","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:40.084815509","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:40.084893462","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:44.090302092","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:44.090445772","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:44.090743419","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:44.090814688","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:44.09088146","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:44.090982555","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:44.091115479","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:31.410153165","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:31.410283623","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:31.410570779","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:31.41064419","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:31.41070914","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:31.410776216","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:31.410895846","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:42.348369413","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:42.348487806","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:42.34880079","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:42.348900449","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:42.349038139","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:42.349133803","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:42.349252737","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:46.104001347","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:46.104260705","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:46.104612541","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:46.104729518","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:46.104839977","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:46.104998157","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:46.105160884","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:23.300989833","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:23.301299178","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:23.301778312","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:23.30191565","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:23.302089091","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:23.302223459","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:23.302413341","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:21.323886931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:21.324101109","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:21.324508183","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:21.324696523","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:21.324802754","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:21.324916634","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:21.325158041","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:05.208522218","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:05.208642682","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:05.20894702","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:05.209020366","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:05.209089059","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:05.209176691","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:05.209280735","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:41.973732001","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:41.973846255","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:41.974216971","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:41.974328589","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:41.974402259","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:41.974476801","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:41.974579601","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:12.502260805","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:12.502431374","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:12.502792624","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:12.502891071","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:12.503083121","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:12.50318589","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:12.503369623","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:50.465003704","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:50.465164075","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:50.465367445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:50.465420289","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:50.465468016","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:50.465518729","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:50.465582681","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:37.480508986","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:37.480732422","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:37.481340058","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:37.481546791","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:37.481716356","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:37.481879447","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:37.482112109","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:52.169789279","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:52.169975179","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:52.170205452","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:52.170268336","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:52.170333937","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:52.170396731","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:52.170476415","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:37.629614148","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:37.629844498","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:37.630318569","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:37.630412882","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:37.630512239","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:37.630596757","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:37.630716494","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:54.512225394","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:54.512303455","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:54.512481536","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:54.512546621","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:54.512593496","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:54.512643132","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:54.512708997","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:08.489834761","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:08.489922907","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:08.490176648","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:08.490234046","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:08.490285737","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:08.490339968","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:08.490409174","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:12.934809829","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:12.935011285","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:12.935368598","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:12.935495349","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:12.935606304","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:12.935720405","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:12.935862843","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > frrr","unexpectedSections":["en","frrr"]}},"time":"2024-10-22T09:42:28.857136818","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:28.857280171","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:28.857489686","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:28.857547198","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:28.857598134","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:28.85765192","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:28.857719285","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:50.144581862","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:50.144694186","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:50.144917185","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:50.14503186","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:50.145092904","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:50.14515644","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:50.145236001","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:27.257939011","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:27.258241184","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:27.258574623","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:27.258650915","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:27.258717347","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:27.258786044","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:27.258871036","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:34.864664325","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:34.864759727","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:34.864990336","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:34.865063842","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:34.865113626","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:34.865165919","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:34.865233807","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:56.186138547","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:56.186341684","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:56.186569254","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:56.18663122","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:56.18668671","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:56.186742668","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:56.18681406","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:39.858509555","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:39.858643114","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:39.858902248","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:39.859019614","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:39.859097854","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:39.859182752","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:39.859397382","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date","componentName":"tel_date"}},"time":"2024-10-22T09:41:39.860028646","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:04.407060923","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:04.407151223","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:04.40735272","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:04.407410029","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:04.407504488","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:04.407576669","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:04.407648509","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:46.382024593","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:46.382117458","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:46.382383296","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:46.382436647","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:46.382484086","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:46.38255423","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:46.382624388","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-22T09:42:46.383123459","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:48.386181486","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:48.386271983","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:48.386461525","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:48.386513754","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:48.386562161","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:48.386611984","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:48.386677221","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:02.966461582","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:02.966555906","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:02.966921425","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:02.967070758","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:02.967174952","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:02.967291572","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:02.967435717","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-22T09:43:02.967853599","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:00.932887221","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:00.933004604","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:00.933206288","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:00.933262817","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:00.933312835","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:00.933365048","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:00.933457671","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:30.848925189","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:30.849051576","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:30.849241035","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:30.849296512","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:30.849348141","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:30.849401032","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:30.849467196","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:14.739594","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:14.739673548","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:14.739845417","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:14.739898465","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:14.739996916","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:14.740112535","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:14.740179922","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:23.748175057","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:23.748320083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:23.748705932","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:23.748842967","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:23.748985193","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:23.749131246","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:23.749329078","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:26.044204951","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:26.044408121","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:26.044917409","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:26.045076349","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:26.045196027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:26.045317631","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:26.045533588","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:23.034879479","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:23.035168891","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:23.035886321","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:23.036098561","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:23.036258087","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:23.036409977","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:23.03658056","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:14.645795032","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:14.645963338","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:14.646220435","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:14.646277822","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:14.646329981","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:14.646384961","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:14.646454652","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:18.968321735","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:18.968487893","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:18.968870869","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:18.969027717","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:18.969135815","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:18.969248671","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:18.969433265","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:07.886438055","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:07.886586073","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:07.886887693","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:07.887051288","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:07.88714532","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:07.887250078","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:07.887377351","type":"REACTIVE_ERROR"}]} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index 1e217a71d..fc1807303 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,10 +1,21 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,16,9,27,52,422258413],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,16,9,27,52,425839704],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,16,9,27,52,426286071],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2024,10,16,9,27,52,427270274],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,16,9,27,52,638316107],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,16,9,27,52,638870257],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,16,9,27,52,639310901],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,394686604],"type":"REACTIVE_INFO"} -{"result":{"id":"19a6a582-8ab1-42d8-aabd-0af862bc5f12","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"data":{"themes":{"validations":{},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{"description_fr":{"en":"description_en","fr":"description_fr"},"nom_key":{"en":"nom_en","fr":"nom_fr"}},"i18nDisplay":{"en":"{nom_key}","fr":"{nom_key}"},"i18n":{"en":"Thematic","fr":"Thème"}},"variables":{"validations":{},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{"nom_key":{"en":"nom_en","fr":"nom_fr"},"definition_fr":{"en":"definition_en","fr":"definition_fr"}},"i18nDisplay":{"en":"{nom_key}","fr":"{nom_key}"},"i18n":{"en":"Variables","fr":"Variables"}},"especes":{"validations":{},"components":{"my_computed_column":{"exportHeader":{"en":"computed column","fr":"colonne calculée"},"computation":{}},"esp_definition_en":{"exportHeader":{"en":"definition","fr":"definition"},"computation":{}},"esp_definition_fr":{"exportHeader":{"en":"définition","fr":"définition"},"computation":{}},"esp_nom":{"exportHeader":{"en":"code","fr":"code"},"computation":{}}},"submissions":{"referenceScopes":{}},"i18nColumns":{"esp_definition_fr":{"en":"esp_definition_en","fr":"esp_definition_fr"}},"i18nDisplay":{"en":"{esp_nom}","fr":"{esp_nom}"},"i18n":{"en":"Species","fr":"Espèces"}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{},"i18nDisplay":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"i18n":{"en":"Data types by site and project","fr":"Types de données par site et projet"}},"type_de_sites":{"validations":{},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{"tze_nom_key":{"en":"tze_nom_en","fr":"tze_nom_fr"},"tze_definition_fr":{"en":"tze_definition_en","fr":"tze_definition_fr"}},"i18nDisplay":{"en":"{tze_nom_key}","fr":"{tze_nom_key}"},"i18n":{"en":"Sites types","fr":"Types de sites"}},"unites":{"validations":{},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{"code_key":{"en":"code_en","fr":"code_fr"},"nom_key":{"en":"nom_en","fr":"nom_fr"}},"i18nDisplay":{"en":"{nom_key} ({code_key})","fr":"{nom_key} ({code_key})"},"i18n":{"en":"Units","fr":"Unités"}},"projet":{"validations":{},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{"nom_key":{"en":"nom_en","fr":"nom_fr"},"definition_fr":{"en":"definition_en","fr":"definition_fr"}},"i18nDisplay":{"en":"{nom_key}","fr":"{nom_key}"},"i18n":{"en":"Project","fr":"Projet"}},"valeurs_qualitatives":{"validations":{},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{"valeur_key":{"en":"valeur_en","fr":"valeur_fr"},"nom_key":{"en":"nom_en","fr":"nom_fr"}},"i18nDisplay":{"en":"{valeur_key}","fr":"{valeur_key}"},"i18n":{"en":"Qualitative values","fr":"Valeurs qualitatives"}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{},"i18nDisplay":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"i18n":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"}},"type_de_fichiers":{"validations":{},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{"description_fr":{"en":"description_en","fr":"description_fr"},"nom_key":{"en":"nom_en","fr":"nom_fr"}},"i18nDisplay":{"en":"{nom_key}","fr":"{nom_key}"},"i18n":{"en":"Files types","fr":"Types de fichiers"}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"components":{"chemin":{"exportHeader":{"en":"Path","fr":"Chemin"},"computation":{}},"color_value":{"exportHeader":{"en":"United colors","fr":"Couleur des individus"},"computation":{}},"individusNumbervalue":{"exportHeader":{"fr":"Nombre d'individus"},"computation":{}}},"submissions":{"referenceScopes":{"projet":{"en":"project","fr":"projet"},"sites":{"en":"site","fr":"site"}}},"i18nColumns":{},"i18nDisplay":{"en":"TRap in ascent","fr":"Piégeage en montée"},"i18n":{"en":"Trap in ascent","fr":"Piégeage en Montée"}},"sites":{"validations":{},"components":{},"submissions":{"referenceScopes":{}},"i18nColumns":{"zet_nom_key":{"en":"zet_nom_en","fr":"zet_nom_fr"},"zet_description_fr":{"en":"zet_description_en","fr":"zet_description_fr"}},"i18nDisplay":{"en":"{zet_nom_key}","fr":"{zet_nom_key}"},"i18n":{"en":"Site","fr":"Site"}}},"rightsrequest":{"description":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"fields":{"endDate":{"en":"Project end date","fr":"Date de fin du projet"},"organization":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"project":{"en":"Description of the research project","fr":"Description du projet de recherche"},"startDate":{"en":"Project start date","fr":"Date de début du projet"}}},"additionalFiles":{"utilisateurs":{"i18n":{"en":"User","fr":"Users"},"fields":{"nom":{"en":"Name","fr":"Nom"},"prenom":{"en":"Surname","fr":"Prénom"}}},"fichiers":{"i18n":{"en":"Files","fr":"Fichiers"},"fields":{"date":{"en":"Date","fr":"Date"},"site":{"en":"Place","fr":"Site"},"poids":{"en":"Weight","fr":"Poids"},"nom":{"en":"Name","fr":"Nom"},"age":{"en":"Age","fr":"Age"}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":"nom_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":"colonne_homonyme_entre_referentiels","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":"nom_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":"is_qualitative","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":"tze_nom_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":"site","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":"theme","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":"projet","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":"datatype","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; return application.getConfiguration().i18n().data\n .collect {\n it->it.value.i18n.get(java.util.Locale.FRENCH)}\n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":"nom_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":"code_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":"nom_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":"colonne_homonyme_entre_referentiels","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":"nom_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":"valeur_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":"nom_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":"variable","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":"datatype","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":"unite","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; return application.getConfiguration().i18n().data\n .collect {\n it->it.value.i18n.get(java.util.Locale.FRENCH)}\n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":"date","required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":"site","required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":"projet","required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":"espece","required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":"plateforme","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":"tze_type_nom","required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":"zet_nom_key","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":"zet_chemin_parent","required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"format":{"organization":{"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"format":{"nom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"format":{"nom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,16,9,27,53,395484050],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,16,9,27,53,395745956],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,22,9,40,42,975807757],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,22,9,40,42,981836022],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,22,9,40,42,982239663],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2024,10,22,9,40,42,983462521],"type":"REACTIVE_PROGRESS"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$5","fileName":"NodeSchemaValidator.java","lineNumber":289,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"ifPresent","fileName":"Optional.java","lineNumber":178,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":284,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$5","fileName":"NodeSchemaValidator.java","lineNumber":289,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"ifPresent","fileName":"Optional.java","lineNumber":178,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":284,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_description\", \"OA_title\" ],\n \"path\" : \"OA_application > OA_i18n > en > fr\",\n \"unexpectedSections\" : [ \"en\", \"fr\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,320956224],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$5","fileName":"NodeSchemaValidator.java","lineNumber":289,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"ifPresent","fileName":"Optional.java","lineNumber":178,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":284,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_formFields\", \"OA_i18n\" ],\n \"path\" : \"OA_rightsRequest > OA_FORM_FIELDS > OA_description\",\n \"unexpectedSections\" : [ \"OA_FORM_FIELDS\", \"OA_description\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,323800839],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_additionalFiles > fichiers > OA_FORM_FIELDS > OA_i18n","unexpectedSections":["OA_FORM_FIELDS"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_formFields\", \"OA_i18n\" ],\n \"path\" : \"OA_additionalFiles > fichiers > OA_FORM_FIELDS > OA_i18n\",\n \"unexpectedSections\" : [ \"OA_FORM_FIELDS\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,326417194],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_additionalFiles > utilisateurs > OA_FORM_FIELDS > OA_i18n","unexpectedSections":["OA_FORM_FIELDS"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_formFields\", \"OA_i18n\" ],\n \"path\" : \"OA_additionalFiles > utilisateurs > OA_FORM_FIELDS > OA_i18n\",\n \"unexpectedSections\" : [ \"OA_FORM_FIELDS\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,327440545],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,329370756],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,330655525],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,331595678],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > themes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > themes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,332252212],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_fichiers > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > type_de_fichiers > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,332904172],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,334734234],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > site_theme_datatype > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_validations > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > site_theme_datatype > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_validations > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,335346848],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > unites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > unites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,335846730],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > valeurs_qualitatives > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > valeurs_qualitatives > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,336388928],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > variables > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > variables > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,336915205],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > variables_et_unites_par_types_de_donnees > OA_i18nDisplay > OA_basicComponents > OA_validations > OA_i18n > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > variables_et_unites_par_types_de_donnees > OA_i18nDisplay > OA_basicComponents > OA_validations > OA_i18n > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,337374595],"type":"REACTIVE_ERROR"} +{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_i18nDisplay > OA_dataHeaderLine > OA_authorizations > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > pem > OA_i18nDisplay > OA_dataHeaderLine > OA_authorizations > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,337988584],"type":"REACTIVE_ERROR"} +{"result":1.0,"time":[2024,10,22,9,40,43,342732620],"type":"REACTIVE_PROGRESS"} -- GitLab From 387eac36cd0381d4833fba79a30d29ecbbf2e0dc Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Tue, 22 Oct 2024 14:04:46 +0200 Subject: [PATCH 22/52] Ajout de la section OA_compoentAdjacents --- .../domain/ComponentPresenceConstraint.java | 9 + .../configuration/ComponentDescription.java | 5 +- .../ConfigurationSchemaNode.java | 1 - .../configuration/PatternComponent.java | 8 +- .../PatternComponentAdjacents.java | 30 +++ .../configuration/type/EnumType.java | 2 + .../context/column/PatternColumnFactory.java | 51 ++++- .../configuration/ConfigurationException.java | 1 + .../oresing/persistence/JsonRowMapper.java | 10 +- .../builder/BasicComponentBuilder.java | 2 +- .../builder/ComputedComponentBuilder.java | 2 +- .../builder/ConstantComponentsBuilder.java | 2 +- .../builder/DynamicComponentsBuilder.java | 2 +- .../PatternComponentAdjacentsBuilder.java | 98 ++++++++ ...=> PatternComponentQualifiersBuilder.java} | 12 +- .../builder/PatternComponentsBuilder.java | 20 +- .../configuration/builder/RootBuilder.java | 6 +- .../configuration/data.result.example.json | 216 +++++++++++++++++- .../localization.example.result.json | 112 ++++++--- 19 files changed, 511 insertions(+), 78 deletions(-) create mode 100644 src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentAdjacents.java create mode 100644 src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java rename src/main/java/fr/inra/oresing/rest/model/configuration/builder/{PatternComponentComponentsBuilder.java => PatternComponentQualifiersBuilder.java} (91%) diff --git a/src/main/java/fr/inra/oresing/domain/ComponentPresenceConstraint.java b/src/main/java/fr/inra/oresing/domain/ComponentPresenceConstraint.java index 088decb58..5ead13b84 100644 --- a/src/main/java/fr/inra/oresing/domain/ComponentPresenceConstraint.java +++ b/src/main/java/fr/inra/oresing/domain/ComponentPresenceConstraint.java @@ -1,5 +1,11 @@ package fr.inra.oresing.domain; +import fr.inra.oresing.domain.application.configuration.SubmissionType; + +import java.util.Arrays; +import java.util.Set; +import java.util.stream.Collectors; + /** * Exprime pour un format de fichier CSV si la présence d'une colonne est exigée ou facultative. */ @@ -20,6 +26,9 @@ public enum ComponentPresenceConstraint { */ ABSENT; + public static final Set<String> VALUES = Arrays.stream(values()).map(ComponentPresenceConstraint::name).collect(Collectors.toSet()); + ; + public boolean isMandatory() { return MANDATORY == this; } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java index ad638616f..90a40ece5 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java @@ -15,7 +15,7 @@ import fr.inra.oresing.domain.transformer.transformer.TransformationConfiguratio import java.util.*; -public sealed interface ComponentDescription permits ReferenceScopeComponent, BasicComponent, ComputedComponent, ConstantComponent, DynamicComponent, FilteredDescriptionComponent, PatternComponent, PatternComponentQualifiers { +public sealed interface ComponentDescription permits BasicComponent, ComputedComponent, ConstantComponent, DynamicComponent, FilteredDescriptionComponent, PatternComponent, PatternComponentAdjacents, PatternComponentQualifiers, ReferenceScopeComponent { ComponentDescriptionType type(); default String getReferenceCheckerType(){ return findReferenceCheckerType().orElse(CheckerDescription.CheckerDescriptionType.StringChecker.name()); @@ -178,7 +178,8 @@ public sealed interface ComponentDescription permits ReferenceScopeComponent, Ba BasicComponent, ConstantComponent, PatternComponent, - PatternComponentComponent + PatternComponentQualifiers, + PatternComponentAdjacents } } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java index f80015442..36ac0db23 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ConfigurationSchemaNode.java @@ -51,7 +51,6 @@ public class ConfigurationSchemaNode { public static final String OA_CONSTANT_IMPORT_HEADER_ROW_NUMBER = "OA_rowNumber"; public static final String OA_CONSTANT_IMPORT_HEADER_COLUMN_NAME = "OA_columnName"; public static final String OA_CONSTANT_IMPORT_HEADER_COLUMN_NUMBER = "OA_columnNumber"; - public static final String OA_TOKEN = "OA_token"; public static final String OA_AUTHORIZATION_SCOPES = "OA_authorizationScope"; public static final String OA_AUTHORIZATION = "OA_authorizations"; public static final String OA_START_DATE_MATCH_PATTERN = "__START_DATE__"; diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java index 976a9b25b..2f980aa98 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponent.java @@ -17,7 +17,8 @@ public record PatternComponent(ComponentDescriptionType type, ComponentPresenceConstraint mandatory, CheckerDescription checker, String patternForComponents, - Map<String, PatternComponentQualifiers> patternColumnComponents, + Map<String, PatternComponentQualifiers> patternComponentQualifiers, + Map<String, PatternComponentAdjacents> patternComponentAdjacents, String submissionAuthorizationScope) implements ComponentDescription { public ComponentDescription withSubmission(final String submission) { return new PatternComponent(type(), @@ -30,12 +31,13 @@ public record PatternComponent(ComponentDescriptionType type, mandatory(), checker(), patternForComponents(), - patternColumnComponents(), + patternComponentQualifiers(), + patternComponentAdjacents(), submission); } public String buildImportHeaderForComponent() { - String comment = patternColumnComponents().values().stream() + String comment = patternComponentQualifiers().values().stream() .map(patternColumnComponent -> "%d : %s as %s".formatted( patternColumnComponent.patternNumber(), patternColumnComponent.componentKey(), diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentAdjacents.java b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentAdjacents.java new file mode 100644 index 000000000..d7634e043 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/PatternComponentAdjacents.java @@ -0,0 +1,30 @@ +package fr.inra.oresing.domain.application.configuration; + +import fr.inra.oresing.domain.ComponentPresenceConstraint; +import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; + +import java.util.List; +import java.util.Locale; +import java.util.Set; + +public record PatternComponentAdjacents( + ComponentDescriptionType type, + String componentKey, + String importHeaderPattern, + Set<Tag> tags, + String exportHeaderName, + boolean required, + ComponentPresenceConstraint mandatory, + List<Locale> langRestrictions, + CheckerDescription checker) implements ComponentDescription { + + @Override + public String submissionAuthorizationScope() { + return ""; + } + + @Override + public ComponentDescription withSubmission(String submission) { + return null; + } +} diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/EnumType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/EnumType.java index b1ac93e00..f76a7a558 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/EnumType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/EnumType.java @@ -1,5 +1,6 @@ package fr.inra.oresing.domain.application.configuration.type; +import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.checker.Multiplicity; import fr.inra.oresing.domain.application.configuration.SubmissionType; import fr.inra.oresing.domain.exceptions.application.SiOreConfigurationFormatException; @@ -14,6 +15,7 @@ public record EnumType(String children, public static final EnumType MULTIPLICITY_ENUM = new EnumType(Multiplicity.ONE.name(), Multiplicity.VALUES); public static final EnumType CHECKER_NAME_ENUM = new EnumType(CheckerEnum.OA_string.name(), CheckerEnum.VALUES); public static final EnumType STRATEGY_ENUM = new EnumType(SubmissionType.OA_VERSIONING.name(), SubmissionType.VALUES); + //public static final EnumType MANDATORY = new EnumType(ComponentPresenceConstraint.MANDATORY.name(), ComponentPresenceConstraint.VALUES); public EnumType(final String children, final Set<String> values) { this(children, values, true); } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java index 5a182cb4b..761b38633 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java @@ -4,6 +4,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.ComponentDescription; +import fr.inra.oresing.domain.application.configuration.PatternComponentAdjacents; import fr.inra.oresing.domain.application.configuration.PatternComponentQualifiers; import fr.inra.oresing.domain.application.configuration.PatternComponent; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; @@ -75,10 +76,10 @@ public class PatternColumnFactory { .collect(Collectors.partitioningBy(PatternDescription.MatchingPattern.class::isInstance)) .get(false) .isEmpty(); - if(rapportWithNoErrors){ + if (rapportWithNoErrors) { expectedPatternColumns = rapports.stream() - .collect(Collectors.partitioningBy(PatternDescription.MatchingPattern.class::isInstance)) - .get(true).stream() + .collect(Collectors.partitioningBy(PatternDescription.MatchingPattern.class::isInstance)) + .get(true).stream() .map(PatternDescription.MatchingPattern.class::cast) .map(PatternDescription.MatchingPattern::columns) .flatMap(Set::stream) @@ -145,7 +146,7 @@ public class PatternColumnFactory { final Set<Column> columns = new TreeSet<>(); columns.add(column); patternComponentDescriptions() - .patternColumnComponents().entrySet() + .patternComponentQualifiers().entrySet() .forEach(patternColumnComponentEntry -> { final PatternComponentQualifiers patternColumnComponent = patternColumnComponentEntry.getValue(); final String componentComponentKey = patternColumnComponent.componentKey(); @@ -185,6 +186,48 @@ public class PatternColumnFactory { } } + }); + patternComponentDescriptions() + .patternComponentAdjacents().entrySet() + .forEach(patternColumnComponentEntry -> { + final PatternComponentAdjacents patternColumnComponent = patternColumnComponentEntry.getValue(); + final String componentComponentKey = patternColumnComponent.componentKey(); + final String patternNumber = patternColumnComponent.importHeaderPattern(); + final Multiplicity multiplicityForComponentComponent = Optional.ofNullable(patternColumnComponent) + .map(PatternComponentAdjacents::checker) + .map(CheckerDescription::multiplicity) + .orElse(Multiplicity.ONE); + final ComponentPresenceConstraint mandatoryForComponentComponent = Optional.ofNullable(patternColumnComponent) + .map(ComponentDescription::mandatory) + .orElse(ComponentPresenceConstraint.MANDATORY); + final String constantValue = matcher.group(patternNumber); + final DataColumn dataColumn = new DataColumn(componentComponentKey); + columns.add(Column.staticColumnDescriptionToColumn( + new DataColumn(componentComponentKey), + componentComponentKey, + mandatoryForComponentComponent, + multiplicityForComponentComponent, + dataRepository, + defaultValue + )); + + switch (multiplicityForComponentComponent) { + case Multiplicity.MANY -> { + final List<StringType> valuesToList = Arrays.stream(constantValue.split(",")) + .map(StringType::getStringTypeFromStringValue) + .toList(); + final DataColumnValue dataColumnValue = new DataColumnMultipleValue(valuesToList); + dataDatum + .put(dataColumn, dataColumnValue); + + } + case null, default -> { + final DataColumnValue dataColumnValue = new DataColumnSingleValue(StringType.getStringTypeFromStringValue(constantValue)); + dataDatum + .put(dataColumn, dataColumnValue); + } + } + }); patternColumns.put(columnName, new PatternColumn(column, dataDatum)); return new MatchingPattern(columnName, columns); diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java b/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java index 74e03dcfc..654fe0c3f 100644 --- a/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java +++ b/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java @@ -215,6 +215,7 @@ public enum ConfigurationException { ILLEGAL_DOMAIN_TAG_PATTERN, MISSING_REQUIRED_VALUE, MISSING_CONSTANT_IMPORT_HEADER_COLUMN_OR_ROW_NUMBER, + MISSING_IMPORT_HEADER_PATTERN, BAD_CONSTANT_IMPORT_HEADER_ROW_NUMBER, NEGATIVE_CONSTANT_IMPORT_HEADER_ROW_NUMBER, NEGATIVE_CONSTANT_IMPORT_HEADER_COLUMN_NUMBER, diff --git a/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java b/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java index 5a0426ea6..404aae9e6 100644 --- a/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java +++ b/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java @@ -159,8 +159,10 @@ public class JsonRowMapper<T> implements RowMapper<T>, Mapper { case BasicComponent -> jsonMapper.convertValue(node, BasicComponent.class); case ConstantComponent -> jsonMapper.convertValue(node, ConstantComponent.class); case PatternComponent -> jsonMapper.convertValue(node, PatternComponent.class); - case PatternComponentComponent -> + case PatternComponentQualifiers -> jsonMapper.convertValue(node, PatternComponentQualifiers.class); + case PatternComponentAdjacents -> + jsonMapper.convertValue(node, PatternComponentAdjacents.class); }; } }) @@ -293,7 +295,7 @@ public class JsonRowMapper<T> implements RowMapper<T>, Mapper { } Set<OperationType> extractOperationTypes(final ArrayNode operationTypeNode) { - return ((Set<String>)jsonMapper.convertValue(operationTypeNode, Set.class)) + return ((Set<String>) jsonMapper.convertValue(operationTypeNode, Set.class)) .stream() .map(OperationType::valueOf) .collect(Collectors.toSet()); @@ -308,7 +310,7 @@ public class JsonRowMapper<T> implements RowMapper<T>, Mapper { return map.entrySet().stream() .collect(Collectors.toMap( entry -> entry.getKey(), - entry -> ((List<String>)entry.getValue()).stream().map(Object::toString).map(Ltree::fromSql).toList() + entry -> ((List<String>) entry.getValue()).stream().map(Object::toString).map(Ltree::fromSql).toList() )); } @@ -376,7 +378,7 @@ public class JsonRowMapper<T> implements RowMapper<T>, Mapper { } } - public <T> T convertValue(Object fromValue, Class<T> toValueType){ + public <T> T convertValue(Object fromValue, Class<T> toValueType) { return jsonMapper.convertValue(fromValue, toValueType); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/BasicComponentBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/BasicComponentBuilder.java index 4712db3ca..34b3a333c 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/BasicComponentBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/BasicComponentBuilder.java @@ -112,7 +112,7 @@ public record BasicComponentBuilder(RootBuilder rootBuilder) { oaTags, importHeader, exportHeaderName, - rootBuilder().getLangRestrictions(componentPath, componentKey, componentNodeValue), + rootBuilder().getLangRestrictions(componentPath, componentNodeValue), required, mandatory, checkerDescriptionParsing.result(), diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputedComponentBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputedComponentBuilder.java index c641f3482..2086afae6 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputedComponentBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ComputedComponentBuilder.java @@ -87,7 +87,7 @@ public record ComputedComponentBuilder(RootBuilder rootBuilder) { componentKey, oaTags, exportHeaderName, - rootBuilder().getLangRestrictions(componentPath, componentKey, componentNodeValue), + rootBuilder().getLangRestrictions(componentPath, componentNodeValue), required, mandatory, checkerDescriptionParsing.result(), diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ConstantComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ConstantComponentsBuilder.java index ddabb1dc4..27998c1d3 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ConstantComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/ConstantComponentsBuilder.java @@ -30,7 +30,7 @@ public record ConstantComponentsBuilder(RootBuilder rootBuilder) { ConstantImportHeader.ConstantImportHeaderType.ColumnConstantHeaderByHeaderName, constantRowNumber, constantHeaderName, - rootBuilder().getLangRestrictions(path, null, importHeaderColumnName) + rootBuilder().getLangRestrictions(path, importHeaderColumnName) ); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java index 1024517f0..760faf98b 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DynamicComponentsBuilder.java @@ -158,7 +158,7 @@ public record DynamicComponentsBuilder(RootBuilder rootBuilder) { componentKey, defaultValueParsing.result(), exportHeaderName == null ? componentKey : exportHeaderName, - rootBuilder().getLangRestrictions(componentPath, componentKey, componentNodeValue), + rootBuilder().getLangRestrictions(componentPath, componentNodeValue), oaTags, required, mandatory, diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java new file mode 100644 index 000000000..95aec8e0c --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java @@ -0,0 +1,98 @@ +package fr.inra.oresing.rest.model.configuration.builder; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableMap; +import fr.inra.oresing.domain.ComponentPresenceConstraint; +import fr.inra.oresing.domain.application.configuration.*; +import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; +import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; + +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +public record PatternComponentAdjacentsBuilder(RootBuilder rootBuilder) { + Parsing<Map<String, PatternComponentAdjacents>> build( + final String dataKey, + final String componentPath, + final String componentKey, + final ImmutableMap.Builder<String, ComponentDescription> componentDescriptionBuilder, + I18n i18n, + final JsonNode patternComponentNode + ) { + final ArrayNode componentsArrayNode = Optional.ofNullable(patternComponentNode) + .map(node -> node.findPath(ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS)) + .map(ArrayNode.class::cast) + .orElse(new ArrayNode(JsonNodeFactory.instance)); + if (!componentsArrayNode.isEmpty()) { + int componentNumber = 0; + final ImmutableMap.Builder<String, PatternComponentAdjacents> patternColumnComponentBuilder = new ImmutableMap.Builder<String, PatternComponentAdjacents>(); + for (final JsonNode node : componentsArrayNode) { + ++componentNumber; + final Map.Entry<String, JsonNode> patternColumnComponentNode = node.fields().next(); + final String label = patternColumnComponentNode.getKey(); + final JsonNode componentNodeValue = patternColumnComponentNode.getValue(); + final Set<Tag> oaTags = TagsBuilder.validateDomainTagNames( + componentNodeValue, + NodeSchemaValidator.joinPath( + componentPath, + ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS, + componentKey, + label, + ConfigurationSchemaNode.OA_TAGS), + rootBuilder); + final boolean required = patternComponentNode.findPath(ConfigurationSchemaNode.OA_REQUIRED).asBoolean(false); + final ComponentPresenceConstraint mandatory = RootBuilder.isMandatory(componentNodeValue); + final String importHeaderPattern = patternComponentNode + .findPath(ConfigurationSchemaNode.OA_IMPORT_HEADER_PATTERN) + .asText(""); + if (Strings.isNullOrEmpty(importHeaderPattern)) { + rootBuilder().buildError( + ConfigurationException.MISSING_IMPORT_HEADER_PATTERN , + NodeSchemaValidator.joinPath( + componentPath, + ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS, + componentKey, + label, + ConfigurationSchemaNode.OA_IMPORT_HEADER_PATTERN) + ); + } + + final Parsing<String> exportHeaderParsing = rootBuilder.addExportHeaders(dataKey, i18n, patternColumnComponentNode, ConfigurationSchemaNode.OA_PATTERN_COMPONENTS); + if (exportHeaderParsing != null) { + i18n = exportHeaderParsing.i18n(); + } + final Parsing<CheckerDescription> checkerDescriptionParsing = rootBuilder.getCheckerDescriptionBuilder() + .build( + i18n, + componentKey, + false, + "%1$s.OA_patternComponents.%2$s.%3$s".formatted(componentPath, componentKey, label), + componentNodeValue.get(ConfigurationSchemaNode.OA_CHECKER), + label); + i18n = checkerDescriptionParsing.i18n(); + final PatternComponentAdjacents patternColumnComponent = new PatternComponentAdjacents( + ComponentDescription.ComponentDescriptionType.PatternComponentAdjacents, + label, + importHeaderPattern, + oaTags, + exportHeaderParsing.result(), + required, + mandatory, + rootBuilder().getLangRestrictions(componentPath, componentNodeValue), + checkerDescriptionParsing.result() + ); + patternColumnComponentBuilder.put(label, patternColumnComponent); + componentDescriptionBuilder.put( + label, + patternColumnComponent + ); + } + return new Parsing<>(i18n, patternColumnComponentBuilder.build()); + } + return new Parsing<>(i18n, Map.of()); + } +} diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentQualifiersBuilder.java similarity index 91% rename from src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java rename to src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentQualifiersBuilder.java index 05814db31..f432448ec 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentQualifiersBuilder.java @@ -14,7 +14,7 @@ import java.util.Map; import java.util.Optional; import java.util.Set; -public record PatternComponentComponentsBuilder(RootBuilder rootBuilder) { +public record PatternComponentQualifiersBuilder(RootBuilder rootBuilder) { Parsing<Map<String, PatternComponentQualifiers>> build( final String dataKey, final String componentPath, @@ -39,17 +39,13 @@ public record PatternComponentComponentsBuilder(RootBuilder rootBuilder) { componentNodeValue, NodeSchemaValidator.joinPath( componentPath, - ConfigurationSchemaNode.OA_PATTERN_COMPONENTS, + ConfigurationSchemaNode.OA_COMPONENT_QUALIFIERS, componentKey, label, ConfigurationSchemaNode.OA_TAGS), rootBuilder); final boolean required = patternComponentNode.findPath(ConfigurationSchemaNode.OA_REQUIRED).asBoolean(false); - NodeSchemaValidator.joinPath( - ConfigurationSchemaNode.OA_PATTERN_COMPONENTS, - Integer.toString(componentNumber) - ); final Parsing<String> exportHeaderParsing = rootBuilder.addExportHeaders(dataKey, i18n, patternColumnComponentNode, ConfigurationSchemaNode.OA_PATTERN_COMPONENTS); if (exportHeaderParsing != null) { i18n = exportHeaderParsing.i18n(); @@ -64,11 +60,11 @@ public record PatternComponentComponentsBuilder(RootBuilder rootBuilder) { label); i18n = checkerDescriptionParsing.i18n(); final PatternComponentQualifiers patternColumnComponent = new PatternComponentQualifiers( - ComponentDescription.ComponentDescriptionType.PatternComponentComponent, + ComponentDescription.ComponentDescriptionType.PatternComponentQualifiers, label, oaTags, label, - rootBuilder().getLangRestrictions(componentPath, componentKey, componentNodeValue), + rootBuilder().getLangRestrictions(componentPath, componentNodeValue), componentNumber, checkerDescriptionParsing.result(), null diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java index b842a2487..18b65e76e 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentsBuilder.java @@ -64,7 +64,7 @@ public record PatternComponentsBuilder(RootBuilder rootBuilder) { ConfigurationSchemaNode.OA_TAGS), rootBuilder); final ComponentPresenceConstraint mandatory = RootBuilder.isMandatory(patternComponentNode); - final Parsing<Map<String, PatternComponentQualifiers>> patternColumnComponentsParsing = rootBuilder().getPatternComponentComponentsBuilder() + final Parsing<Map<String, PatternComponentQualifiers>> patternComponentsQualifiersParsing = rootBuilder().getPatternComponentQualifiersBuilder() .build( dataKey, componentPath, @@ -73,8 +73,17 @@ public record PatternComponentsBuilder(RootBuilder rootBuilder) { i18n, patternComponentNode ); - if (patternColumnComponentsParsing != null) { - i18n = patternColumnComponentsParsing.i18n(); + final Parsing<Map<String, PatternComponentAdjacents>> patternComponentsAdjacentsParsing = rootBuilder().getPatternComponentAdjacentsBuilder() + .build( + dataKey, + componentPath, + componentKey, + componentDescriptionBuilder, + i18n, + patternComponentNode + ); + if (patternComponentsQualifiersParsing != null) { + i18n = patternComponentsQualifiersParsing.i18n(); } componentDescriptionBuilder.put( componentKey, @@ -83,13 +92,14 @@ public record PatternComponentsBuilder(RootBuilder rootBuilder) { componentKey, defaultValueParsing.result(), exportHeaderName == null ? componentKey : exportHeaderName, - rootBuilder().getLangRestrictions(componentPath, componentKey, patternComponentNode), + rootBuilder().getLangRestrictions(componentPath, patternComponentNode), oaTags, required, mandatory, checkerDescriptionParsing.result(), patternForComponents, - patternColumnComponentsParsing.result(), + patternComponentsQualifiersParsing.result(), + patternComponentsAdjacentsParsing.result(), null )); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java index 94b5701e0..f16b36a0f 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java @@ -41,7 +41,9 @@ public class RootBuilder { @Getter private final ValidationsBuilder validationsBuilder = new ValidationsBuilder(this); @Getter - private final PatternComponentComponentsBuilder patternComponentComponentsBuilder = new PatternComponentComponentsBuilder(this); + private final PatternComponentQualifiersBuilder patternComponentQualifiersBuilder = new PatternComponentQualifiersBuilder(this); + @Getter + private final PatternComponentAdjacentsBuilder patternComponentAdjacentsBuilder = new PatternComponentAdjacentsBuilder(this); @Getter private final PatternComponentsBuilder patternComponentsBuilder = new PatternComponentsBuilder(this); @Getter @@ -274,7 +276,7 @@ public class RootBuilder { return dataAndComponentTestDoublon.listReferencableComponentKeysByDataKey().getOrDefault(dataKey, List.of()); } - public List<Locale> getLangRestrictions(String componentPath, String key, JsonNode componentNodeValue) { + public List<Locale> getLangRestrictions(String componentPath, JsonNode componentNodeValue) { return Optional.ofNullable(componentNodeValue) .map(node -> node.get(OA_LANG_RESTRICTIONS)) .map(restrictionNode -> getMapper().convertValue(restrictionNode, List.class)) diff --git a/src/test/resources/data/configuration/data.result.example.json b/src/test/resources/data/configuration/data.result.example.json index 6fbbb74a7..3015ac54b 100644 --- a/src/test/resources/data/configuration/data.result.example.json +++ b/src/test/resources/data/configuration/data.result.example.json @@ -847,7 +847,7 @@ "reference" : false }, "smp_repetition" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "smp_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", @@ -899,7 +899,7 @@ "reference" : false }, "swc_repetition" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "swc_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", @@ -921,6 +921,78 @@ "chartDescription" : null, "reference" : false }, + "swc_sd" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "swc_sd", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "swc_sd", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "FloatChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0.0, + "max" : 500.0 + }, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + }, + "swc_qc" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "swc_qc", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "swc_qc", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "IntegerChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0, + "max" : 2 + }, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + }, + "smp_qc" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "smp_qc", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "smp_qc", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "IntegerChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0, + "max" : 2 + }, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + }, "dat_start_date" : { "type" : "ConstantComponent", "componentKey" : "dat_start_date", @@ -954,8 +1026,32 @@ "chartDescription" : null, "reference" : false }, + "smp_sd" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "smp_sd", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "smp_sd", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "FloatChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0.0, + "max" : 500.0 + }, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + }, "swc_profondeur" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "swc_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", @@ -1076,9 +1172,9 @@ "max" : 2000.0 }, "patternForComponents" : "SMP_(.*)_(.*)", - "patternColumnComponents" : { + "patternComponentQualifiers" : { "smp_profondeur" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "smp_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", @@ -1101,7 +1197,7 @@ "reference" : false }, "smp_repetition" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "smp_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", @@ -1124,6 +1220,56 @@ "reference" : false } }, + "patternComponentAdjacents" : { + "smp_sd" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "smp_sd", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "smp_sd", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "FloatChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0.0, + "max" : 500.0 + }, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + }, + "smp_qc" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "smp_qc", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "smp_qc", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "IntegerChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0, + "max" : 2 + }, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + } + }, "submissionAuthorizationScope" : null, "hidden" : false, "referenceCheckerType" : "StringChecker", @@ -1186,7 +1332,7 @@ "reference" : true }, "smp_profondeur" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "smp_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", @@ -1237,9 +1383,9 @@ "max" : 2000.0 }, "patternForComponents" : "SWC_(.*)_(.*)", - "patternColumnComponents" : { + "patternComponentQualifiers" : { "swc_profondeur" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "swc_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", @@ -1262,7 +1408,7 @@ "reference" : false }, "swc_repetition" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "swc_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", @@ -1285,6 +1431,56 @@ "reference" : false } }, + "patternComponentAdjacents" : { + "swc_sd" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "swc_sd", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "swc_sd", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "FloatChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0.0, + "max" : 500.0 + }, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + }, + "swc_qc" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "swc_qc", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "swc_qc", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "IntegerChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0, + "max" : 2 + }, + "hidden" : false, + "referenceCheckerType" : "StringChecker", + "chartDescription" : null, + "reference" : false + } + }, "submissionAuthorizationScope" : null, "hidden" : false, "referenceCheckerType" : "StringChecker", diff --git a/src/test/resources/data/configuration/localization.example.result.json b/src/test/resources/data/configuration/localization.example.result.json index ebe804639..042220d20 100644 --- a/src/test/resources/data/configuration/localization.example.result.json +++ b/src/test/resources/data/configuration/localization.example.result.json @@ -345,30 +345,6 @@ } }, "components" : { - "dat_type_site" : { - "exportHeader" : { - "title" : { - "en" : "Site type", - "fr" : "Type de zone d'étude" - }, - "description" : { - "en" : "Site type name", - "fr" : "Nom du type de zone d'étude" - } - } - }, - "dat_end_date" : { - "exportHeader" : { - "title" : { - "en" : "End date", - "fr" : "Date de fin" - }, - "description" : { - "en" : "End date", - "fr" : "Date de fin" - } - } - }, "smp_repetition" : { "exportHeader" : { "title" : { @@ -393,16 +369,13 @@ } } }, - "smp" : { + "swc_sd" : { "exportHeader" : { "title" : { - "en" : "Soil moisture pressure", - "fr" : "Tension d'humdité du sol" + "en" : "standard_deviation", + "fr" : "écart_type" }, - "description" : { - "en" : "Define the soil moisture pressure", - "fr" : "Définit la tension d'humdité du sol" - } + "description" : { } } }, "swc_repetition" : { @@ -429,17 +402,39 @@ } } }, - "dat_site" : { + "smp_qc" : { "exportHeader" : { "title" : { - "fr" : "Site" + "en" : "Quality class", + "fr" : "Indic de qualité" }, "description" : { - "en" : "Site Name", - "fr" : "Nom du site" + "en" : "0 for valid value; 2 for bad value", + "fr" : "0 pour une valeur valide ; 2 pour une valeur incorrecte" } } }, + "swc_qc" : { + "exportHeader" : { + "title" : { + "en" : "Quality class", + "fr" : "Indic de qualité" + }, + "description" : { + "en" : "0 for valid value; 2 for bad value", + "fr" : "0 pour une valeur valide ; 2 pour une valeur incorrecte" + } + } + }, + "smp_sd" : { + "exportHeader" : { + "title" : { + "en" : "standard_deviation", + "fr" : "écart_type" + }, + "description" : { } + } + }, "swc_profondeur" : { "exportHeader" : { "title" : { @@ -452,6 +447,53 @@ } } }, + "dat_type_site" : { + "exportHeader" : { + "title" : { + "en" : "Site type", + "fr" : "Type de zone d'étude" + }, + "description" : { + "en" : "Site type name", + "fr" : "Nom du type de zone d'étude" + } + } + }, + "dat_end_date" : { + "exportHeader" : { + "title" : { + "en" : "End date", + "fr" : "Date de fin" + }, + "description" : { + "en" : "End date", + "fr" : "Date de fin" + } + } + }, + "smp" : { + "exportHeader" : { + "title" : { + "en" : "Soil moisture pressure", + "fr" : "Tension d'humdité du sol" + }, + "description" : { + "en" : "Define the soil moisture pressure", + "fr" : "Définit la tension d'humdité du sol" + } + } + }, + "dat_site" : { + "exportHeader" : { + "title" : { + "fr" : "Site" + }, + "description" : { + "en" : "Site Name", + "fr" : "Nom du site" + } + } + }, "smp_profondeur" : { "exportHeader" : { "title" : { -- GitLab From 265ff63ef04301557234c62b4cd452c1187b6f19 Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Tue, 22 Oct 2024 18:16:26 +0200 Subject: [PATCH 23/52] =?UTF-8?q?R=C3=A9=C3=A9criture=20de=20monsoreWithRe?= =?UTF-8?q?pository?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test mon soerewithRepository ok --- .../inra/oresing/domain/data/DataColumn.java | 19 +- .../domain/data/DataColumnIndexedValue.java | 2 +- .../domain/data/DataColumnMultipleValue.java | 2 +- .../domain/data/DataColumnSingleValue.java | 2 +- .../domain/data/deposit/DataImporter.java | 11 +- .../deposit/context/ContextConstants.java | 20 +- .../deposit/context/DataImporterContext.java | 22 +- .../InternationalizationDisplay.java | 62 +- .../inra/oresing/rest/data/DataService.java | 31 +- .../data/monsore/monsore-with-repository.yaml | 760 ++++++++++++------ .../fixtures/applications/errors/errors.json | 2 +- .../ore/monsore/changeMonsore.txt | 34 +- .../ore/monsore/createMonsore.txt | 42 +- .../ore/monsore/validateMonsore.txt | 31 +- 14 files changed, 706 insertions(+), 334 deletions(-) diff --git a/src/main/java/fr/inra/oresing/domain/data/DataColumn.java b/src/main/java/fr/inra/oresing/domain/data/DataColumn.java index 626df0c30..370180dca 100644 --- a/src/main/java/fr/inra/oresing/domain/data/DataColumn.java +++ b/src/main/java/fr/inra/oresing/domain/data/DataColumn.java @@ -6,14 +6,23 @@ import java.util.Locale; public record DataColumn(String column) implements CheckerTarget, SomethingToBeStoredAsJsonInDatabase<String> { - public static final String DISPLAY = "__display_%s"; + public static final String DISPLAY_NAME = "display_%s"; + public static final String DISPLAY_DESCRIPTION = "display_description_%s"; - public static DataColumn forDisplay(final Locale locale) { - return forDisplay(DISPLAY.formatted(locale.toLanguageTag())); + public static DataColumn forDisplayName(final Locale locale) { + return forDisplayName(locale.toLanguageTag()); } - public static DataColumn forDisplay(final String suffix) { - return new DataColumn(DISPLAY.formatted(suffix)); + public static DataColumn forDisplayDescription(final Locale locale) { + return forDisplayDescription(locale.toLanguageTag()); + } + + public static DataColumn forDisplayName(final String suffix) { + return new DataColumn(DISPLAY_NAME.formatted(suffix)); + } + + public static DataColumn forDisplayDescription(final String suffix) { + return new DataColumn(DISPLAY_DESCRIPTION.formatted(suffix)); } public String asString() { diff --git a/src/main/java/fr/inra/oresing/domain/data/DataColumnIndexedValue.java b/src/main/java/fr/inra/oresing/domain/data/DataColumnIndexedValue.java index 4957384de..14f7afd57 100644 --- a/src/main/java/fr/inra/oresing/domain/data/DataColumnIndexedValue.java +++ b/src/main/java/fr/inra/oresing/domain/data/DataColumnIndexedValue.java @@ -26,7 +26,7 @@ public record DataColumnIndexedValue( @Override public String toValueString(final DataImporterContext referenceImporterContext, final String referencedColumn, final String locale) { return values.entrySet().stream() - .map(ltreeStringEntry -> String.format("\"%s\"\"=%s\"", referenceImporterContext.getDisplayByReferenceAndNaturalKey(referencedColumn, ltreeStringEntry.getKey().toString(), locale), ltreeStringEntry.getValue())) + .map(ltreeStringEntry -> String.format("\"%s\"\"=%s\"", referenceImporterContext.getDisplayNamesByReferenceAndNaturalKey(referencedColumn, ltreeStringEntry.getKey().toString(), locale), ltreeStringEntry.getValue())) .collect(Collectors.joining(",", "[", "]")); } diff --git a/src/main/java/fr/inra/oresing/domain/data/DataColumnMultipleValue.java b/src/main/java/fr/inra/oresing/domain/data/DataColumnMultipleValue.java index 7ce904622..e6ec55ef4 100644 --- a/src/main/java/fr/inra/oresing/domain/data/DataColumnMultipleValue.java +++ b/src/main/java/fr/inra/oresing/domain/data/DataColumnMultipleValue.java @@ -71,7 +71,7 @@ public class DataColumnMultipleValue<U> implements DataColumnValue<ListType, Fie @Override public String toValueString(final DataImporterContext referenceImporterContext, final String referencedColumn, final String locale) { return (String) values.getValue().stream() - .map(s -> referenceImporterContext.getDisplayByReferenceAndNaturalKey(referencedColumn, s.toString(), locale)) + .map(s -> referenceImporterContext.getDisplayNamesByReferenceAndNaturalKey(referencedColumn, s.toString(), locale)) .collect(Collectors.joining(",", "[", "]")); } diff --git a/src/main/java/fr/inra/oresing/domain/data/DataColumnSingleValue.java b/src/main/java/fr/inra/oresing/domain/data/DataColumnSingleValue.java index 9a2fafed6..35afb564a 100644 --- a/src/main/java/fr/inra/oresing/domain/data/DataColumnSingleValue.java +++ b/src/main/java/fr/inra/oresing/domain/data/DataColumnSingleValue.java @@ -49,7 +49,7 @@ public class DataColumnSingleValue implements DataColumnValue<FieldType, FieldTy @Override public String toValueString(final DataImporterContext referenceImporterContext, final String referencedColumn, final String locale) { - return referenceImporterContext.getDisplayByReferenceAndNaturalKey(referencedColumn, value.toString(), locale); + return referenceImporterContext.getDisplayNamesByReferenceAndNaturalKey(referencedColumn, value.toString(), locale); } @Override diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java index 09b88776e..9a896e494 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java @@ -166,8 +166,12 @@ public class DataImporter { return referenceDatumAfterChecking; } - public String getDisplayByReferenceAndNaturalKey(final String referencedColumn, final String naturalKey, final String locale) { - return dataImporterContext.getDisplayByReferenceAndNaturalKey(referencedColumn, naturalKey, locale); + public String getDisplayNamesByReferenceAndNaturalKey(final String referencedColumn, final String naturalKey, final String locale) { + return dataImporterContext.getDisplayNamesByReferenceAndNaturalKey(referencedColumn, naturalKey, locale); + } + + public String getDisplayDescriptionsByReferenceAndNaturalKey(final String referencedColumn, final String naturalKey, final String locale) { + return dataImporterContext.getDisplayDescriptionsByReferenceAndNaturalKey(referencedColumn, naturalKey, locale); } /** @@ -393,7 +397,8 @@ public class DataImporter { Ltree naturalKey = keysAndReferenceDatumAfterChecking.naturalKey(); recursionStrategy.getKnownId(naturalKey) .ifPresent(e::setId); - referenceDatum.putAll(InternationalizationDisplay.getDisplays(dataImporterContext, referenceDatum)); + referenceDatum.putAll(InternationalizationDisplay.getDisplaysName(dataImporterContext, referenceDatum)); + referenceDatum.putAll(InternationalizationDisplay.getDisplaysDescription(dataImporterContext, referenceDatum)); final String patternColumnName = referenceDatumAfterChecking.patternColumnName(); dataImporterContext.getIdForSameHierarchicalKeyInDatabase(hierarchicalKey) diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/ContextConstants.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/ContextConstants.java index 91fa90c9f..ae8a337c9 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/ContextConstants.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/ContextConstants.java @@ -16,9 +16,8 @@ public record ContextConstants( Application application, String refType, InternationalizationData internationalizationReferenceMap, - Map<Locale, String> displayPattern, + InternationalizationTitle displayPattern, HierarchicalKeyFactory hierarchicalKeyFactory, - InternationalizationTitle patternColumns, Map<Locale, List<InternationalizationDisplay.PatternSection>> patternSection, StandardDataDescription dataConfiguration ) { @@ -31,16 +30,14 @@ public record ContextConstants( application, refType, internationalizationData, - null,//displayPattern.orElse(null), - null,//buildHierarchicalKeyFactory(application, refType), - null,//displayPattern.map(ContextConstants::buildPatternColumns).orElse(null), - null,//displayPattern.map(ContextConstants::buildPatternSection).orElse(null), + displayPattern.orElse(null), + buildHierarchicalKeyFactory(application, refType), + displayPattern.map(ContextConstants::buildPatternSection).orElse(null), dataDescription ); } - static Optional<InternationalizationData> buildInternationalizationReferenceMap(final Configuration conf, final String refType) { final Optional<InternationalizationData> internationalizationData = Optional.ofNullable(conf) .map(Configuration::i18n) @@ -59,19 +56,14 @@ public record ContextConstants( return hierarchicalKeyFactory; } - static Map<Locale, List<InternationalizationDisplay.PatternSection>> buildPatternSection(final Map<Locale, String> displayPattern) { + static Map<Locale, List<InternationalizationDisplay.PatternSection>> buildPatternSection(final InternationalizationTitle displayPattern) { return Optional.ofNullable(displayPattern) + .map(InternationalizationTitle::getTitle) .map(dp -> dp.entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, k -> InternationalizationDisplay.parsePattern(k.getValue()))) ).orElse(null); } - static Map<Locale, List<String>> buildPatternColumns(final Map<Locale, String> displayPattern) { - return Optional.ofNullable(displayPattern) - .map(dp -> dp.entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, k -> InternationalizationDisplay.getPatternColumns(k.getValue()))) - ).orElse(null); - } public record InternationalizationReferenceMap( Map<String, String> internationalizationName, Map<String, Map<String, String>> internationalizedColumns, diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java index d0626d586..22d9117e5 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java @@ -7,6 +7,7 @@ import com.google.common.collect.ImmutableSet; import fr.inra.oresing.domain.Mapper; import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.configuration.*; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationTitle; import fr.inra.oresing.domain.checker.LineChecker; import fr.inra.oresing.domain.checker.type.ReferenceType; import fr.inra.oresing.domain.data.*; @@ -56,7 +57,8 @@ public class DataImporterContext { private final PatternColumnFactory patternColumnFactory; @Getter private final Mapper jsonRowMapper; - final Map<String, Map<String, Map<String, String>>> displayByReferenceAndNaturalKey; + final Map<String, Map<String, Map<String, String>>> displayNamesByReferenceAndNaturalKey; + final Map<String, Map<String, Map<String, String>>> displayDescriptionsByReferenceAndNaturalKey; boolean allowUnexpectedColumns; private final String reftype; private PublishContext.PublishContextBuilder publishContextBuilder; @@ -67,7 +69,8 @@ public class DataImporterContext { final ImmutableSet<Column> columns, final PatternColumnFactory patternColumnFactory, final Mapper jsonRowMapper, - final Map<String, Map<String, Map<String, String>>> displayByReferenceAndNaturalKey, + final Map<String, Map<String, Map<String, String>>> displayNamesByReferenceAndNaturalKey, + final Map<String, Map<String, Map<String, String>>> displayDescriptionsByReferenceAndNaturalKey, final boolean allowUnexpectedColumns, final String reftype, PublishContext.PublishContextBuilder publishContextBuilder, @@ -79,15 +82,22 @@ public class DataImporterContext { this.columns = columns; this.patternColumnFactory = patternColumnFactory; this.jsonRowMapper = jsonRowMapper; - this.displayByReferenceAndNaturalKey = displayByReferenceAndNaturalKey; + this.displayNamesByReferenceAndNaturalKey = displayNamesByReferenceAndNaturalKey; + this.displayDescriptionsByReferenceAndNaturalKey = displayDescriptionsByReferenceAndNaturalKey; this.allowUnexpectedColumns = allowUnexpectedColumns; this.reftype = reftype; this.publishContextBuilder = publishContextBuilder; this.nodesForMenu = nodesForMenu; } - public String getDisplayByReferenceAndNaturalKey(final String referencedColumn, final String naturalKey, final String locale) { - return displayByReferenceAndNaturalKey.getOrDefault(referencedColumn, new HashMap<>()) + public String getDisplayNamesByReferenceAndNaturalKey(final String referencedColumn, final String naturalKey, final String locale) { + return displayNamesByReferenceAndNaturalKey.getOrDefault(referencedColumn, new HashMap<>()) + .getOrDefault(naturalKey, new HashMap<>()) + .getOrDefault(locale, naturalKey); + } + + public String getDisplayDescriptionsByReferenceAndNaturalKey(final String referencedColumn, final String naturalKey, final String locale) { + return displayDescriptionsByReferenceAndNaturalKey.getOrDefault(referencedColumn, new HashMap<>()) .getOrDefault(naturalKey, new HashMap<>()) .getOrDefault(locale, naturalKey); } @@ -257,7 +267,7 @@ public class DataImporterContext { return column.getCsvCellContent(referenceDatum); } - public Optional<Map<Locale, String>> getDisplayPattern() { + public Optional<InternationalizationTitle> getDisplayPattern() { return Optional.ofNullable(constants.displayPattern()); } diff --git a/src/main/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplay.java b/src/main/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplay.java index 9d115bcea..43fc55352 100644 --- a/src/main/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplay.java +++ b/src/main/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplay.java @@ -1,5 +1,6 @@ package fr.inra.oresing.domain.internationalization; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationTitle; import fr.inra.oresing.domain.checker.type.StringType; import fr.inra.oresing.domain.data.DataColumn; import fr.inra.oresing.domain.data.DataColumnSingleValue; @@ -24,16 +25,14 @@ public class InternationalizationDisplay { //@ApiModelProperty(notes = "pattern in differents locales, used to display a reference when referred to",required = false) Map<Locale, String> pattern; - public static DataDatum getDisplays(final DataImporterContext dataImporterContext, final DataDatum refValues) { - final Optional<Map<Locale, String>> displayPattern =dataImporterContext.getDisplayPattern(); - //final Map<String, Map<Locale, String>> displayColumns = dataImporterContext.getDisplayColumns(); - final String refType = dataImporterContext.getRefType(); - final DataDatum displays = new DataDatum(); + public static DataDatum getDisplaysName(final DataImporterContext dataImporterContext, final DataDatum refValues) { + Optional<InternationalizationTitle> displayPattern = dataImporterContext.getDisplayPattern(); + final DataDatum displaysName = new DataDatum(); displayPattern .ifPresent(patterns -> { - patterns.entrySet() + patterns.getTitle().entrySet() .forEach(stringEntry -> { - displays.put(DataColumn.forDisplay(stringEntry.getKey()), + displaysName.put(DataColumn.forDisplayName(stringEntry.getKey()), new DataColumnSingleValue( StringType.getStringTypeFromStringValue( parsePattern(stringEntry.getValue()).stream() @@ -41,9 +40,6 @@ public class InternationalizationDisplay { String internationalizedPattern = patternSection.text; if (!Strings.isNullOrEmpty(patternSection.variable)) { String referencedColumn = patternSection.variable; - /*if (displayColumns.containsKey(referencedColumn)) { - referencedColumn = displayColumns.get(referencedColumn).getOrDefault(stringEntry.getKey(), referencedColumn); - }*/ internationalizedPattern += refValues.get(new DataColumn(referencedColumn)).toValueString(dataImporterContext, referencedColumn, stringEntry.getKey().getDisplayName()); } return internationalizedPattern; } @@ -68,8 +64,50 @@ public class InternationalizationDisplay { ) .collect(Collectors.joining(DataImporterContext.COMPOSITE_NATURAL_KEY_COMPONENTS_SEPARATOR)); - displays.put(DataColumn.forDisplay("default"), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(defaultDisplay))); - return displays; + displaysName.put(DataColumn.forDisplayName("default"), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(defaultDisplay))); + return displaysName; + } + + public static DataDatum getDisplaysDescription(final DataImporterContext dataImporterContext, final DataDatum refValues) { + Optional<InternationalizationTitle> displayPattern = dataImporterContext.getDisplayPattern(); + final String refType = dataImporterContext.getRefType(); + final DataDatum displaysDescription = new DataDatum(); + displayPattern + .ifPresent(patterns -> { + patterns.getDescription().entrySet() + .forEach(stringEntry -> { + displaysDescription.put(DataColumn.forDisplayDescription(stringEntry.getKey()), + new DataColumnSingleValue( + StringType.getStringTypeFromStringValue( + parsePattern(stringEntry.getValue()).stream() + .map(patternSection -> { + String internationalizedPattern = patternSection.text; + if (!Strings.isNullOrEmpty(patternSection.variable)) { + String referencedColumn = patternSection.variable; + internationalizedPattern += refValues.get(new DataColumn(referencedColumn)).toValueString(dataImporterContext, referencedColumn, stringEntry.getKey().getDisplayName()); } + return internationalizedPattern; + } + ) + .collect(Collectors.joining())) + ) + ); + }); + }); + String defaultDisplay = dataImporterContext.getNaturalKeyColumns() + .stream() + .map(columnName -> + refValues.values().entrySet() + .stream() + .filter(entry -> entry.getKey().column().equals(columnName)) + .map(Map.Entry::getValue) + .map(DataColumnValue::toJsonForFrontend) + .map(Object::toString) + .findFirst() + .orElse("") + + ) + .collect(Collectors.joining(DataImporterContext.COMPOSITE_NATURAL_KEY_COMPONENTS_SEPARATOR)); + return displaysDescription; } public static List<String> getPatternColumns(final String pattern) { diff --git a/src/main/java/fr/inra/oresing/rest/data/DataService.java b/src/main/java/fr/inra/oresing/rest/data/DataService.java index 7b5f19073..976705453 100644 --- a/src/main/java/fr/inra/oresing/rest/data/DataService.java +++ b/src/main/java/fr/inra/oresing/rest/data/DataService.java @@ -7,6 +7,7 @@ import fr.inra.oresing.domain.GroovyDataInjectionConfiguration; import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationTitle; import fr.inra.oresing.domain.checker.CheckerFactory; import fr.inra.oresing.domain.checker.InvalidDatasetContentException; import fr.inra.oresing.domain.checker.LineChecker; @@ -206,9 +207,16 @@ public class DataService { ContextConstants constants = ContextConstants.with( application, dataName); - /*final Set<String> patternColumnsNames = Optional.ofNullable(constants.patternColumns()) - .map(m -> m.values().stream().flatMap(List::stream).collect(Collectors.toSet())) - .orElseGet(HashSet::new);*/ + final Set<String> patternColumnsNames = Optional.ofNullable(constants.displayPattern()) + .map(InternationalizationTitle::getTitle) + .map(Map::values) + .map(m -> m.stream().collect(Collectors.toSet())) + .orElseGet(HashSet::new); + final Set<String> patternColumnsDescription = Optional.ofNullable(constants.displayPattern()) + .map(InternationalizationTitle::getDescription) + .map(Map::values) + .map(m -> m.stream().collect(Collectors.toSet())) + .orElseGet(HashSet::new); Map<String, List<String>> referenceToColumnName = lineCheckers.stream() .filter(lc -> lc.underlyingType() instanceof ReferenceType) .collect(Collectors.groupingBy( @@ -216,11 +224,21 @@ public class DataService { Collectors.mapping(ReferenceType -> ((DataColumn) ReferenceType.target()).column(), Collectors.toList()) ) ); - Map<String, Map<String, Map<String, String>>> displayByReferenceAndNaturalKey = + Map<String, Map<String, Map<String, String>>> displayNamesByReferenceAndNaturalKey = lineCheckers.stream() .filter(lc -> lc.underlyingType() instanceof ReferenceType) .map(lc -> ((ReferenceType) lc.underlyingType()).getRefType()) - .filter(rt -> false)//patternColumnsNames.contains(rt)) + .filter(rt -> patternColumnsNames.contains(rt)) + .collect(Collectors.toMap(ref -> + Optional.ofNullable(referenceToColumnName.getOrDefault(ref, null)) + .map(l -> l.get(0)) + .orElse(ref), + ref -> getReferenceValueRepository(application).findDisplayByNaturalKey(ref))); + Map<String, Map<String, Map<String, String>>> displayDescriptionsByReferenceAndNaturalKey = + lineCheckers.stream() + .filter(lc -> lc.underlyingType() instanceof ReferenceType) + .map(lc -> ((ReferenceType) lc.underlyingType()).getRefType()) + .filter(rt -> patternColumnsDescription.contains(rt)) .collect(Collectors.toMap(ref -> Optional.ofNullable(referenceToColumnName.getOrDefault(ref, null)) .map(l -> l.get(0)) @@ -235,7 +253,8 @@ public class DataService { result.columns(), result.patternColumnFactory(), jsonRowMapper, - displayByReferenceAndNaturalKey, + displayNamesByReferenceAndNaturalKey, + displayDescriptionsByReferenceAndNaturalKey, allowUnexpectedColumns, dataName, publishContextBuilder, diff --git a/src/test/resources/data/monsore/monsore-with-repository.yaml b/src/test/resources/data/monsore/monsore-with-repository.yaml index 9563e1550..05dee4294 100644 --- a/src/test/resources/data/monsore/monsore-with-repository.yaml +++ b/src/test/resources/data/monsore/monsore-with-repository.yaml @@ -2,9 +2,13 @@ OA_version: 2.0.1 OA_application: OA_defaultLanguage: fr OA_i18n: - fr: SOERE mon SOERE - en: SOERE my SOERE - OA_comment: Fichier de test de l'application brokenADOM + OA_title: + fr: SOERE mon SOERE + en: SOERE my SOERE + OA_description: + fr: SOERE mon SOERE + en: SOERE my SOERE + OA_comment: Fichier de test de l'application brokenADOM version initiale OA_name: monsore OA_version: 3.0.1 OA_tags: @@ -24,15 +28,22 @@ OA_tags: fr: temporalité en: temporality OA_rightsRequest: - OA_description: - OA_i18n: + OA_i18n: + OA_title: fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire en: You can request rights to the monsore application by filling out this form - OA_FORM_FIELDS: + OA_description: + fr: Formulaire de demande de droit d'accès aux données de Monsoere + en: Monsoere Data Access Right Request Form + OA_formFields: organization: OA_i18n: - fr: Nom de l'organisme de recherche - en: Name of research organization + OA_title: + fr: Nom de l'organisme de recherche + en: Name of research organization + OA_description: + fr: Nom usuel de l'organisme de recherche + en: Usual ame of research organization OA_required: true OA_checker: OA_name: OA_string @@ -40,24 +51,36 @@ OA_rightsRequest: OA_pattern: ".*" project: OA_i18n: - fr: Description du projet de recherche - en: Description of the research project + OA_title: + fr: Description du projet de recherche + en: Description of the research project + OA_description: + fr: Donnez une description du projet de recherche + en: Describe your the research project OA_checker: OA_name: OA_string OA_params: OA_pattern: ".*" startDate: OA_i18n: - fr: Date de début du projet - en: Project start date + OA_title: + fr: Date de début du projet + en: Project start date + OA_description: + fr: Donnez la date de début du projet + en: Give the project start date OA_checker: OA_name: OA_date OA_params: OA_pattern: "dd/MM/yyyy" endDate: OA_i18n: - fr: Date de fin du projet - en: Project end date + OA_title: + fr: Date de fin du projet + en: Give the project end date + OA_description: + fr: Donnez la date de fin du projet + en: Project end date OA_checker: OA_name: OA_date OA_params: @@ -65,35 +88,55 @@ OA_rightsRequest: OA_additionalFiles: fichiers: OA_i18n: - fr: Fichiers - en: Files - OA_FORM_FIELDS: + OA_title: + fr: Fichiers + en: Files + OA_description: + fr: Différents fichiers afférents au Système d'Information + en: Various files relating to the Information System + OA_formFields: nom: OA_i18n: - fr: Nom - en: Name + OA_title: + fr: Nom + en: Name + OA_description: + fr: Le nom du fichier pour téléchargement + en: The name of the file for download OA_checker: OA_name: OA_string OA_params: OA_pattern: "[a-z]*" date: OA_i18n: - fr: Date - en: Date + OA_title: + fr: Date + en: Date + OA_description: + fr: La date de mise à jour du fichier + en: The date the file was updated OA_checker: OA_name: OA_date OA_params: OA_pattern: "dd/MM/yyyy" age: OA_i18n: - fr: Age - en: Age + OA_title: + fr: Age + en: Age + OA_description: + fr: Age minumum d'accès au fichier + en: Minimum age for file access OA_checker: OA_name: OA_integer poids: OA_i18n: - fr: Poids - en: Weight + OA_title: + fr: Poids + en: Weight + OA_description: + fr: Poids du fichier en ko + en: File size in kb OA_checker: OA_name: OA_float OA_params: @@ -101,8 +144,13 @@ OA_additionalFiles: OA_max: 100.0 site: OA_i18n: - fr: Site - en: Place + OA_title: + fr: Site + en: Place + OA_description: + fr: Site décrit par le fichier + en: Site described by the file + OA_required: true OA_checker: OA_name: OA_reference @@ -111,21 +159,33 @@ OA_additionalFiles: OA_name: sites utilisateurs: OA_i18n: - fr: Users - en: User - OA_FORM_FIELDS: + OA_title: + fr: Utilsateurs + en: Users + OA_description: + fr: Fichiers de dexcription des utilisateurs du système + en: System User Description Files + OA_formFields: nom: OA_i18n: - fr: Nom - en: Name + OA_title: + fr: Nom + en: Name + OA_description: + fr: Nom de l'utilisateur + en: User name OA_checker: OA_name: OA_string OA_params: OA_pattern: "[a-z]*" prenom: OA_i18n: - fr: Prénom - en: Surname + OA_title: + fr: Prénom + en: Surname + OA_description: + fr: Prénom de l'utilisateur + en: User surname OA_checker: OA_name: OA_string OA_params: @@ -134,70 +194,107 @@ OA_data: especes: OA_tags: [ data ] OA_i18n: - fr: Espèces - en: Species - OA_i18nColumns: - esp_definition_fr: - fr: esp_definition_fr - en: esp_definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{esp_nom}' - en: '{esp_nom}' + OA_title: + fr: Espèces + en: Species + OA_description: + fr: Description des espèces pêchées sur le bassin versant + en: Description of species fished in the watershed + OA_i18nDisplayPattern: + OA_title: + fr: "{esp_nom}" + en: "{esp_nom}" + OA_description: + fr: "{esp_definition_fr}" + en: "{esp_definition_en}" OA_naturalKey: - esp_nom OA_basicComponents: esp_nom: OA_tags: [ test ] OA_exportHeader: - OA_i18n: + OA_title: fr: "code" en: "code" + OA_description: + fr: "nom codique de l'espèce" + en: "code name of the species" esp_definition_fr: OA_exportHeader: - OA_i18n: + OA_title: fr: "définition" - en: "définition" + OA_description: + fr: "définition de l'espèce" + OA_langRestrictions: [fr] esp_definition_en: OA_exportHeader: - OA_i18n: - fr: "definition" + OA_title: en: "definition" + OA_description: + en: "species definition" + OA_langRestrictions: [en] colonne_homonyme_entre_referentiels: null OA_computedComponents: my_computed_column: OA_tags: [ __HIDDEN__ ] OA_exportHeader: - OA_i18n: + OA_title: fr: "colonne calculée" en: "computed column" + OA_description: + fr: "une colonne calculée retournant 'my value'" + en: "a calculated column returning 'my value'" OA_computation: OA_expression: > return "my value"; projet: OA_tags: [ context, data, test ] OA_i18n: - fr: Projet - en: Project - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Projet + en: Project + OA_description: + fr: Liste des projets du système d'information + en: List of information system projects + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{definition_fr}" + en: "{definition_en}" OA_naturalKey: - nom_key OA_basicComponents: nom_key: null - nom_fr: null - nom_en: null - definition_fr: null - definition_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "Nom" + OA_description: + fr: "Nom du projet" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "Name" + OA_description: + en: "Project name" + OA_langRestrictions: [en] + definition_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "définition du projet" + OA_langRestrictions: [fr] + definition_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "project definition" + OA_langRestrictions: [en] colonne_homonyme_entre_referentiels: null sites: OA_tags: [ context ] @@ -205,19 +302,19 @@ OA_data: - zet_chemin_parent - zet_nom_key OA_i18n: - fr: Site - en: Site - OA_i18nColumns: - zet_nom_key: - fr: zet_nom_fr - en: zet_nom_en - zet_description_fr: - fr: zet_description_fr - en: zet_description_en - OA_i18nDisplay: - OA_pattern: - fr: '{zet_nom_key}' - en: '{zet_nom_key}' + OA_title: + fr: Site + en: Site + OA_description: + fr: Liste des sites du système d'information + en: Sites list + OA_i18nDisplayPattern: + OA_title: + fr: "{zet_chemin_parent} - {zet_nom_fr} " + en: "{zet_chemin_parent} - {zet_nom_fr}" + OA_description: + fr: "{zet_description_fr}" + en: "{zet_description_en}" OA_basicComponents: tze_type_nom: OA_required: true @@ -228,10 +325,34 @@ OA_data: OA_name: type_de_sites OA_isParent: true zet_nom_key: null - zet_nom_fr: null - zet_nom_en: null - zet_description_fr: null - zet_description_en: null + zet_nom_fr: + OA_exportHeader: + OA_title: + fr: "Nom du site" + OA_description: + fr: "Le nom du site" + OA_langRestrictions: [fr] + zet_nom_en: + OA_exportHeader: + OA_title: + en: "Site name" + OA_description: + en: "The site name" + OA_langRestrictions: [en] + zet_description_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "La definition du site" + OA_langRestrictions: [fr] + zet_description_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "site definition" + OA_langRestrictions: [en] zet_chemin_parent: OA_required: false OA_checker: @@ -245,86 +366,151 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Thème - en: Thematic - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - description_fr: - fr: description_fr - en: description_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Thème + en: Thematic + OA_description: + fr: Liste des thèmes + en: Thematic list + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{description_fr}" + en: "{description_en}" OA_basicComponents: nom_key: null - nom_fr: null - nom_en: null - description_fr: null - description_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "nom" + OA_description: + fr: "Le nom du thème" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "Site name" + OA_langRestrictions: [en] + description_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "La definition du thème" + OA_langRestrictions: [fr] + description_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "Thematic definition" + OA_langRestrictions: [en] type_de_fichiers: OA_tags: [ "__HIDDEN__" ] OA_naturalKey: - nom_key OA_i18n: - fr: Types de fichiers - en: Files types - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - description_fr: - fr: description_fr - en: description_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Types de fichiers + en: Files types + OA_description: + fr: Les types de fichiers + en: The files types + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{description_fr}" + en: "{description_en}" OA_basicComponents: nom_key: null nom_fr: null nom_en: null description_fr: null - description_en: null + description_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "Thematic definition" + OA_langRestrictions: [en] type_de_sites: OA_tags: [ context ] OA_naturalKey: - tze_nom_key OA_i18n: - fr: Types de sites - en: Sites types - OA_i18nColumns: - tze_nom_key: - fr: tze_nom_fr - en: tze_nom_en - tze_definition_fr: - fr: tze_definition_fr - en: tze_definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{tze_nom_key}' - en: '{tze_nom_key}' + OA_title: + fr: Types de sites + en: Sites types + OA_description: + fr: Liste des types de sites + en: Sites types list + OA_i18nDisplayPattern: + OA_title: + fr: "{tze_nom_fr}" + en: "{tze_nom_en}" + OA_description: + fr: "{tze_definition_fr}" + en: "{tze_definition_en}" OA_basicComponents: tze_nom_key: null - tze_nom_fr: null - tze_nom_en: null - tze_definition_fr: null - tze_definition_en: null + tze_nom_fr: + OA_exportHeader: + OA_title: + fr: "nom" + OA_description: + fr: "La nom du type de sites" + OA_langRestrictions: [fr] + tze_nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "Site type name" + OA_langRestrictions: [en] + tze_definition_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "La definition du type de site" + OA_langRestrictions: [fr] + tze_definition_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "Site type definition" + OA_langRestrictions: [en] site_theme_datatype: OA_tags: [ context ] OA_i18n: - fr: Types de données par site et projet - en: Data types by site and project - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Types de données par site et projet + en: Data types by site and project + OA_description: + fr: Table de jointure des sites theme et datatypes + en: Join table of theme sites and datatypes + OA_i18nDisplayPattern: + OA_title: fr: >- nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype} en: >- projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype} + OA_description: + fr: >- + Jointure nom du projet: {projet}, nom du site : {site}, nom du + thème : {theme}, nom du type de données : {datatype} + en: >- + Join on projet name: {projet}, site name : {site}, theme name : + {theme}, data type name : {datatype} OA_validations: projetRef: OA_i18n: @@ -334,7 +520,7 @@ OA_data: OA_params: OA_reference: OA_name: projet - OA_columns: [ projet ] + OA_components: [ projet ] sitesRef: OA_i18n: fr: référence au site @@ -343,7 +529,7 @@ OA_data: OA_params: OA_reference: OA_name: sites - OA_columns: [ site ] + OA_components: [ site ] themesRef: OA_i18n: fr: référence au theme @@ -352,21 +538,35 @@ OA_data: OA_params: OA_reference: OA_name: themes - OA_columns: [ theme ] + OA_components: [ theme ] checkDatatype: OA_i18n: fr: test - OA_columns: [ datatype ] + OA_components: [ datatype ] OA_checker: OA_name: OA_groovyExpression OA_params: OA_groovy: OA_expression: > - String datatype = datum.datatype; - return application.getConfiguration().i18n().data - .collect { - it->it.value.i18n.get(java.util.Locale.FRENCH)} - .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null; + String datatype = datum.datatype; + def data = application.getConfiguration().i18n().data ; + if(data==null){ + return false; + }; + def i18n = data + .collect{ it->it.value.i18n}; + if(i18n==null){ + return false; + }; + def title = i18n + .collect{ it->it.title}; + if(title==null){ + return false; + }; + def french = title + .collect { it->it.get(java.util.Locale.FRENCH)}; + return french + .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null; OA_naturalKey: - projet - site @@ -386,76 +586,145 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Unités - en: Units - OA_i18nColumns: - code_key: - fr: code_fr - en: code_en - nom_key: - fr: nom_fr - en: nom_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key} ({code_key})' - en: '{nom_key} ({code_key})' + OA_title: + fr: Unités + en: Units + OA_description: + fr: Liste des unités + en: Units list + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr} ({code_key})" + en: "{nom_en} ({code_key})" OA_basicComponents: code_key: null - code_fr: null - code_en: null + code_fr: + OA_exportHeader: + OA_title: + fr: "code" + OA_description: + fr: "Le code du unité" + OA_langRestrictions: [fr] + code_en: + OA_exportHeader: + OA_title: + en: "code" + OA_description: + en: "Unit code" + OA_langRestrictions: [en] nom_key: null - nom_fr: null - nom_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "nom" + OA_description: + fr: "La nom de l'unité" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "Unit name" + OA_langRestrictions: [en] valeurs_qualitatives: OA_tags: [ data ] OA_naturalKey: - nom_key - valeur_key OA_i18n: - fr: Valeurs qualitatives - en: Qualitative values - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - valeur_key: - fr: valeur_fr - en: valeur_en - OA_i18nDisplay: - OA_pattern: - fr: '{valeur_key}' - en: '{valeur_key}' + OA_title: + fr: Valeurs qualitatives + en: Qualitative values + OA_description: + fr: Liste de liste de valeurs qualitatives + en: List of qualitative values list + OA_i18nDisplayPattern: + OA_title: + fr: "{valeur_fr}" + en: "{valeur_en}" + OA_description: + fr: "{valeur_fr} de {nom_fr}" + en: "{valeur_en} of {nom_en}" OA_basicComponents: nom_key: null - nom_fr: null - nom_en: null - valeur_key: null - valeur_fr: null - valeur_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "Nom" + OA_description: + fr: "Le nom de la liste" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "The name list" + OA_langRestrictions: [en] + valeur_key: + valeur_fr: + OA_exportHeader: + OA_title: + fr: "valeur" + OA_description: + fr: "La valeur dans la liste" + OA_langRestrictions: [fr] + valeur_en: + OA_exportHeader: + OA_title: + en: "value" + OA_description: + en: "The value in list" + OA_langRestrictions: [en] variables: OA_tags: [ data ] OA_naturalKey: - nom_key OA_i18n: - fr: Variables - en: Variables - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Variables + en: Variables + OA_description: + fr: Liste des variables + en: Variables list + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{definition_fr}" + en: "{definition_en}" OA_basicComponents: nom_key: null - nom_fr: null - nom_en: null - definition_fr: null - definition_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "nom" + OA_description: + fr: "Le nom de la variable" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "Variable name" + OA_langRestrictions: [en] + definition_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "La définition de la variable" + OA_langRestrictions: [fr] + definition_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "Variable definition" + OA_langRestrictions: [en] is_qualitative: OA_importHeader: isQualitative variables_et_unites_par_types_de_donnees: @@ -469,7 +738,7 @@ OA_data: OA_params: OA_reference: OA_name: variables - OA_columns: [ variable ] + OA_components: [ variable ] uniteRef: OA_i18n: fr: référence à l'unité' @@ -478,34 +747,58 @@ OA_data: OA_params: OA_reference: OA_name: unites - OA_columns: [ unite ] + OA_components: [ unite ] checkDatatype: OA_i18n: fr: test - OA_columns: [ datatype ] + OA_components: [ datatype ] OA_checker: OA_name: OA_groovyExpression OA_params: OA_groovy: OA_expression: > - String datatype = datum.datatype; - return application.getConfiguration().i18n().data - .collect { - it->it.value.i18n.get(java.util.Locale.FRENCH)} - .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null; + String datatype = datum.datatype; + def data = application.getConfiguration().i18n().data ; + if(data==null){ + return false; + }; + def i18n = data + .collect{ it->it.value.i18n}; + if(i18n==null){ + return false; + }; + def title = i18n + .collect{ it->it.title}; + if(title==null){ + return false; + }; + def french = title + .collect { it->it.get(java.util.Locale.FRENCH)}; + return french + .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null; OA_naturalKey: - datatype - variable OA_i18n: - fr: Variables et unités par type de données - en: Variables and units by data type - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Variables et unités par type de données + en: Variables and units by data type + OA_description: + fr: Liste de jointure des variables et unités par type de données + en: Variables and units by data type join list + OA_i18nDisplayPattern: + OA_title: fr: >- nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite} en: >- datatype name : {datatype}, variable name : {variable}, : unit name {unite} + OA_description: + fr: >- + Jointure des nom du type de données : {datatype}, nom de la variable + : {variable}, : nom de l'unité {unite} + en: >- + Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite} OA_basicComponents: datatype: OA_importHeader: nom du type de données @@ -516,13 +809,12 @@ OA_data: pem: OA_tags: [ context, data, test, __DATA__, __ORDER_2__ ] OA_i18n: - fr: Piégeage en Montée - en: Trap in ascent - OA_i18nDisplay: - especes: - OA_pattern: - fr: 'Piégeage en montée' - en: 'TRap in ascent' + OA_title: + fr: Piégeage en Montée + en: Trap in ascent + OA_description: + fr: Données de pêche par piégeage en Montée + en: Upstream trapping fishing data OA_naturalKey: - projet - site @@ -563,7 +855,7 @@ OA_data: color_value: OA_importHeader: "Couleur des individus" OA_exportHeader: - OA_i18n: + OA_title: fr: Couleur des individus en: United colors OA_checker: @@ -574,8 +866,9 @@ OA_data: individusNumbervalue: OA_importHeader: "Nombre d'individus" OA_exportHeader: - OA_i18n: + OA_title: fr: Nombre d'individus + en: Number of individuals OA_defaultValue: OA_expression: return 0 OA_computedComponents: @@ -589,9 +882,12 @@ OA_data: OA_reference: OA_name: sites OA_exportHeader: #optional - OA_i18n: #optional + OA_title: fr: Chemin en: Path + OA_description: + fr: Données calculant le chemin complet du site + en: Data calculating the full path of the site color_unit: OA_computation: OA_expression: "'sans_unite'" @@ -666,20 +962,34 @@ OA_data: - OA_component: projet OA_reference: projet OA_i18n: - fr: projet - en: project + OA_title: + fr: projet + en: project + OA_description: + fr: Choisissez le projet + en: Choose the project OA_exportHeader: - OA_i18n: + OA_title: fr: projet en: project + OA_description: + fr: Le projet + en: The project - OA_component: chemin OA_reference: sites OA_i18n: - fr: site - en: site + OA_title: + fr: site + en: site + OA_description: + fr: Le site + en: The site OA_exportHeader: - OA_i18n: + OA_title: fr: site en: site + OA_description: + fr: Choisissez le site + en: Choose one or more site OA_timeScope: OA_component: date diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index f56999c0b..f1055b826 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:29.331292111","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:29.331486317","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:29.331896738","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:29.332103083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:29.332242659","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:29.332388375","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:29.332571617","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:44.2764476","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:44.276520719","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:44.276736431","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:44.276850339","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:44.276900568","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:44.277001245","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:44.277081174","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:00.300494364","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:00.300705452","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:00.301160781","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:00.301294494","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:00.301405421","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:00.301521827","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:00.301666507","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:17.128075391","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:17.128334621","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:17.128901491","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:17.129102641","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:17.129287096","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:17.129514154","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:17.129757792","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:19.226740511","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:19.226917721","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:19.227260083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:19.227354591","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:19.227443441","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:19.227543845","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:19.227656119","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:08.776762551","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:08.777548415","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:08.778308817","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:08.778554243","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:08.778780836","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:08.779023808","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:08.779324606","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:32.832077217","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:32.832196068","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:32.832416303","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:32.832478359","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:32.832530897","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:32.832604723","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:32.832677277","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:52.498684214","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-22T09:42:52.498744508","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:52.498810502","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:52.499078479","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:52.499134475","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:52.499191783","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:52.499452027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:52.499641527","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:15.016164889","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:15.016326023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:15.016756104","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:15.016872104","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:15.017001377","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:15.017112222","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:15.017312826","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:16.799317234","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:16.79941852","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:16.799651667","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:16.799727983","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:16.799799625","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:16.799874175","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:16.800023159","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:25.899377434","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:25.899543239","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:25.899935786","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:25.900076672","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:25.900173808","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:25.900286072","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:25.900417879","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:10.568622507","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:10.568747296","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:10.569038933","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:10.569105744","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:10.569165459","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:10.569249705","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:10.569357455","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:25.262743477","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:25.262969365","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:25.26340931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:25.263556065","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:25.263690422","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:25.26383346","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:25.264077801","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:58.939733513","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:58.939849407","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:58.940121784","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:58.940194167","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:58.940243746","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:58.940295019","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:58.94036333","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:56.821517023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:56.821682788","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:56.823114928","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:56.823317696","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:56.823446213","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:56.823692099","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:56.823894079","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:06.416455146","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:06.416616849","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:06.417049563","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:06.417201443","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:06.417302936","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:06.417406126","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:06.417572474","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ncolumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:10.012556556","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:10.012692859","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:10.01300123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:10.013063145","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:10.013134293","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:10.013194553","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:10.013271256","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:10.831948959","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:10.832161056","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:10.832574348","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:10.83268887","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:10.83279489","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:10.832905052","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:10.833056669","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:18.784662581","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:18.784776021","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:18.785042523","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:18.785103027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:18.785156417","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:18.785212701","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:18.785282404","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:58.240330172","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:58.240435194","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:58.240670445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:58.240735422","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:58.240838041","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:58.240901799","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:58.241007433","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:48.129539726","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:48.129740398","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:48.130150186","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:48.130258531","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:48.130363657","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:48.130473685","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:48.130609651","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:20.951673897","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:20.951816193","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:20.952205562","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:20.952305913","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:20.952403822","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:20.952490464","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:20.952621728","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:28.269407177","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:28.26953199","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:28.269805129","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:28.26986697","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:28.269923232","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:28.27011139","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:28.270300333","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:21.23821641","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:21.238420356","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:21.239062682","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:21.239214827","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:21.239374879","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:21.239527397","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:21.239744769","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:02.347162336","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:02.347322517","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:02.347636323","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:02.347719147","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:02.347828175","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:02.34796388","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:02.348158014","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:54.156728234","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:54.156912006","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:54.157373079","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:54.157502485","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:54.157646906","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:54.157791424","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:54.157995938","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:16.638538514","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:16.638649821","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:16.638914177","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:16.639033131","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:16.639095722","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:16.639157654","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:16.639236118","type":"REACTIVE_ERROR"}],"testValidConfiguration":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:33.449282931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:33.449409361","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:33.449676984","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:33.449750326","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:33.449819318","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:33.449890254","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:33.450023353","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:12.667604783","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:12.66783249","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:12.668250745","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:12.668377226","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:12.668474308","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:12.668576513","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:12.668703813","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:35.56626102","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:35.566412647","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:35.566661248","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:35.566733623","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:35.566802881","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:35.566871231","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:35.567013859","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:40.084312152","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:40.084404316","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:40.084635247","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:40.084697025","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:40.084754538","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:40.084815509","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:40.084893462","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:44.090302092","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:44.090445772","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:44.090743419","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:44.090814688","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:44.09088146","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:44.090982555","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:44.091115479","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:31.410153165","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:31.410283623","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:31.410570779","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:31.41064419","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:31.41070914","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:31.410776216","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:31.410895846","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:42.348369413","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:42.348487806","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:42.34880079","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:42.348900449","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:42.349038139","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:42.349133803","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:42.349252737","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:46.104001347","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:46.104260705","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:46.104612541","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:46.104729518","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:46.104839977","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:46.104998157","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:46.105160884","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:23.300989833","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:23.301299178","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:23.301778312","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:23.30191565","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:23.302089091","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:23.302223459","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:23.302413341","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:21.323886931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:21.324101109","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:21.324508183","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:21.324696523","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:21.324802754","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:21.324916634","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:21.325158041","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:05.208522218","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:05.208642682","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:05.20894702","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:05.209020366","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:05.209089059","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:05.209176691","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:05.209280735","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:41.973732001","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:41.973846255","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:41.974216971","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:41.974328589","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:41.974402259","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:41.974476801","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:41.974579601","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:12.502260805","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:12.502431374","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:12.502792624","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:12.502891071","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:12.503083121","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:12.50318589","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:12.503369623","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:50.465003704","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:50.465164075","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:50.465367445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:50.465420289","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:50.465468016","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:50.465518729","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:50.465582681","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:37.480508986","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:37.480732422","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:37.481340058","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:37.481546791","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:37.481716356","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:37.481879447","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:37.482112109","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:52.169789279","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:52.169975179","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:52.170205452","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:52.170268336","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:52.170333937","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:52.170396731","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:52.170476415","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:37.629614148","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:37.629844498","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:37.630318569","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:37.630412882","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:37.630512239","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:37.630596757","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:37.630716494","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:54.512225394","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:54.512303455","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:54.512481536","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:54.512546621","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:54.512593496","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:54.512643132","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:54.512708997","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:08.489834761","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:08.489922907","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:08.490176648","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:08.490234046","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:08.490285737","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:08.490339968","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:08.490409174","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:12.934809829","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:12.935011285","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:12.935368598","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:12.935495349","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:12.935606304","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:12.935720405","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:12.935862843","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > frrr","unexpectedSections":["en","frrr"]}},"time":"2024-10-22T09:42:28.857136818","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:28.857280171","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:28.857489686","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:28.857547198","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:28.857598134","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:28.85765192","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:28.857719285","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:50.144581862","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:50.144694186","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:50.144917185","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:50.14503186","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:50.145092904","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:50.14515644","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:50.145236001","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:27.257939011","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:27.258241184","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:27.258574623","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:27.258650915","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:27.258717347","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:27.258786044","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:27.258871036","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:34.864664325","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:34.864759727","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:34.864990336","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:34.865063842","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:34.865113626","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:34.865165919","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:34.865233807","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:56.186138547","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:56.186341684","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:56.186569254","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:56.18663122","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:56.18668671","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:56.186742668","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:56.18681406","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:41:39.858509555","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:41:39.858643114","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:39.858902248","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:39.859019614","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:39.859097854","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:41:39.859182752","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:41:39.859397382","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date","componentName":"tel_date"}},"time":"2024-10-22T09:41:39.860028646","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:04.407060923","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:04.407151223","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:04.40735272","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:04.407410029","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:04.407504488","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:04.407576669","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:04.407648509","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:46.382024593","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:46.382117458","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:46.382383296","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:46.382436647","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:46.382484086","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:46.38255423","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:46.382624388","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-22T09:42:46.383123459","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:48.386181486","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:48.386271983","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:48.386461525","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:48.386513754","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:48.386562161","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:48.386611984","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:48.386677221","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:02.966461582","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:02.966555906","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:02.966921425","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:02.967070758","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:02.967174952","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:02.967291572","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:02.967435717","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-22T09:43:02.967853599","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:00.932887221","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:00.933004604","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:00.933206288","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:00.933262817","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:00.933312835","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:00.933365048","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:00.933457671","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:30.848925189","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:30.849051576","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:30.849241035","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:30.849296512","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:30.849348141","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:30.849401032","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:30.849467196","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:14.739594","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:14.739673548","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:14.739845417","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:14.739898465","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:14.739996916","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:14.740112535","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:14.740179922","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:23.748175057","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:23.748320083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:23.748705932","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:23.748842967","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:23.748985193","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:23.749131246","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:23.749329078","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:26.044204951","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:26.044408121","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:26.044917409","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:26.045076349","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:26.045196027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:26.045317631","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:26.045533588","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:23.034879479","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:23.035168891","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:23.035886321","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:23.036098561","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:23.036258087","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:23.036409977","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:23.03658056","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:42:14.645795032","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:42:14.645963338","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:14.646220435","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:14.646277822","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:14.646329981","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:42:14.646384961","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:42:14.646454652","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:18.968321735","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:18.968487893","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:18.968870869","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:18.969027717","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:18.969135815","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:18.969248671","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:18.969433265","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T09:43:07.886438055","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T09:43:07.886586073","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:07.886887693","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:07.887051288","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:07.88714532","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T09:43:07.887250078","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T09:43:07.887377351","type":"REACTIVE_ERROR"}]} \ No newline at end of file +{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:19.956869328","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:19.957176366","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:19.957690181","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:19.95783937","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:19.957994245","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:19.958158123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:19.958276356","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:33.72566104","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:33.725745695","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:33.725972486","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:33.72604292","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:33.726093939","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:33.726148124","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:33.726215942","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:52.402292976","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:52.402408858","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:52.402893521","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:52.403039224","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:52.403111653","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:52.403199757","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:52.403329046","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:07.296595168","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:07.296838714","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:07.297323155","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:07.297447093","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:07.297548646","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:07.297742014","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:07.298001207","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:09.422878655","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:09.423145853","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:09.423629723","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:09.423781015","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:09.423918866","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:09.424083756","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:09.424267204","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:26:58.404062937","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:26:58.404561569","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:26:58.405283123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:26:58.405451698","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:26:58.40557663","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:26:58.405962062","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:26:58.40618645","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:23.393646108","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:23.393741769","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:23.394014513","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:23.394090721","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:23.394181153","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:23.394242505","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:23.394320032","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:41.858660192","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-22T14:28:41.858726002","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:41.858792709","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:41.859044039","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:41.859120199","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:41.859181113","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:41.859233772","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:41.859300437","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:05.168174685","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:05.168450584","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:05.169047952","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:05.169167601","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:05.169337058","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:05.169540234","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:05.16975692","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:06.679360618","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:06.679510548","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:06.679844248","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:06.679963805","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:06.680082461","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:06.680190691","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:06.680354966","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:15.316251647","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:15.316403217","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:15.316800944","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:15.316915575","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:15.317029733","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:15.317140859","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:15.317284999","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:02.958441651","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:02.95854029","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:02.9587457","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:02.958900522","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:02.959031222","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:02.95914439","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:02.959273469","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:15.730923733","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:15.731200725","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:15.731660677","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:15.731800141","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:15.731961174","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:15.732103337","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:15.732269636","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:47.936620193","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:47.936717633","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:47.936961543","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:47.937053205","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:47.93710898","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:47.93716706","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:47.937283469","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:45.874732219","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:45.874861573","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:45.875200443","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:45.875253004","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:45.875300543","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:45.875350688","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:45.875415995","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:58.756236578","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:58.756342269","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:58.756585086","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:58.756651281","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:58.756711895","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:58.756773329","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:58.75687539","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ncolumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:59.459351091","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:59.459502435","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:59.459878896","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:59.460027291","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:59.460126075","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:59.46022662","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:59.460362197","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:00.65330023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:00.653513338","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:00.654477736","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:00.654682707","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:00.654801706","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:00.654918154","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:00.655079593","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:11.105685253","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:11.105790014","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:11.106025705","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:11.106099311","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:11.106207674","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:11.106291869","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:11.106382624","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:50.147198448","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:50.147318599","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:50.147577849","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:50.147685301","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:50.147781115","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:50.147841902","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:50.147922828","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:39.554263962","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:39.554523216","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:39.554916302","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:39.555148686","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:39.555291964","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:39.555509821","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:39.555607108","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:13.154402912","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:13.154555539","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:13.154988858","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:13.155109325","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:13.155207996","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:13.155316575","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:13.15544845","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:17.487328206","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:17.487405887","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:17.487580667","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:17.487665979","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:17.487728592","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:17.487799022","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:17.487890897","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:11.508649488","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:11.508802596","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:11.509210354","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:11.509299918","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:11.509376627","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:11.509455089","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:11.509551182","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:54.63307379","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:54.633171668","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:54.633523632","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:54.633583893","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:54.633637417","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:54.633706081","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:54.633801703","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:45.707950575","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:45.708086653","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:45.708357439","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:45.708420955","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:45.708475672","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:45.708534176","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:45.708643959","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:09.05066978","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:09.050789931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:09.051075757","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:09.051130084","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:09.051178814","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:09.051230403","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:09.051294902","type":"REACTIVE_ERROR"}],"testValidConfiguration":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:24.069937689","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:24.07019317","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:24.070809155","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:24.070973841","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:24.07113226","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:24.071264746","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:24.071426991","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:05.04734601","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:05.047488105","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:05.047822045","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:05.047980746","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:05.048113142","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:05.048221449","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:05.048354137","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:26.192757465","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:26.192975646","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:26.193442046","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:26.193574687","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:26.193698398","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:26.193848547","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:26.194048585","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:29.675139685","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:29.675264403","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:29.67553259","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:29.675585651","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:29.675633147","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:29.675684011","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:29.675749974","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:35.464890444","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:35.465084553","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:35.4653935","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:35.465468067","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:35.465535007","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:35.4656017","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:35.465688655","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:22.094429445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:22.094781427","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:22.095402204","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:22.095561585","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:22.095688567","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:22.095818587","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:22.096032689","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:31.72980067","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:31.729890521","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:31.730160476","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:31.730220522","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:31.730275411","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:31.730334227","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:31.73040796","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:37.553654234","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:37.553860598","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:37.554185373","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:37.554265721","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:37.554344969","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:37.554422612","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:37.554517455","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:13.628851914","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:13.629114576","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:13.629496473","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:13.62958907","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:13.629667179","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:13.629745192","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:13.629840822","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:11.033746643","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:11.033950403","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:11.034244237","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:11.034314895","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:11.034382177","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:11.034453957","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:11.034544547","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:54.845600713","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:54.845715553","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:54.845981245","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:54.846043423","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:54.846098956","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:54.846155854","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:54.846231763","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:32.490579097","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:32.49079475","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:32.491280617","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:32.491423062","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:32.491550762","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:32.49168419","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:32.491871142","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:01.584083337","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:01.584210268","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:01.584585136","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:01.584708016","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:01.58481894","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:01.58487277","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:01.584975668","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:39.868218168","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:39.868399902","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:39.868582027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:39.868634563","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:39.86868226","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:39.868731919","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:39.868797497","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:27.62453681","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:27.624615396","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:27.625006199","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:27.625141444","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:27.62525749","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:27.625421843","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:27.625641445","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:43.649479136","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:43.649790082","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:43.650280261","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:43.650410642","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:43.650541756","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:43.650680205","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:43.650861666","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:28.225521352","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:28.225760282","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:28.226240026","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:28.2264775","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:28.226589648","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:28.226775893","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:28.227018155","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:43.869310653","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:43.869447619","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:43.869732975","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:43.869855447","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:43.870009026","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:43.870140217","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:43.870262236","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:00.857370508","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:00.857464938","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:00.85775578","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:00.857812556","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:00.857864476","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:00.857919127","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:00.85803142","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:02.896516727","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:02.896779587","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:02.897418484","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:02.897618796","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:02.897809666","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:02.898017557","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:02.898273712","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > frrr","unexpectedSections":["en","frrr"]}},"time":"2024-10-22T14:28:19.267520847","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:19.267607538","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:19.267806467","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:19.267863347","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:19.26791506","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:19.268028466","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:19.26811652","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:41.589901245","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:41.59010249","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:41.590383657","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:41.590446453","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:41.59050032","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:41.590576761","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:41.590650395","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:17.89955189","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:17.8998383","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:17.900381897","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:17.900512067","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:17.900633265","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:17.900758755","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:17.900919899","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:25.510740994","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:25.510879997","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:25.511116987","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:25.511172674","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:25.511222511","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:25.511274859","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:25.511341594","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:47.978455359","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:47.97862512","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:47.978907805","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:47.979015343","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:47.979070362","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:47.979126922","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:47.979196677","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:30.34217547","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:30.342360918","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:30.34264631","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:30.342724332","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:30.342814435","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:30.342887772","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:30.343011081","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date","componentName":"tel_date"}},"time":"2024-10-22T14:27:30.343555538","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:56.715152798","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:56.715302304","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:56.715566616","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:56.715629959","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:56.715689556","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:56.715761984","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:56.715884931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:35.871462445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:35.871564212","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:35.871816365","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:35.871870858","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:35.871919854","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:35.872014977","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:35.872085477","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-22T14:28:35.872519907","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:37.850207719","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:37.850294301","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:37.850482036","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:37.850534351","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:37.850582253","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:37.850633836","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:37.850699636","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:52.558717047","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:52.558804027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:52.55914315","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:52.559198059","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:52.559247134","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:52.559299187","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:52.559364457","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-22T14:28:52.55956415","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:50.274552378","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:50.274630773","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:50.274824433","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:50.274878286","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:50.274936019","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:50.27503153","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:50.275098256","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:21.249125365","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:21.24920706","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:21.249397075","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:21.249451386","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:21.249500878","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:21.249553083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:21.249618738","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:04.350231821","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:04.350428723","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:04.350657477","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:04.350720193","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:04.350788818","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:04.350849472","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:04.350950568","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:13.085510712","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:13.085698249","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:13.085921968","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:13.08603213","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:13.086098357","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:13.086147959","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:13.086212619","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:17.259258137","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:17.259358207","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:17.259554614","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:17.259609204","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:17.259659161","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:17.259714435","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:17.259789525","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:15.248222873","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:15.248310922","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:15.248496138","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:15.248549794","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:15.248599455","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:15.248650626","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:15.24871777","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:07.014641508","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:07.014732197","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:07.014961225","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:07.015036962","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:07.015087874","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:07.015140718","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:07.01521071","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:08.940550199","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:08.940637864","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:08.940835022","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:08.940889703","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:08.940985332","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:08.941080879","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:08.941145481","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:57.200899021","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:57.201047429","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:57.201228766","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:57.201279798","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:57.201327098","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:57.201376995","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:57.201440963","type":"REACTIVE_ERROR"}]} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt index 256f6c413..b082a20d5 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt @@ -1,17 +1,17 @@ -{"result":0.0,"time":[2024,10,16,9,27,53,974440188],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,976338182],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,16,9,27,53,976431587],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,976488243],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,16,9,27,53,976508785],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,16,9,27,53,977841243],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,16,9,27,53,977902988],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,16,9,27,53,977918563],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,16,9,27,54,13404671],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,16,9,27,54,13500305],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,16,9,27,54,13513153],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,54,40378866],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,54,40436304],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,54,40459486],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,54,79273245],"type":"REACTIVE_INFO"} -{"result":"6be6a955-80c2-44d6-a64c-5b49a250539c","time":[2024,10,16,9,27,54,100194179],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,16,9,27,54,100243919],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,22,18,15,46,943172566],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,945405776],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,22,18,15,46,945471640],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,945515482],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,22,18,15,46,945536770],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,22,18,15,46,947072049],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,22,18,15,46,947125135],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,22,18,15,46,947138851],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,22,18,15,47,939248754],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,22,18,15,47,939318233],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,22,18,15,47,939340728],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,48,162463271],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,48,162518951],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,48,162543769],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,48,214049936],"type":"REACTIVE_INFO"} +{"result":"64bc225e-6a79-4ee5-a13e-a1a62fefdd08","time":[2024,10,22,18,15,48,262118652],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,22,18,15,48,262172935],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt index 4796b2662..b6a91180f 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt @@ -1,21 +1,21 @@ -{"result":0.0,"time":[2024,10,16,9,27,53,499234532],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,501187701],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,16,9,27,53,501461195],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,501533001],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,16,9,27,53,501572862],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,16,9,27,53,502929986],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,16,9,27,53,502973631],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,16,9,27,53,502986943],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,16,9,27,53,531518862],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,16,9,27,53,531576682],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,16,9,27,53,531589483],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,552922333],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,553005859],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,553297537],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,841666114],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,841725632],"type":"REACTIVE_INFO"} -{"result":0.5,"time":[2024,10,16,9,27,53,841926478],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,16,9,27,53,841966886],"type":"REACTIVE_INFO"} -{"result":"6be6a955-80c2-44d6-a64c-5b49a250539c","time":[2024,10,16,9,27,53,841982112],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,16,9,27,53,842125374],"type":"REACTIVE_PROGRESS"} -{"result":1.0,"time":[2024,10,16,9,27,53,842154800],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,22,18,15,45,191724502],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,45,194451655],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,22,18,15,45,194731989],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,45,194858137],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,22,18,15,45,194914327],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,22,18,15,45,198338327],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,22,18,15,45,198398321],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,22,18,15,45,198441411],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,22,18,15,46,277868129],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,22,18,15,46,277968218],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,22,18,15,46,277995990],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,489062258],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,489145142],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,489457003],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,770904670],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,770992286],"type":"REACTIVE_INFO"} +{"result":0.5,"time":[2024,10,22,18,15,46,771274048],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,771315576],"type":"REACTIVE_INFO"} +{"result":"64bc225e-6a79-4ee5-a13e-a1a62fefdd08","time":[2024,10,22,18,15,46,771362582],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,22,18,15,46,771529696],"type":"REACTIVE_PROGRESS"} +{"result":1.0,"time":[2024,10,22,18,15,46,771556283],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index fc1807303..4d1bee7e5 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,21 +1,10 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,22,9,40,42,975807757],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,22,9,40,42,981836022],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,22,9,40,42,982239663],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2024,10,22,9,40,42,983462521],"type":"REACTIVE_PROGRESS"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$5","fileName":"NodeSchemaValidator.java","lineNumber":289,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"ifPresent","fileName":"Optional.java","lineNumber":178,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":284,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$5","fileName":"NodeSchemaValidator.java","lineNumber":289,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"ifPresent","fileName":"Optional.java","lineNumber":178,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":284,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_description\", \"OA_title\" ],\n \"path\" : \"OA_application > OA_i18n > en > fr\",\n \"unexpectedSections\" : [ \"en\", \"fr\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,320956224],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$5","fileName":"NodeSchemaValidator.java","lineNumber":289,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"ifPresent","fileName":"Optional.java","lineNumber":178,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":284,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_formFields\", \"OA_i18n\" ],\n \"path\" : \"OA_rightsRequest > OA_FORM_FIELDS > OA_description\",\n \"unexpectedSections\" : [ \"OA_FORM_FIELDS\", \"OA_description\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,323800839],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_additionalFiles > fichiers > OA_FORM_FIELDS > OA_i18n","unexpectedSections":["OA_FORM_FIELDS"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_formFields\", \"OA_i18n\" ],\n \"path\" : \"OA_additionalFiles > fichiers > OA_FORM_FIELDS > OA_i18n\",\n \"unexpectedSections\" : [ \"OA_FORM_FIELDS\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,326417194],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_additionalFiles > utilisateurs > OA_FORM_FIELDS > OA_i18n","unexpectedSections":["OA_FORM_FIELDS"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_formFields\", \"OA_i18n\" ],\n \"path\" : \"OA_additionalFiles > utilisateurs > OA_FORM_FIELDS > OA_i18n\",\n \"unexpectedSections\" : [ \"OA_FORM_FIELDS\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,327440545],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,329370756],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,330655525],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,331595678],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > themes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > themes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,332252212],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_fichiers > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > type_de_fichiers > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,332904172],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,334734234],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > site_theme_datatype > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_validations > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > site_theme_datatype > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_validations > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,335346848],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > unites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > unites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,335846730],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > valeurs_qualitatives > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > valeurs_qualitatives > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,336388928],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > variables > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > variables > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\", \"OA_i18nColumns\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,336915205],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > variables_et_unites_par_types_de_donnees > OA_i18nDisplay > OA_basicComponents > OA_validations > OA_i18n > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > variables_et_unites_par_types_de_donnees > OA_i18nDisplay > OA_basicComponents > OA_validations > OA_i18n > OA_naturalKey > OA_tags\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,337374595],"type":"REACTIVE_ERROR"} -{"errorType":"ValidationError","result":{"cause":null,"stackTrace":[{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"pushError","fileName":"ReactiveProgression.java","lineNumber":84,"className":"fr.inra.oresing.rest.reactive.ReactiveProgression$Progression","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"buildError","fileName":"RootBuilder.java","lineNumber":97,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testNodeLabels$7","fileName":"NodeSchemaValidator.java","lineNumber":337,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testNodeLabels","fileName":"NodeSchemaValidator.java","lineNumber":344,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":69,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$3","fileName":"NodeSchemaValidator.java","lineNumber":272,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"Iterable.java","lineNumber":75,"className":"java.lang.Iterable","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$testChildrenNodeSchema$4","fileName":"NodeSchemaValidator.java","lineNumber":269,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"map","fileName":"Optional.java","lineNumber":260,"className":"java.util.Optional","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testChildrenNodeSchema","fileName":"NodeSchemaValidator.java","lineNumber":173,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"testSchema","fileName":"NodeSchemaValidator.java","lineNumber":70,"className":"fr.inra.oresing.rest.model.configuration.builder.NodeSchemaValidator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"RootBuilder.java","lineNumber":110,"className":"fr.inra.oresing.rest.model.configuration.builder.RootBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"build","fileName":"ConfigurationBuilder.java","lineNumber":44,"className":"fr.inra.oresing.rest.model.configuration.builder.ConfigurationBuilder","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"parseConfigurationBytes","fileName":"ApplicationConfigurationService.java","lineNumber":50,"className":"fr.inra.oresing.rest.ApplicationConfigurationService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"OreSiService.java","lineNumber":761,"className":"fr.inra.oresing.rest.OreSiService","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpoint","fileName":"ReflectiveMethodInvocation.java","lineNumber":196,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":163,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeWithinTransaction","fileName":"TransactionAspectSupport.java","lineNumber":379,"className":"org.springframework.transaction.interceptor.TransactionAspectSupport","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"TransactionInterceptor.java","lineNumber":119,"className":"org.springframework.transaction.interceptor.TransactionInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"ReflectiveMethodInvocation.java","lineNumber":184,"className":"org.springframework.aop.framework.ReflectiveMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"CglibAopProxy.java","lineNumber":768,"className":"org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":720,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateConfiguration","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.OreSiService$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$validateConfiguration$2","fileName":"OreSiResources.java","lineNumber":246,"className":"fr.inra.oresing.rest.OreSiResources","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"FluxCreate.java","lineNumber":97,"className":"reactor.core.publisher.FluxCreate","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"subscribe","fileName":"Flux.java","lineNumber":8848,"className":"reactor.core.publisher.Flux","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"connect","fileName":"ReactiveTypeHandler.java","lineNumber":256,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleValue","fileName":"ReactiveTypeHandler.java","lineNumber":156,"className":"org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"ResponseBodyEmitterReturnValueHandler.java","lineNumber":154,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"RepresentationModelProcessorHandlerMethodReturnValueHandler.java","lineNumber":108,"className":"org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleReturnValue","fileName":"HandlerMethodReturnValueHandlerComposite.java","lineNumber":78,"className":"org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":926,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":831,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1089,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":979,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1014,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doPost","fileName":"FrameworkServlet.java","lineNumber":914,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":590,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"FrameworkServlet.java","lineNumber":885,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"TestDispatcherServlet.java","lineNumber":72,"className":"org.springframework.test.web.servlet.TestDispatcherServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"service","fileName":"HttpServlet.java","lineNumber":658,"className":"jakarta.servlet.http.HttpServlet","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":165,"className":"org.springframework.mock.web.MockFilterChain$ServletFilterProxy","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"ServerHttpObservationFilter.java","lineNumber":113,"className":"org.springframework.web.filter.ServerHttpObservationFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":201,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":116,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockMvcFilterDecorator.java","lineNumber":151,"className":"org.springframework.test.web.servlet.setup.MockMvcFilterDecorator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"doFilter","fileName":"MockFilterChain.java","lineNumber":132,"className":"org.springframework.mock.web.MockFilterChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"perform","fileName":"MockMvc.java","lineNumber":201,"className":"org.springframework.test.web.servlet.MockMvc","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"Fixtures.java","lineNumber":150,"className":"fr.inra.oresing.rest.Fixtures","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeJoinpointUsingReflection","fileName":"AopUtils.java","lineNumber":355,"className":"org.springframework.aop.support.AopUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"CglibAopProxy.java","lineNumber":716,"className":"org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"validateApplication","fileName":"<generated>","lineNumber":-1,"className":"fr.inra.oresing.rest.Fixtures$$SpringCGLIB$$0","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"loadApplicationMonsoere","fileName":"OreSiResourcesTest.java","lineNumber":943,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"addApplicationMonsoreWithRepository","fileName":"OreSiResourcesTest.java","lineNumber":962,"className":"fr.inra.oresing.rest.OreSiResourcesTest","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"DirectMethodHandleAccessor.java","lineNumber":103,"className":"jdk.internal.reflect.DirectMethodHandleAccessor","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"invoke","fileName":"Method.java","lineNumber":580,"className":"java.lang.reflect.Method","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeMethod","fileName":"ReflectionUtils.java","lineNumber":728,"className":"org.junit.platform.commons.util.ReflectionUtils","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"MethodInvocation.java","lineNumber":60,"className":"org.junit.jupiter.engine.execution.MethodInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":131,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"intercept","fileName":"TimeoutExtension.java","lineNumber":156,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestableMethod","fileName":"TimeoutExtension.java","lineNumber":147,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"interceptTestMethod","fileName":"TimeoutExtension.java","lineNumber":86,"className":"org.junit.jupiter.engine.extension.TimeoutExtension","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$ofVoidMethod$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":103,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invoke$0","fileName":"InterceptingExecutableInvoker.java","lineNumber":93,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":106,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"proceed","fileName":"InvocationInterceptorChain.java","lineNumber":64,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"chainAndInvoke","fileName":"InvocationInterceptorChain.java","lineNumber":45,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InvocationInterceptorChain.java","lineNumber":37,"className":"org.junit.jupiter.engine.execution.InvocationInterceptorChain","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":92,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invoke","fileName":"InterceptingExecutableInvoker.java","lineNumber":86,"className":"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$invokeTestMethod$7","fileName":"TestMethodTestDescriptor.java","lineNumber":218,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeTestMethod","fileName":"TestMethodTestDescriptor.java","lineNumber":214,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":139,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"TestMethodTestDescriptor.java","lineNumber":69,"className":"org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":151,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":null,"moduleName":"java.base","moduleVersion":"21.0.4","methodName":"forEach","fileName":"ArrayList.java","lineNumber":1596,"className":"java.util.ArrayList","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"invokeAll","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":41,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$6","fileName":"NodeTestTask.java","lineNumber":155,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$8","fileName":"NodeTestTask.java","lineNumber":141,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"around","fileName":"Node.java","lineNumber":137,"className":"org.junit.platform.engine.support.hierarchical.Node","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$executeRecursively$9","fileName":"NodeTestTask.java","lineNumber":139,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"ThrowableCollector.java","lineNumber":73,"className":"org.junit.platform.engine.support.hierarchical.ThrowableCollector","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"executeRecursively","fileName":"NodeTestTask.java","lineNumber":138,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"NodeTestTask.java","lineNumber":95,"className":"org.junit.platform.engine.support.hierarchical.NodeTestTask","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"submit","fileName":"SameThreadHierarchicalTestExecutorService.java","lineNumber":35,"className":"org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestExecutor.java","lineNumber":57,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"HierarchicalTestEngine.java","lineNumber":54,"className":"org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":198,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":169,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":93,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"lambda$execute$0","fileName":"EngineExecutionOrchestrator.java","lineNumber":58,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"withInterceptedStreams","fileName":"EngineExecutionOrchestrator.java","lineNumber":141,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"EngineExecutionOrchestrator.java","lineNumber":57,"className":"org.junit.platform.launcher.core.EngineExecutionOrchestrator","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":103,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DefaultLauncher.java","lineNumber":85,"className":"org.junit.platform.launcher.core.DefaultLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"DelegatingLauncher.java","lineNumber":47,"className":"org.junit.platform.launcher.core.DelegatingLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"SessionPerRequestLauncher.java","lineNumber":63,"className":"org.junit.platform.launcher.core.SessionPerRequestLauncher","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"JUnit5IdeaTestRunner.java","lineNumber":57,"className":"com.intellij.junit5.JUnit5IdeaTestRunner","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"execute","fileName":"IdeaTestRunner.java","lineNumber":38,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater$1","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"repeat","fileName":"TestsRepeater.java","lineNumber":11,"className":"com.intellij.rt.execution.junit.TestsRepeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"startRunnerWithArgs","fileName":"IdeaTestRunner.java","lineNumber":35,"className":"com.intellij.rt.junit.IdeaTestRunner$Repeater","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"prepareStreamsAndStart","fileName":"JUnitStarter.java","lineNumber":232,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false},{"classLoaderName":"app","moduleName":null,"moduleVersion":null,"methodName":"main","fileName":"JUnitStarter.java","lineNumber":55,"className":"com.intellij.rt.junit.JUnitStarter","nativeMethod":false}],"params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_separator","OA_allowUnexpectedColumns","OA_dynamicComponents","OA_dataFirstLine","OA_naturalKey"],"path":"OA_data > pem > OA_i18nDisplay > OA_dataHeaderLine > OA_authorizations > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]},"validationErrorString":"{\n \"error\" : \"unexpectedSections\",\n \"params\" : {\n \"expectedSections\" : [ \"OA_i18nDisplayPattern\", \"OA_dataHeaderLine\", \"OA_submission\", \"OA_basicComponents\", \"OA_i18n\", \"OA_validations\", \"OA_patternComponents\", \"OA_tags\", \"OA_computedComponents\", \"OA_constantComponents\", \"OA_authorizations\", \"OA_separator\", \"OA_allowUnexpectedColumns\", \"OA_dynamicComponents\", \"OA_dataFirstLine\", \"OA_naturalKey\" ],\n \"path\" : \"OA_data > pem > OA_i18nDisplay > OA_dataHeaderLine > OA_authorizations > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents\",\n \"unexpectedSections\" : [ \"OA_i18nDisplay\" ]\n }\n}","message":"unexpectedSections","suppressed":[],"localizedMessage":"unexpectedSections"},"time":[2024,10,22,9,40,43,337988584],"type":"REACTIVE_ERROR"} -{"result":1.0,"time":[2024,10,22,9,40,43,342732620],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,22,18,15,42,634000663],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,22,18,15,42,638371351],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,22,18,15,42,638777237],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2024,10,22,18,15,42,639750025],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,22,18,15,43,884815457],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,22,18,15,43,885282978],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,22,18,15,43,885774581],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,45,19275711],"type":"REACTIVE_INFO"} +{"result":{"id":"ffc998d8-d2a5-47c0-8b14-7f0575ff2cf4","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"projet","reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"especes","reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"valeurs_qualitatives","reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"type_de_sites","reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"format":{"organization":{"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"format":{"nom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"format":{"nom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,22,18,15,45,20289804],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,22,18,15,45,20673135],"type":"REACTIVE_PROGRESS"} -- GitLab From 1ba467dc0aee70023df26e32cfef839a10a6aad0 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Tue, 22 Oct 2024 18:18:58 +0200 Subject: [PATCH 24/52] =?UTF-8?q?formulaire=20rightrequest=20OK=20reste=20?= =?UTF-8?q?=C3=A0=20faire=20l'envois=20de=20la=20cr=C3=A9ation=20de=20la?= =?UTF-8?q?=20demmande=20de=20droit=20(fonction=20createRequest=20de=20Aut?= =?UTF-8?q?horizationsRightsRequestInfoView.vue)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/monsore/monsore-with-repository.yaml | 30 +- ui/package-lock.json | 114 ++- ui/package.json | 1 + .../common/AuthorizationTableForDatatype.vue | 158 ++-- .../authorization/AuthorizationForScope.vue | 15 +- .../AuthorizationTableForOneDataType.vue | 3 +- .../components/common/provider/FieldsForm.vue | 126 ++-- .../common/provider/FiltersDataCollapse.vue | 5 +- .../common/provider/InputNumber.vue | 1 + .../common/provider/OreInputDate.vue | 220 +++--- .../common/provider/OreInputNumber.vue | 120 ++-- .../common/provider/OreInputReference.vue | 83 +-- .../common/provider/OreInputText.vue | 118 +-- .../authorization/grantableInfos.js | 93 +++ ui/src/locales/fr.json | 4 +- .../services/InternationalisationService.js | 8 +- .../AdditionalFilesManagementView.vue | 31 +- .../application/ApplicationCreationView.vue | 49 +- .../views/application/ApplicationInfoView.vue | 40 +- .../AuthorizationsRightsRequestInfoView.vue | 677 +++++++++--------- .../DataTypeAuthorizationInfoView.vue | 30 +- 21 files changed, 1102 insertions(+), 824 deletions(-) diff --git a/src/test/resources/data/monsore/monsore-with-repository.yaml b/src/test/resources/data/monsore/monsore-with-repository.yaml index 12fb7357a..0139ab92d 100644 --- a/src/test/resources/data/monsore/monsore-with-repository.yaml +++ b/src/test/resources/data/monsore/monsore-with-repository.yaml @@ -2,11 +2,11 @@ OA_version: 2.0.1 OA_application: OA_defaultLanguage: fr OA_i18n: - fr: SOERE mon SOERE - en: SOERE my SOERE + fr: SOERE mon SOERE Right + en: SOERE my SOERE Right OA_comment: Fichier de test de l'application brokenADOM OA_name: monsore - OA_version: 3.0.1 + OA_version: 3.0.5 OA_tags: context: fr: contexte @@ -46,6 +46,30 @@ OA_rightsRequest: OA_name: OA_string OA_params: OA_pattern: ".*" + selcetProject: + OA_i18n: + fr: Sélectionner les projets + en: Select project + OA_checker: + OA_name: OA_reference + OA_params: + OA_reference: + OA_name: projet + number: + OA_i18n: + fr: Champs integer + en: integer + OA_checker: + OA_name: OA_integer + float: + OA_i18n: + fr: Champs float + en: float + OA_checker: + OA_name: OA_float + OA_params: + OA_min: 10.0 + OA_max: 100.0 startDate: OA_i18n: fr: Date de début du projet diff --git a/ui/package-lock.json b/ui/package-lock.json index 1e9d5fc9e..94045efbb 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -50,6 +50,7 @@ "prettier": "^2.3.2", "vue-cli-plugin-buefy": "~0.3.8", "vue-cli-plugin-i18n": "^2.2.0", + "vue-i18n-extract": "^2.0.7", "vue-template-compiler": "^2.6.14", "webpack": "^5.91.0" }, @@ -4378,6 +4379,15 @@ "node": ">= 0.8" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/cachedir": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", @@ -5957,6 +5967,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/dot-object/-/dot-object-2.1.5.tgz", "integrity": "sha512-xHF8EP4XH/Ba9fvAF2LDd5O3IITVolerVV6xvkxoM8zlGEiCUrggpAnHyOoKJKCrhvPcGATFAUwIujj7bRG5UA==", + "dev": true, "dependencies": { "commander": "^6.1.0", "glob": "^7.1.6" @@ -6720,6 +6731,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -8619,6 +8631,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -12250,7 +12263,8 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true }, "node_modules/sshpk": { "version": "1.18.0", @@ -13226,6 +13240,15 @@ "node": ">= 12" } }, + "node_modules/vue-cli-plugin-i18n/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/vue-cli-plugin-i18n/node_modules/dotenv": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", @@ -13235,6 +13258,35 @@ "node": ">=10" } }, + "node_modules/vue-cli-plugin-i18n/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/vue-cli-plugin-i18n/node_modules/vue-i18n-extract": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/vue-i18n-extract/-/vue-i18n-extract-1.2.3.tgz", + "integrity": "sha512-ZLtF6wp732KHKawHx5ZSmjyydkli9g26z0NfGLP89DkiGx4nKFYZ2oIH35HtImdhcfq1zqkeSwxs7kRzarLoVw==", + "dev": true, + "dependencies": { + "commander": "^6.1.0", + "dot-object": "^2.1.4", + "glob": "^7.1.6", + "is-valid-glob": "^1.0.0", + "js-yaml": "^3.14.0" + }, + "bin": { + "vue-i18n-extract": "bin/vue-i18n-extract.js" + } + }, "node_modules/vue-eslint-parser": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", @@ -13306,38 +13358,60 @@ "integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==" }, "node_modules/vue-i18n-extract": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/vue-i18n-extract/-/vue-i18n-extract-1.2.3.tgz", - "integrity": "sha512-ZLtF6wp732KHKawHx5ZSmjyydkli9g26z0NfGLP89DkiGx4nKFYZ2oIH35HtImdhcfq1zqkeSwxs7kRzarLoVw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/vue-i18n-extract/-/vue-i18n-extract-2.0.7.tgz", + "integrity": "sha512-i1NW5R58S720iQ1BEk+6ILo3hT6UA8mtYNNolSH4rt9345qvXdvA6GHy2+jHozdDAKHwlu9VvS/+vIMKs1UYQw==", + "dev": true, "dependencies": { - "commander": "^6.1.0", + "cac": "^6.7.12", "dot-object": "^2.1.4", - "glob": "^7.1.6", + "glob": "^8.0.1", "is-valid-glob": "^1.0.0", - "js-yaml": "^3.14.0" + "js-yaml": "^4.1.0" }, "bin": { "vue-i18n-extract": "bin/vue-i18n-extract.js" } }, - "node_modules/vue-i18n-extract/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/vue-i18n-extract/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "balanced-match": "^1.0.0" } }, - "node_modules/vue-i18n-extract/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/vue-i18n-extract/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vue-i18n-extract/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, "node_modules/vue-loader": { diff --git a/ui/package.json b/ui/package.json index ae97ae8cc..a77fce718 100644 --- a/ui/package.json +++ b/ui/package.json @@ -54,6 +54,7 @@ "prettier": "^2.3.2", "vue-cli-plugin-buefy": "~0.3.8", "vue-cli-plugin-i18n": "^2.2.0", + "vue-i18n-extract": "^2.0.7", "vue-template-compiler": "^2.6.14", "webpack": "^5.91.0" }, diff --git a/ui/src/components/common/AuthorizationTableForDatatype.vue b/ui/src/components/common/AuthorizationTableForDatatype.vue index a004c8a75..017571823 100644 --- a/ui/src/components/common/AuthorizationTableForDatatype.vue +++ b/ui/src/components/common/AuthorizationTableForDatatype.vue @@ -1,26 +1,25 @@ <template> <div> <b-collapse - v-if=" - localeInitialized && - (localeReferences.withoutScope && - Object.keys(localeReferences.withoutScope).length !== 0) || - (localeReferences.withScope && - Object.keys(localeReferences.withScope).length !== 0) - " - :open="false" - animation="slide" - aria-id="contentIdForA11y3" - class="card" - style="box-shadow: none" + v-if=" + (localeInitialized && + localeReferences.withoutScope && + Object.keys(localeReferences.withoutScope).length !== 0) || + (localeReferences.withScope && Object.keys(localeReferences.withScope).length !== 0) + " + :open="false" + animation="slide" + aria-id="contentIdForA11y3" + class="card" + style="box-shadow: none" > <template #trigger="detail"> <div - :aria-expanded="!detail.open" - aria-controls="contentIdForA11y3" - class="card-header" - role="button" - style="box-shadow: none; border-bottom: thick double #009d9d" + :aria-expanded="!detail.open" + aria-controls="contentIdForA11y3" + class="card-header" + role="button" + style="box-shadow: none; border-bottom: thick double #009d9d" > <p class="card-header-title"> {{ $t("applications.references") }} @@ -33,65 +32,66 @@ <div class="card-content"> <div class="content"> <AuthorizationsForNoAuthorization - v-if=" + v-if=" localeInitialized && localeReferences.withoutScope && Object.keys(localeReferences.withoutScope).length !== 0 " - :application="localeApplication" - :authorization=" + :application="localeApplication" + :authorization=" localeCurrentAuthorization.authorizations ? localeCurrentAuthorization.authorizations : localeAuthorizations " - :data-types="localeReferences.withoutScope" - :has-dependencies="localeHasDependencies" - :list-column-name="localeListColumnName['withoutScope']" - @update:authorization="$emit('update:authorization', $event);" + :data-types="localeReferences.withoutScope" + :has-dependencies="localeHasDependencies" + :list-column-name="localeListColumnName['withoutScope']" + @update:authorization="$emit('update:authorization', $event)" > </AuthorizationsForNoAuthorization> <AuthorizationForScope - v-if=" - localeInitialized && localeReferences.withScope && Object.keys(localeReferences.withScope).length !== 0 + v-if=" + localeInitialized && + localeReferences.withScope && + Object.keys(localeReferences.withScope).length !== 0 " - :application="localeApplication" - :authorization=" + :application="localeApplication" + :authorization=" localeCurrentAuthorization.authorizations ? localeCurrentAuthorization.authorizations : localeAuthorizations " - :authorizations-description="localeAuthorizations" - :data-types="datatypes.withScope" - :has-dependencies="localeHasDependencies" - :list-column-name="localeListColumnName['withScope']" - :references-scopes="localeReferencesScopes" - @update:authorization="$emit('update:authorization', $event);" + :authorizations-description="localeAuthorizations" + :data-types="datatypes.withScope" + :has-dependencies="localeHasDependencies" + :list-column-name="localeListColumnName['withScope']" + :references-scopes="localeReferencesScopes" + @update:authorization="$emit('update:authorization', $event)" > </AuthorizationForScope> </div> </div> </b-collapse> <b-collapse - v-if=" - localeInitialized && - (localeDatatypes.withoutScope && - Object.keys(localeDatatypes.withoutScope).length !== 0) || - (localeDatatypes.withScope && - Object.keys(localeDatatypes.withScope).length !== 0) - " - :open="false" - animation="slide" - aria-id="contentIdForA11y3" - class="card" - style="box-shadow: none" + v-if=" + (localeInitialized && + localeDatatypes.withoutScope && + Object.keys(localeDatatypes.withoutScope).length !== 0) || + (localeDatatypes.withScope && Object.keys(localeDatatypes.withScope).length !== 0) + " + :open="false" + animation="slide" + aria-id="contentIdForA11y3" + class="card" + style="box-shadow: none" > <template #trigger="detail"> <div - :aria-expanded="!detail.open" - aria-controls="contentIdForA11y3" - class="card-header" - role="button" - style="box-shadow: none; border-bottom: thick double #009d9d" + :aria-expanded="!detail.open" + aria-controls="contentIdForA11y3" + class="card-header" + role="button" + style="box-shadow: none; border-bottom: thick double #009d9d" > <p class="card-header-title"> {{ $t("applications.dataset") }} @@ -104,39 +104,41 @@ <div class="card-content"> <div class="content"> <AuthorizationsForNoAuthorization - v-if=" + v-if=" localeInitialized && localeDatatypes.withoutScope && Object.keys(localeDatatypes.withoutScope).length !== 0 " - :application="localeApplication" - :authorization=" + :application="localeApplication" + :authorization=" localeCurrentAuthorization.authorizations ? localeCurrentAuthorization.authorizations : localeAuthorizations " - :data-types="localeDatatypes.withoutScope" - :has-dependencies="localeHasDependencies" - :list-column-name="localeListColumnName['withoutScope']" - @update:authorization="$emit('update:authorization', $event);" + :data-types="localeDatatypes.withoutScope" + :has-dependencies="localeHasDependencies" + :list-column-name="localeListColumnName['withoutScope']" + @update:authorization="$emit('update:authorization', $event)" > </AuthorizationsForNoAuthorization> <AuthorizationForScope - v-if=" - localeInitialized && localeDatatypes.withScope && Object.keys(localeDatatypes.withScope).length !== 0 + v-if=" + localeInitialized && + localeDatatypes.withScope && + Object.keys(localeDatatypes.withScope).length !== 0 " - :application="localeApplication" - :authorization=" + :application="localeApplication" + :authorization=" localeCurrentAuthorization.authorizations ? localeCurrentAuthorization.authorizations : localeAuthorizations " - :authorizations-description="localeAuthorizations" - :data-types="localeDatatypes.withScope" - :has-dependencies="localeHasDependencies" - :list-column-name="localeListColumnName['withScope']" - :references-scopes="localeReferencesScopes" - @update:authorization="$emit('update:authorization', $event);" + :authorizations-description="localeAuthorizations" + :data-types="localeDatatypes.withScope" + :has-dependencies="localeHasDependencies" + :list-column-name="localeListColumnName['withScope']" + :references-scopes="localeReferencesScopes" + @update:authorization="$emit('update:authorization', $event)" > </AuthorizationForScope> </div> @@ -148,7 +150,7 @@ <script> import AuthorizationsForNoAuthorization from "@/components/common/authorization/AuthorizationsForNoAuthorization.vue"; import AuthorizationForScope from "@/components/common/authorization/AuthorizationForScope.vue"; -import {ref, watchEffect} from "vue"; +import { ref, watchEffect } from "vue"; export default { name: "AuthorizationTableForDatatype", @@ -167,7 +169,7 @@ export default { type: Object, }, listColumnName: { - type: Array, + type: Object, required: true, }, hasDependencies: { @@ -194,8 +196,8 @@ export default { }, }, setup(props) { - const localeApplicationName = ref(''); - const localeAuthorizationId = ref(''); + const localeApplicationName = ref(""); + const localeAuthorizationId = ref(""); const localeDatatypes = ref({}); const localeListColumnName = ref([]); const localeHasDependencies = ref([]); @@ -207,8 +209,8 @@ export default { const localeReferencesScopes = ref({}); watchEffect(() => { - localeApplicationName.value = props.applicationName || ''; - localeAuthorizationId.value = props.authorizationId || ''; + localeApplicationName.value = props.applicationName || ""; + localeAuthorizationId.value = props.authorizationId || ""; localeDatatypes.value = props.datatypes || {}; localeListColumnName.value = props.listColumnName || []; localeHasDependencies.value = props.hasDependencies || []; @@ -231,10 +233,10 @@ export default { localeApplication, localeCurrentAuthorization, localeAuthorizations, - localeReferencesScopes - } - } -} + localeReferencesScopes, + }; + }, +}; </script> <style lang="scss" scoped> diff --git a/ui/src/components/common/authorization/AuthorizationForScope.vue b/ui/src/components/common/authorization/AuthorizationForScope.vue index 139bbc0d9..c59d01069 100644 --- a/ui/src/components/common/authorization/AuthorizationForScope.vue +++ b/ui/src/components/common/authorization/AuthorizationForScope.vue @@ -3,9 +3,9 @@ <b-collapse v-for="data in dataTypes" :key="data.id" + :aria-id="$t('applications.dataset')" :open="false" animation="slide" - :aria-id="$t('applications.dataset')" class="card" style="box-shadow: none" > @@ -28,16 +28,16 @@ <div class="card-content" style="padding: 0.6em"> <div class="content"> <AuthorizationTableForOneDataType + :application="application" + :application-name="application.name" :authorization="getAuthorization(data.id)" - :list-column-name="columnsName" :data="data" :data-name="data.id" - :reference-scope="referencesScopes[data.id]" - :application="application" - :application-name="application.name" :has-dependency="hasDependencies.includes(data.id)" - :with-time-scope="withTimeScope(data.id)" + :list-column-name="columnsName" + :reference-scope="referencesScopes[data.id]" :type-time-scope="typeTimeScope(data.id)" + :with-time-scope="withTimeScope(data.id)" @update:propagate-changes="modifyAuthorizations($event)" @update:operation-type="modifyOperationTypes(data.id, $event)" @update:date-value-interval="modifyTimescope(data.id, $event)" @@ -168,11 +168,12 @@ export default { }; </script> -<style scoped lang="scss"> +<style lang="scss" scoped> .card { &-header { border-bottom: solid #009d9d; } + &-content { padding: 0.6em; } diff --git a/ui/src/components/common/authorization/AuthorizationTableForOneDataType.vue b/ui/src/components/common/authorization/AuthorizationTableForOneDataType.vue index 9bb90c552..27b6e885b 100644 --- a/ui/src/components/common/authorization/AuthorizationTableForOneDataType.vue +++ b/ui/src/components/common/authorization/AuthorizationTableForOneDataType.vue @@ -18,7 +18,7 @@ export default { "update:operation-type", "update:has-extraction", ], - components: { CollapseMenuMultiselect, InputDateInterval }, + components: {CollapseMenuMultiselect, InputDateInterval }, props: { authorization: Object, listColumnName: Object, @@ -141,6 +141,7 @@ export default { hasExtraction, localHasExtraction, rootReferenceScopeSelected, + displayNodeTagHierarchical }; }, }; diff --git a/ui/src/components/common/provider/FieldsForm.vue b/ui/src/components/common/provider/FieldsForm.vue index db1285601..58ea1868f 100644 --- a/ui/src/components/common/provider/FieldsForm.vue +++ b/ui/src/components/common/provider/FieldsForm.vue @@ -1,70 +1,69 @@ <template> <ValidationObserver ref="form" v-slot="{}" tag="form" @submit.prevent="onSubmit"> - <b-collapse v-model="isOpen" animation="slide" class="panel"> - <template #trigger> + <b-collapse v-model="isOpen" animation="slide" class="card" style="box-shadow: none"> + <template #trigger="detail"> <div :aria-expanded="isOpen" aria-controls="contentIdForA11y2" - class="panel-heading" + class="card-header" role="button" + style="box-shadow: none; border-bottom: thick double #009d9d" > - <strong> - <FontAwesomeIcon - :icon="isOpen ? 'caret-down' : 'caret-right'" - class="clickable mr-3" - tabindex="0" - /> + <p class="card-header-title"> {{ description }} - </strong> + </p> + <a class="card-header-icon"> + <b-icon :icon="detail.open ? 'chevron-up' : 'chevron-down'" type="is-primary"></b-icon> + </a> </div> </template> - <div> - <OreInputText - v-if="showComment" - :checker="{ params: { required: true } }" - :label="$t('applications.comment')" - :value="comment" - :vid="comment" - @update:value="updateComment($event)" - /> + <OreInputText + v-if="showComment" + :checker="{ params: { required: true } }" + :label="$t('applications.comment')" + :value="comment" + :vid="comment" + @update:value="updateComment($event)" + /> + <div v-if="Object.keys(format).length !== 0"> <div v-for="(item, key) in format" :key="key"> - <OreInputText - v-if="(fields && !item.checker) || item.checker.name === 'String'" + <OreInputNumber + v-if="item.checker.type === 'IntegerChecker' || item.checker.type === 'FloatChecker'" :checker="item.checker" :label=" internationalisationService.getLocaleforPath(application, pathForKey + '.' + key, key) " - :value="fields[key]" + :value="fields[key] ? fields[key] : 0" :vid="key" @update:value="updateValue(key, $event)" /> - <OreInputNumber - v-else-if="item.checker.name == 'IntegerType' || item.checker.name == 'Float'" + <OreInputDate + v-else-if="item.checker.type === 'DateChecker'" :checker="item.checker" :label=" internationalisationService.getLocaleforPath(application, pathForKey + '.' + key, key) " - :value="fields[key]" + :value="fields[key] ? fields[key] : new Date(null)" :vid="key" @update:value="updateValue(key, $event)" /> - <OreInputDate - v-else-if="item.cchecker.name == 'DateType'" + <OreInputReference + v-else-if="item.checker.type === 'ReferenceChecker' && item.checker.refType" :checker="item.checker" :label=" internationalisationService.getLocaleforPath(application, pathForKey + '.' + key, key) " + :references="referencesScopes[key] ? referencesScopes[key].rows : []" :value="fields[key]" :vid="key" @update:value="updateValue(key, $event)" /> - <OreInputReference - v-else-if="item.checker.name == 'ReferenceType' && refValues[key]" + <OreInputText + v-else :checker="item.checker" :label=" internationalisationService.getLocaleforPath(application, pathForKey + '.' + key, key) " - :references="refValues[key].referenceValues" :value="fields[key]" :vid="key" @update:value="updateValue(key, $event)" @@ -82,7 +81,9 @@ import OreInputDate from "@/components/common/provider/OreInputDate"; import OreInputReference from "@/components/common/provider/OreInputReference"; import { ValidationObserver } from "vee-validate"; import { InternationalisationService } from "@/services/InternationalisationService"; -import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; +import {onMounted, ref, watch} from "vue"; +import app from "@/main"; +import services from "@/composable/services"; export default { name: "FieldsForm", @@ -99,45 +100,62 @@ export default { OreInputNumber, OreInputText, ValidationObserver, - FontAwesomeIcon, }, props: { application: Object, pathForKey: String, format: Object, description: String, - refValues: Object, fields: Object, comment: String, showComment: Boolean, }, - methods: { - onSubmit(event) { + setup(props, ctx) { + const fields = ref(props.fields); + const referencesScopes = ref({}); + watch( + () => props.fields, + (newValue) => { + if (newValue) { + fields.value = ref(newValue); + } + } + ); + onMounted(async ()=> { + for (let item in props.format) { + if(props.format[item].checker && props.format[item].checker.type ==='ReferenceChecker' && props.format[item].checker.refType) { + referencesScopes.value[item] = await services.dataService.getData(props.application.name, props.format[item].checker.refType); + } + } + }) + + function onSubmit(event) { console.log("submit", event); - }, - updateValue(key, event) { - let fields = this.fields; - fields[key] = event; - this.$refs.form && - this.$refs.form.validate().then((v) => { - if (v) { - this.$emit("update:fields", { fields, valid: true }); - } else { - this.$emit("update:fields", { fields, valid: false }); - } - }); - }, - updateComment(event) { - this.$refs.form && - this.$refs.form.validate().then((v) => { + } + function updateValue(key, event) { + fields.value = event; + let localeFields = fields.value; + ctx.emit("update:fields", { fields: localeFields, key }); + } + + function updateComment(event) { + app.$refs.form && + app.$refs.form.validate().then((v) => { if (v) { - this.$emit("update:comment", { comment: event, valid: true }); + ctx.emit("update:comment", { comment: event, valid: true }); } else { - this.$emit("update:comment", { comment: event, valid: false }); + ctx.emit("update:comment", { comment: event, valid: false }); } }); - }, + } + return { + updateComment, + updateValue, + onSubmit, + referencesScopes + }; }, + methods: {}, }; </script> diff --git a/ui/src/components/common/provider/FiltersDataCollapse.vue b/ui/src/components/common/provider/FiltersDataCollapse.vue index 5f651a166..4dcb72117 100644 --- a/ui/src/components/common/provider/FiltersDataCollapse.vue +++ b/ui/src/components/common/provider/FiltersDataCollapse.vue @@ -46,9 +46,8 @@ open-on-focus type="search" @select=" - (option) => { - updateValue(columns.id, { componentKey: columns.id, filters: [] }, option); - } + (option) => + updateValue(columns.id, { componentKey: columns.id, filters: [] }, option) " @typing="getNewListReferenceValuesWhenFiltered" > diff --git a/ui/src/components/common/provider/InputNumber.vue b/ui/src/components/common/provider/InputNumber.vue index 643af7216..11733ccb3 100644 --- a/ui/src/components/common/provider/InputNumber.vue +++ b/ui/src/components/common/provider/InputNumber.vue @@ -48,6 +48,7 @@ export default { :step="format === 'float' ? 0.001 : 1" type="is-light" @blur="updateValueNumber" + @input="updateValueNumber" > </b-numberinput> </template> diff --git a/ui/src/components/common/provider/OreInputDate.vue b/ui/src/components/common/provider/OreInputDate.vue index 24170f177..31d90ca29 100644 --- a/ui/src/components/common/provider/OreInputDate.vue +++ b/ui/src/components/common/provider/OreInputDate.vue @@ -8,7 +8,6 @@ > <b-field :label="label" - label-position="on-border" :message="errors" :type="{ 'is-danger': errors && errors.length > 0, @@ -22,36 +21,21 @@ </template> <b-taginput v-if="multiplicity === 'MANY'" - v-model="val" + v-model="dateValue[vid]" required type="text" @blur="updateValue" @input="updateValue" /> - <b-input + <InputDate v-else - v-model="val" - :placeholder="checker.params.pattern" - required - type="text" - @blur="updateValue" - @input="updateValue" + v-model="dateValue[vid]" + :format="checker.pattern" + :from="dateValue[vid]" + :is-simple-value="true" + input-type="date" + @update:dateValue="updateValue" /> - <!-- <b-field v-else> - <b-datepicker - ref="datepicker" - v-model="val" - editable - placeholder="Select a date" - @blur="updateValue" - @input="updateValue"> - </b-datepicker> - <b-button - v-model="val" - icon-left="calendar" - type="is-primary" - @click="$refs.datepicker.toggle()"/> - </b-field>--> </b-field> </ValidationProvider> </template> @@ -59,22 +43,15 @@ <script> import moment from "moment"; import { extend, ValidationProvider } from "vee-validate"; -import { watch, ref } from "vue"; +import { watch, ref, computed } from "vue"; +import InputDate from "@/components/common/provider/InputDate.vue"; +import { datePatternLang } from "@/composable/application/DatePattern"; export default { - setup(props) { - const val = ref(props.value); - watch( - () => props.value, - () => { - val.value = ref(props.value); - } - ); - return { val }; - }, name: "OreInputDate", emits: ["update:value"], components: { + InputDate, ValidationProvider, }, props: { @@ -94,95 +71,132 @@ export default { required: false, }, }, - data: () => { - return { - pattern: { - "dd/MM/yyyy": { - pattern: "DD-MM-YYYY", - regexp: /(\d{2})\/(\d{2})\/(\d{4})/, - replace: "$1 $2 $3", - }, - "dd/MM/yy": { - pattern: "DD-MM-YY", - regexp: /(\d{2})\/(\d{2})\/(\d{2})/, - replace: "$1 $2 $3", - }, - "MM/yyyy": { - pattern: "MM-YYYY", - regexp: /(\d{2})\/(\d{4})/, - replace: "$1 $2", - }, - "MM/yy": { - pattern: "MM-YY", - regexp: /(\d{2})\/(\d{2})/, - replace: "$1 $2", - }, - yyyy: { - pattern: "YYYY", - regexp: /(\d{4})/, - replace: "$1", - }, - "hh:mm": { - pattern: "hh:mm", - regexp: /(\d{2}):(\d{2})/, - replace: "$1 $2", - }, - "HH:mm:ss": { - pattern: "HH:mm:ss", - regexp: /(\d{2}):(\d{2}):(\d{2})/, - replace: "$1 $2 $3", - }, - "dd/MM/yyyy HH:mm:ss": { - pattern: "DD-MM-YYYY HH:mm:ss", - regexp: /(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})/, - replace: "$1 $2 $3 $4:$5:$6", - }, - "dd/MM/yy HH:mm:ss": { - pattern: "DD-MM-YY HH:mm:ss", - regexp: /(\d{2})\/(\d{2})\/(\d{2}) (\d{2}):(\d{2}):(\d{2})/, - replace: "$1 $2 $3 $4:$5:$6", - }, + setup(props, ctx) { + const val = ref(props.value); + watch( + () => props.value, + (newValue) => { + val.value = newValue; + } + ); + + const dateValue = computed({ + get: () => { + if (typeof val.value === "string") { + return new Date(val.value); + } + return val.value; + }, + set: (newValue) => { + val.value = newValue; + updateValue(newValue); + }, + }); + + const pattern = { + "dd/MM/yyyy": { + pattern: "DD-MM-YYYY", + regexp: /(\d{2})\/(\d{2})\/(\d{4})/, + replace: "$1 $2 $3", + }, + "dd/MM/yy": { + pattern: "DD-MM-YY", + regexp: /(\d{2})\/(\d{2})\/(\d{2})/, + replace: "$1 $2 $3", + }, + "MM/yyyy": { + pattern: "MM-YYYY", + regexp: /(\d{2})\/(\d{4})/, + replace: "$1 $2", + }, + "MM/yy": { + pattern: "MM-YY", + regexp: /(\d{2})\/(\d{2})/, + replace: "$1 $2", + }, + yyyy: { + pattern: "YYYY", + regexp: /(\d{4})/, + replace: "$1", + }, + "hh:mm": { + pattern: "hh:mm", + regexp: /(\d{2}):(\d{2})/, + replace: "$1 $2", + }, + "HH:mm:ss": { + pattern: "HH:mm:ss", + regexp: /(\d{2}):(\d{2}):(\d{2})/, + replace: "$1 $2 $3", + }, + "dd/MM/yyyy HH:mm:ss": { + pattern: "DD-MM-YYYY HH:mm:ss", + regexp: /(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})/, + replace: "$1 $2 $3 $4:$5:$6", + }, + "dd/MM/yy HH:mm:ss": { + pattern: "DD-MM-YY HH:mm:ss", + regexp: /(\d{2})\/(\d{2})\/(\d{2}) (\d{2}):(\d{2}):(\d{2})/, + replace: "$1 $2 $3 $4:$5:$6", }, }; - }, - methods: { - extend, - validDate(value) { - let patternElement = this.pattern[this.checker.params.pattern]; + + function validDate(value) { + let patternElement = pattern[props.checker.pattern]; let formattedDate = moment(value, patternElement.pattern).format(patternElement.pattern); let parsedDate = formattedDate.replaceAll("-", "/"); return parsedDate === value; - }, - validateDate(value) { + } + + function validateDate(value) { if (Array.isArray(value)) { - return value.map(this.validDate).filter((v) => v === false).length === 0; + return value.map(validDate).filter((v) => v === false).length === 0; } else { - return this.validDate(value); + return validDate(value); } - }, - validateRequired(value) { + } + + function validateRequired(value) { if (typeof value == "string") { return !!value; } else { return value.length > 0; } - }, - updateValue(event) { + } + + function updateValue(event) { if (typeof event == "object") { - event = event.target.value; + if (event.value instanceof Date) { + event = datePatternLang(new Date(event.value).toISOString(), props.checker.pattern); + } else { + event = event.value; + } } - this.$emit("update:value", event); - }, + ctx.emit("update:value", event); + } + + return { + validDate, + validateDate, + validateRequired, + updateValue, + val, + pattern, + dateValue, + }; + }, + methods: { + extend, }, computed: { required: { get() { - return this.checker && this.checker.params && this.checker.params.required; + return this.checker && this.checker.required; }, }, multiplicity: { get() { - return this.checker && this.checker.params && this.checker.params.multiplicity === "MANY"; + return this.checker && this.checker.multiplicity === "MANY"; }, }, isValidDate: { @@ -195,14 +209,14 @@ export default { let rules = []; if (this.checker) { if (this.checker.name === "Date") { - if (this.checker.params.pattern) { + if (this.checker.pattern) { this.extend("date", (value) => { return this.validateDate(value) || this.$t("rules.date", this.checker.params); }); rules.push("date"); } } - if (this.checker.params.required) { + if (this.checker.required) { this.extend("required", (value) => { return !!value || this.$t("rules.required"); }); diff --git a/ui/src/components/common/provider/OreInputNumber.vue b/ui/src/components/common/provider/OreInputNumber.vue index ac3cd8378..818df8b3f 100644 --- a/ui/src/components/common/provider/OreInputNumber.vue +++ b/ui/src/components/common/provider/OreInputNumber.vue @@ -23,20 +23,22 @@ <b-taginput v-if="multiplicity === 'MANY'" :placeholder="checker.name === 'IntegerType' ? '4' : 4.35" - v-model="val" + v-model="numberValue[vid]" :required="required" type="text" @blur="updateValue" @input="updateValue" /> - <b-input + <InputNumber v-else - v-model="val" - :placeholder="checker.name === 'IntegerType' ? '4' : 4.35" - :required="required" - type="text" - @blur="updateValue" - @input="updateValue" + v-model="numberValue[vid]" + :format="checker.type === 'FloatChecker' ? 'float' : 'integer'" + :from="numberValue[vid]" + :input-type="checker.type === 'FloatChecker' ? 'float' : 'integer'" + :is-simple-value="true" + :max="max" + :min="min" + @update:numberValue="updateValue" /> </b-field> </ValidationProvider> @@ -44,22 +46,15 @@ <script> import { extend, ValidationProvider } from "vee-validate"; -import { ref, watch } from "vue"; +import {computed, ref, watch} from "vue"; +import InputNumber from "@/components/common/provider/InputNumber.vue"; +import useNumber from "@/composable/components/number"; export default { - setup(props) { - const val = ref(props.value); - watch( - () => props.value, - () => { - val.value = ref(props.value); - } - ); - return { val }; - }, name: "OreInputNumber", emits: ["update:value"], components: { + InputNumber, ValidationProvider, }, props: { @@ -79,66 +74,107 @@ export default { required: false, }, }, - methods: { - extend, - updateValue(event) { + setup(props, ctx) { + const val = ref(props.value); + watch( + () => props.value, + (newValue) => { + val.value = newValue; + } + ); + const numberValue = computed({ + get: () => { + if (typeof val.value === "string") { + return 0; + } + return val.value; + }, + set: (newValue) => { + val.value = newValue; + updateValue(newValue); + }, + }); + const { refNumber: min } = useNumber( + props.checker.min && props.checker.min !== "-Infinity" + ? props.checker.min + : Number(-Infinity) + ); + const { refNumber: max } = useNumber( + props.checker.max && props.checker.max !== "Infinity" + ? props.checker.max + : Number(Infinity) + ); + function updateValue(event) { if (typeof event == "object") { - event = (event.target.value || "").replace(",", "."); + event = (event.value.toString() || "").replace(",", "."); } - this.$emit("update:value", "" + (event || "").replace(",", ".")); - }, - validateRegExp(value, type) { + ctx.emit("update:value", "" + (event || "").replace(",", ".")); + } + function validateRegExp(value, type) { if (Array.isArray(value)) { - return value.map((v) => this.regexp(v)).filter((v) => v == false).length == 0; + return value.map((v) => this.regexp(v)).filter((v) => v === false).length === 0; } else { - return type == "integer" ? this.regexpInteger(value) : this.regexpFloat(value); + return type === "integer" ? regexpInteger(value) : regexpFloat(value); } - }, - - validateRequired(value) { - if (typeof value == "string") { + } + function validateRequired(value) { + if (typeof value === "string") { return !!value; } else { return value.length > 0; } - }, - regexpInteger(value) { + } + function regexpInteger(value) { return new RegExp("^[-+]?\\d+$", "g").test(value); - }, - regexpFloat(value) { + } + function regexpFloat(value) { let b = new RegExp("^[+-]?([0-9]*[.,])?[0-9]+$", "g").test(value); return b; - }, + } + return { + val, + numberValue, + min, + max, + updateValue, + validateRegExp, + validateRequired, + regexpInteger, + regexpFloat + }; + }, + methods: { + extend, }, computed: { required: { get() { - return this.checker && this.checker.params && this.checker.params.required; + return this.checker && this.checker.required; }, }, multiplicity: { get() { - return this.checker && this.checker.params && this.checker.params.multiplicity == "MANY"; + return this.checker && this.checker.multiplicity === "MANY"; }, }, rules: { get() { let rules = []; if (this.checker) { - if (this.checker.name == "IntegerType") { + if (this.checker.name === "IntegerType") { this.extend("integer", (value) => { return this.validateRegExp(value, "integer") || this.$t("rules.integer"); }); rules.push("integer"); } - if (this.checker.name == "FloatType") { + if (this.checker.name === "FloatType") { this.extend("float", (value) => { return this.validateRegExp(value, "float") || this.$t("rules.float"); }); rules.push("float"); } - if (this.checker.params.required) { + if (this.checker.required) { this.extend("required", (value) => { return this.validateRequired(value) || this.$t("rules.required"); }); diff --git a/ui/src/components/common/provider/OreInputReference.vue b/ui/src/components/common/provider/OreInputReference.vue index 9f64c2f43..ea42f1299 100644 --- a/ui/src/components/common/provider/OreInputReference.vue +++ b/ui/src/components/common/provider/OreInputReference.vue @@ -1,33 +1,33 @@ <template> <ValidationProvider - class="column is-12" - :rules="rules" - :name="vid" - v-slot="{ errors, valid }" - :vid="vid" + v-slot="{ errors, valid }" + :name="vid" + :rules="rules" + :vid="vid" + class="column is-12" > <b-field - class="file is-primary column is-12" - :type="{ + :label="label" + :message="errors" + :type="{ 'is-danger': errors && errors.length > 0, 'is-success': valid, }" - :message="errors" - :label="label" + class="file is-primary column is-12" > <b-select - v-if="references" - :multiple="multiplicity" - :required="required" - @blur="updateValue" - @input="updateValue" - :value="val" + v-if="references" + :multiple="multiplicity" + :required="required" + :value="val" + @blur="updateValue" + @input="updateValue" > <option - v-for="option in references" - :key="option.naturalKey" - :label="getFullName(option.naturalKey)" - :value="option.naturalKey" + v-for="option in references" + :key="option.naturalKey" + :label="getFullName(option.naturalKey)" + :value="option.naturalKey" ></option> </b-select> </b-field> @@ -35,10 +35,10 @@ </template> <script> -import { extend, ValidationProvider } from "vee-validate"; -import { LOCAL_STORAGE_LANG } from "@/services/Fetcher"; -import { provide, ref, watch } from "vue"; -import { dataLoader } from "@/composable/data/dataLoader"; +import {extend, ValidationProvider} from "vee-validate"; +import {LOCAL_STORAGE_LANG} from "@/services/Fetcher"; +import {provide, ref, watch} from "vue"; +import {dataLoader} from "@/composable/data/dataLoader"; import services from "@/composable/services"; const defaultLanguage = localStorage.getItem(LOCAL_STORAGE_LANG); @@ -47,33 +47,36 @@ export default { const val = ref(props.value); const loader = dataLoader(services); provide("reference:dataLoader", loader); - const { getValueDisplay } = loader; + const {getValueDisplay} = loader; watch( - () => props.value, - () => { - val.value = ref(props.value); - } + () => props.value, + () => { + val.value = ref(props.value); + } ); + function getFullName(naturalKey) { let currentNames = []; return ( - naturalKey - .split("__") - .map((key) => { - currentNames.push(key); - let currentName = currentNames.join("__"); - return props.references.find((reference) => reference.naturalKey === currentName); - }) - .map((reference) => getValueDisplay(reference, props.references)) - .join("/") || naturalKey + naturalKey + .split("__") + .map((key) => { + currentNames.push(key); + let currentName = currentNames.join("__"); + return props.references.find((reference) => reference.naturalKey === currentName); + }) + .map((reference) => getValueDisplay(reference, props.references)) + .join("/") || naturalKey ); } + function updateValue(event) { if (typeof event == "object") { event = event.target.value; } ctx.emit("update:value", event); } + return { getValueDisplay, getFullName, @@ -118,19 +121,19 @@ export default { computed: { required: { get() { - return this.checker && this.checker.params && this.checker.params.required; + return this.checker && this.checker.required; }, }, multiplicity: { get() { - return this.checker && this.checker.params && this.checker.params.multiplicity == "MANY"; + return this.checker && this.checker.multiplicity === "MANY"; }, }, rules: { get() { let rules = []; if (this.checker) { - if (this.checker.params.required) { + if (this.checker.required) { this.extend("selected", (value) => { return Object.keys(value).length > 0 || this.$t("rules.required"); }); diff --git a/ui/src/components/common/provider/OreInputText.vue b/ui/src/components/common/provider/OreInputText.vue index d024eba72..35d239353 100644 --- a/ui/src/components/common/provider/OreInputText.vue +++ b/ui/src/components/common/provider/OreInputText.vue @@ -21,7 +21,7 @@ </template> <b-taginput v-if="multiplicity === 'MANY'" - v-model="val" + v-model="textValue" required type="textarea" @blur="updateValue" @@ -29,7 +29,7 @@ /> <b-input v-else - v-model="val" + v-model="textValue" required type="textarea" @blur="updateValue" @@ -41,19 +41,9 @@ <script> import { extend, ValidationProvider } from "vee-validate"; -import { ref, watch } from "vue"; +import { computed, ref, watch } from "vue"; export default { - setup(props) { - const val = ref(""); - watch( - () => props.value, - () => { - val.value = ref(props.value); - } - ); - return { val }; - }, name: "OreInputText", emits: ["update:value"], components: { @@ -69,67 +59,35 @@ export default { }, label: { type: String, - required: true, }, vid: { type: String, - required: false, - }, - }, - methods: { - extend, - updateValue(event) { - if (typeof event == "object" && !Array.isArray(event)) { - event = event.target.value; - } - this.$emit("update:value", event); - }, - regexp(value) { - return new RegExp("^" + this.checker.params.pattern + "$", "g").test(value); - }, - validateRegExp(value) { - if (typeof value == "string") { - return this.regexp(value); - } else { - return value.map((v) => this.regexp(v)).filter((v) => v === false).length === 0; - } - }, - validateRequired(value) { - if (typeof value == "string") { - return !!value; - } else { - return value?.length > 0; - } }, }, computed: { required: { get() { - return this.checker && this.checker.params && this.checker.params.required; + return this.checker && this.checker.required; }, }, multiplicity: { get() { - return this.checker && this.checker.params && this.checker.params.multiplicity === "MANY"; + return this.checker && this.checker.multiplicity === "MANY"; }, }, rules: { get() { let rules = []; if (this.checker) { - if ( - this.checker.name === "BooleanType" && - this.checker.param && - this.checker.params.expression - ) { - if (this.checker.params.pattern) { + if (this.checker.name === "BooleanType" && this.checker.expression) { + if (this.checker.pattern) { this.extend("regexp", (value) => { return this.validateRegExp(value) || this.$t("rules.regexp", this.checker.params); }); rules.push("regexp"); } } - if (this.checker.params.required) { + if (this.checker.required) { this.extend("required", (value) => { return this.validateRequired(value) || this.$t("rules.required"); }); @@ -140,6 +98,66 @@ export default { }, }, }, + methods: { + extend, + }, + setup(props, ctx) { + const val = ref(props.value); + watch( + () => props.value, + (newValue) => { + if (newValue) { + val.value = ref(newValue); + } + } + ); + + const textValue = computed({ + get: () => { + return val.value; + }, + set: (newValue) => { + val.value = newValue; + updateValue(newValue); + }, + }); + + function updateValue(event) { + if (typeof event == "object" && !Array.isArray(event) && event.target) { + event = event.target.value; + } + ctx.emit("update:value", event); + } + + function regexp(value) { + return new RegExp("^" + props.checker.pattern + "$", "g").test(value); + } + + function validateRegExp(value) { + if (typeof value == "string") { + return regexp(value); + } else { + return value.map((v) => regexp(v)).filter((v) => v === false).length === 0; + } + } + + function validateRequired(value) { + if (typeof value == "string") { + return !!value; + } else { + return value?.length > 0; + } + } + + return { + updateValue, + regexp, + validateRegExp, + validateRequired, + val, + textValue, + }; + }, }; </script> diff --git a/ui/src/composable/authorization/grantableInfos.js b/ui/src/composable/authorization/grantableInfos.js index 30c148f70..161ba36c0 100644 --- a/ui/src/composable/authorization/grantableInfos.js +++ b/ui/src/composable/authorization/grantableInfos.js @@ -18,4 +18,97 @@ function grantableInfos(datatype, grantableInfos) { referenceScopes, }; } + +export function getListColumnName() { + const listColumnName = ref({}); + listColumnName.value["withoutScope"] = { + delete: { + display: true, + title: "delete", + withPeriods: false, + withDataGroups: false, + forPublic: false, + forRequest: false, + internationalizationName: { + fr: "Suppression", + en: "Deletion", + }, + }, + depot: { + display: true, + title: "depot", + withPeriods: false, + withDataGroups: false, + forPublic: false, + forRequest: false, + internationalizationName: { + fr: "Dépôt", + en: "Deposit", + }, + }, + extraction: { + display: true, + title: "extraction", + withPeriods: true, + withDataGroups: true, + forPublic: true, + forRequest: true, + internationalizationName: { + fr: "Extraction", + en: "Extraction", + }, + }, + }; + listColumnName.value["withScope"] = { + delete: { + display: true, + title: "delete", + withPeriods: false, + withDataGroups: false, + forPublic: false, + forRequest: false, + internationalizationName: { + fr: "Suppression", + en: "Deletion", + }, + }, + depot: { + display: true, + title: "depot", + withPeriods: false, + withDataGroups: false, + forPublic: false, + forRequest: false, + internationalizationName: { + fr: "Dépôt", + en: "Deposit", + }, + }, + publication: { + display: true, + title: "publication", + withPeriods: false, + withDataGroups: false, + forPublic: false, + forRequest: false, + internationalizationName: { + fr: "Publication", + en: "Publication", + }, + }, + extraction: { + display: true, + title: "extraction", + withPeriods: true, + withDataGroups: true, + forPublic: true, + forRequest: true, + internationalizationName: { + fr: "Extraction", + en: "Extraction", + }, + }, + }; + return listColumnName; +} export default grantableInfos; diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json index c7a3038f9..25d4500ce 100644 --- a/ui/src/locales/fr.json +++ b/ui/src/locales/fr.json @@ -564,11 +564,11 @@ "path": "Pour le chemin : ", "badBooleanRequiredSections": { "message": "Seules les valeurs 'true' ou 'false' sont admises.", - "title": "Erreur valeur BOOLEAN" + "title": "Erreur de valeur BOOLEAN" }, "badConstantImportHeaderRowNumber": { "message": "Vous devez indiquer un numéro de ligne positif.", - "title": "Erreur valeur HeaderRowNumber" + "title": "Erreur de valeur HeaderRowNumber" }, "badDomainTagPattern": { "message": "Les définitions de tags doivent correspondre au pattern suivant : <code><FONT color=black> {domainTagPattern} </FONT></code>", diff --git a/ui/src/services/InternationalisationService.js b/ui/src/services/InternationalisationService.js index fc176a2e8..de83ad956 100644 --- a/ui/src/services/InternationalisationService.js +++ b/ui/src/services/InternationalisationService.js @@ -58,10 +58,14 @@ export class InternationalisationService extends Fetcher { if (application.internationalization) { /* TODO application.internationalization ne se remplis pas comme il faut pour submission car referenceScopes renvois { - 2: {fr:"bonjour", en:" hello"}, - 3: {fr:"bonjour", en:" hello"} + 2: {fr:"bonjour je suis un site", en:" hello i'm site"}, + 3: {fr:"bonjour je suis un projet", en:" hello i'm project"} } à la place de 2 et 3 on veux le nom des references (ex: projet et sites) + { + projet: {fr:"bonjour je suis un site", en:" hello i'm site"}, + sites: {fr:"bonjour je suis un projet", en:" hello i'm project"} + } */ let navigateConfiguration = application.internationalization; let pathArray = path.split("."); diff --git a/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue b/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue index 70ed8d241..d66a61301 100644 --- a/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue +++ b/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue @@ -177,7 +177,7 @@ import { Button } from "@/model/Button"; import CollapsibleTree from "@/components/common/CollapsibleTree.vue"; import { AdditionalFilesInfos } from "@/model/additionalFiles/AdditionalFilesInfos"; import services from "@/composable/services"; -import {onMounted, onUpdated} from "vue"; +import { onMounted, onUpdated } from "vue"; import app, { i18n } from "@/main"; import useArray from "@/composable/components/array"; import useObject from "@/composable/components/object"; @@ -203,7 +203,7 @@ export default { let vid = null; let toList; const { reactiveObject: application, doChangeObject: changeApplication } = useObject( - new ApplicationResult() + new ApplicationResult() ); // pagination let offset = 0; @@ -231,7 +231,8 @@ export default { label: i18n.t("dataTypeAuthorizations.filterScope.all"), }, ]; - const { shallowRefArray: additionalFileNames, doChangeArray: changeAdditionalFileNames } = useArray(); + const { shallowRefArray: additionalFileNames, doChangeArray: changeAdditionalFileNames } = + useArray(); const { refBoolean: canManageRights, doChangeBoolean: changeCanManageRights } = useBoolean(); let getReadableFileSizeStringfunction; let currentUserId = JSON.parse(localStorage.authenticatedUser).id; @@ -263,23 +264,25 @@ export default { async function init() { try { - changeApplication(await services.applicationService.getApplication(props.applicationName, [ - "CONFIGURATION", - "DATATYPE", - "RIGHTSREQUEST", - ])); + changeApplication( + await services.applicationService.getApplication(props.applicationName, [ + "CONFIGURATION", + "DATATYPE", + "RIGHTSREQUEST", + ]) + ); changeApplication({ ...services.internationalisationService.mergeInternationalization(application), localRefName: services.internationalisationService.localeReferenceNames( - props.applicationName, - application + props.applicationName, + application ), }); changeAdditionalFileNames(Object.keys(application.additionalFiles || [])); - changeCanManageRights(application.isAdministrator || - Object.values(application.authorizations || []).some( - (rights) => rights.ADMIN - )); + changeCanManageRights( + application.isAdministrator || + Object.values(application.authorizations || []).some((rights) => rights.ADMIN) + ); } catch (error) { services.alertService.toastServerError; } diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue index 580ffbdd7..3eaf91262 100644 --- a/ui/src/views/application/ApplicationCreationView.vue +++ b/ui/src/views/application/ApplicationCreationView.vue @@ -176,7 +176,7 @@ import useNumber from "@/composable/components/number"; import services from "@/composable/services"; import { i18n } from "@/main"; import app from "@/main"; -import {computed, watch} from "vue"; +import { computed, watch } from "vue"; export default { name: "ApplicationCreationView", @@ -270,47 +270,48 @@ export default { function parseResultChunck(chunk, caller) { const response = chunk.result; if ("validate" === caller && response.name) { - if (response.configuration.applicationDescription.name.length < 44 && - currentUser.authorizations.includes(response.configuration.applicationDescription.name.toLowerCase())) - { + if ( + response.configuration.applicationDescription.name.length < 44 && + currentUser.authorizations.includes( + response.configuration.applicationDescription.name.toLowerCase() + ) + ) { applicationConfig.name = response.configuration.applicationDescription.name.toLowerCase(); applicationConfig.version = response.configuration.applicationDescription.version.version; applicationConfig.comment = response.configuration.applicationDescription.comment; if ( - applicationConfig.version.toString() !== props.applicationVersion && - applicationConfig.name === props.applicationName + applicationConfig.version.toString() !== props.applicationVersion && + applicationConfig.name === props.applicationName ) { changeBtnUpdateConfig(true); } if ( - applicationConfig.version.toString() === props.applicationVersion && - applicationConfig.name === props.applicationName + applicationConfig.version.toString() === props.applicationVersion && + applicationConfig.name === props.applicationName ) { disabled.value = true; services.alertService.toastError( - i18n.t("alert.server-error-appli-exist", { - name: props.applicationName, - version: props.applicationVersion, - }) + i18n.t("alert.server-error-appli-exist", { + name: props.applicationName, + version: props.applicationVersion, + }) ); } else { services.alertService.toastSuccess(i18n.t("alert.application-validate-success")); } } else { disabled.value = true; - let message = (response.configuration.applicationDescription.name.toString().length < 48) ? - "badNameWithRight": - "invalidLengthName"; - let params = (message === "invalidLengthName") ? - {} : - {name: response.configuration.applicationDescription.name}; + let message = + response.configuration.applicationDescription.name.toString().length < 48 + ? "badNameWithRight" + : "invalidLengthName"; + let params = + message === "invalidLengthName" + ? {} + : { name: response.configuration.applicationDescription.name }; errorsMessages.value.push({ type: message, - message: services.errorsService.getErrorsMessages( - message, - params, - "errors-yaml." - ), + message: services.errorsService.getErrorsMessages(message, params, "errors-yaml."), title: i18n.t("errors-yaml." + message + ".title"), params: params, }); @@ -393,7 +394,7 @@ export default { counter, errors, disabled, - currentUser + currentUser, }; }, }; diff --git a/ui/src/views/application/ApplicationInfoView.vue b/ui/src/views/application/ApplicationInfoView.vue index e0d344c03..0908b68b5 100644 --- a/ui/src/views/application/ApplicationInfoView.vue +++ b/ui/src/views/application/ApplicationInfoView.vue @@ -98,7 +98,7 @@ export default { () => app.$router.push(`/applications`) ), ]); - console.log(currentUser) + console.log(currentUser); }); async function init() { @@ -166,7 +166,7 @@ export default { </script> <template> - <PageView class="with-submenu" :application="application"> + <PageView :application="application" class="with-submenu"> <SubMenu :aria-label="$t('menu.aria-sub-menu')" :paths="subMenuPaths" @@ -201,7 +201,7 @@ export default { " /> </div> - <div class="infos" v-if="application.creationDate"> + <div v-if="application.creationDate" class="infos"> <p field="creationDate"> {{ $t("applications.creation-date") }} : {{ formatedDateArray(application.creationDate) }} </p> @@ -229,16 +229,16 @@ export default { <div class="buttonPanel columns" style="display: contents"> <b-tabs class="buttonRubriquePanel"> <b-tab-item - aria-description="data" v-if="application.data && Object.keys(application.data).length !== 0" + aria-description="data" > <template #header> <span class="rubriqueTitle">{{ $t("applications.functions.datas-manage") }}</span> </template> <div class="columns"> <div - class="buttonWarper" v-if="application.references && Object.keys(application.references).length !== 0" + class="buttonWarper" > <b-button class="column" @@ -249,8 +249,8 @@ export default { </b-button> </div> <div - class="buttonWarper" v-if="application.dataTypes && Object.keys(application.dataTypes).length !== 0" + class="buttonWarper" > <b-button class="column" @@ -402,8 +402,8 @@ export default { <div v-else> <div class="columns"> <div - class="buttonWarper" v-if="application.references && Object.keys(application.references).length !== 0" + class="buttonWarper" > <b-button class="column" @@ -414,8 +414,8 @@ export default { </b-button> </div> <div - class="buttonWarper" v-if="application.dataTypes && Object.keys(application.dataTypes).length !== 0" + class="buttonWarper" > <b-button class="column" @@ -426,10 +426,10 @@ export default { </b-button> </div> <div - class="buttonWarper" v-if=" application.additionalFiles && Object.keys(application.additionalFiles).length !== 0 " + class="buttonWarper" > <b-button disabled @@ -440,18 +440,20 @@ export default { </b-button> </div> <div - class="buttonWarper" - v-if=" - application.configuration.rightsRequest && Object.keys(application.configuration.rightsRequest).length !== 0 + v-if=" + application?.configuration && + application?.configuration.rightsRequest && + Object.keys(application?.configuration.rightsRequest).length !== 0 " + class="buttonWarper" > - <b-button - icon-left="users-cog" - type="is-primary" - @click="showRequestRights(application.name)" - > - {{ $t("dataTypeAuthorizations.showRequests") }} - </b-button> + <b-button + icon-left="users-cog" + type="is-primary" + @click="showCharte(showRequestRights(application.name))" + > + {{ $t("dataTypeAuthorizations.showRequests") }} + </b-button> </div> </div> </div> diff --git a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue index 594888109..72830a34c 100644 --- a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue +++ b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue @@ -1,71 +1,68 @@ <template> <PageView class="with-submenu"> <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="application.localName || application.title" - role="navigation" + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="application.localName || application.title" + role="navigation" /> <h1 class="title main-title"> - <span>{{ $t("dataTypeAuthorizations.title", {label: currentUser.label}) }}</span> + <span>{{ $t("dataTypeAuthorizations.title", { label: currentUser.label }) }}</span> </h1> - <LoadingAnimate v-if="!columnsVisible" :size="'is-medium'"></LoadingAnimate> - <ValidationObserver ref="observer" v-slot="{ handleSubmit }"> + <LoadingAnimate v-if="isLoading" :size="'is-medium'"></LoadingAnimate> + <ValidationObserver v-else ref="observer" v-slot="{ handleSubmit }"> <FieldsForm - :application="application" - :comment="comment" - :description="description" - :fields="fields" - :format="format" - :ref-values="references" - :showComment="true" - pathForKey="rightsRequest.format" - @update:fields="updateFields" - @update:comment="updateComment" + :application="application" + :comment="comment" + :description="description" + :fields="fields" + :format="format" + :showComment="Object.keys(format).length === 0" + pathForKey="rightsrequest.fields" + @update:fields="updateFields" + @update:comment="updateComment" > </FieldsForm> - <AuthorizationTableForDatatype - :application="application" - :current-authorization="currentAuthorization" - :list-column-name="listColumnName" - :authorization-id="authorizationId" - :authorizations="authorizations" - :datatypes="datatypes" - :references="references" - :has-dependencies="hasDependencies" - :initialized="initialized" - :application-name="applicationName" - :references-scopes="referencesScopes" - @update:authorization="updateAuthorization"> + :application="application" + :application-name="applicationName" + :authorization-id="authorizationId" + :authorizations="authorizations" + :current-authorization="currentAuthorization" + :datatypes="datatypes" + :has-dependencies="hasDependencies" + :initialized="initialized" + :list-column-name="listColumnName" + :references="references" + :references-scopes="referencesScopes" + > </AuthorizationTableForDatatype> - <div class="buttons"> <b-button - v-if="canCreateApplication" - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(confirmGrantAuthorization)" + v-if="canCreateApplication" + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(confirmGrantAuthorization)" > {{ $t("dataTypeAuthorizations.grantRequests") }} </b-button> <b-button - v-else-if="'new' === authorizationId" - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(createRequest)" + v-else-if="'new' === authorizationId" + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(createRequest)" > {{ $t("dataTypeAuthorizations.showRequests") }} </b-button> <b-button - v-else - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(createRequest)" + v-else + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(createRequest)" > {{ $t("dataTypeAuthorizations.modifyRequests") }} </b-button> @@ -75,20 +72,21 @@ </template> <script> -import {ValidationObserver} from "vee-validate"; -import SubMenu, {SubMenuPath} from "@/components/common/SubMenu.vue"; +import { ValidationObserver } from "vee-validate"; +import SubMenu, { SubMenuPath } from "@/components/common/SubMenu.vue"; import PageView from "../common/PageView.vue"; -import {ApplicationResult} from "@/model/ApplicationResult"; +import { ApplicationResult } from "@/model/ApplicationResult"; import AuthorizationTableForDatatype from "@/components/common/AuthorizationTableForDatatype.vue"; -import {Authorization} from "@/model/authorization/Authorization"; -import {Authorizations} from "@/model/authorization/Authorizations"; +import { Authorization } from "@/model/authorization/Authorization"; +import { Authorizations } from "@/model/authorization/Authorizations"; import FieldsForm from "@/components/common/provider/FieldsForm.vue"; import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; import services from "@/composable/services"; -import {inject, onMounted, ref, watch} from "vue"; +import { computed, inject, onMounted, ref, watch } from "vue"; import useObject from "@/composable/components/object"; -import app, {i18n} from "@/main"; +import app, { i18n } from "@/main"; import useArray from "@/composable/components/array"; +import { getListColumnName } from "@/composable/authorization/grantableInfos"; export default { name: "AuthorizationsManagementForApplicationCreatorView", @@ -102,61 +100,108 @@ export default { }, props: { applicationName: { - type: String + type: String, }, authorizationId: { type: String, - default: "new" - } + default: "new", + }, }, setup(props) { - const applications = inject("application:applications"); const loadApplications = inject("application:loadApplications"); - const {reactiveObject: application, doChangeObject: changeApplication} = useObject( - new ApplicationResult() + let { reactiveObject: application, doChangeObject: changeApplication } = useObject( + new ApplicationResult() ); - const {shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths} = useArray(); + const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); const isLoading = ref(false); const authenticatedUser = services.loginService.getAuthenticatedUser(); const canCreateApplication = authenticatedUser.isApplicationCreator(application); - const {shallowRefArray: datatypes, doChangeArray: changeDataTypes} = useArray(); - const {reactiveObject: references} = useObject({}); - const {reactiveObject: authorization, doChangeObject: changeAuthorization} = useObject({}); - let selectedUsers = []; - let publicAuthorizations = {}; - let ownAuthorizations = []; - let ownAuthorizationsColumnsByPath = {}; - let authorizations = []; - let users = []; - let name = null; + const { reactiveObject: datatypes, doChangeObject: changeDataTypes } = useObject({}); + const { reactiveObject: references, doChangeObject: changeReferences } = useObject({}); + const { reactiveObject: datas } = useObject({}); + const { reactiveObject: configuration, doChangeObject: changeConfiguration } = useObject({}); + const { reactiveObject: authorization, doChangeObject: changeAuthorization } = useObject({}); + const { reactiveObject: format, doChangeObject: changeFormat } = useObject({}); + const { reactiveObject: fields, doChangeObject: changeFields } = useObject({}); + const { reactiveObject: authorizations } = useObject({}); + const currentAuthorization = ref({}); + const listColumnName = ref({}); + const initialized = ref(false); + const referencesScopes = ref({}); let authorizationScopes = {}; let canManage = false; - - let fields = {}; let valid = false; - let COLUMNS_VISIBLE = { - label: { - title: "Label", - display: true, - internationalizationName: {fr: "Domaine", en: "Domain"}, - }, - }; - let columnsVisible = false; - const {reactiveObject: period} = useObject(); + const { reactiveObject: period } = useObject(); let startDate = ref(null); let endDate = ref(null); - let configuration = {}; - let authReferences = ref({}); - let repository = null; - let format = {}; - let description = ""; - + const description = ref(""); + const dependencies = ref({}); let currentUser = {}; let comment = null; + const hasDependencies = computed(() => { + const result = new Set(); + const authorizations = currentAuthorization.value.authorizations; + const hierarchicalNodes = configuration.hierarchicalNodes; + + for (const [datatype, auth] of Object.entries(authorizations || {})) { + if (auth.operationTypes && auth.operationTypes.length > 0) { + // Trouver le nœud correspondant dans la configuration + const node = hierarchicalNodes.find((n) => n.nodeName === datatype); + if (node && node.depends && node.depends.length > 0) { + // Ajouter toutes les dépendances du datatype + node.depends.forEach((dep) => result.add(dep)); + } + } + } - watch(authReferences, (newVal) => { - authReferences.value = newVal; + return Array.from(result); }); + const buildDependencies = (hierarchicalNodes) => { + const dependenciesObject = {}; + + // Initialiser l'objet avec tous les datatypes + hierarchicalNodes.forEach((node) => { + dependenciesObject[node.nodeName] = { + dependencies: [], + dependents: [], + }; + }); + + // Remplir les dépendances et les dépendants + hierarchicalNodes.forEach((node) => { + // Ajouter les dépendances + if (node.depends && node.depends.length > 0) { + dependenciesObject[node.nodeName].dependencies = node.depends; + + // Ajouter ce datatype comme dépendant pour chacune de ses dépendances + node.depends.forEach((dep) => { + if (dependenciesObject[dep]) { + dependenciesObject[dep].dependents.push(node.nodeName); + } + }); + } + + // Gérer la relation parent-enfant + if (node.parent) { + dependenciesObject[node.nodeName].dependencies.push(node.parent); + if (dependenciesObject[node.parent]) { + dependenciesObject[node.parent].dependents.push(node.nodeName); + } + } + + // Gérer les enfants + if (node.children && node.children.length > 0) { + node.children.forEach((childName) => { + if (dependenciesObject[childName]) { + dependenciesObject[childName].dependencies.push(node.nodeName); + dependenciesObject[node.nodeName].dependents.push(childName); + } + }); + } + }); + + return dependenciesObject; + }; watch(period, () => { endDate.value = null; @@ -165,284 +210,223 @@ export default { onMounted(async () => { await init(); - changeSubMenuPaths([ - new SubMenuPath( + if (canCreateApplication) { + changeSubMenuPaths([ + new SubMenuPath( i18n.t("menu.accueil").toLowerCase(), () => app.$router.push(`/applications/${props.applicationName}`), - () => app.$router.push("/applications") - ), - new SubMenuPath( + () => app.$router.push(`/applications`) + ), + new SubMenuPath( i18n.t(`dataTypeAuthorizations.sub-menu-request-authorization`), () => { app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); }, () => app.$router.push(`/applications/${props.applicationName}`) - ), - new SubMenuPath( + ), + new SubMenuPath( i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), + () => {}, () => { - }, + app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + } + ), + ]); + } else { + changeSubMenuPaths([ + new SubMenuPath( + i18n.t("menu.accueil").toLowerCase(), + () => app.$router.push(`/applications/${props.applicationName}`), + () => app.$router.push(`/applications/${props.applicationName}`) + ), + new SubMenuPath( + i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), + () => {}, () => { - app.$router.push(`/applications/${props.applicationName}/authorizationsRequest/new`); + app.$router.push(`/applications/${props.applicationName}`); } - ), - ]); + ), + ]); + } isLoading.value = false; - }) + }); + + function initApplication(getApplication) { + changeApplication( + services.internationalisationService.mergeInternationalization(getApplication) + ); + changeConfiguration(application.configuration); + datas.value = Object.keys(application.data).reduce((acc, data) => { + acc[data] = { + id: data, + name: + services.internationalisationService.localeReferenceNames(data, application) || data, + }; + return acc; + }, {}); + changeDataTypes({ + withScope: Object.keys(application.dataTypes) + .filter((name) => application.configuration.dataDescription[name].authorization) + .reduce((acc, dataType) => { + acc[dataType] = { + id: dataType, + name: + services.internationalisationService.localeReferenceNames(dataType, application) || + dataType, + }; + return acc; + }, {}), + withoutScope: Object.keys(application.dataTypes) + .filter((name) => application.configuration.dataDescription[name].authorization === null) + .reduce((acc, dataType) => { + acc[dataType] = { + id: dataType, + name: + services.internationalisationService.localeReferenceNames(dataType, application) || + dataType, + }; + return acc; + }, {}), + }); + changeReferences({ + withScope: Object.keys(application.references) + .filter((name) => application.configuration.dataDescription[name].authorization) + .reduce((acc, reference) => { + acc[reference] = { + id: reference, + name: + services.internationalisationService.localeReferenceNames(reference, application) || + reference, + }; + return acc; + }, {}), + withoutScope: Object.keys(application.references) + .filter((name) => application.configuration.dataDescription[name].authorization === null) + .reduce((acc, reference) => { + acc[reference] = { + id: reference, + name: + services.internationalisationService.localeReferenceNames(reference, application) || + reference, + }; + return acc; + }, {}), + }); + for (let data of Object.keys(configuration.dataDescription)) { + if ( + configuration.dataDescription[data] && + configuration.dataDescription[data].authorization + ) { + authorizations[data] = configuration.dataDescription[data].authorization; + } + } + } async function init() { isLoading.value = true; try { - changeApplication(await services.applicationService.getApplication(props.applicationName, [ - "CONFIGURATION", - "DATATYPE", - "RIGHTSREQUEST", - ])); - console.log(application) - changeDataTypes((Object.keys(application.dataTypes) || []).reduce( - (acc, datatype) => { - acc[datatype] = { - name: - services.internationalisationService.localeDataTypeIdName( - application, - application.dataTypes[datatype] - ) || datatype, - }; - return acc; - }, - {} - )); - format = application?.rightsRequest?.description?.format || {}; - description = - application?.rightsRequest?.description?.description[ - services.userPreferencesService.getUserPrefLocale() - ] || - i18n.t("dataTypeAuthorizations.field_form_description", { - applicationName: application.localName, - }); - fields = (Object.keys(format) || []).reduce((acc, field) => { - acc[field] = ""; - return acc; - }, {}); - configuration = (Object.keys(datatypes.value) || []).reduce((acc, datatype) => { - acc[datatype] = application.configuration.dataTypes[datatype]; - return acc; - }, {}); - changeApplication(services.internationalisationService.mergeInternationalization( - application - )); - loadApplications(["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "ADDITIONALFILE"]); - for (let i = 0; i < applications.value.length; i++) { - if (applications.value[i].name === application.name) { - application.configFile = applications.value[i].configFile; - application.creationDate = applications.value[i].creationDate; - application.updateDate = applications.value[i].updateDate; + let getApplication = await services.applicationService.getApplication( + props.applicationName, + ["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "ADDITIONALFILE"] + ); + initApplication(getApplication); + dependencies.value = buildDependencies(configuration.hierarchicalNodes); + changeFormat(configuration.rightsRequest.format || {}); + changeFields( + (Object.keys(format) || []).reduce((acc, field) => { + acc[field] = ""; + return acc; + }, {}) + ); + description.value = + application?.internationalization.rightsrequest?.description[ + services.userPreferencesService.getUserPrefLocale() + ] || + i18n.t("dataTypeAuthorizations.field_form_description", { + applicationName: application.localName, + }); + let listAllUsers = await services.authorizationService.getAuthorizationGrantableInfos( + props.applicationName + ); + let scopes = listAllUsers.referenceScopes; + referencesScopes.value = Object.keys(scopes || {}).reduce((acc, dataName) => { + if (scopes[dataName].length) { + acc[dataName] = scopes[dataName]; } - } - authorizations = (Object.keys(datatypes.value) || []).reduce((acc, datatype) => { - acc[datatype] = configuration[datatype]?.authorization?.authorizationScopes || []; - return acc; - }, {}); - repository = (Object.keys(datatypes.value) || []).reduce((acc, datatype) => { - acc[datatype] = application.dataTypes[datatype].repository; return acc; }, {}); - const grantableInfos = await services.authorizationService.getAuthorizationGrantableInfos( - props.applicationName - ); - ({ - authorizationScopes: authorizationScopes, - users: users, - publicAuthorizations: publicAuthorizations, - canCreateApplication: canCreateApplication.value, - ownAuthorizations: ownAuthorizations, - ownAuthorizationsColumnsByPath: ownAuthorizationsColumnsByPath, - columnsVisible: columnsVisible, - } = Authorizations.parseGrantableInfos(grantableInfos, datatypes.value, repository)); - if (props.authorizationId !== "new") { valid = true; - let request = await services.requestRightsService.getRightsRequests(props.applicationName, { - uuids: [props.authorizationId], - }); - + let request = await services.requestRightsService.getRightsRequests( + props.applicationName, + { + uuids: [props.authorizationId], + } + ); currentUser = request.users.find( - (user) => - user.id === - ((request && - request.rightsRequests && - request.rightsRequests[0] && - request.rightsRequests[0].user) || - JSON.parse(localStorage.authenticatedUser).id) + (user) => + user.id === + ((request && + request.rightsRequests && + request.rightsRequests[0] && + request.rightsRequests[0].user) || + JSON.parse(localStorage.authenticatedUser).id) ); let rightsRequest = request.rightsRequests[0]; comment = rightsRequest.comment; - fields = (Object.keys(format) || []).reduce((acc, field) => { - acc[field] = rightsRequest.rightsRequestForm[field]; - return acc; - }, {}); + changeFields( + (Object.keys(format) || []).reduce((acc, field) => { + acc[field] = rightsRequest.rightsRequestForm[field]; + return acc; + }, {}) + ); let authorizations = (rightsRequest && rightsRequest.rightsRequest) || {}; let initialValue = new Authorizations( - { - authorizations: {}, - applicationNameOrId: props.applicationName, - users: authorizations.users, - name: authorizations.name, - uuid: authorizations.uuid, - }, - [] + { + authorizations: {}, + applicationNameOrId: props.applicationName, + users: authorizations.users, + name: authorizations.name, + uuid: authorizations.uuid, + }, + [] ); - changeAuthorization((Object.keys(datatypes.value) || []).reduce((auth, datatype) => { - auth.authorizations[datatype] = new Authorizations( - {authorizations: authorizations[datatype]}, + changeAuthorization( + (Object.keys(datatypes.value) || []).reduce((auth, datatype) => { + auth.authorizations[datatype] = new Authorizations( + { authorizations: authorizations[datatype] }, (authorizationScopes[datatype] || []).map((as) => as.id) - ); - return auth; - }, initialValue)); + ); + return auth; + }, initialValue) + ); canManage = - canCreateApplication || - (authorizations.users && - authorizations.users[0].login === - JSON.parse(localStorage.getItem("authenticatedUser")).login); + canCreateApplication || + (authorizations.users && + authorizations.users[0].login === + JSON.parse(localStorage.getItem("authenticatedUser")).login); } else { - let initialValue = new Authorizations( - { - authorizations: {}, - applicationNameOrId: props.applicationName, - users: [], - name: "", - uuid: null, - }, - [] - ); - changeAuthorization((Object.keys(datatypes.value) || []).reduce((acc, datatype) => { - acc.authorizations[datatype] = new Authorizations( - {dataType: datatype, applicationNameOrId: props.applicationName}, - (authorizationScopes[datatype] || []).map((as) => as.id) - ); - return acc; - }, initialValue)); - canManage = true; - } - console.log(currentUser); - let currentAuthorizationUsers = authorization.value.users || []; - selectedUsers = (users || []).filter((user) => { - return currentAuthorizationUsers.find((u) => { - return u.id === user.id; - }); - }); - selectedUsers.sort(); - authReferences = await Authorizations.initAuthReferences( - configuration, - authorizations, - authorizationScopes, - getOrLoadReferences - ); - let localeColumnsVisible = columnsVisible ? columnsVisible : {}; - for (const datatype in localeColumnsVisible) { - for (const scope in localeColumnsVisible[datatype]) { - let columnsVisibleFordatatypeAndScope = localeColumnsVisible[datatype][scope]; - if ( - columnsVisibleFordatatypeAndScope.forRequest || - (columnsVisibleFordatatypeAndScope.display && - !columnsVisibleFordatatypeAndScope.forPublic) - ) { - localeColumnsVisible[datatype][scope] = columnsVisibleFordatatypeAndScope; - } - } + currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); + currentAuthorization.value = {}; + initialized.value = true; } - columnsVisible = localeColumnsVisible; + listColumnName.value = getListColumnName(); } catch (error) { services.alertService.toastServerError(error); } } - function getColumnTitle(column) { - if (column.display) { - return ( - (column.internationalizationName && column.internationalizationName[app.$i18n.locale]) || - column.title - ); - } - } - - function modifyAuthorization(event) { - let datatype = event.datatype; - const authorization = authorization.authorizations[datatype]; - let authorizations = authorization.authorizations[event.indexColumn] || []; - for (const authorizationKeytoAdd in event.authorizations.toAdd) { - authorizations.push(event.authorizations.toAdd[authorizationKeytoAdd]); - } - for (const authorizationKeytoDelete in event.authorizations.toDelete) { - const toDeleteElement = event.authorizations.toDelete[authorizationKeytoDelete]; - authorizations = authorizations.filter((auth) => { - return !new Authorization(auth).equals( - toDeleteElement, - authorizationScopes[datatype].map((scope) => scope.id) - ); - }); - } - authorization.authorizations[event.indexColumn] = authorizations; - app.$set( - authorization.authorizations, - datatype, - new Authorizations( - authorization, - authorizationScopes[datatype].map((as) => as.id) - ) - ); - } - - function registerCurrentAuthorization(event) { - let datatype = event.datatype; - const authorization = authorization.authorizations[event.datatype]; - let authorizations = authorization.authorizations[event.indexColumn] || []; - const authorizationToReplace = event.authorizations; - authorizationToReplace.fromDay = authorizationToReplace.from && [ - authorizationToReplace.from.getFullYear(), - authorizationToReplace.from.getMonth() + 1, - authorizationToReplace.from.getDate(), - ]; - authorizationToReplace.toDay = authorizationToReplace.to && [ - authorizationToReplace.to.getFullYear(), - authorizationToReplace.to.getMonth() + 1, - authorizationToReplace.to.getDate(), - ]; - authorizations = authorizations.map((auth) => { - if ( - !new Authorization(auth).equals( - authorizationToReplace, - authorizationScopes[datatype].map((scope) => scope.id) - ) - ) { - return auth; - } else { - return authorizationToReplace; + function updateFields(event) { + let count = 0; + for (let formatKey in format) { + if (formatKey === event.key && event.fields) { + fields[event.key] = event.fields; + } + if (fields[formatKey] !== "") { + count++; } - }); - authorization.authorizations[event.indexColumn] = authorizations; - app.$set( - authorization.authorizations, - event.datatype, - new Authorizations( - authorization, - authorizationScopes.map((as) => as.id) - ) - ); - } - - async function getOrLoadReferences(reference) { - if (references.value[reference]) { - return references.value[reference]; } - let ref = await services.dataService.getData(props.applicationName, reference); - app.$set(references.value, reference, ref); - return ref; - } - - function updateFields(event) { - fields = event.fields; - valid = event.valid; + valid = count === Object.keys(format).length; } function updateComment(event) { @@ -461,6 +445,7 @@ export default { } async function createRequest(isSetted) { + console.log("createRequest isSetted", isSetted) if (!valid) { return; } @@ -471,9 +456,10 @@ export default { applicationNameOrId: props.applicationName, authorizations: {}, }; - authorizationToSend.usersId = selectedUsers.map((user) => user.id); + authorizationToSend.usersId = currentUser.map((user) => user.id); for (const datatype in authorization.value.authorizations) { - let authorizationForDatatype = authorization.value.authorizations[datatype].authorizations; + let authorizationForDatatype = + authorization.value.authorizations[datatype].authorizations; for (const scope in authorizationForDatatype) { authorizationForDatatype[scope] = authorizationForDatatype[scope].map((auth) => { const returnedAuth = new Authorization(auth); @@ -530,7 +516,8 @@ export default { usersId: [currentUser.id], }; for (const datatype in authorization.value.authorizations) { - let authorizationForDatatype = authorization.value.authorizations[datatype].authorizations; + let authorizationForDatatype = + authorization.value.authorizations[datatype].authorizations; for (const scope in authorizationForDatatype) { authorizationForDatatype[scope] = authorizationForDatatype[scope].map((auth) => { const returnedAuth = new Authorization(auth); @@ -544,8 +531,8 @@ export default { } } const auth = await services.authorizationService.createAuthorization( - props.applicationName, - authorizationToSend + props.applicationName, + authorizationToSend ); services.alertService.toastSuccess(i18n.t("alert.create-authorization")); return auth; @@ -565,16 +552,10 @@ export default { } return { + isLoading, subMenuPaths, - applications, loadApplications, - publicAuthorizations, - ownAuthorizations, - ownAuthorizationsColumnsByPath, - name, canManage, - COLUMNS_VISIBLE, - columnsVisible, description, canCreateApplication, datatypes, @@ -584,19 +565,21 @@ export default { fields, format, references, - authReferences, authorization, authorizationScopes, - getColumnTitle, - modifyAuthorization, - registerCurrentAuthorization, + referencesScopes, + initialized, + hasDependencies, + authorizations, + listColumnName, + currentAuthorization, updateFields, updateComment, confirmGrantAuthorization, createRequest, - } - } -} + }; + }, +}; </script> <style lang="scss"> diff --git a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue index 32223b257..ab64adb6a 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue @@ -62,18 +62,19 @@ <LoadingAnimate v-if="false" :size="'is-large'"></LoadingAnimate> </ValidationObserver> <AuthorizationTableForDatatype - :application="application" - :current-authorization="currentAuthorization" - :list-column-name="listColumnName" - :authorization-id="authorizationId" - :authorizations="authorizations" - :datatypes="datatypes" - :references="references" - :has-dependencies="hasDependencies" - :initialized="initialized" - :application-name="applicationName" - :references-scopes="referencesScopes" - @update:authorization="updateAuthorization"> + :application="application" + :current-authorization="currentAuthorization" + :list-column-name="listColumnName" + :authorization-id="authorizationId" + :authorizations="authorizations" + :datatypes="datatypes" + :references="references" + :has-dependencies="hasDependencies" + :initialized="initialized" + :application-name="applicationName" + :references-scopes="referencesScopes" + @update:authorization="updateAuthorization" + > </AuthorizationTableForDatatype> <div class="buttons"> <b-button @@ -140,10 +141,9 @@ export default { const configuration = ref({}); const selectedUsers = ref([]); const authorizations = ref({}); - const publicAuthorizations = ref({}); const hasPublicAuthorizations = ref(false); const isLoading = ref(true); - const listColumnName = ref([]); + const listColumnName = ref({}); const currentAuthorization = ref({}); const dependencies = ref({}); const buildDependencies = (hierarchicalNodes) => { @@ -450,6 +450,7 @@ export default { function createOrUpdateAuthorization() { try { const authorizations = buildAuthorization(); + console.log("createOrUpdateAuthorization authorizations:", authorizations); services.authorizationService.createAuthorization(props.applicationName, authorizations); app.$router.push(`/applications/${props.applicationName}/authorizations`); } catch (e) { @@ -581,7 +582,6 @@ export default { hasDependencies, buildAuthorization, hasPublicAuthorizations, - publicAuthorizations, }; }, }; -- GitLab From cd387c3fb2be01ad77f2571b2113765c891e9bb9 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 23 Oct 2024 10:19:14 +0200 Subject: [PATCH 25/52] =?UTF-8?q?function=20de=20cr=C3=A9ation=20de=20righ?= =?UTF-8?q?tRequest=20faite=20mais=20erreur=20de=20CORS=20403=20donc=20pas?= =?UTF-8?q?=20=C3=A0=20bouti?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthorizationsRightsRequestInfoView.vue | 119 ++++++++++++++---- 1 file changed, 93 insertions(+), 26 deletions(-) diff --git a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue index 72830a34c..2fb8a471b 100644 --- a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue +++ b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue @@ -8,7 +8,7 @@ /> <h1 class="title main-title"> - <span>{{ $t("dataTypeAuthorizations.title", { label: currentUser.label }) }}</span> + <span>{{ $t("dataTypeAuthorizations.title", { label: currentUser.login }) }}</span> </h1> <LoadingAnimate v-if="isLoading" :size="'is-medium'"></LoadingAnimate> <ValidationObserver v-else ref="observer" v-slot="{ handleSubmit }"> @@ -36,6 +36,7 @@ :list-column-name="listColumnName" :references="references" :references-scopes="referencesScopes" + @update:authorization="updateAuthorization" > </AuthorizationTableForDatatype> <div class="buttons"> @@ -128,7 +129,6 @@ export default { const listColumnName = ref({}); const initialized = ref(false); const referencesScopes = ref({}); - let authorizationScopes = {}; let canManage = false; let valid = false; const { reactiveObject: period } = useObject(); @@ -395,7 +395,7 @@ export default { (Object.keys(datatypes.value) || []).reduce((auth, datatype) => { auth.authorizations[datatype] = new Authorizations( { authorizations: authorizations[datatype] }, - (authorizationScopes[datatype] || []).map((as) => as.id) + (referencesScopes[datatype] || []).map((as) => as.id) ); return auth; }, initialValue) @@ -444,34 +444,101 @@ export default { } } + function updateAuthorization(event) { + let current = { ...currentAuthorization.value }; + current.authorizations = event; + currentAuthorization.value = current; + console.log(current) + } + + const buildAuthorization = () => { + const authorizationForAll = {}; + const authorizationsWithRestriction = {}; + const authorization = { ...currentAuthorization.value.authorizations }; + for (const [datatype, auth] of Object.entries(authorization)) { + // Ignorer les datatypes sans opérationTypes ou avec seulement 'extraction' s'ils sont dans hasDependencies + if ( + !auth.operationTypes || + (JSON.stringify(auth.operationTypes) === '["extraction"]' && + hasDependencies?.value && + hasDependencies.value.includes(datatype)) + ) { + continue; + } else { + auth.operationTypes = [...auth.operationTypes]; + } + if (!auth.timescope && !auth.requiredAuthorizations) { + authorizationForAll[datatype] = auth.operationTypes; + continue; + } + + // Vérifier si le timeScope est infini + const isInfiniteTimeScope = + auth.fromDay !== undefined && + auth.fromDay[0] === -999999999 && + auth.toDay !== undefined && + auth.toDay[0] === 999999999; + + // Vérifier si requiredAuthorizations est vide ou égal à [""] + const hasNoRequiredAuths = + !auth.requiredAuthorizations || + Object.values(auth.requiredAuthorizations).every( + (arr) => arr.length === 0 || (arr.length === 1 && arr[0] === "") + ); + + if (isInfiniteTimeScope && hasNoRequiredAuths) { + if (!auth.requiredAuthorizations) { + authorizationForAll[datatype] = new Set(auth.operationTypes); + } + } else { + authorizationsWithRestriction[datatype] = { + operationTypes: auth.operationTypes, + requiredAuthorizations: auth.requiredAuthorizations, + timeScope: {}, + }; + + // Ajouter fromDay seulement s'il n'est pas infini + if (auth.fromDay && auth?.fromDay[0] !== -999999999) { + authorizationsWithRestriction[datatype].timeScope.fromDay = `${ + auth.fromDay[0] + }-${auth.fromDay[1].toString().padStart(2, "0")}-${auth.fromDay[2] + .toString() + .padStart(2, "0")}`; + } + + // Ajouter toDay seulement s'il n'est pas infini + if (auth.toDay && auth?.toDay?.[0] !== 999999999) { + authorizationsWithRestriction[datatype].timeScope.toDay = `${ + auth.toDay[0] + }-${auth.toDay[1].toString().padStart(2, "0")}-${auth.toDay[2] + .toString() + .padStart(2, "0")}`; + } + + // Si timeScope est vide, le supprimer complètement + if (Object.keys(authorizationsWithRestriction[datatype].timeScope).length === 0) { + delete authorizationsWithRestriction[datatype].timeScope; + } + } + } + + return { + uuid: props.authorizationId === "new" ? null : props.authorizationId, + name: i18n.t("dataTypeAuthorizations.title", { label: currentUser.login }), + description: null, + usersId: currentUser.id, + authorizationForAll, + authorizationsWithRestriction, + }; + }; + async function createRequest(isSetted) { console.log("createRequest isSetted", isSetted) if (!valid) { return; } try { - let authorizationToSend = { - uuid: authorization.value.uuid, - name: authorization.value.name, - applicationNameOrId: props.applicationName, - authorizations: {}, - }; - authorizationToSend.usersId = currentUser.map((user) => user.id); - for (const datatype in authorization.value.authorizations) { - let authorizationForDatatype = - authorization.value.authorizations[datatype].authorizations; - for (const scope in authorizationForDatatype) { - authorizationForDatatype[scope] = authorizationForDatatype[scope].map((auth) => { - const returnedAuth = new Authorization(auth); - returnedAuth.intervalDates = { - fromDay: returnedAuth.fromDay, - toDay: returnedAuth.toDay, - }; - return returnedAuth; - }); - authorizationToSend.authorizations[datatype] = authorizationForDatatype; - } - } + let authorizationToSend = buildAuthorization(); if (!(comment && comment.length)) { app.$buefy.dialog.prompt({ message: i18n.t("dataTypeAuthorizations.addComment"), @@ -566,7 +633,6 @@ export default { format, references, authorization, - authorizationScopes, referencesScopes, initialized, hasDependencies, @@ -577,6 +643,7 @@ export default { updateComment, confirmGrantAuthorization, createRequest, + updateAuthorization }; }, }; -- GitLab From dea2e67c1fdd663b55430af8b0cab3cb6a2b1b51 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 23 Oct 2024 13:50:00 +0200 Subject: [PATCH 26/52] =?UTF-8?q?cr=C3=A9ation=20demande=20authorization?= =?UTF-8?q?=20fait=20avec=20test=20http?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/application/LoadMonSores.http | 34 ++++++++++++++- ui/src/services/rest/RequestRightsService.js | 2 +- .../AuthorizationsRightsRequestInfoView.vue | 43 +++++++++++-------- 3 files changed, 60 insertions(+), 19 deletions(-) diff --git a/src/test/resources/http/application/LoadMonSores.http b/src/test/resources/http/application/LoadMonSores.http index 71b12fbb3..db600ad65 100644 --- a/src/test/resources/http/application/LoadMonSores.http +++ b/src/test/resources/http/application/LoadMonSores.http @@ -352,4 +352,36 @@ GET http://localhost:8081/api/v1/applications/monsore/data/pem/json? "authorizationDescriptions":[ ], "dataType":"pem", "applicationNameOrId":"monsore" - } \ No newline at end of file + } + +### création d'une demande de droit d'accès aux données +POST http://localhost:8081/api/v1/applications/monsore/rightsRequest +Content-Type: application/json + +{ + "id": null, + "fields": { + "float": "10.005", + "number": "5", + "endDate": "31/10/2024", + "project": "projet manche en text", + "startDate": "01/10/2024", + "organization": "besoin des données de scarff", + "selcetProject": "projet_manche" + }, + "rightsRequest": { + "uuid": null, + "name": "Demande d'autorisations pour l'utilisateur echo", + "description": "null", + "usersId": [ + "e7057a19-5f23-4f92-b556-a12b1ee750e6" + ], + "authorizationForAll": { + "variables_et_unites_par_types_de_donnees": [ + "extraction" + ] + }, + "authorizationsWithRestriction": {} + }, + "comment": "demande pour philippe" +} \ No newline at end of file diff --git a/ui/src/services/rest/RequestRightsService.js b/ui/src/services/rest/RequestRightsService.js index 47c6d44b7..a492cd47f 100644 --- a/ui/src/services/rest/RequestRightsService.js +++ b/ui/src/services/rest/RequestRightsService.js @@ -20,6 +20,6 @@ export class RequestRightsService extends Fetcher { } async createRequestRights(applicationName, requestRights) { - return this.post(`/applications/${applicationName}/rightsRequest`, requestRights, false); + return this.post(`applications/${applicationName}/rightsRequest`, requestRights, false); } } diff --git a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue index 2fb8a471b..36aa71509 100644 --- a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue +++ b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue @@ -363,7 +363,7 @@ export default { uuids: [props.authorizationId], } ); - currentUser = request.users.find( + currentUser = [request.users.find( (user) => user.id === ((request && @@ -371,7 +371,7 @@ export default { request.rightsRequests[0] && request.rightsRequests[0].user) || JSON.parse(localStorage.authenticatedUser).id) - ); + )] || [JSON.parse(localStorage.authenticatedUser)]; let rightsRequest = request.rightsRequests[0]; comment = rightsRequest.comment; changeFields( @@ -525,8 +525,8 @@ export default { return { uuid: props.authorizationId === "new" ? null : props.authorizationId, name: i18n.t("dataTypeAuthorizations.title", { label: currentUser.login }), - description: null, - usersId: currentUser.id, + description: "null", + usersId: [currentUser.id], authorizationForAll, authorizationsWithRestriction, }; @@ -540,18 +540,26 @@ export default { try { let authorizationToSend = buildAuthorization(); if (!(comment && comment.length)) { - app.$buefy.dialog.prompt({ - message: i18n.t("dataTypeAuthorizations.addComment"), - inputAttrs: { - placeholder: i18n.t("dataTypeAuthorizations.commentExample"), - maxlength: 255, - minLength: 3, - canCancel: false, - confirmText: i18n.t("dataTypeAuthorizations.grantRequestConfirm"), - }, - trapFocus: true, - onConfirm: (value) => (comment = value), - }); + await new Promise((resolve) => { + app.$buefy.dialog.prompt({ + message: i18n.t("dataTypeAuthorizations.addComment"), + inputAttrs: { + placeholder: i18n.t("dataTypeAuthorizations.commentExample"), + maxlength: 255, + minLength: 3, + canCancel: false, + confirmText: i18n.t("dataTypeAuthorizations.grantRequestConfirm"), + }, + trapFocus: true, + onConfirm: (value) => { + comment = value; + resolve(); + }, + onCancel: () => { + resolve(); + } + }); + }) } await services.requestRightsService.createRequestRights(props.applicationName, { id: props.authorizationId === "new" ? null : props.authorizationId, @@ -564,10 +572,11 @@ export default { services.alertService.toastSuccess(i18n.t("alert.create-request")); } else if (isSetted) { services.alertService.toastSuccess(i18n.t("alert.valid-request")); + await app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); } else { services.alertService.toastSuccess(i18n.t("alert.modified-request")); } - await app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + await app.$router.push(`/applications/${props.applicationName}`); } catch (error) { services.alertService.toastServerError(error); } -- GitLab From 294524f16690a398d64f1df8b4e0f032389eec75 Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Wed, 23 Oct 2024 17:35:23 +0200 Subject: [PATCH 27/52] Fin de la correction des tests pour la modification du fichier de configuration --- .../configuration/AdditionalFileField.java | 2 +- .../configuration/RightsRequestField.java | 2 +- .../InternationalizationAdditionalFile.java | 1 + .../configuration/type/ApplicationType.java | 2 +- .../configuration/type/FinalType.java | 2 +- .../configuration/type/I18nType.java | 21 +- .../configuration/type/RightRequestType.java | 2 +- .../persistence/flyway/MigrateService.java | 19 - .../fr/inra/oresing/rest/OreSiService.java | 1 + .../builder/AdditionalFilesBuilder.java | 12 +- .../builder/DataAndComponentTestDoublon.java | 22 +- .../configuration/builder/FieldBuilder.java | 19 +- .../model/configuration/builder/I18n.java | 1 + .../builder/NodeSchemaValidator.java | 4 +- .../PatternComponentAdjacentsBuilder.java | 2 +- .../builder/RightsRequestBuilder.java | 12 +- .../configuration/builder/RootBuilder.java | 2 +- .../ApplicationConfigurationServiceTest.java | 127 +-- .../inra/oresing/rest/OreSiResourcesTest.java | 26 +- .../data/configuration/configuration.yaml | 594 +++++++----- .../data/configuration/data.result.json | 328 ++++--- .../configuration/data.result.monsore.json | 132 ++- .../localization.monsore.result.json | 895 ++++++++++++++---- .../configuration/localization.result.json | 781 +++++++++------ src/test/resources/data/monsore/monsore.yaml | 752 ++++++++++----- .../data/multiplicity/multiplicity.yaml | 8 +- src/test/resources/data/pattern/pattern.yaml | 156 ++- .../data/recursivite/recusivite.yaml | 162 ++-- .../data/validation/broken-fake-app.yaml | 263 +++-- .../fixtures/applications/errors/errors.json | 2 +- .../ore/monsore/changeMonsore.txt | 34 +- .../ore/monsore/createMonsore.txt | 42 +- .../ore/monsore/validateMonsore.txt | 20 +- 33 files changed, 2999 insertions(+), 1449 deletions(-) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/AdditionalFileField.java b/src/main/java/fr/inra/oresing/domain/application/configuration/AdditionalFileField.java index 68851b026..c5f15393f 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/AdditionalFileField.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/AdditionalFileField.java @@ -2,6 +2,6 @@ package fr.inra.oresing.domain.application.configuration; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; -public record AdditionalFileField(FieldDescriptionType type, boolean required, +public record AdditionalFileField(int order, FieldDescriptionType type, boolean required, CheckerDescription checker) implements FieldDescription { } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/RightsRequestField.java b/src/main/java/fr/inra/oresing/domain/application/configuration/RightsRequestField.java index 417b6ab04..7b20883a8 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/RightsRequestField.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/RightsRequestField.java @@ -2,6 +2,6 @@ package fr.inra.oresing.domain.application.configuration; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; -public record RightsRequestField(FieldDescriptionType type, boolean required, +public record RightsRequestField(int order, FieldDescriptionType type, boolean required, CheckerDescription checker) implements FieldDescription { } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAdditionalFile.java b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAdditionalFile.java index db25aee3a..c7b672028 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAdditionalFile.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/internationalization/InternationalizationAdditionalFile.java @@ -9,6 +9,7 @@ import java.util.Map; @Setter @Getter public class InternationalizationAdditionalFile { + public static final String I_18_N = "i18n"; InternationalizationTitle i18n; Map<String, InternationalizationTitle> fields = Map.of(); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationType.java index 4753903fb..7e5fa2bb5 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/ApplicationType.java @@ -2,7 +2,7 @@ package fr.inra.oresing.domain.application.configuration.type; public sealed interface ApplicationType extends IntermediaryType - permits AdditionalFileType, ApplicationDescriptionType, ApplicationType.ComponentType, AuthorizationType, CheckerType, ConstantImportHeaderType, DataType, DatagroupType, FileNameType, FormatType, ReferenceScopeType, ReferenceType, RightRequestType, RootType, SubmissionScopeType, SubmissionTimeScopeType, SubmissionType, TagType, TimeScopeType, TitleType, ValidationType { + permits AdditionalFileType, ApplicationDescriptionType, ApplicationType.ComponentType, AuthorizationType, CheckerType, ConstantImportHeaderType, DataType, DatagroupType, FileNameType, FormatType, I18nType, ReferenceScopeType, ReferenceType, RightRequestType, RootType, SubmissionScopeType, SubmissionTimeScopeType, SubmissionType, TagType, TimeScopeType, TitleType, ValidationType { sealed interface ComponentType extends ApplicationType permits BasicComponentType, ComputedComponentType, ConstantComponentType, DynamicComponentType, PatternComponentAdjacentType, PatternComponentQualifierType, PatternComponentType { ComponentType EMPTY_INSTANCE = null; diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/FinalType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/FinalType.java index dc000ac53..df5ebde6a 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/FinalType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/FinalType.java @@ -2,7 +2,7 @@ package fr.inra.oresing.domain.application.configuration.type; import fr.inra.oresing.domain.application.configuration.section.SectionBuilder; -public sealed interface FinalType<T> extends ConfigurationSchemaNodeType<T> permits BooleanType, EnumType, FloatType, I18nType, IntegerType, StringType { +public sealed interface FinalType<T> extends ConfigurationSchemaNodeType<T> permits BooleanType, EnumType, FloatType, IntegerType, StringType { default String buildExample(final int level) { return children().toString() + "%s\n".formatted(required() ? " #mandatory" : " #optional"); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/I18nType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/I18nType.java index c5dd20ee0..4f088f1ae 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/I18nType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/I18nType.java @@ -3,17 +3,30 @@ package fr.inra.oresing.domain.application.configuration.type; import com.google.common.base.Strings; import fr.inra.oresing.domain.application.configuration.section.SectionBuilder; +import java.util.Locale; import java.util.Map; +import java.util.function.Predicate; public record I18nType(SectionBuilder sectionBuilder, Map<String, String> children, boolean required, - boolean nullable) implements FinalType<Map<String, String>> { - public static SectionBuilder SECTION_BUILDER(){ + boolean nullable) implements ApplicationType { + public static SectionBuilder SECTION_BUILDER() { return SectionBuilder.getInstance() - .withLocalType(); + .withAnyOfMandatorySections( + Locale.availableLocales() + .map(Locale::getLanguage) + .filter(Predicate.not(String::isEmpty)) + .map(locale -> new LabelDescription( + locale, + StringType.EMPTY_INSTANCE() + )) + .toArray(LabelDescription[]::new) + + ); } - public static I18nType EMPTY_INSTANCE(){ + + public static I18nType EMPTY_INSTANCE() { return new I18nType(Map.of(), RootType.CHECKING.NO_CHECK); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/type/RightRequestType.java b/src/main/java/fr/inra/oresing/domain/application/configuration/type/RightRequestType.java index 0adfa1a5a..917ff959d 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/type/RightRequestType.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/type/RightRequestType.java @@ -15,7 +15,7 @@ public record RightRequestType(SectionBuilder sectionBuilder, new LabelDescription(ConfigurationSchemaNode.OA_FORM_FIELDS, FormatType.EMPTY_INSTANCE()) ) .withOptionalSections( - new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, I18nType.EMPTY_INSTANCE()) + new LabelDescription(ConfigurationSchemaNode.OA_I_18_N, TitleType.EMPTY_INSTANCE()) ); } public static RightRequestType EMPTY_INSTANCE(){ diff --git a/src/main/java/fr/inra/oresing/persistence/flyway/MigrateService.java b/src/main/java/fr/inra/oresing/persistence/flyway/MigrateService.java index d61a3fd6e..0524c4ec3 100644 --- a/src/main/java/fr/inra/oresing/persistence/flyway/MigrateService.java +++ b/src/main/java/fr/inra/oresing/persistence/flyway/MigrateService.java @@ -226,13 +226,8 @@ public class MigrateService { Statement statement = connection.createStatement(); OreSiApplicationCreatorRole applicationCreator = OreSiRole.applicationCreator(); authenticationService.resetRole(); - - final OreSiUserRole creator = authenticationService.getUserRole(request.getRequestUserId()); - final SqlSchemaForApplication sqlSchemaForApplication = SqlSchema.forApplication(application); final OreSiRightOnApplicationRole applicationManagerOnApplicationRole = OreSiRightOnApplicationRole.adminOn(application); final OreSiRightOnApplicationRole userManagerOnApplicationRole = OreSiRightOnApplicationRole.userAdminOn(application); - final OreSiRightOnApplicationRole readerOnApplicationRole = OreSiRightOnApplicationRole.readerOn(application); - final OreSiRightOnApplicationRole writerOnApplicationRole = OreSiRightOnApplicationRole.writerOn(application); @@ -275,20 +270,6 @@ public class MigrateService { "\"user\"::text = current_user::text" ).policyToCreateSql()); - /* - set all on rightrequest for user lines - */ - /*statement.execute(""" - CREATE POLICY \"%s\" - ON \"%s\" - AS PERMISSIVE - USING ( \"user\" = current_role::uuid) - WITH CHECK (\"user\" = current_role::uuid)""" - .formatted( - String.join("own", "rightrequest", ""), - SqlSchema.forApplication(application).rightsRequest().getSqlIdentifier()) - );*/ - /* all on additionalBinaryFile for applicationId for all */ diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index 4cfea2754..eb7cc2a96 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -441,6 +441,7 @@ public class OreSiService { progressionForParsingConfiguration.pushMessage("endparsing", Map.of("applicationName", applicationName)); String comment1 = configuration.applicationDescription().comment(); try { + application.setName(applicationName); application = createOrModifySchema.apply(application); final UUID confId = binaryFileService.storeFile(application, configurationFile, comment1, null); application.setConfigFile(confId); diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/AdditionalFilesBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/AdditionalFilesBuilder.java index 6c9c07acf..3b806ff86 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/AdditionalFilesBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/AdditionalFilesBuilder.java @@ -3,8 +3,10 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.AdditionalFileDescription; +import fr.inra.oresing.domain.application.configuration.AdditionalFileField; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.application.configuration.FieldDescription; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationAdditionalFile; import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; @@ -12,6 +14,7 @@ import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import java.util.Iterator; import java.util.Map; import java.util.Optional; +import java.util.concurrent.atomic.AtomicInteger; public record AdditionalFilesBuilder(RootBuilder rootBuilder) { @@ -29,12 +32,13 @@ public record AdditionalFilesBuilder(RootBuilder rootBuilder) { NodeSchemaValidator.joinI18nPath( Internationalizations.ADDITIONAL_FILES, additionalType, - InternationalizationData.I18N + InternationalizationAdditionalFile.I_18_N ), rootBuilder.getMapper() - .convertValue(additionalTypeValue.findPath(ConfigurationSchemaNode.OA_I_18_N), + .convertValue(additionalTypeValue.get(ConfigurationSchemaNode.OA_I_18_N), Map.class)); - final Parsing<Map<String, FieldDescription>> oaFormat = Optional.ofNullable(additionalTypeValue.get(ConfigurationSchemaNode.OA_FORM_FIELDS)) + final Parsing<ImmutableMap<String, FieldDescription>> oaFormat = Optional + .ofNullable(additionalTypeValue.get(ConfigurationSchemaNode.OA_FORM_FIELDS)) .map(JsonNode::fields) .map(entryIterator -> rootBuilder.getFieldBuilder() .build(ConfigurationSchemaNode.OA_ADDITIONAL_FILES, FieldDescription.FieldDescriptionType.AdditionalFileField, localI18n, entryIterator, @@ -44,7 +48,7 @@ public record AdditionalFilesBuilder(RootBuilder rootBuilder) { ConfigurationSchemaNode.OA_FORM_FIELDS), NodeSchemaValidator.joinI18nPath(Internationalizations.ADDITIONAL_FILES, additionalType) )) - .orElse(new Parsing<Map<String, FieldDescription>>(i18n1, null)); + .orElse(new Parsing<ImmutableMap<String, FieldDescription>>(i18n1, null)); builder.put(additionalType, new AdditionalFileDescription(oaFormat.result())); i18n1 = oaFormat.i18n(); } catch (final IllegalArgumentException illegalArgumentException) { diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java index 111472267..8ce08ef27 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java @@ -6,7 +6,6 @@ import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import java.util.*; -import java.util.stream.Collectors; import static fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode.*; @@ -27,9 +26,9 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis this.rootBuilder = rootBuilder; } - public void testUniqueData(final JsonNode dataNodes) { + public void testUniqueComponentsForData(final JsonNode dataNodes) { Arrays.stream(COMPONENT_SECTIONS) - .forEach(component -> testUniqueData(dataNodes, component)); + .forEach(component -> testUniqueComponentsForData(dataNodes, component)); final List<Entry<String, List<String>>> duplicatedComponentLabels = values().stream() .flatMap(map -> map.entrySet().stream()) .filter(entry -> entry.getValue().size() > 1) @@ -65,7 +64,7 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis } } - private void testUniqueData(final JsonNode dataNodes, final String componentType) { + private void testUniqueComponentsForData(final JsonNode dataNodes, final String componentType) { dataNodes.fieldNames().forEachRemaining(dataName -> { dataNodes.get(dataName) .findPath(componentType) @@ -78,10 +77,21 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis .findPath(dataName) .findPath(OA_PATTERN_COMPONENTS) .findPath(componentName) - .findPath(OA_COMPONENTS)) { + .findPath(OA_COMPONENT_QUALIFIERS)) { componentComponentNode.fieldNames().forEachRemaining(componentComponentName -> { - final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENTS, componentComponentName); + final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENT_QUALIFIERS, componentComponentName); + addPathesForNode(componentComponentNode, dataName, componentComponentName, componentComponentPath); + }); + } + for (final JsonNode componentComponentNode : dataNodes + .findPath(dataName) + .findPath(OA_PATTERN_COMPONENTS) + .findPath(componentName) + .findPath(OA_COMPONENT_ADJACENTS)) { + componentComponentNode.fieldNames().forEachRemaining(componentComponentName -> + { + final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENT_ADJACENTS, componentComponentName); addPathesForNode(componentComponentNode, dataName, componentComponentName, componentComponentPath); }); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/FieldBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/FieldBuilder.java index 3a80027ec..32fe43ad6 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/FieldBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/FieldBuilder.java @@ -13,8 +13,15 @@ import java.util.Optional; public record FieldBuilder(RootBuilder rootBuilder) { - Parsing<Map<String, FieldDescription>> build(final String fieldpath, final FieldDescription.FieldDescriptionType type, I18n i18n, final Iterator<Map.Entry<String, JsonNode>> iterator, final String path, final String i18nPath) { - final ImmutableMap.Builder<String, FieldDescription> fields = new ImmutableMap.Builder<String, FieldDescription>(); + <FD extends FieldDescription> Parsing<ImmutableMap<String, FD>> build( + final String fieldpath, + final FieldDescription.FieldDescriptionType type, + I18n i18n, + final Iterator<Map.Entry<String, JsonNode>> iterator, + final String path, + final String i18nPath) { + final ImmutableMap.Builder<String, FD> fields = new ImmutableMap.Builder<String, FD>(); + int index = 0; while (iterator.hasNext()) { final Map.Entry<String, JsonNode> entry = iterator.next(); final String fieldKey = entry.getKey(); @@ -39,7 +46,13 @@ public record FieldBuilder(RootBuilder rootBuilder) { fieldNode.get(ConfigurationSchemaNode.OA_CHECKER), null); i18n = checkerDescriptionParsing.i18n(); - fields.put(fieldKey, new RightsRequestField(type, required, checkerDescriptionParsing.result())); + FD fieldDescription = switch (type) { + case RightsRequestField -> + (FD) new RightsRequestField(index++, type, required, checkerDescriptionParsing.result()); + case AdditionalFileField -> + (FD) new AdditionalFileField(index++, type, required, checkerDescriptionParsing.result()); + }; + fields.put(fieldKey, fieldDescription); } return new Parsing<>(i18n, fields.build()); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java index b050daf78..c4fe925a3 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/I18n.java @@ -40,6 +40,7 @@ public record I18n(Map i18n) { final Map<String, Map> localizations = i18n(); Map<String, Map> currentLocalization = localizations; for (int i = 0; i < labels.length - 1; i++) { + currentLocalization = currentLocalization.computeIfAbsent(labels[i], a -> new HashMap<>()); } if (i18n != null) { diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/NodeSchemaValidator.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/NodeSchemaValidator.java index 2695e4e50..6a1f48ac1 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/NodeSchemaValidator.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/NodeSchemaValidator.java @@ -126,7 +126,7 @@ public class NodeSchemaValidator { when !node.isFloat() && !node.isDouble() -> { rootBuilder.buildError(ConfigurationException.BAD_FLOAT_REQUIRED_SECTIONS, Map.of("givenValue", node.asText()), path); yield false; - } + }/* case I18nType i18nType -> { try { if (!rootBuilder.getMapper().readValue(node.binaryValue(), Map.class) @@ -140,7 +140,7 @@ public class NodeSchemaValidator { rootBuilder.buildError(ConfigurationException.BAD_LOCALE_SECTION_TYPE, Map.of(), path); yield false; } - } + }*/ case IntegerType integerType when !node.isInt() -> { rootBuilder.buildError(ConfigurationException.BAD_INTEGER_REQUIRED_SECTIONS, Map.of("givenValue", node.asText()), path); diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java index 95aec8e0c..df1396d6a 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java @@ -24,7 +24,7 @@ public record PatternComponentAdjacentsBuilder(RootBuilder rootBuilder) { final JsonNode patternComponentNode ) { final ArrayNode componentsArrayNode = Optional.ofNullable(patternComponentNode) - .map(node -> node.findPath(ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS)) + .map(node -> node.get(ConfigurationSchemaNode.OA_COMPONENT_ADJACENTS)) .map(ArrayNode.class::cast) .orElse(new ArrayNode(JsonNodeFactory.instance)); if (!componentsArrayNode.isEmpty()) { diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RightsRequestBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RightsRequestBuilder.java index 24335befa..9647f6d5f 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RightsRequestBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RightsRequestBuilder.java @@ -1,6 +1,7 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; +import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.application.configuration.FieldDescription; import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationRightrequest; @@ -14,9 +15,9 @@ import java.util.Optional; public record RightsRequestBuilder(RootBuilder rootBuilder) { Parsing<RightRequestDescription> build(final JsonNode oaRightsRequest, I18n i18n) { - final I18n localI18n; + I18n localI18n = i18n; try { - localI18n = i18n.add( + localI18n = localI18n.add( NodeSchemaValidator.joinI18nPath( Internationalizations.RIGHT_REQUEST, InternationalizationRightrequest.I_18_N @@ -35,10 +36,11 @@ public record RightsRequestBuilder(RootBuilder rootBuilder) { ConfigurationSchemaNode.OA_I_18_N )); } - final Parsing<Map<String, FieldDescription>> oaFormat = Optional.ofNullable(oaRightsRequest.get(ConfigurationSchemaNode.OA_FORM_FIELDS)) + final Parsing<ImmutableMap<String, FieldDescription>> oaFormat = Optional.ofNullable(oaRightsRequest.get(ConfigurationSchemaNode.OA_FORM_FIELDS)) .map(JsonNode::fields) - .map(entryIterator -> rootBuilder.getFieldBuilder().build(ConfigurationSchemaNode.OA_RIGHTS_REQUEST, FieldDescription.FieldDescriptionType.RightsRequestField, i18n, entryIterator, "rightsrequest.fields", Internationalizations.RIGHT_REQUEST)) - .orElse(new Parsing<Map<String, FieldDescription>>(i18n, null)); + .map(entryIterator -> rootBuilder.getFieldBuilder() + .build(ConfigurationSchemaNode.OA_RIGHTS_REQUEST, FieldDescription.FieldDescriptionType.RightsRequestField, i18n, entryIterator, "rightsrequest.fields", Internationalizations.RIGHT_REQUEST)) + .orElse(new Parsing<ImmutableMap<String, FieldDescription>>(localI18n, null)); return new Parsing<RightRequestDescription>(oaFormat.i18n(), new RightRequestDescription(oaFormat.result())); } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java index f16b36a0f..2e273f72b 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/RootBuilder.java @@ -110,7 +110,7 @@ public class RootBuilder { final Version version = getAndTestOpenAdomVersion(versionNode); if (version == null) return null; new NodeSchemaValidator(this).testSchema(RootType.EMPTY_INSTANCE(), rootNode, "").get(); - dataAndComponentTestDoublon.testUniqueData(rootNode.findPath(OA_DATA)); + dataAndComponentTestDoublon.testUniqueComponentsForData(rootNode.findPath(OA_DATA)); if (hasErrors || dataAndComponentTestDoublon.hasErrors()) { return null; } diff --git a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java index 56a995495..bab16d4af 100644 --- a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java +++ b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java @@ -19,6 +19,7 @@ import fr.inra.oresing.rest.reactive.ReactiveTypeError; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -465,29 +466,29 @@ public class ApplicationConfigurationServiceTest { @Test public void testMissingComponentNameInColumnsForAuthorization() { CONFIGURATION_INSTANCE.builder("testMissingComponentNameInColumnsForAuthorization") - .withReplace(" OA_columns: [ site ]", - " OA_columns: [ ]") + .withReplace(" OA_components: [ site ]", + " OA_components: [ ]") .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); assertEquals(ConfigurationException.MISSING_COMPONENT_FOR_COMPONENT_NAME.getMessage(), validationError.getMessage()); - assertEquals("OA_data > pem > OA_validations > reference > OA_columns", validationError.getParam("path")); + assertEquals("OA_data > pem > OA_validations > reference > OA_components", validationError.getParam("path")); final List<String> expectedComponents = Arrays.stream(new String[]{"tel_date", "date", "bassin", "espece", "chemin", "tel_experimental_network", "is_float_value", "tel_value", "site_bassin", "tel_experimental_site", "site", "projet", "tel_chemin", "ordre_affichage", "plateforme"}) .collect(Collectors.toCollection(LinkedList::new)); final Collection<String> givenComponents = (Collection<String>) validationError.getParam("knownComponents"); - assertEquals(expectedComponents, givenComponents); + Assertions.assertIterableEquals(expectedComponents, givenComponents); }); } @Test public void testMissingArray() { CONFIGURATION_INSTANCE.builder("testMissingComponentNameValidation") - .withReplace(" OA_columns: [ site ]", - " OA_columns:") + .withReplace(" OA_components: [ site ]", + " OA_components:") .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); assertEquals(ConfigurationException.MISSING_REQUIRED_VALUE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > pem > OA_validations > reference > OA_columns", validationError.getParam("path")); + assertEquals("OA_data > pem > OA_validations > reference > OA_components", validationError.getParam("path")); }); } @@ -960,45 +961,21 @@ public class ApplicationConfigurationServiceTest { }); } - @Test - public void testUnknownComponentNameForI18nColumnsInData() { - CONFIGURATION_INSTANCE.builder("testUnsuportedI18nKeyLanguageInValidation") - .withReplace(" OA_i18nColumns:\n" + - " zet_nom_key:\n" + - " fr: zet_nom_fr\n" + - " en: zet_nom_en", - " OA_i18nColumns:\n" + - " zet_nom_ke:\n" + - " fr: zet_nom_fr\n" + - " en: zet_nom_en") - .test(errors -> { - assertEquals(1, errors.size() ); - final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNKNOWN_COMPONENT_FOR_COMPONENT_NAME.getMessage(), validationError.getMessage()); - assertEquals("zet_nom_ke", validationError.getParam(("unknownComponent"))); - final List<String> expectedComponents = Arrays.stream(new String[]{"tze_type_nom","zet_description_en","zet_nom_fr","zet_nom_key","zet_nom_en","zet_chemin_parent","zet_description_fr"}) - .collect(Collectors.toCollection(LinkedList::new)); - final Collection<String> givenComponents = (Collection<String>) validationError.getParam("knownComponents"); - assertEquals(expectedComponents, givenComponents); - assertEquals("OA_data > sites > OA_i18nColumns", validationError.getParam("path")); - }); - } - @Test public void testUnknownComponentNameValidation() { CONFIGURATION_INSTANCE.builder("testunknownComponentNameValidation") - .withReplace(" OA_columns: [ site ]", - " OA_columns: [ sites ]") + .withReplace(" OA_components: [ site ]", + " OA_components: [ sites ]") .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); assertEquals(ConfigurationException.UNKNOWN_COMPONENT_FOR_COMPONENT_NAME.getMessage(), validationError.getMessage()); - assertEquals("OA_data > pem > OA_validations > reference > OA_columns", validationError.getParam(("path"))); + assertEquals("OA_data > pem > OA_validations > reference > OA_components", validationError.getParam(("path"))); assertEquals("sites", validationError.getParam(("unknownComponent"))); - final List<String> expectedComponents = Arrays.stream(new String[]{"tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value", "site_bassin","tel_experimental_site","site","projet", "tel_chemin","ordre_affichage","plateforme"}) + final List<String> expectedComponents = Arrays.stream(new String[]{"tel_date", "date", "bassin", "espece", "chemin", "tel_experimental_network", "is_float_value", "tel_value", "site_bassin", "tel_experimental_site", "site", "projet", "tel_chemin", "ordre_affichage", "plateforme"}) .collect(Collectors.toCollection(LinkedList::new)); final Collection<String> givenComponents = (Collection<String>) validationError.getParam("knownComponents"); - assertEquals(expectedComponents, givenComponents); + Assertions.assertIterableEquals(expectedComponents, givenComponents); }); } @@ -1047,8 +1024,8 @@ public class ApplicationConfigurationServiceTest { @Test public void testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents() { CONFIGURATION_INSTANCE.builder("testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents") - .withReplace("OA_referenceColumnToLookForHeader: tze_nom_key", - "OA_referenceColumnToLookForHeader: nom_key") + .withReplace("OA_referenceComponentToLookForHeader: tze_nom_key", + "OA_referenceComponentToLookForHeader: nom_key") .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); @@ -1059,7 +1036,7 @@ public class ApplicationConfigurationServiceTest { .collect(Collectors.toCollection(TreeSet::new)); final Set<String> given = new TreeSet<String>((Collection<? extends String>) validationError.getParam("listColumnsNameReference")); assertEquals(expected, given); - assertEquals("OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceColumnToLookForHeader", validationError.getParam("path")); + assertEquals("OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader", validationError.getParam("path")); }); } @@ -1146,8 +1123,8 @@ public class ApplicationConfigurationServiceTest { .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_application > OA_i18n", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_application > OA_i18n > OA_title > en > frrr", validationError.getParam("path")); }); } @@ -1159,8 +1136,8 @@ public class ApplicationConfigurationServiceTest { .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_i18n", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr", validationError.getParam("path")); }); } @@ -1172,8 +1149,8 @@ public class ApplicationConfigurationServiceTest { .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 3 > OA_exportHeader", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr", validationError.getParam("path")); }); } @@ -1185,8 +1162,8 @@ public class ApplicationConfigurationServiceTest { .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_i18n", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr", validationError.getParam("path")); }); } @@ -1198,8 +1175,8 @@ public class ApplicationConfigurationServiceTest { .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_i18n", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr", validationError.getParam("path")); }); } @@ -1211,47 +1188,34 @@ public class ApplicationConfigurationServiceTest { .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > especes > OA_i18n", validationError.getParam("path")); - }); - } - - @Test - public void testUnsuportedI18nKeyLanguageInDataI18ncolumns() { - CONFIGURATION_INSTANCE.builder("testUnsuportedI18nKeyLanguageInDataI18ncolumns") - .withReplace("fr: esp_definition_fr", - "frrr: esp_definition_fr") - .test(errors -> { - assertEquals(1, errors.size() ); - final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > especes > OA_i18nColumns > esp_definition_fr", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_data > especes > OA_i18n > OA_title > en > frrr", validationError.getParam("path")); }); } @Test public void testUnsuportedI18nKeyLanguageInDataI18ndisplay() { CONFIGURATION_INSTANCE.builder("testUnsuportedI18nKeyLanguageInDataI18ndisplay") - .withReplace("fr: '{esp_nom}'", - "frrr: '{esp_nom}'") + .withReplace("fr: \"{esp_nom}\"", + "frrr: \"{esp_nom}\"") .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > especes > OA_i18nDisplay > OA_pattern", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr", validationError.getParam("path")); }); } @Test public void testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n() { CONFIGURATION_INSTANCE.builder("testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n") - .withReplace("fr: \"experimental network\"", - "frrr: \"experimental network\"") + .withReplace("fr: \"nom du réseau expérimental\"", + "frrr: \"nom du réseau expérimental\"") .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_i18n", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr", validationError.getParam("path")); }); } @@ -1263,8 +1227,8 @@ public class ApplicationConfigurationServiceTest { .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_rightsRequest > OA_description > OA_i18n", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_rightsRequest > OA_i18n > OA_description > en > frrr", validationError.getParam("path")); }); } @@ -1276,8 +1240,8 @@ public class ApplicationConfigurationServiceTest { .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.UNSUPORTED_I18N_KEY_LANGUAGE.getMessage(), validationError.getMessage()); - assertEquals("OA_data > pem > OA_validations > reference", validationError.getParam("path")); + assertEquals(ConfigurationException.UNEXPECTED_SECTIONS.getMessage(), validationError.getMessage()); + assertEquals("OA_data > pem > OA_validations > reference > OA_i18n > frrr", validationError.getParam("path")); }); } @@ -1316,8 +1280,8 @@ public class ApplicationConfigurationServiceTest { } @Test - public void testduplicatedComponentIncomponentComponent() { - CONFIGURATION_INSTANCE.builder("testUnsuportedI18nKeyLanguageInValidation") + public void testduplicatedComponentInPatternComponent() { + CONFIGURATION_INSTANCE.builder("testduplicatedComponentInPatternComponent") .withReplace("tel_experimental_site", "tel_date") .test(errors -> { @@ -1325,10 +1289,13 @@ public class ApplicationConfigurationServiceTest { final ValidationError validationError = errors.get(0); assertEquals(ConfigurationException.DUPLICATED_COMPONENT_NAME.getMessage(), validationError.getMessage()); assertIterableEquals( - List.of("OA_data > pem > OA_constantComponents > tel_date", "OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date"), + List.of( + "OA_data > pem > OA_constantComponents > tel_date", + "OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date" + ), (Iterable<String>) validationError.getParam("duplicatedPathes") ); - assertEquals("OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date", validationError.getParam("path")); + assertEquals("OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date", validationError.getParam("path")); }); } diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index 1150cb5ff..2d26f6d3f 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -302,7 +302,7 @@ public class OreSiResourcesTest { final ApplicationResult applicationResult = (ApplicationResult) jsonRowMapper.readValue(response, ApplicationResult.class); - Assertions.assertEquals("Fichier de test de l'application brokenADOM", applicationResult.comment()); + Assertions.assertEquals("Fichier de test de l'application brokenADOM version initiale", applicationResult.comment()); Assertions.assertEquals("monsoresimple", applicationResult.name()); Assert.assertEquals( new TreeSet<>(Set.of("themes", "especes", "site_theme_datatype", "variables", "type_de_sites", "unites", "projet", "valeurs_qualitatives", "type_de_fichiers", "variables_et_unites_par_types_de_donnees")), @@ -391,16 +391,16 @@ public class OreSiResourcesTest { .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_OCTET_STREAM)) .andExpect(result -> { final List<String> expected = """ - "zet_chemin_parent";"zet_nom_key";"tze_type_nom";"zet_description_en";"zet_description_fr";"zet_nom_en";"zet_nom_fr" - "";"nivelle";"Watershed";"Watershed Nivelle";"Bassin versant de Nivelle";"Nivelle";"Nivelle" - "";"oir";"Watershed";"Oir catchment";"Bassin versant d'Oir";"Oir";"Oir" - "";"scarff";"Watershed";"Watershed Scarff";"Bassin versant de Scarff";"Scarff";"Scarff" - "Nivelle";"p1";"Platform";"";"";"P1";"P1" - "Oir";"p1";"Platform";"";"";"P1";"P1" - "P1";"a";"Platform";"";"";"A";"A" - "P1";"b";"Platform";"";"";"B";"B" - "Oir";"p2";"Platform";"";"";"P2";"P2" - "Scarff";"p1";"Platform";"";"";"P1";"P1\"""" + "zet_chemin_parent";"zet_nom_key";"tze_type_nom";"zet_description_en";"zet_description_fr";"zet_nom_en";"zet_nom_fr" + "";"nivelle";"bassin_versant";"Watershed Nivelle";"Bassin versant de Nivelle";"Nivelle";"Nivelle" + "";"oir";"bassin_versant";"Oir catchment";"Bassin versant d'Oir";"Oir";"Oir" + "";"scarff";"bassin_versant";"Watershed Scarff";"Bassin versant de Scarff";"Scarff";"Scarff" + "nivelle";"p1";"plateforme";"";"";"P1";"P1" + "oir";"p1";"plateforme";"";"";"P1";"P1" + "oir__p1";"a";"plateforme";"";"";"A";"A" + "oir__p1";"b";"plateforme";"";"";"B";"B" + "oir";"p2";"plateforme";"";"";"P2";"P2" + "scarff";"p1";"plateforme";"";"";"P1";"P1\"""" .lines().collect(Collectors.toCollection(LinkedList::new)); final List<String> actual = new String(result.getResponse().getContentAsByteArray()) .lines().collect(Collectors.toCollection(LinkedList::new)); @@ -2324,7 +2324,7 @@ public class OreSiResourcesTest { .andExpect(jsonPath("$.data.taxon.componentDescriptions.proprietesDeTaxon.type", IsEqual.equalTo("DynamicComponent"))) .andExpect(jsonPath("$.data.taxon.componentDescriptions.proprietesDeTaxon.reference", IsEqual.equalTo("proprietes_taxon"))) .andExpect(jsonPath("$.data.taxon.componentDescriptions.proprietesDeTaxon.prefix", IsEqual.equalTo("pt_"))) - .andExpect(jsonPath("$.internationalization.data.taxon.components.proprietesDeTaxon.exportHeader.en", IsEqual.equalTo("Properties of Taxa"))) + .andExpect(jsonPath("$.internationalization.data.taxon.components.proprietesDeTaxon.exportHeader.title.en", IsEqual.equalTo("Taxa properties"))) .andReturn().getResponse().getContentAsString(); } catch (final Throwable e) { @@ -2409,7 +2409,7 @@ public class OreSiResourcesTest { .andExpect(jsonPath("$.data.taxon.componentDescriptions.proprietesDeTaxon.type", IsEqual.equalTo("DynamicComponent"))) .andExpect(jsonPath("$.data.taxon.componentDescriptions.proprietesDeTaxon.reference", IsEqual.equalTo("proprietes_taxon"))) .andExpect(jsonPath("$.data.taxon.componentDescriptions.proprietesDeTaxon.prefix", IsEqual.equalTo("pt_"))) - .andExpect(jsonPath("$.internationalization.data.taxon.components.proprietesDeTaxon.exportHeader.en", IsEqual.equalTo("Properties of Taxa"))) + .andExpect(jsonPath("$.internationalization.data.taxon.components.proprietesDeTaxon.exportHeader.title.en", IsEqual.equalTo("Properties of Taxa"))) .andReturn().getResponse().getContentAsString(); } catch (final Throwable e) { diff --git a/src/test/resources/data/configuration/configuration.yaml b/src/test/resources/data/configuration/configuration.yaml index 309357c67..06c4e7a20 100644 --- a/src/test/resources/data/configuration/configuration.yaml +++ b/src/test/resources/data/configuration/configuration.yaml @@ -18,8 +18,12 @@ OA_tags: OA_application: OA_name: monapplication OA_i18n: - fr: Mon application - en: My application + OA_title: + fr: Mon application + en: My application + OA_description: + fr: Si de mon application + en: My application SI OA_version: 4.0.1 OA_defaultLanguage: en OA_comment: une application de test @@ -27,16 +31,19 @@ OA_data: especes: OA_tags: [ data ] OA_i18n: - fr: Espèces - en: Species - OA_i18nColumns: - esp_definition_fr: - fr: esp_definition_fr - en: esp_definition_en - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Espèces + en: Species + OA_description: + fr: Liste d'espèces + en: Species list + OA_i18nDisplayPattern: + OA_title: fr: '{esp_nom}' en: '{esp_nom}' + OA_description: + fr: '{esp_definition_en}' + en: '{esp_definition_en}' OA_naturalKey: - esp_nom OA_basicComponents: @@ -54,19 +61,19 @@ OA_data: projet: OA_tags: [ context, data, test ] OA_i18n: - fr: Projet - en: Project - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Projet + en: Project + OA_description: + fr: Liste de projets + en: Projects list + OA_i18nDisplayPattern: + OA_title: + fr: '{nom_fr}' + en: '{nom_en}' + OA_description: + fr: '{definition_fr}' + en: '{definition_en}' OA_naturalKey: - nom_key OA_basicComponents: @@ -82,19 +89,19 @@ OA_data: - zet_chemin_parent - zet_nom_key OA_i18n: - fr: Site - en: Site - OA_i18nColumns: - zet_nom_key: - fr: zet_nom_fr - en: zet_nom_en - zet_description_fr: - fr: zet_description_fr - en: zet_description_en - OA_i18nDisplay: - OA_pattern: - fr: '{zet_nom_key}' - en: '{zet_nom_key}' + OA_title: + fr: Site + en: Site + OA_description: + fr: Liste de sites + en: Sites list + OA_i18nDisplayPattern: + OA_title: + fr: '{zet_nom_fry}' + en: '{zet_nom_en}' + OA_description: + fr: '{zet_description_fr}' + en: '{zet_description_en}' OA_basicComponents: tze_type_nom: OA_checker: @@ -120,8 +127,12 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Parcelle - en: Plot + OA_title: + fr: Parcelle + en: Plot + OA_description: + fr: Liste de parcelles + en: Plots list OA_basicComponents: nom_key: experimental_plot: @@ -129,8 +140,12 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Parcelle - en: Plot + OA_title: + fr: Parcelle expérimentale + en: Experimental plot + OA_description: + fr: Liste de parcelles expérimentales + en: Experimental plots list OA_basicComponents: nom_key: themes: @@ -138,19 +153,19 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Thème - en: Thematic - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - description_fr: - fr: description_fr - en: description_en - OA_i18nDisplay: - pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Thème + en: Thematic + OA_description: + fr: Liste de thèmes + en: Thematics list + OA_i18nDisplayPattern: + OA_title: + fr: '{nom_fr}' + en: '{nom_en}' + OA_description: + fr: '{description_fr}' + en: '{description_en}' OA_basicComponents: nom_key: null nom_fr: null @@ -162,19 +177,19 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Types de fichiers - en: Files types - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - description_fr: - fr: description_fr - en: description_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Types de fichiers + en: Files types + OA_description: + fr: Liste de types de fichiers + en: Files types list + OA_i18nDisplayPattern: + OA_title: + fr: '{nom_fr}' + en: '{nom_en}' + OA_description: + fr: '{description_fr}' + en: '{description_en}' OA_basicComponents: nom_key: null nom_fr: null @@ -186,19 +201,19 @@ OA_data: OA_naturalKey: - tze_nom_key OA_i18n: - fr: Types de sites - en: Sites types - OA_i18nColumns: - tze_nom_key: - fr: tze_nom_fr - en: tze_nom_en - tze_definition_fr: - fr: tze_definition_fr - en: tze_definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{tze_nom_key}' - en: '{tze_nom_key}' + OA_title: + fr: Types de sites + en: Sites types + OA_description: + fr: Liste de types de sites + en: Sites types list + OA_i18nDisplayPattern: + OA_title: + fr: '{tze_nom_fr}' + en: '{tze_nom_en}' + OA_description: + fr: '{tze_definition_fr}' + en: '{tze_definition_en}' OA_basicComponents: tze_nom_key: null tze_nom_fr: null @@ -208,10 +223,21 @@ OA_data: site_theme_datatype: OA_tags: [ context ] OA_i18n: - fr: Types de données par site et projet - en: Data types by site and project - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Types de données par site et projet + en: Data types by site and project + OA_description: + fr: Liste de types de données par site et projet + en: Data types by site and project list + OA_i18nDisplayPattern: + OA_title: + fr: >- + nom du projet: {projet}, nom du site : {site}, nom du + thème : {theme}, nom du type de données : {datatype} + en: >- + projet name: {projet}, site name : {site}, theme name : + {theme}, data type name : {datatype} + OA_description: fr: >- nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype} @@ -227,7 +253,7 @@ OA_data: OA_params: OA_reference: OA_name: sites - OA_columns: [ site ] + OA_components: [ site ] themesRef: OA_i18n: fr: référence au theme @@ -236,11 +262,11 @@ OA_data: OA_params: OA_reference: OA_name: themes - OA_columns: [ theme ] + OA_components: [ theme ] checkDatatype: OA_i18n: fr: test - OA_columns: [ datatype ] + OA_components: [ datatype ] OA_checker: OA_name: OA_groovyExpression OA_params: @@ -282,19 +308,19 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Unités - en: Units - OA_i18nColumns: - code_key: - fr: code_fr - en: code_en - nom_key: - fr: nom_fr - en: nom_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key} ({code_key})' - en: '{nom_key} ({code_key})' + OA_title: + fr: Unités + en: Units + OA_description: + fr: Liste d'unités + en: Units list + OA_i18nDisplayPattern: + OA_title: + fr: '{nom_fr} ({code_fr})' + en: '{nom_en} ({code_en})' + OA_description: + fr: '{nom_fr} ({code_fr})' + en: '{nom_en} ({code_en})' OA_basicComponents: code_key: null code_fr: null @@ -308,19 +334,19 @@ OA_data: - nom_key - valeur_key OA_i18n: - fr: Valeurs qualitatives - en: Qualitative values - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - valeur_key: - fr: valeur_fr - en: valeur_en - OA_i18nDisplay: - OA_pattern: - fr: '{valeur_key}' - en: '{valeur_key}' + OA_title: + fr: Valeurs qualitatives + en: Qualitative values + OA_description: + fr: Valeurs qualitatives + en: Qualitative values + OA_i18nDisplayPattern: + OA_title: + fr: '{nom_fr} : {valeur_fr}' + en: '{nom_en} : {valeur_en}' + OA_description: + fr: '{valeur_fr} de la liste {nom_fr}' + en: '{valeur_en} of list {nom_en}' OA_basicComponents: nom_key: null nom_fr: null @@ -333,19 +359,19 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Variables - en: Variables - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Variables + en: Variables + OA_description: + fr: Liste de variables + en: Variables list + OA_i18nDisplayPattern: + OA_title: + fr: '{nom_fr}' + en: '{nom_en}' + OA_description: + fr: '{definition_fr}' + en: '{definition_en}' OA_basicComponents: nom_key: null nom_fr: null @@ -366,7 +392,7 @@ OA_data: OA_params: OA_reference: OA_name: variables - OA_columns: [ variable ] + OA_components: [ variable ] uniteRef: OA_i18n: fr: référence à l'unité' @@ -375,11 +401,11 @@ OA_data: OA_params: OA_reference: OA_name: unites - OA_columns: [ unite ] + OA_components: [ unite ] checkDatatype: OA_i18n: fr: test - OA_columns: [ datatype ] + OA_components: [ datatype ] OA_checker: OA_name: OA_groovyExpression OA_params: @@ -393,10 +419,14 @@ OA_data: - datatype - variable OA_i18n: - fr: Variables et unités par type de données - en: Variables and units by data type - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Variables et unités par type de données + en: Variables and units by data type + OA_description: + fr: Liste de jointure de variables et unités par type de données + en: Variables and units by data type list joins + OA_i18nDisplayPattern: + OA_title: fr: >- nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite} @@ -419,7 +449,7 @@ OA_data: OA_i18n: fr: les reference OA_required: true - OA_columns: [ site ] + OA_components: [ site ] OA_checker: OA_name: OA_reference OA_params: @@ -428,29 +458,29 @@ OA_data: floats: OA_i18n: fr: les décimaux - OA_columns: [ is_float_value ] + OA_components: [ is_float_value ] OA_checker: OA_name: OA_float integer: OA_i18n: fr: les entiers - OA_columns: [ ordre_affichage ] + OA_components: [ ordre_affichage ] OA_checker: OA_name: OA_integer OA_i18n: - fr: Proprétés de Taxon - en: Properties of Taxa - OA_i18nColumns: - propriete_key: - fr: propriete_fr - en: propriete_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{propriete_key}' - en: '{propriete_key}' + OA_title: + fr: Proprétés de Taxon + en: Properties of Taxa + OA_description: + fr: Liste de proprétés de Taxon + en: Properties of Taxa list + OA_i18nDisplayPattern: + OA_title: + fr: '{propriete_fr}' + en: '{propriete_en}' + OA_description: + fr: '{definition_fr}' + en: '{definition_en}' OA_naturalKey: [ propriete_key ] OA_basicComponents: date: @@ -486,7 +516,10 @@ OA_data: OA_importHeader: OA_headerName: type associé OA_exportHeader: - OA_i18n: + OA_title: + fr: "Type asocié" + en: "Associated type" + OA_description: fr: "Type asocié" en: "Associated type" ordre_affichage: @@ -495,10 +528,17 @@ OA_data: site: taxon: OA_i18n: - fr: Taxons - en: Taxa - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Taxons + en: Taxa + OA_description: + fr: Taxons + en: Taxa + OA_i18nDisplayPattern: + OA_title: + fr: '{nom}' + en: '{nom}' + OA_description: fr: '{nom}' en: '{nom}' OA_naturalKey: [ nom ] @@ -509,7 +549,7 @@ OA_data: fr: "nom du taxon déterminé" OA_checker: OA_name: OA_string - OA_columns: [ nom ] + OA_components: [ nom ] OA_basicComponents: nom: OA_importHeader: @@ -567,22 +607,24 @@ OA_data: OA_dynamicComponents: propriete_taxons: OA_exportHeader: - OA_i18n: + OA_title: + fr: Propriétés de Taxons + en: Properties of Taxa + OA_description: fr: Propriétés de Taxons en: Properties of Taxa OA_headerPrefix: "pt_" OA_reference: proprietes_taxon - OA_referenceColumnToLookForHeader: propriete_key + OA_referenceComponentToLookForHeader: propriete_key pem: OA_tags: [ context, data, test, __DATA__, __ORDER_2__ ] OA_i18n: - fr: Piégeage en Montée - en: Trap in ascent - OA_i18nDisplay: - especes: - OA_pattern: - fr: 'Piégeage en montée' - en: 'TRap in ascent' + OA_title: + fr: Piégeage en Montée + en: Trap in ascent + OA_description: + fr: Données de piégeage en Montée + en: Trap in ascent data OA_naturalKey: - projet - chemin @@ -630,7 +672,10 @@ OA_data: OA_name: especes color_value: OA_exportHeader: - OA_i18n: + OA_title: + fr: Couleur des individus + en: United colors + OA_description: fr: Couleur des individus en: United colors OA_checker: @@ -648,7 +693,9 @@ OA_data: OA_name: unites individusNumbervalue: OA_exportHeader: - OA_i18n: + OA_title: + fr: Nombre d'individus + OA_description: fr: Nombre d'individus OA_defaultValue: OA_expression: return 0 @@ -726,21 +773,35 @@ OA_data: OA_submissionScope: OA_referenceScopes: - OA_i18n: - fr: Projet - en: Project + OA_title: + fr: Projet + en: Project + OA_description: + fr: Projet + en: Project OA_reference: projet OA_component: projet OA_exportHeader: - OA_i18n: + OA_title: + fr: projet + en: project + OA_description: fr: projet en: project - OA_i18n: - fr: Localisation - en: Localization + OA_title: + fr: Localisation + en: Localization + OA_description: + fr: Localisation + en: Localization OA_reference: sites OA_component: site_bassin OA_exportHeader: - OA_i18n: + OA_title: + fr: site + en: site + OA_description: fr: site en: site OA_timeScope: @@ -751,10 +812,17 @@ OA_data: # OA_aggregation: # OA_component: tel_variable OA_i18n: - fr: données de télédétection plot - en: remote sensing data plot - OA_i18nDisplay: # attention : avec un S ici car peut concerner plusieurs referentiels - OA_pattern: + OA_title: + fr: données de télédétection plot + en: remote sensing data plot + OA_description: + fr: données de télédétection plot + en: remote sensing data plot + OA_i18nDisplayPattern: # attention : avec un S ici car peut concerner plusieurs referentiels + OA_title: + fr: "<em>[data display]</em>: {sit_code} ({sit_label_fr})" + en: "<em>[data display]</em>: {sit_code} ({sit_label_en})" + OA_description: fr: "<em>[data display]</em>: {sit_code} ({sit_label_fr})" en: "<em>[data display]</em>: {sit_code} ({sit_label_en})" OA_naturalKey: # clé d'unicité pour chaque ligne de données @@ -767,21 +835,35 @@ OA_data: OA_submissionScope: OA_referenceScopes: - OA_i18n: #nom de l'submissionScope scope + OA_title: + fr: Réseau + en: Network + OA_description: fr: Réseau en: Network OA_exportHeader: # nom de la colonne à l'export - OA_i18n: + OA_title: + fr: réseau + en: Network + OA_description: fr: réseau en: Network OA_reference: sites OA_component: tel_experimental_site - OA_i18n: - fr: Select a plot... - en: Select a plot... + OA_title: + fr: Select a plot... + en: Select a plot... + OA_description: + fr: Select a plot... + en: Select a plot... OA_component: tel_experimental_plot # ce composant sera comparé à la valeur fournie lors du dépôt OA_reference: tr_plot_plo OA_exportHeader: # nom de la colonne à l'export - OA_i18n: + OA_title: + fr: parcelle + en: plot + OA_description: fr: parcelle en: plot OA_timeScope: @@ -798,7 +880,10 @@ OA_data: OA_importHeader: OA_headerName: "Date" OA_exportHeader: - OA_i18n: + OA_title: + fr: "date fr" + en: "date en" + OA_description: fr: "date fr" en: "date en" tel_pixel_count_10m: @@ -825,7 +910,10 @@ OA_data: OA_rowNumber: 1 OA_columnNumber: 2 # ou OA_headerName: "réseau expe" OA_exportHeader: - OA_i18n: + OA_title: + fr: "experimental network" + en: "experimental network" + OA_description: fr: "experimental network" en: "experimental network" # nom de l'en-tête de colonne à utiliser pour l'export @@ -840,7 +928,10 @@ OA_data: OA_reference: OA_name: sites OA_exportHeader: - OA_i18n: + OA_title: + fr: "experimental site" + en: "experimental site" + OA_description: fr: "experimental site" en: "experimental site" OA_patternComponents: @@ -848,23 +939,35 @@ OA_data: OA_patternForComponents: "(.*)_S2_(.*)_(.*)" OA_required: false OA_exportHeader: - OA_i18n: + OA_title: fr: "valeur" en: "value" - OA_components: + OA_description: + fr: "valeur" + en: "value" + OA_componentQualifiers: - tel_value_variable: #$1 OA_exportHeader: - OA_i18n: + OA_title: + fr: "variable fr" + en: "variable en" + OA_description: fr: "variable fr" en: "variable en" - tel_value_qualifier: #$2 OA_exportHeader: - OA_i18n: + OA_title: + fr: "qualificatif fr" + en: "qualifier en" + OA_description: fr: "qualificatif fr" en: "qualifier en" - tel_value_resolution: #$3 OA_exportHeader: - OA_i18n: + OA_title: + fr: "resolution fr" + en: "resolution en" + OA_description: fr: "resolution fr" en: "resolution en" OA_checker: @@ -921,35 +1024,55 @@ OA_data: OA_additionalFiles: fichiers: OA_i18n: - fr: Fichiers - en: Files - OA_FORM_FIELDS: + OA_title: + fr: Fichiers + en: Files + OA_description: + fr: Fichiers + en: Files + OA_formFields: nom: OA_i18n: - fr: Nom - en: Name + OA_title: + fr: Nom + en: Name + OA_description: + fr: Nom + en: Name OA_checker: OA_name: OA_string OA_params: OA_pattern: "[a-z]*" date: OA_i18n: - fr: Date - en: Date + OA_title: + fr: Date + en: Date + OA_description: + fr: Date + en: Date OA_checker: OA_name: OA_date OA_params: OA_pattern: "dd/MM/yyyy" age: OA_i18n: - fr: Age - en: Age + OA_title: + fr: Age + en: Age + OA_description: + fr: Age + en: Age OA_checker: OA_name: OA_integer poids: OA_i18n: - fr: Poids - en: Weight + OA_title: + fr: Poids + en: Weight + OA_description: + fr: Poids + en: Weight OA_checker: OA_name: OA_float OA_params: @@ -957,8 +1080,12 @@ OA_additionalFiles: OA_max: 100.0 site: OA_i18n: - fr: Site - en: Place + OA_title: + fr: Site + en: Place + OA_description: + fr: Site + en: Place OA_required: true OA_checker: OA_name: OA_reference @@ -967,35 +1094,54 @@ OA_additionalFiles: OA_name: sites utilisateurs: OA_i18n: - fr: Users - en: User - OA_FORM_FIELDS: + OA_title: + fr: Users + en: User + OA_description: + fr: Users + en: User + OA_formFields: nom: OA_i18n: - fr: Nom - en: Name + OA_title: + fr: Nom + en: Name + OA_description: + fr: Nom + en: Name OA_checker: OA_name: OA_string OA_params: OA_pattern: "[a-z]*" prenom: OA_i18n: - fr: Prénom - en: Surname + OA_title: + fr: Prénom + en: Surname + OA_description: + fr: Prénom + en: Surname OA_checker: OA_name: OA_string OA_params: OA_pattern: "[a-z]*" OA_rightsRequest: - OA_description: - OA_i18n: + OA_i18n: + OA_title: + fr: Demande de droits à l'application monsore en remplissant ce formulaire + en: Rights request to the monsore application by filling out this form + OA_description: fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire en: You can request rights to the monsore application by filling out this form - OA_FORM_FIELDS: + OA_formFields: organization: OA_i18n: - fr: Nom de l'organisme de recherche - en: Name of research organization + OA_title: + fr: Nom de l'organisme de recherche + en: Name of research organization + OA_description: + fr: Nom de l'organisme de recherche + en: Name of research organization OA_required: true OA_checker: OA_name: OA_string @@ -1003,24 +1149,36 @@ OA_rightsRequest: OA_pattern: ".*" project: OA_i18n: - fr: Description du projet de recherche - en: Description of the research project + OA_title: + fr: Description du projet de recherche + en: Description of the research project + OA_description: + fr: Description du projet de recherche + en: Description of the research project OA_checker: OA_name: OA_string OA_params: OA_pattern: ".*" startDate: OA_i18n: - fr: Date de début du projet - en: Project start date + OA_title: + fr: Date de début du projet + en: Project start date + OA_description: + fr: Date de début du projet + en: Project start date OA_checker: OA_name: OA_date OA_params: OA_pattern: "dd/MM/yyyy" endDate: OA_i18n: - fr: Date de fin du projet - en: Project end date + OA_title: + fr: Date de fin du projet + en: Project end date + OA_description: + fr: Date de fin du projet + en: Project end date OA_checker: OA_name: OA_date OA_params: diff --git a/src/test/resources/data/configuration/data.result.json b/src/test/resources/data/configuration/data.result.json index c0e9d926a..af524fa46 100644 --- a/src/test/resources/data/configuration/data.result.json +++ b/src/test/resources/data/configuration/data.result.json @@ -28,7 +28,8 @@ "tagName" : "no_tag" } ], "importHeader" : "colonne_homonyme_entre_referentiels", - "exportHeaderName" : "colonne_homonyme_entre_referentiels", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -56,7 +57,8 @@ "tagName" : "no_tag" } ], "importHeader" : "esp_definition_en", - "exportHeaderName" : "esp_definition_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -73,6 +75,7 @@ "tagDefinition" : "HIDDEN_TAG" } ], "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -110,7 +113,8 @@ "tagName" : "test" } ], "importHeader" : "esp_nom", - "exportHeaderName" : "esp_nom", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -138,7 +142,8 @@ "tagName" : "no_tag" } ], "importHeader" : "esp_definition_fr", - "exportHeaderName" : "esp_definition_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -186,7 +191,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -234,7 +240,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -262,7 +269,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_en", - "exportHeaderName" : "nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -290,7 +298,8 @@ "tagName" : "no_tag" } ], "importHeader" : "definition_en", - "exportHeaderName" : "definition_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -318,7 +327,8 @@ "tagName" : "no_tag" } ], "importHeader" : "isQualitative", - "exportHeaderName" : "is_qualitative", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -346,7 +356,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_fr", - "exportHeaderName" : "nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -374,7 +385,8 @@ "tagName" : "no_tag" } ], "importHeader" : "definition_fr", - "exportHeaderName" : "definition_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -422,7 +434,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_nom_key", - "exportHeaderName" : "tze_nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -450,7 +463,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_nom_fr", - "exportHeaderName" : "tze_nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -478,7 +492,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_definition_fr", - "exportHeaderName" : "tze_definition_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -506,7 +521,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_nom_en", - "exportHeaderName" : "tze_nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -534,7 +550,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_definition_en", - "exportHeaderName" : "tze_definition_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -582,7 +599,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du site", - "exportHeaderName" : "site", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -610,7 +628,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du thème", - "exportHeaderName" : "theme", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -638,7 +657,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du projet", - "exportHeaderName" : "projet", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "MANDATORY", "checker" : { @@ -674,7 +694,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du type de données", - "exportHeaderName" : "datatype", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -788,7 +809,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom de la variable", - "exportHeaderName" : "variable", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -816,7 +838,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du type de données", - "exportHeaderName" : "datatype", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -844,7 +867,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom de l'unité", - "exportHeaderName" : "unite", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -954,7 +978,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_type_nom", - "exportHeaderName" : "tze_type_nom", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -990,7 +1015,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_description_en", - "exportHeaderName" : "zet_description_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1018,7 +1044,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_nom_fr", - "exportHeaderName" : "zet_nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1046,7 +1073,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_nom_key", - "exportHeaderName" : "zet_nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1074,7 +1102,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_nom_en", - "exportHeaderName" : "zet_nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1102,7 +1131,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_description_fr", - "exportHeaderName" : "zet_description_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1130,7 +1160,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_chemin_parent", - "exportHeaderName" : "zet_chemin_parent", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -1194,7 +1225,8 @@ "tagName" : "no_tag" } ], "importHeader" : "plo_name", - "exportHeaderName" : "plo_name", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1242,7 +1274,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1270,7 +1303,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_en", - "exportHeaderName" : "nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1298,7 +1332,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_fr", - "exportHeaderName" : "nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1326,7 +1361,8 @@ "tagName" : "no_tag" } ], "importHeader" : "description_fr", - "exportHeaderName" : "description_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1354,7 +1390,8 @@ "tagName" : "no_tag" } ], "importHeader" : "description_en", - "exportHeaderName" : "description_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1402,6 +1439,7 @@ } ], "importHeader" : "Date", "exportHeaderName" : "tel_date", + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1437,7 +1475,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tel_flag", - "exportHeaderName" : "tel_flag", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1495,6 +1534,7 @@ "tagName" : "no_tag" } ], "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1528,6 +1568,7 @@ "data" : null }, "exportHeaderName" : "tel_value", + "langRestrictions" : [ ], "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" @@ -1536,15 +1577,16 @@ "mandatory" : "OPTIONAL", "checker" : null, "patternForComponents" : "(.*)_S2_(.*)_(.*)", - "patternColumnComponents" : { + "patternComponentQualifiers" : { "tel_value_variable" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "tel_value_variable", "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], "exportHeaderName" : "tel_value_variable", + "langRestrictions" : [ ], "patternNumber" : 1, "checker" : null, "submissionAuthorizationScope" : null, @@ -1554,13 +1596,14 @@ "reference" : false }, "tel_value_qualifier" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "tel_value_qualifier", "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], "exportHeaderName" : "tel_value_qualifier", + "langRestrictions" : [ ], "patternNumber" : 2, "checker" : null, "submissionAuthorizationScope" : null, @@ -1570,13 +1613,14 @@ "reference" : false }, "tel_value_resolution" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "tel_value_resolution", "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], "exportHeaderName" : "tel_value_resolution", + "langRestrictions" : [ ], "patternNumber" : 3, "checker" : null, "submissionAuthorizationScope" : null, @@ -1586,6 +1630,7 @@ "reference" : false } }, + "patternComponentAdjacents" : { }, "submissionAuthorizationScope" : null, "hidden" : false, "referenceCheckerType" : "StringChecker", @@ -1593,13 +1638,14 @@ "reference" : false }, "tel_value_qualifier" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "tel_value_qualifier", "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], "exportHeaderName" : "tel_value_qualifier", + "langRestrictions" : [ ], "patternNumber" : 2, "checker" : null, "submissionAuthorizationScope" : null, @@ -1656,6 +1702,7 @@ "tagName" : "no_tag" } ], "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1700,7 +1747,8 @@ "tagDefinition" : "HIDDEN_TAG" } ], "importHeader" : "tel_pixel_count_20m", - "exportHeaderName" : "tel_pixel_count_20m", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1711,13 +1759,14 @@ "reference" : false }, "tel_value_resolution" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "tel_value_resolution", "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], "exportHeaderName" : "tel_value_resolution", + "langRestrictions" : [ ], "patternNumber" : 3, "checker" : null, "submissionAuthorizationScope" : null, @@ -1743,7 +1792,8 @@ "tagDefinition" : "HIDDEN_TAG" } ], "importHeader" : "tel_pixel_count_10m", - "exportHeaderName" : "tel_pixel_count_10m", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1754,13 +1804,14 @@ "reference" : false }, "tel_value_variable" : { - "type" : "PatternComponentComponent", + "type" : "PatternComponentQualifiers", "componentKey" : "tel_value_variable", "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], "exportHeaderName" : "tel_value_variable", + "langRestrictions" : [ ], "patternNumber" : 1, "checker" : null, "submissionAuthorizationScope" : null, @@ -1787,7 +1838,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tel_variable", - "exportHeaderName" : "tel_variable", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1885,7 +1937,8 @@ "tagName" : "no_tag" } ], "importHeader" : "code_en", - "exportHeaderName" : "code_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1913,7 +1966,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1941,7 +1995,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_en", - "exportHeaderName" : "nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1969,7 +2024,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_fr", - "exportHeaderName" : "nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1997,7 +2053,8 @@ "tagName" : "no_tag" } ], "importHeader" : "code_key", - "exportHeaderName" : "code_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2025,7 +2082,8 @@ "tagName" : "no_tag" } ], "importHeader" : "code_fr", - "exportHeaderName" : "code_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2079,7 +2137,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2107,7 +2166,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_en", - "exportHeaderName" : "nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2135,7 +2195,8 @@ "tagName" : "no_tag" } ], "importHeader" : "definition_en", - "exportHeaderName" : "definition_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2163,7 +2224,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_fr", - "exportHeaderName" : "nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2191,7 +2253,8 @@ "tagName" : "no_tag" } ], "importHeader" : "colonne_homonyme_entre_referentiels", - "exportHeaderName" : "colonne_homonyme_entre_referentiels", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2219,7 +2282,8 @@ "tagName" : "no_tag" } ], "importHeader" : "definition_fr", - "exportHeaderName" : "definition_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2267,7 +2331,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2315,7 +2380,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2343,7 +2409,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_en", - "exportHeaderName" : "nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2371,7 +2438,8 @@ "tagName" : "no_tag" } ], "importHeader" : "valeur_en", - "exportHeaderName" : "valeur_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2399,7 +2467,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_fr", - "exportHeaderName" : "nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2427,7 +2496,8 @@ "tagName" : "no_tag" } ], "importHeader" : "valeur_key", - "exportHeaderName" : "valeur_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2455,7 +2525,8 @@ "tagName" : "no_tag" } ], "importHeader" : "valeur_fr", - "exportHeaderName" : "valeur_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2502,7 +2573,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2530,7 +2602,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_en", - "exportHeaderName" : "nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2558,7 +2631,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_fr", - "exportHeaderName" : "nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2586,7 +2660,8 @@ "tagName" : "no_tag" } ], "importHeader" : "description_fr", - "exportHeaderName" : "description_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2614,7 +2689,8 @@ "tagName" : "no_tag" } ], "importHeader" : "description_en", - "exportHeaderName" : "description_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2662,7 +2738,8 @@ "tagName" : "no_tag" } ], "importHeader" : "fla_name", - "exportHeaderName" : "fla_name", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2724,7 +2801,8 @@ "tagName" : "temporal" } ], "importHeader" : "date", - "exportHeaderName" : "date", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -2749,6 +2827,7 @@ "tagDefinition" : "HIDDEN_TAG" } ], "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -2794,7 +2873,8 @@ "tagName" : "no_tag" } ], "importHeader" : "bassin", - "exportHeaderName" : "bassin", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2822,7 +2902,8 @@ "tagName" : "no_tag" } ], "importHeader" : "individusNumber_unit", - "exportHeaderName" : "individusNumber_unit", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -2861,7 +2942,8 @@ "tagName" : "test" } ], "importHeader" : "projet", - "exportHeaderName" : "projet", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -2897,7 +2979,8 @@ "tagName" : "no_tag" } ], "importHeader" : "espece", - "exportHeaderName" : "espece", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -2933,7 +3016,8 @@ "tagName" : "no_tag" } ], "importHeader" : "chemin", - "exportHeaderName" : "chemin", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -2969,7 +3053,8 @@ "tagName" : "no_tag" } ], "importHeader" : "plateforme", - "exportHeaderName" : "plateforme", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2998,6 +3083,7 @@ } ], "importHeader" : "color_value", "exportHeaderName" : "color_value", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -3033,7 +3119,8 @@ "tagName" : "no_tag" } ], "importHeader" : "color_unit", - "exportHeaderName" : "color_unit", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -3070,6 +3157,7 @@ } ], "importHeader" : "individusNumbervalue", "exportHeaderName" : "individusNumbervalue", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3186,7 +3274,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Date", - "exportHeaderName" : "date", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -3222,7 +3311,8 @@ "tagName" : "no_tag" } ], "importHeader" : "définition_en", - "exportHeaderName" : "definition_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3250,7 +3340,8 @@ "tagName" : "no_tag" } ], "importHeader" : "site", - "exportHeaderName" : "site", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3278,7 +3369,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom de la propriété_en", - "exportHeaderName" : "propriete_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3307,6 +3399,7 @@ } ], "importHeader" : "type associé", "exportHeaderName" : "type_associe", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3334,7 +3427,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom de la propriété_fr", - "exportHeaderName" : "propriete_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3362,7 +3456,8 @@ "tagName" : "no_tag" } ], "importHeader" : "isQualitative", - "exportHeaderName" : "is_qualitative", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3390,7 +3485,8 @@ "tagName" : "no_tag" } ], "importHeader" : "ordre d'affichage", - "exportHeaderName" : "ordre_affichage", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3418,7 +3514,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom de la propriété_key", - "exportHeaderName" : "propriete_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3446,7 +3543,8 @@ "tagName" : "no_tag" } ], "importHeader" : "définition_fr", - "exportHeaderName" : "definition_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3474,7 +3572,8 @@ "tagName" : "no_tag" } ], "importHeader" : "isFloatValue", - "exportHeaderName" : "is_float_value", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3579,7 +3678,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du taxon superieur", - "exportHeaderName" : "taxon_superieur", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -3615,7 +3715,8 @@ "tagName" : "no_tag" } ], "importHeader" : "code sandre du taxon supérieur", - "exportHeaderName" : "sandre_superieur", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3643,7 +3744,8 @@ "tagName" : "no_tag" } ], "importHeader" : "niveau incertitude de détermination", - "exportHeaderName" : "incertitude", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3671,7 +3773,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Notes libres", - "exportHeaderName" : "notes", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3699,7 +3802,8 @@ "tagName" : "no_tag" } ], "importHeader" : "code sandre du taxon", - "exportHeaderName" : "sandre_taxon", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3727,7 +3831,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Année de la description", - "exportHeaderName" : "annee", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3755,7 +3860,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du taxon déterminé", - "exportHeaderName" : "nom", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3783,7 +3889,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Auteur de la description", - "exportHeaderName" : "auteur", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3811,7 +3918,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Classe algale sensu Bourrelly", - "exportHeaderName" : "bourrelly", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3839,7 +3947,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Code Sandre", - "exportHeaderName" : "sandre", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3867,7 +3976,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Référence de la description", - "exportHeaderName" : "reference_description", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3895,7 +4005,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Synonyme ancien", - "exportHeaderName" : "synonyme_ancien", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3923,7 +4034,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Références relatives à ce taxon", - "exportHeaderName" : "references_taxon", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3951,7 +4063,8 @@ "tagName" : "no_tag" } ], "importHeader" : "Synonyme récent", - "exportHeaderName" : "synonyme_recent", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -3979,7 +4092,8 @@ "tagName" : "no_tag" } ], "importHeader" : "theme", - "exportHeaderName" : "theme", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -4003,6 +4117,7 @@ "data" : null }, "exportHeaderName" : "propriete_taxons", + "langRestrictions" : [ ], "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" @@ -4036,7 +4151,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du niveau de taxon", - "exportHeaderName" : "niveau_taxon", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, diff --git a/src/test/resources/data/configuration/data.result.monsore.json b/src/test/resources/data/configuration/data.result.monsore.json index e58ea9120..99b857c79 100644 --- a/src/test/resources/data/configuration/data.result.monsore.json +++ b/src/test/resources/data/configuration/data.result.monsore.json @@ -28,7 +28,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -57,6 +58,7 @@ } ], "importHeader" : "nom_en", "exportHeaderName" : "nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -85,6 +87,7 @@ } ], "importHeader" : "nom_fr", "exportHeaderName" : "nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -113,6 +116,7 @@ } ], "importHeader" : "description_fr", "exportHeaderName" : "description_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -141,6 +145,7 @@ } ], "importHeader" : "description_en", "exportHeaderName" : "description_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -188,7 +193,8 @@ "tagName" : "no_tag" } ], "importHeader" : "colonne_homonyme_entre_referentiels", - "exportHeaderName" : "colonne_homonyme_entre_referentiels", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -217,6 +223,7 @@ } ], "importHeader" : "esp_definition_en", "exportHeaderName" : "esp_definition_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -233,6 +240,7 @@ "tagDefinition" : "HIDDEN_TAG" } ], "exportHeaderName" : "my_computed_column", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -271,6 +279,7 @@ } ], "importHeader" : "esp_nom", "exportHeaderName" : "esp_nom", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -299,6 +308,7 @@ } ], "importHeader" : "esp_definition_fr", "exportHeaderName" : "esp_definition_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -346,7 +356,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -375,6 +386,7 @@ } ], "importHeader" : "nom_en", "exportHeaderName" : "nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -403,6 +415,7 @@ } ], "importHeader" : "definition_en", "exportHeaderName" : "definition_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -430,7 +443,8 @@ "tagName" : "no_tag" } ], "importHeader" : "isQualitative", - "exportHeaderName" : "is_qualitative", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -459,6 +473,7 @@ } ], "importHeader" : "nom_fr", "exportHeaderName" : "nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -487,6 +502,7 @@ } ], "importHeader" : "definition_fr", "exportHeaderName" : "definition_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -534,7 +550,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_nom_key", - "exportHeaderName" : "tze_nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -563,6 +580,7 @@ } ], "importHeader" : "tze_nom_fr", "exportHeaderName" : "tze_nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -591,6 +609,7 @@ } ], "importHeader" : "tze_definition_fr", "exportHeaderName" : "tze_definition_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -619,6 +638,7 @@ } ], "importHeader" : "tze_nom_en", "exportHeaderName" : "tze_nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -647,6 +667,7 @@ } ], "importHeader" : "tze_definition_en", "exportHeaderName" : "tze_definition_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -694,7 +715,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du site", - "exportHeaderName" : "site", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -722,7 +744,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du thème", - "exportHeaderName" : "theme", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -750,7 +773,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du projet", - "exportHeaderName" : "projet", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -778,7 +802,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du type de données", - "exportHeaderName" : "datatype", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -858,7 +883,7 @@ "type" : "GroovyExpressionChecker", "multiplicity" : "ONE", "required" : false, - "expression" : "String datatype = datum.datatype; return application.getConfiguration().i18n().data\n .collect {\n it->it.value.i18n.get(java.util.Locale.FRENCH)}\n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n", + "expression" : "String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n", "references" : null, "exceptionMessages" : [ ], "codify" : true, @@ -909,6 +934,7 @@ } ], "importHeader" : "code_en", "exportHeaderName" : "code_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -936,7 +962,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -965,6 +992,7 @@ } ], "importHeader" : "nom_en", "exportHeaderName" : "nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -993,6 +1021,7 @@ } ], "importHeader" : "nom_fr", "exportHeaderName" : "nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1020,7 +1049,8 @@ "tagName" : "no_tag" } ], "importHeader" : "code_key", - "exportHeaderName" : "code_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1049,6 +1079,7 @@ } ], "importHeader" : "code_fr", "exportHeaderName" : "code_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1102,7 +1133,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1131,6 +1163,7 @@ } ], "importHeader" : "nom_en", "exportHeaderName" : "nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1159,6 +1192,7 @@ } ], "importHeader" : "definition_en", "exportHeaderName" : "definition_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1187,6 +1221,7 @@ } ], "importHeader" : "nom_fr", "exportHeaderName" : "nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1214,7 +1249,8 @@ "tagName" : "no_tag" } ], "importHeader" : "colonne_homonyme_entre_referentiels", - "exportHeaderName" : "colonne_homonyme_entre_referentiels", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1243,6 +1279,7 @@ } ], "importHeader" : "definition_fr", "exportHeaderName" : "definition_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1290,7 +1327,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1319,6 +1357,7 @@ } ], "importHeader" : "nom_en", "exportHeaderName" : "nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1347,6 +1386,7 @@ } ], "importHeader" : "valeur_en", "exportHeaderName" : "valeur_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1375,6 +1415,7 @@ } ], "importHeader" : "nom_fr", "exportHeaderName" : "nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1402,7 +1443,8 @@ "tagName" : "no_tag" } ], "importHeader" : "valeur_key", - "exportHeaderName" : "valeur_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1431,6 +1473,7 @@ } ], "importHeader" : "valeur_fr", "exportHeaderName" : "valeur_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1477,7 +1520,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_key", - "exportHeaderName" : "nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1505,7 +1549,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_en", - "exportHeaderName" : "nom_en", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1533,7 +1578,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom_fr", - "exportHeaderName" : "nom_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1561,7 +1607,8 @@ "tagName" : "no_tag" } ], "importHeader" : "description_fr", - "exportHeaderName" : "description_fr", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1590,6 +1637,7 @@ } ], "importHeader" : "description_en", "exportHeaderName" : "description_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1637,7 +1685,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom de la variable", - "exportHeaderName" : "variable", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1665,7 +1714,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom du type de données", - "exportHeaderName" : "datatype", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1693,7 +1743,8 @@ "tagName" : "no_tag" } ], "importHeader" : "nom de l'unité", - "exportHeaderName" : "unite", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -1753,7 +1804,7 @@ "type" : "GroovyExpressionChecker", "multiplicity" : "ONE", "required" : false, - "expression" : "String datatype = datum.datatype; return application.getConfiguration().i18n().data\n .collect {\n it->it.value.i18n.get(java.util.Locale.FRENCH)}\n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n", + "expression" : "String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n", "references" : null, "exceptionMessages" : [ ], "codify" : true, @@ -1817,7 +1868,8 @@ "tagName" : "temporal" } ], "importHeader" : "date", - "exportHeaderName" : "date", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1853,7 +1905,8 @@ "tagName" : "no_tag" } ], "importHeader" : "site", - "exportHeaderName" : "site", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -1879,6 +1932,7 @@ "tagName" : "no_tag" } ], "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -1927,7 +1981,8 @@ "tagName" : "test" } ], "importHeader" : "projet", - "exportHeaderName" : "projet", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -1963,7 +2018,8 @@ "tagName" : "no_tag" } ], "importHeader" : "espece", - "exportHeaderName" : "espece", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -1989,6 +2045,7 @@ "tagName" : "no_tag" } ], "exportHeaderName" : "chemin", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -2034,7 +2091,8 @@ "tagName" : "no_tag" } ], "importHeader" : "plateforme", - "exportHeaderName" : "plateforme", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2063,6 +2121,7 @@ } ], "importHeader" : "Couleur des individus", "exportHeaderName" : "color_value", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -2099,6 +2158,7 @@ } ], "importHeader" : "Nombre d'individus", "exportHeaderName" : "individusNumbervalue", + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2116,6 +2176,7 @@ "tagName" : "no_tag" } ], "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { @@ -2259,7 +2320,8 @@ "tagName" : "no_tag" } ], "importHeader" : "tze_type_nom", - "exportHeaderName" : "tze_type_nom", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : true, "mandatory" : "OPTIONAL", "checker" : { @@ -2296,6 +2358,7 @@ } ], "importHeader" : "zet_description_en", "exportHeaderName" : "zet_description_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2324,6 +2387,7 @@ } ], "importHeader" : "zet_nom_fr", "exportHeaderName" : "zet_nom_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2351,7 +2415,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_nom_key", - "exportHeaderName" : "zet_nom_key", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2380,6 +2445,7 @@ } ], "importHeader" : "zet_nom_en", "exportHeaderName" : "zet_nom_en", + "langRestrictions" : [ "en" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2408,6 +2474,7 @@ } ], "importHeader" : "zet_description_fr", "exportHeaderName" : "zet_description_fr", + "langRestrictions" : [ "fr" ], "required" : false, "mandatory" : "OPTIONAL", "checker" : null, @@ -2435,7 +2502,8 @@ "tagName" : "no_tag" } ], "importHeader" : "zet_chemin_parent", - "exportHeaderName" : "zet_chemin_parent", + "exportHeaderName" : null, + "langRestrictions" : [ ], "required" : false, "mandatory" : "OPTIONAL", "checker" : { diff --git a/src/test/resources/data/configuration/localization.monsore.result.json b/src/test/resources/data/configuration/localization.monsore.result.json index 24e681a62..7c7b45fb1 100644 --- a/src/test/resources/data/configuration/localization.monsore.result.json +++ b/src/test/resources/data/configuration/localization.monsore.result.json @@ -22,108 +22,225 @@ } }, "application" : { - "en" : "SOERE my SOERE", - "fr" : "SOERE mon SOERE" + "title" : { + "en" : "SOERE my SOERE", + "fr" : "SOERE mon SOERE" + }, + "description" : { + "en" : "SOERE my SOERE", + "fr" : "SOERE mon SOERE" + } }, "data" : { "themes" : { "validations" : { }, - "components" : { }, + "exceptions" : { }, + "components" : { + "description_fr" : { + "exportHeader" : { + "title" : { + "fr" : "définition" + }, + "description" : { + "fr" : "La definition du thème" + } + } + }, + "description_en" : { + "exportHeader" : { + "title" : { + "en" : "definition" + }, + "description" : { + "en" : "Thematic definition" + } + } + }, + "nom_en" : { + "exportHeader" : { + "title" : { + "en" : "name" + }, + "description" : { + "en" : "Site name" + } + } + }, + "nom_fr" : { + "exportHeader" : { + "title" : { + "fr" : "nom" + }, + "description" : { + "fr" : "Le nom du thème" + } + } + } + }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "description_fr" : { - "en" : "description_en", - "fr" : "description_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en}", + "fr" : "{nom_fr}" }, - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "description" : { + "en" : "{description_en}", + "fr" : "{description_fr}" } }, - "i18nDisplay" : { - "en" : "{nom_key}", - "fr" : "{nom_key}" - }, "i18n" : { - "en" : "Thematic", - "fr" : "Thème" + "title" : { + "en" : "Thematic", + "fr" : "Thème" + }, + "description" : { + "en" : "Thematic list", + "fr" : "Liste des thèmes" + } } }, "variables" : { "validations" : { }, - "components" : { }, + "exceptions" : { }, + "components" : { + "definition_en" : { + "exportHeader" : { + "title" : { + "en" : "definition" + }, + "description" : { + "en" : "Variable definition" + } + } + }, + "nom_en" : { + "exportHeader" : { + "title" : { + "en" : "name" + }, + "description" : { + "en" : "Variable name" + } + } + }, + "nom_fr" : { + "exportHeader" : { + "title" : { + "fr" : "nom" + }, + "description" : { + "fr" : "Le nom de la variable" + } + } + }, + "definition_fr" : { + "exportHeader" : { + "title" : { + "fr" : "définition" + }, + "description" : { + "fr" : "La définition de la variable" + } + } + } + }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en}", + "fr" : "{nom_fr}" }, - "definition_fr" : { - "en" : "definition_en", - "fr" : "definition_fr" + "description" : { + "en" : "{definition_en}", + "fr" : "{definition_fr}" } }, - "i18nDisplay" : { - "en" : "{nom_key}", - "fr" : "{nom_key}" - }, "i18n" : { - "en" : "Variables", - "fr" : "Variables" + "title" : { + "en" : "Variables", + "fr" : "Variables" + }, + "description" : { + "en" : "Variables list", + "fr" : "Liste des variables" + } } }, "especes" : { "validations" : { }, + "exceptions" : { }, "components" : { "my_computed_column" : { "exportHeader" : { - "en" : "computed column", - "fr" : "colonne calculée" - }, - "computation" : { } + "title" : { + "en" : "computed column", + "fr" : "colonne calculée" + }, + "description" : { + "en" : "a calculated column returning 'my value'", + "fr" : "une colonne calculée retournant 'my value'" + } + } }, "esp_definition_en" : { "exportHeader" : { - "en" : "definition", - "fr" : "definition" - }, - "computation" : { } + "title" : { + "en" : "definition" + }, + "description" : { + "en" : "species definition" + } + } }, "esp_definition_fr" : { "exportHeader" : { - "en" : "définition", - "fr" : "définition" - }, - "computation" : { } + "title" : { + "fr" : "définition" + }, + "description" : { + "fr" : "définition de l'espèce" + } + } }, "esp_nom" : { "exportHeader" : { - "en" : "code", - "fr" : "code" - }, - "computation" : { } + "title" : { + "en" : "code", + "fr" : "code" + }, + "description" : { + "en" : "code name of the species", + "fr" : "nom codique de l'espèce" + } + } } }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "esp_definition_fr" : { - "en" : "esp_definition_en", - "fr" : "esp_definition_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{esp_nom}", + "fr" : "{esp_nom}" + }, + "description" : { + "en" : "{esp_definition_en}", + "fr" : "{esp_definition_fr}" } }, - "i18nDisplay" : { - "en" : "{esp_nom}", - "fr" : "{esp_nom}" - }, "i18n" : { - "en" : "Species", - "fr" : "Espèces" + "title" : { + "en" : "Species", + "fr" : "Espèces" + }, + "description" : { + "en" : "Description of species fished in the watershed", + "fr" : "Description des espèces pêchées sur le bassin versant" + } } }, "site_theme_datatype" : { @@ -141,118 +258,303 @@ "fr" : "référence au theme" } }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { }, - "i18nDisplay" : { - "en" : "projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}", - "fr" : "nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}" + "i18nDisplayPattern" : { + "title" : { + "en" : "projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}", + "fr" : "nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}" + }, + "description" : { + "en" : "Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}", + "fr" : "Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}" + } }, "i18n" : { - "en" : "Data types by site and project", - "fr" : "Types de données par site et projet" + "title" : { + "en" : "Data types by site and project", + "fr" : "Types de données par site et projet" + }, + "description" : { + "en" : "Join table of theme sites and datatypes", + "fr" : "Table de jointure des sites theme et datatypes" + } } }, "type_de_sites" : { "validations" : { }, - "components" : { }, + "exceptions" : { }, + "components" : { + "tze_nom_fr" : { + "exportHeader" : { + "title" : { + "fr" : "nom" + }, + "description" : { + "fr" : "La nom du type de sites" + } + } + }, + "tze_nom_en" : { + "exportHeader" : { + "title" : { + "en" : "name" + }, + "description" : { + "en" : "Site type name" + } + } + }, + "tze_definition_en" : { + "exportHeader" : { + "title" : { + "en" : "definition" + }, + "description" : { + "en" : "Site type definition" + } + } + }, + "tze_definition_fr" : { + "exportHeader" : { + "title" : { + "fr" : "définition" + }, + "description" : { + "fr" : "La definition du type de site" + } + } + } + }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "tze_nom_key" : { - "en" : "tze_nom_en", - "fr" : "tze_nom_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{tze_nom_en}", + "fr" : "{tze_nom_fr}" }, - "tze_definition_fr" : { - "en" : "tze_definition_en", - "fr" : "tze_definition_fr" + "description" : { + "en" : "{tze_definition_en}", + "fr" : "{tze_definition_fr}" } }, - "i18nDisplay" : { - "en" : "{tze_nom_key}", - "fr" : "{tze_nom_key}" - }, "i18n" : { - "en" : "Sites types", - "fr" : "Types de sites" + "title" : { + "en" : "Sites types", + "fr" : "Types de sites" + }, + "description" : { + "en" : "Sites types list", + "fr" : "Liste des types de sites" + } } }, "unites" : { "validations" : { }, - "components" : { }, + "exceptions" : { }, + "components" : { + "nom_en" : { + "exportHeader" : { + "title" : { + "en" : "name" + }, + "description" : { + "en" : "Unit name" + } + } + }, + "code_en" : { + "exportHeader" : { + "title" : { + "en" : "code" + }, + "description" : { + "en" : "Unit code" + } + } + }, + "nom_fr" : { + "exportHeader" : { + "title" : { + "fr" : "nom" + }, + "description" : { + "fr" : "La nom de l'unité" + } + } + }, + "code_fr" : { + "exportHeader" : { + "title" : { + "fr" : "code" + }, + "description" : { + "fr" : "Le code du unité" + } + } + } + }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "code_key" : { - "en" : "code_en", - "fr" : "code_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en} ({code_key})", + "fr" : "{nom_fr} ({code_key})" }, - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" - } - }, - "i18nDisplay" : { - "en" : "{nom_key} ({code_key})", - "fr" : "{nom_key} ({code_key})" + "description" : { } }, "i18n" : { - "en" : "Units", - "fr" : "Unités" + "title" : { + "en" : "Units", + "fr" : "Unités" + }, + "description" : { + "en" : "Units list", + "fr" : "Liste des unités" + } } }, "projet" : { "validations" : { }, - "components" : { }, + "exceptions" : { }, + "components" : { + "definition_en" : { + "exportHeader" : { + "title" : { + "en" : "definition" + }, + "description" : { + "en" : "project definition" + } + } + }, + "nom_en" : { + "exportHeader" : { + "title" : { + "en" : "Name" + }, + "description" : { + "en" : "Project name" + } + } + }, + "nom_fr" : { + "exportHeader" : { + "title" : { + "fr" : "Nom" + }, + "description" : { + "fr" : "Nom du projet" + } + } + }, + "definition_fr" : { + "exportHeader" : { + "title" : { + "fr" : "définition" + }, + "description" : { + "fr" : "définition du projet" + } + } + } + }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en}", + "fr" : "{nom_fr}" }, - "definition_fr" : { - "en" : "definition_en", - "fr" : "definition_fr" + "description" : { + "en" : "{definition_en}", + "fr" : "{definition_fr}" } }, - "i18nDisplay" : { - "en" : "{nom_key}", - "fr" : "{nom_key}" - }, "i18n" : { - "en" : "Project", - "fr" : "Projet" + "title" : { + "en" : "Project", + "fr" : "Projet" + }, + "description" : { + "en" : "List of information system projects", + "fr" : "Liste des projets du système d'information" + } } }, "valeurs_qualitatives" : { "validations" : { }, - "components" : { }, + "exceptions" : { }, + "components" : { + "valeur_fr" : { + "exportHeader" : { + "title" : { + "fr" : "valeur" + }, + "description" : { + "fr" : "La valeur dans la liste" + } + } + }, + "nom_en" : { + "exportHeader" : { + "title" : { + "en" : "name" + }, + "description" : { + "en" : "The name list" + } + } + }, + "valeur_en" : { + "exportHeader" : { + "title" : { + "en" : "value" + }, + "description" : { + "en" : "The value in list" + } + } + }, + "nom_fr" : { + "exportHeader" : { + "title" : { + "fr" : "Nom" + }, + "description" : { + "fr" : "Le nom de la liste" + } + } + } + }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "valeur_key" : { - "en" : "valeur_en", - "fr" : "valeur_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{valeur_en}", + "fr" : "{valeur_fr}" }, - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "description" : { + "en" : "{valeur_en} of {nom_en}", + "fr" : "{valeur_fr} de {nom_fr}" } }, - "i18nDisplay" : { - "en" : "{valeur_key}", - "fr" : "{valeur_key}" - }, "i18n" : { - "en" : "Qualitative values", - "fr" : "Valeurs qualitatives" + "title" : { + "en" : "Qualitative values", + "fr" : "Valeurs qualitatives" + }, + "description" : { + "en" : "List of qualitative values list", + "fr" : "Liste de liste de valeurs qualitatives" + } } }, "variables_et_unites_par_types_de_donnees" : { @@ -267,43 +569,69 @@ "fr" : "référence à la variable" } }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { }, - "i18nDisplay" : { - "en" : "datatype name : {datatype}, variable name : {variable}, : unit name {unite}", - "fr" : "nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}" + "i18nDisplayPattern" : { + "title" : { + "en" : "datatype name : {datatype}, variable name : {variable}, : unit name {unite}", + "fr" : "nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}" + }, + "description" : { + "en" : "Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}", + "fr" : "Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}" + } }, "i18n" : { - "en" : "Variables and units by data type", - "fr" : "Variables et unités par type de données" + "title" : { + "en" : "Variables and units by data type", + "fr" : "Variables et unités par type de données" + }, + "description" : { + "en" : "Variables and units by data type join list", + "fr" : "Liste de jointure des variables et unités par type de données" + } } }, "type_de_fichiers" : { "validations" : { }, - "components" : { }, + "exceptions" : { }, + "components" : { + "description_en" : { + "exportHeader" : { + "title" : { + "en" : "definition" + }, + "description" : { + "en" : "Thematic definition" + } + } + } + }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "description_fr" : { - "en" : "description_en", - "fr" : "description_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en}", + "fr" : "{nom_fr}" }, - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "description" : { + "en" : "{description_en}", + "fr" : "{description_fr}" } }, - "i18nDisplay" : { - "en" : "{nom_key}", - "fr" : "{nom_key}" - }, "i18n" : { - "en" : "Files types", - "fr" : "Types de fichiers" + "title" : { + "en" : "Files types", + "fr" : "Types de fichiers" + }, + "description" : { + "en" : "The files types", + "fr" : "Les types de fichiers" + } } }, "pem" : { @@ -315,142 +643,295 @@ "fr" : "vérifie l'unité de la couleur des individus" } }, + "exceptions" : { }, "components" : { "chemin" : { "exportHeader" : { - "en" : "Path", - "fr" : "Chemin" - }, - "computation" : { } + "title" : { + "en" : "Path", + "fr" : "Chemin" + }, + "description" : { + "en" : "Data calculating the full path of the site", + "fr" : "Données calculant le chemin complet du site" + } + } }, "color_value" : { "exportHeader" : { - "en" : "United colors", - "fr" : "Couleur des individus" - }, - "computation" : { } + "title" : { + "en" : "United colors", + "fr" : "Couleur des individus" + }, + "description" : { } + } }, "individusNumbervalue" : { "exportHeader" : { - "fr" : "Nombre d'individus" - }, - "computation" : { } + "title" : { + "en" : "Number of individuals", + "fr" : "Nombre d'individus" + }, + "description" : { } + } } }, "submissions" : { "referenceScopes" : { "projet" : { - "en" : "project", - "fr" : "projet" + "title" : { + "en" : "project", + "fr" : "projet" + }, + "description" : { + "en" : "Choose the project", + "fr" : "Choisissez le projet" + } }, "sites" : { - "en" : "site", - "fr" : "site" + "title" : { + "en" : "site", + "fr" : "site" + }, + "description" : { + "en" : "The site", + "fr" : "Le site" + } } } }, - "i18nColumns" : { }, - "i18nDisplay" : { - "en" : "TRap in ascent", - "fr" : "Piégeage en montée" - }, + "i18nDisplayPattern" : null, "i18n" : { - "en" : "Trap in ascent", - "fr" : "Piégeage en Montée" + "title" : { + "en" : "Trap in ascent", + "fr" : "Piégeage en Montée" + }, + "description" : { + "en" : "Upstream trapping fishing data", + "fr" : "Données de pêche par piégeage en Montée" + } } }, "sites" : { "validations" : { }, - "components" : { }, + "exceptions" : { }, + "components" : { + "zet_description_en" : { + "exportHeader" : { + "title" : { + "en" : "definition" + }, + "description" : { + "en" : "site definition" + } + } + }, + "zet_nom_fr" : { + "exportHeader" : { + "title" : { + "fr" : "Nom du site" + }, + "description" : { + "fr" : "Le nom du site" + } + } + }, + "zet_nom_en" : { + "exportHeader" : { + "title" : { + "en" : "Site name" + }, + "description" : { + "en" : "The site name" + } + } + }, + "zet_description_fr" : { + "exportHeader" : { + "title" : { + "fr" : "définition" + }, + "description" : { + "fr" : "La definition du site" + } + } + } + }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "zet_nom_key" : { - "en" : "zet_nom_en", - "fr" : "zet_nom_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{zet_chemin_parent} - {zet_nom_fr}", + "fr" : "{zet_chemin_parent} - {zet_nom_fr} " }, - "zet_description_fr" : { - "en" : "zet_description_en", - "fr" : "zet_description_fr" + "description" : { + "en" : "{zet_description_en}", + "fr" : "{zet_description_fr}" } }, - "i18nDisplay" : { - "en" : "{zet_nom_key}", - "fr" : "{zet_nom_key}" - }, "i18n" : { - "en" : "Site", - "fr" : "Site" + "title" : { + "en" : "Site", + "fr" : "Site" + }, + "description" : { + "en" : "Sites list", + "fr" : "Liste des sites du système d'information" + } } } }, "rightsrequest" : { - "description" : { - "en" : "You can request rights to the monsore application by filling out this form", - "fr" : "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire" - }, "fields" : { "endDate" : { - "en" : "Project end date", - "fr" : "Date de fin du projet" + "title" : { + "en" : "Give the project end date", + "fr" : "Date de fin du projet" + }, + "description" : { + "en" : "Project end date", + "fr" : "Donnez la date de fin du projet" + } }, "organization" : { - "en" : "Name of research organization", - "fr" : "Nom de l'organisme de recherche" + "title" : { + "en" : "Name of research organization", + "fr" : "Nom de l'organisme de recherche" + }, + "description" : { + "en" : "Usual ame of research organization", + "fr" : "Nom usuel de l'organisme de recherche" + } }, "project" : { - "en" : "Description of the research project", - "fr" : "Description du projet de recherche" + "title" : { + "en" : "Description of the research project", + "fr" : "Description du projet de recherche" + }, + "description" : { + "en" : "Describe your the research project", + "fr" : "Donnez une description du projet de recherche" + } }, "startDate" : { - "en" : "Project start date", - "fr" : "Date de début du projet" + "title" : { + "en" : "Project start date", + "fr" : "Date de début du projet" + }, + "description" : { + "en" : "Give the project start date", + "fr" : "Donnez la date de début du projet" + } + } + }, + "i18n" : { + "title" : { + "en" : "You can request rights to the monsore application by filling out this form", + "fr" : "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire" + }, + "description" : { + "en" : "Monsoere Data Access Right Request Form", + "fr" : "Formulaire de demande de droit d'accès aux données de Monsoere" } } }, "additionalFiles" : { "utilisateurs" : { "i18n" : { - "en" : "User", - "fr" : "Users" + "title" : { + "en" : "Users", + "fr" : "Utilsateurs" + }, + "description" : { + "en" : "System User Description Files", + "fr" : "Fichiers de dexcription des utilisateurs du système" + } }, "fields" : { - "nom" : { - "en" : "Name", - "fr" : "Nom" - }, "prenom" : { - "en" : "Surname", - "fr" : "Prénom" + "title" : { + "en" : "Surname", + "fr" : "Prénom" + }, + "description" : { + "en" : "User surname", + "fr" : "Prénom de l'utilisateur" + } + }, + "nom" : { + "title" : { + "en" : "Name", + "fr" : "Nom" + }, + "description" : { + "en" : "User name", + "fr" : "Nom de l'utilisateur" + } } } }, "fichiers" : { "i18n" : { - "en" : "Files", - "fr" : "Fichiers" + "title" : { + "en" : "Files", + "fr" : "Fichiers" + }, + "description" : { + "en" : "Various files relating to the Information System", + "fr" : "Différents fichiers afférents au Système d'Information" + } }, "fields" : { "date" : { - "en" : "Date", - "fr" : "Date" + "title" : { + "en" : "Date", + "fr" : "Date" + }, + "description" : { + "en" : "The date the file was updated", + "fr" : "La date de mise à jour du fichier" + } }, "site" : { - "en" : "Place", - "fr" : "Site" + "title" : { + "en" : "Place", + "fr" : "Site" + }, + "description" : { + "en" : "Site described by the file", + "fr" : "Site décrit par le fichier" + } }, "poids" : { - "en" : "Weight", - "fr" : "Poids" + "title" : { + "en" : "Weight", + "fr" : "Poids" + }, + "description" : { + "en" : "File size in kb", + "fr" : "Poids du fichier en ko" + } }, "nom" : { - "en" : "Name", - "fr" : "Nom" + "title" : { + "en" : "Name", + "fr" : "Nom" + }, + "description" : { + "en" : "The name of the file for download", + "fr" : "Le nom du fichier pour téléchargement" + } }, "age" : { - "en" : "Age", - "fr" : "Age" + "title" : { + "en" : "Age", + "fr" : "Age" + }, + "description" : { + "en" : "Minimum age for file access", + "fr" : "Age minumum d'accès au fichier" + } } } } diff --git a/src/test/resources/data/configuration/localization.result.json b/src/test/resources/data/configuration/localization.result.json index c5c00c927..eb9cabfc7 100644 --- a/src/test/resources/data/configuration/localization.result.json +++ b/src/test/resources/data/configuration/localization.result.json @@ -22,67 +22,89 @@ } }, "application" : { - "en" : "My application", - "fr" : "Mon application" + "title" : { + "en" : "My application", + "fr" : "Mon application" + }, + "description" : { + "en" : "My application SI", + "fr" : "Si de mon application" + } }, "data" : { "variables" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en}", + "fr" : "{nom_fr}" }, - "definition_fr" : { - "en" : "definition_en", - "fr" : "definition_fr" + "description" : { + "en" : "{definition_en}", + "fr" : "{definition_fr}" } }, - "i18nDisplay" : { - "en" : "{nom_key}", - "fr" : "{nom_key}" - }, "i18n" : { - "en" : "Variables", - "fr" : "Variables" + "title" : { + "en" : "Variables", + "fr" : "Variables" + }, + "description" : { + "en" : "Variables list", + "fr" : "Liste de variables" + } } }, "experimental_plot" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { }, - "i18nDisplay" : { }, + "i18nDisplayPattern" : null, "i18n" : { - "en" : "Plot", - "fr" : "Parcelle" + "title" : { + "en" : "Experimental plot", + "fr" : "Parcelle expérimentale" + }, + "description" : { + "en" : "Experimental plots list", + "fr" : "Liste de parcelles expérimentales" + } } }, "especes" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "esp_definition_fr" : { - "en" : "esp_definition_en", - "fr" : "esp_definition_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{esp_nom}", + "fr" : "{esp_nom}" + }, + "description" : { + "en" : "{esp_definition_en}", + "fr" : "{esp_definition_en}" } }, - "i18nDisplay" : { - "en" : "{esp_nom}", - "fr" : "{esp_nom}" - }, "i18n" : { - "en" : "Species", - "fr" : "Espèces" + "title" : { + "en" : "Species", + "fr" : "Espèces" + }, + "description" : { + "en" : "Species list", + "fr" : "Liste d'espèces" + } } }, "site_theme_datatype" : { @@ -97,43 +119,58 @@ "fr" : "référence au theme" } }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { }, - "i18nDisplay" : { - "en" : "projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}", - "fr" : "nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}" + "i18nDisplayPattern" : { + "title" : { + "en" : "projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}", + "fr" : "nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}" + }, + "description" : { + "en" : "projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}", + "fr" : "nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}" + } }, "i18n" : { - "en" : "Data types by site and project", - "fr" : "Types de données par site et projet" + "title" : { + "en" : "Data types by site and project", + "fr" : "Types de données par site et projet" + }, + "description" : { + "en" : "Data types by site and project list", + "fr" : "Liste de types de données par site et projet" + } } }, "type_de_sites" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "tze_nom_key" : { - "en" : "tze_nom_en", - "fr" : "tze_nom_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{tze_nom_en}", + "fr" : "{tze_nom_fr}" }, - "tze_definition_fr" : { - "en" : "tze_definition_en", - "fr" : "tze_definition_fr" + "description" : { + "en" : "{tze_definition_en}", + "fr" : "{tze_definition_fr}" } }, - "i18nDisplay" : { - "en" : "{tze_nom_key}", - "fr" : "{tze_nom_key}" - }, "i18n" : { - "en" : "Sites types", - "fr" : "Types de sites" + "title" : { + "en" : "Sites types", + "fr" : "Types de sites" + }, + "description" : { + "en" : "Sites types list", + "fr" : "Liste de types de sites" + } } }, "variables_et_unites_par_types_de_donnees" : { @@ -148,275 +185,350 @@ "fr" : "référence à la variable" } }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { }, - "i18nDisplay" : { - "en" : "datatype name : {datatype}, variable name : {variable}, : unit name {unite}", - "fr" : "nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}" + "i18nDisplayPattern" : { + "title" : { + "en" : "datatype name : {datatype}, variable name : {variable}, : unit name {unite}", + "fr" : "nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}" + }, + "description" : { } }, "i18n" : { - "en" : "Variables and units by data type", - "fr" : "Variables et unités par type de données" + "title" : { + "en" : "Variables and units by data type", + "fr" : "Variables et unités par type de données" + }, + "description" : { + "en" : "Variables and units by data type list joins", + "fr" : "Liste de jointure de variables et unités par type de données" + } } }, "sites" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "zet_nom_key" : { - "en" : "zet_nom_en", - "fr" : "zet_nom_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{zet_nom_en}", + "fr" : "{zet_nom_fry}" }, - "zet_description_fr" : { - "en" : "zet_description_en", - "fr" : "zet_description_fr" + "description" : { + "en" : "{zet_description_en}", + "fr" : "{zet_description_fr}" } }, - "i18nDisplay" : { - "en" : "{zet_nom_key}", - "fr" : "{zet_nom_key}" - }, "i18n" : { - "en" : "Site", - "fr" : "Site" + "title" : { + "en" : "Site", + "fr" : "Site" + }, + "description" : { + "en" : "Sites list", + "fr" : "Liste de sites" + } } }, - "tr_plot_plo" : { - "validations" : { }, - "components" : { }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { }, - "i18nDisplay" : { }, - "i18n" : { } - }, "themes" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "description_fr" : { - "en" : "description_en", - "fr" : "description_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en}", + "fr" : "{nom_fr}" }, - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "description" : { + "en" : "{description_en}", + "fr" : "{description_fr}" } }, - "i18nDisplay" : { }, "i18n" : { - "en" : "Thematic", - "fr" : "Thème" + "title" : { + "en" : "Thematic", + "fr" : "Thème" + }, + "description" : { + "en" : "Thematics list", + "fr" : "Liste de thèmes" + } } }, "t_teledetection_tel" : { "validations" : { }, + "exceptions" : { }, "components" : { "tel_date" : { "exportHeader" : { - "en" : "date en", - "fr" : "date fr" - }, - "computation" : { } + "title" : { + "en" : "date en", + "fr" : "date fr" + }, + "description" : { + "en" : "date en", + "fr" : "date fr" + } + } }, "tel_experimental_site" : { "exportHeader" : { - "en" : "experimental site", - "fr" : "experimental site" - }, - "computation" : { } + "title" : { + "en" : "experimental site", + "fr" : "experimental site" + }, + "description" : { + "en" : "experimental site", + "fr" : "experimental site" + } + } }, "tel_value_qualifier" : { "exportHeader" : { - "en" : "qualifier en", - "fr" : "qualificatif fr" - }, - "computation" : { } + "title" : { + "en" : "qualifier en", + "fr" : "qualificatif fr" + }, + "description" : { + "en" : "qualifier en", + "fr" : "qualificatif fr" + } + } }, "tel_value_resolution" : { "exportHeader" : { - "en" : "resolution en", - "fr" : "resolution fr" - }, - "computation" : { } + "title" : { + "en" : "resolution en", + "fr" : "resolution fr" + }, + "description" : { + "en" : "resolution en", + "fr" : "resolution fr" + } + } }, "tel_experimental_network" : { "exportHeader" : { - "en" : "experimental network", - "fr" : "experimental network" - }, - "computation" : { } + "title" : { + "en" : "experimental network", + "fr" : "experimental network" + }, + "description" : { + "en" : "experimental network", + "fr" : "experimental network" + } + } }, "tel_value_variable" : { "exportHeader" : { - "en" : "variable en", - "fr" : "variable fr" - }, - "computation" : { } + "title" : { + "en" : "variable en", + "fr" : "variable fr" + }, + "description" : { + "en" : "variable en", + "fr" : "variable fr" + } + } }, "tel_value" : { "exportHeader" : { - "en" : "value", - "fr" : "valeur" - }, - "computation" : { } + "title" : { + "en" : "value", + "fr" : "valeur" + }, + "description" : { + "en" : "value", + "fr" : "valeur" + } + } } }, "submissions" : { "referenceScopes" : { "sites" : { - "en" : "Network", - "fr" : "Réseau" + "title" : { + "en" : "Network", + "fr" : "Réseau" + }, + "description" : { + "en" : "Network", + "fr" : "Réseau" + } }, "tr_plot_plo" : { - "en" : "Select a plot...", - "fr" : "Select a plot..." + "title" : { + "en" : "Select a plot...", + "fr" : "Select a plot..." + }, + "description" : { + "en" : "Select a plot...", + "fr" : "Select a plot..." + } } } }, - "i18nColumns" : { }, - "i18nDisplay" : { - "en" : "<em>[data display]</em>: {sit_code} ({sit_label_en})", - "fr" : "<em>[data display]</em>: {sit_code} ({sit_label_fr})" + "i18nDisplayPattern" : { + "title" : { + "en" : "<em>[data display]</em>: {sit_code} ({sit_label_en})", + "fr" : "<em>[data display]</em>: {sit_code} ({sit_label_fr})" + }, + "description" : { + "en" : "<em>[data display]</em>: {sit_code} ({sit_label_en})", + "fr" : "<em>[data display]</em>: {sit_code} ({sit_label_fr})" + } }, "i18n" : { - "en" : "remote sensing data plot", - "fr" : "données de télédétection plot" + "title" : { + "en" : "remote sensing data plot", + "fr" : "données de télédétection plot" + }, + "description" : { + "en" : "remote sensing data plot", + "fr" : "données de télédétection plot" + } } }, "unites" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "code_key" : { - "en" : "code_en", - "fr" : "code_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en} ({code_en})", + "fr" : "{nom_fr} ({code_fr})" }, - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "description" : { + "en" : "{nom_en} ({code_en})", + "fr" : "{nom_fr} ({code_fr})" } }, - "i18nDisplay" : { - "en" : "{nom_key} ({code_key})", - "fr" : "{nom_key} ({code_key})" - }, "i18n" : { - "en" : "Units", - "fr" : "Unités" + "title" : { + "en" : "Units", + "fr" : "Unités" + }, + "description" : { + "en" : "Units list", + "fr" : "Liste d'unités" + } } }, "plot" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { }, - "i18nDisplay" : { }, + "i18nDisplayPattern" : null, "i18n" : { - "en" : "Plot", - "fr" : "Parcelle" + "title" : { + "en" : "Plot", + "fr" : "Parcelle" + }, + "description" : { + "en" : "Plots list", + "fr" : "Liste de parcelles" + } } }, "projet" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en}", + "fr" : "{nom_fr}" }, - "definition_fr" : { - "en" : "definition_en", - "fr" : "definition_fr" + "description" : { + "en" : "{definition_en}", + "fr" : "{definition_fr}" } }, - "i18nDisplay" : { - "en" : "{nom_key}", - "fr" : "{nom_key}" - }, "i18n" : { - "en" : "Project", - "fr" : "Projet" + "title" : { + "en" : "Project", + "fr" : "Projet" + }, + "description" : { + "en" : "Projects list", + "fr" : "Liste de projets" + } } }, "valeurs_qualitatives" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "valeur_key" : { - "en" : "valeur_en", - "fr" : "valeur_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en} : {valeur_en}", + "fr" : "{nom_fr} : {valeur_fr}" }, - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "description" : { + "en" : "{valeur_en} of list {nom_en}", + "fr" : "{valeur_fr} de la liste {nom_fr}" } }, - "i18nDisplay" : { - "en" : "{valeur_key}", - "fr" : "{valeur_key}" - }, "i18n" : { - "en" : "Qualitative values", - "fr" : "Valeurs qualitatives" + "title" : { + "en" : "Qualitative values", + "fr" : "Valeurs qualitatives" + }, + "description" : { + "en" : "Qualitative values", + "fr" : "Valeurs qualitatives" + } } }, "type_de_fichiers" : { "validations" : { }, + "exceptions" : { }, "components" : { }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "description_fr" : { - "en" : "description_en", - "fr" : "description_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom_en}", + "fr" : "{nom_fr}" }, - "nom_key" : { - "en" : "nom_en", - "fr" : "nom_fr" + "description" : { + "en" : "{description_en}", + "fr" : "{description_fr}" } }, - "i18nDisplay" : { - "en" : "{nom_key}", - "fr" : "{nom_key}" - }, "i18n" : { - "en" : "Files types", - "fr" : "Types de fichiers" + "title" : { + "en" : "Files types", + "fr" : "Types de fichiers" + }, + "description" : { + "en" : "Files types list", + "fr" : "Liste de types de fichiers" + } } }, - "tr_flag_fla" : { - "validations" : { }, - "components" : { }, - "submissions" : { - "referenceScopes" : { } - }, - "i18nColumns" : { }, - "i18nDisplay" : { }, - "i18n" : { } - }, "pem" : { "validations" : { "unitOfIndividus" : { @@ -426,41 +538,65 @@ "fr" : "vérifie l'unité de la couleur des individus" } }, + "exceptions" : { }, "components" : { "color_value" : { "exportHeader" : { - "en" : "United colors", - "fr" : "Couleur des individus" - }, - "computation" : { } + "title" : { + "en" : "United colors", + "fr" : "Couleur des individus" + }, + "description" : { + "en" : "United colors", + "fr" : "Couleur des individus" + } + } }, "individusNumbervalue" : { "exportHeader" : { - "fr" : "Nombre d'individus" - }, - "computation" : { } + "title" : { + "fr" : "Nombre d'individus" + }, + "description" : { + "fr" : "Nombre d'individus" + } + } } }, "submissions" : { "referenceScopes" : { "projet" : { - "en" : "Project", - "fr" : "Projet" + "title" : { + "en" : "Project", + "fr" : "Projet" + }, + "description" : { + "en" : "Project", + "fr" : "Projet" + } }, "sites" : { - "en" : "Localization", - "fr" : "Localisation" + "title" : { + "en" : "Localization", + "fr" : "Localisation" + }, + "description" : { + "en" : "Localization", + "fr" : "Localisation" + } } } }, - "i18nColumns" : { }, - "i18nDisplay" : { - "en" : "TRap in ascent", - "fr" : "Piégeage en montée" - }, + "i18nDisplayPattern" : null, "i18n" : { - "en" : "Trap in ascent", - "fr" : "Piégeage en Montée" + "title" : { + "en" : "Trap in ascent", + "fr" : "Piégeage en Montée" + }, + "description" : { + "en" : "Trap in ascent data", + "fr" : "Données de piégeage en Montée" + } } }, "taxon" : { @@ -469,26 +605,43 @@ "fr" : "nom du taxon déterminé" } }, + "exceptions" : { }, "components" : { "propriete_taxons" : { "exportHeader" : { - "en" : "Properties of Taxa", - "fr" : "Propriétés de Taxons" - }, - "computation" : { } + "title" : { + "en" : "Properties of Taxa", + "fr" : "Propriétés de Taxons" + }, + "description" : { + "en" : "Properties of Taxa", + "fr" : "Propriétés de Taxons" + } + } } }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { }, - "i18nDisplay" : { - "en" : "{nom}", - "fr" : "{nom}" + "i18nDisplayPattern" : { + "title" : { + "en" : "{nom}", + "fr" : "{nom}" + }, + "description" : { + "en" : "{nom}", + "fr" : "{nom}" + } }, "i18n" : { - "en" : "Taxa", - "fr" : "Taxons" + "title" : { + "en" : "Taxa", + "fr" : "Taxons" + }, + "description" : { + "en" : "Taxa", + "fr" : "Taxons" + } } }, "proprietes_taxon" : { @@ -503,104 +656,196 @@ "fr" : "les entiers" } }, + "exceptions" : { }, "components" : { "type_associe" : { "exportHeader" : { - "en" : "Associated type", - "fr" : "Type asocié" - }, - "computation" : { } + "title" : { + "en" : "Associated type", + "fr" : "Type asocié" + }, + "description" : { + "en" : "Associated type", + "fr" : "Type asocié" + } + } } }, "submissions" : { "referenceScopes" : { } }, - "i18nColumns" : { - "propriete_key" : { - "en" : "propriete_en", - "fr" : "propriete_fr" + "i18nDisplayPattern" : { + "title" : { + "en" : "{propriete_en}", + "fr" : "{propriete_fr}" }, - "definition_fr" : { - "en" : "definition_en", - "fr" : "definition_fr" + "description" : { + "en" : "{definition_en}", + "fr" : "{definition_fr}" } }, - "i18nDisplay" : { - "en" : "{propriete_key}", - "fr" : "{propriete_key}" - }, "i18n" : { - "en" : "Properties of Taxa", - "fr" : "Proprétés de Taxon" + "title" : { + "en" : "Properties of Taxa", + "fr" : "Proprétés de Taxon" + }, + "description" : { + "en" : "Properties of Taxa list", + "fr" : "Liste de proprétés de Taxon" + } } } }, "rightsrequest" : { - "description" : { - "en" : "You can request rights to the monsore application by filling out this form", - "fr" : "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire" - }, "fields" : { "endDate" : { - "en" : "Project end date", - "fr" : "Date de fin du projet" + "title" : { + "en" : "Project end date", + "fr" : "Date de fin du projet" + }, + "description" : { + "en" : "Project end date", + "fr" : "Date de fin du projet" + } }, "organization" : { - "en" : "Name of research organization", - "fr" : "Nom de l'organisme de recherche" + "title" : { + "en" : "Name of research organization", + "fr" : "Nom de l'organisme de recherche" + }, + "description" : { + "en" : "Name of research organization", + "fr" : "Nom de l'organisme de recherche" + } }, "project" : { - "en" : "Description of the research project", - "fr" : "Description du projet de recherche" + "title" : { + "en" : "Description of the research project", + "fr" : "Description du projet de recherche" + }, + "description" : { + "en" : "Description of the research project", + "fr" : "Description du projet de recherche" + } }, "startDate" : { - "en" : "Project start date", - "fr" : "Date de début du projet" + "title" : { + "en" : "Project start date", + "fr" : "Date de début du projet" + }, + "description" : { + "en" : "Project start date", + "fr" : "Date de début du projet" + } + } + }, + "i18n" : { + "title" : { + "en" : "Rights request to the monsore application by filling out this form", + "fr" : "Demande de droits à l'application monsore en remplissant ce formulaire" + }, + "description" : { + "en" : "You can request rights to the monsore application by filling out this form", + "fr" : "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire" } } }, "additionalFiles" : { "utilisateurs" : { "i18n" : { - "en" : "User", - "fr" : "Users" + "title" : { + "en" : "User", + "fr" : "Users" + }, + "description" : { + "en" : "User", + "fr" : "Users" + } }, "fields" : { - "nom" : { - "en" : "Name", - "fr" : "Nom" - }, "prenom" : { - "en" : "Surname", - "fr" : "Prénom" + "title" : { + "en" : "Surname", + "fr" : "Prénom" + }, + "description" : { + "en" : "Surname", + "fr" : "Prénom" + } + }, + "nom" : { + "title" : { + "en" : "Name", + "fr" : "Nom" + }, + "description" : { + "en" : "Name", + "fr" : "Nom" + } } } }, "fichiers" : { "i18n" : { - "en" : "Files", - "fr" : "Fichiers" + "title" : { + "en" : "Files", + "fr" : "Fichiers" + }, + "description" : { + "en" : "Files", + "fr" : "Fichiers" + } }, "fields" : { "date" : { - "en" : "Date", - "fr" : "Date" + "title" : { + "en" : "Date", + "fr" : "Date" + }, + "description" : { + "en" : "Date", + "fr" : "Date" + } }, "site" : { - "en" : "Place", - "fr" : "Site" + "title" : { + "en" : "Place", + "fr" : "Site" + }, + "description" : { + "en" : "Place", + "fr" : "Site" + } }, "poids" : { - "en" : "Weight", - "fr" : "Poids" + "title" : { + "en" : "Weight", + "fr" : "Poids" + }, + "description" : { + "en" : "Weight", + "fr" : "Poids" + } }, "nom" : { - "en" : "Name", - "fr" : "Nom" + "title" : { + "en" : "Name", + "fr" : "Nom" + }, + "description" : { + "en" : "Name", + "fr" : "Nom" + } }, "age" : { - "en" : "Age", - "fr" : "Age" + "title" : { + "en" : "Age", + "fr" : "Age" + }, + "description" : { + "en" : "Age", + "fr" : "Age" + } } } } diff --git a/src/test/resources/data/monsore/monsore.yaml b/src/test/resources/data/monsore/monsore.yaml index 7d55f183d..eaf274605 100644 --- a/src/test/resources/data/monsore/monsore.yaml +++ b/src/test/resources/data/monsore/monsore.yaml @@ -2,10 +2,14 @@ OA_version: 2.0.1 OA_application: OA_defaultLanguage: fr OA_i18n: - fr: SOERE mon SOERE - en: SOERE my SOERE - OA_comment: Fichier de test de l'application brokenADOM - OA_name: monsoresimple + OA_title: + fr: SOERE mon SOERE + en: SOERE my SOERE + OA_description: + fr: SOERE mon SOERE + en: SOERE my SOERE + OA_comment: Fichier de test de l'application brokenADOM version initiale + OA_name: monsore OA_version: 3.0.1 OA_tags: context: @@ -24,15 +28,22 @@ OA_tags: fr: temporalité en: temporality OA_rightsRequest: - OA_description: - OA_i18n: + OA_i18n: + OA_title: fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire en: You can request rights to the monsore application by filling out this form - OA_FORM_FIELDS: + OA_description: + fr: Formulaire de demande de droit d'accès aux données de Monsoere + en: Monsoere Data Access Right Request Form + OA_formFields: organization: OA_i18n: - fr: Nom de l'organisme de recherche - en: Name of research organization + OA_title: + fr: Nom de l'organisme de recherche + en: Name of research organization + OA_description: + fr: Nom usuel de l'organisme de recherche + en: Usual ame of research organization OA_required: true OA_checker: OA_name: OA_string @@ -40,24 +51,36 @@ OA_rightsRequest: OA_pattern: ".*" project: OA_i18n: - fr: Description du projet de recherche - en: Description of the research project + OA_title: + fr: Description du projet de recherche + en: Description of the research project + OA_description: + fr: Donnez une description du projet de recherche + en: Describe your the research project OA_checker: OA_name: OA_string OA_params: OA_pattern: ".*" startDate: OA_i18n: - fr: Date de début du projet - en: Project start date + OA_title: + fr: Date de début du projet + en: Project start date + OA_description: + fr: Donnez la date de début du projet + en: Give the project start date OA_checker: OA_name: OA_date OA_params: OA_pattern: "dd/MM/yyyy" endDate: OA_i18n: - fr: Date de fin du projet - en: Project end date + OA_title: + fr: Date de fin du projet + en: Give the project end date + OA_description: + fr: Donnez la date de fin du projet + en: Project end date OA_checker: OA_name: OA_date OA_params: @@ -65,35 +88,55 @@ OA_rightsRequest: OA_additionalFiles: fichiers: OA_i18n: - fr: Fichiers - en: Files - OA_FORM_FIELDS: + OA_title: + fr: Fichiers + en: Files + OA_description: + fr: Différents fichiers afférents au Système d'Information + en: Various files relating to the Information System + OA_formFields: nom: OA_i18n: - fr: Nom - en: Name + OA_title: + fr: Nom + en: Name + OA_description: + fr: Le nom du fichier pour téléchargement + en: The name of the file for download OA_checker: OA_name: OA_string OA_params: OA_pattern: "[a-z]*" date: OA_i18n: - fr: Date - en: Date + OA_title: + fr: Date + en: Date + OA_description: + fr: La date de mise à jour du fichier + en: The date the file was updated OA_checker: OA_name: OA_date OA_params: OA_pattern: "dd/MM/yyyy" age: OA_i18n: - fr: Age - en: Age + OA_title: + fr: Age + en: Age + OA_description: + fr: Age minumum d'accès au fichier + en: Minimum age for file access OA_checker: OA_name: OA_integer poids: OA_i18n: - fr: Poids - en: Weight + OA_title: + fr: Poids + en: Weight + OA_description: + fr: Poids du fichier en ko + en: File size in kb OA_checker: OA_name: OA_float OA_params: @@ -101,8 +144,13 @@ OA_additionalFiles: OA_max: 100.0 site: OA_i18n: - fr: Site - en: Place + OA_title: + fr: Site + en: Place + OA_description: + fr: Site décrit par le fichier + en: Site described by the file + OA_required: true OA_checker: OA_name: OA_reference @@ -111,21 +159,33 @@ OA_additionalFiles: OA_name: sites utilisateurs: OA_i18n: - fr: Users - en: User - OA_FORM_FIELDS: + OA_title: + fr: Utilsateurs + en: Users + OA_description: + fr: Fichiers de dexcription des utilisateurs du système + en: System User Description Files + OA_formFields: nom: OA_i18n: - fr: Nom - en: Name + OA_title: + fr: Nom + en: Name + OA_description: + fr: Nom de l'utilisateur + en: User name OA_checker: OA_name: OA_string OA_params: OA_pattern: "[a-z]*" prenom: OA_i18n: - fr: Prénom - en: Surname + OA_title: + fr: Prénom + en: Surname + OA_description: + fr: Prénom de l'utilisateur + en: User surname OA_checker: OA_name: OA_string OA_params: @@ -134,70 +194,107 @@ OA_data: especes: OA_tags: [ data ] OA_i18n: - fr: Espèces - en: Species - OA_i18nColumns: - esp_definition_fr: - fr: esp_definition_fr - en: esp_definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{esp_nom}' - en: '{esp_nom}' + OA_title: + fr: Espèces + en: Species + OA_description: + fr: Description des espèces pêchées sur le bassin versant + en: Description of species fished in the watershed + OA_i18nDisplayPattern: + OA_title: + fr: "{esp_nom}" + en: "{esp_nom}" + OA_description: + fr: "{esp_definition_fr}" + en: "{esp_definition_en}" OA_naturalKey: - esp_nom OA_basicComponents: esp_nom: OA_tags: [ test ] OA_exportHeader: - OA_i18n: + OA_title: fr: "code" en: "code" + OA_description: + fr: "nom codique de l'espèce" + en: "code name of the species" esp_definition_fr: OA_exportHeader: - OA_i18n: + OA_title: fr: "définition" - en: "définition" + OA_description: + fr: "définition de l'espèce" + OA_langRestrictions: [fr] esp_definition_en: OA_exportHeader: - OA_i18n: - fr: "definition" + OA_title: en: "definition" + OA_description: + en: "species definition" + OA_langRestrictions: [en] colonne_homonyme_entre_referentiels: null OA_computedComponents: my_computed_column: OA_tags: [ __HIDDEN__ ] OA_exportHeader: - OA_i18n: + OA_title: fr: "colonne calculée" en: "computed column" + OA_description: + fr: "une colonne calculée retournant 'my value'" + en: "a calculated column returning 'my value'" OA_computation: OA_expression: > return "my value"; projet: OA_tags: [ context, data, test ] OA_i18n: - fr: Projet - en: Project - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Projet + en: Project + OA_description: + fr: Liste des projets du système d'information + en: List of information system projects + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{definition_fr}" + en: "{definition_en}" OA_naturalKey: - nom_key OA_basicComponents: nom_key: null - nom_fr: null - nom_en: null - definition_fr: null - definition_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "Nom" + OA_description: + fr: "Nom du projet" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "Name" + OA_description: + en: "Project name" + OA_langRestrictions: [en] + definition_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "définition du projet" + OA_langRestrictions: [fr] + definition_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "project definition" + OA_langRestrictions: [en] colonne_homonyme_entre_referentiels: null sites: OA_tags: [ context ] @@ -205,19 +302,19 @@ OA_data: - zet_chemin_parent - zet_nom_key OA_i18n: - fr: Site - en: Site - OA_i18nColumns: - zet_nom_key: - fr: zet_nom_fr - en: zet_nom_en - zet_description_fr: - fr: zet_description_fr - en: zet_description_en - OA_i18nDisplay: - OA_pattern: - fr: '{zet_nom_key}' - en: '{zet_nom_key}' + OA_title: + fr: Site + en: Site + OA_description: + fr: Liste des sites du système d'information + en: Sites list + OA_i18nDisplayPattern: + OA_title: + fr: "{zet_chemin_parent} - {zet_nom_fr} " + en: "{zet_chemin_parent} - {zet_nom_fr}" + OA_description: + fr: "{zet_description_fr}" + en: "{zet_description_en}" OA_basicComponents: tze_type_nom: OA_required: true @@ -228,10 +325,34 @@ OA_data: OA_name: type_de_sites OA_isParent: true zet_nom_key: null - zet_nom_fr: null - zet_nom_en: null - zet_description_fr: null - zet_description_en: null + zet_nom_fr: + OA_exportHeader: + OA_title: + fr: "Nom du site" + OA_description: + fr: "Le nom du site" + OA_langRestrictions: [fr] + zet_nom_en: + OA_exportHeader: + OA_title: + en: "Site name" + OA_description: + en: "The site name" + OA_langRestrictions: [en] + zet_description_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "La definition du site" + OA_langRestrictions: [fr] + zet_description_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "site definition" + OA_langRestrictions: [en] zet_chemin_parent: OA_required: false OA_checker: @@ -245,86 +366,151 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Thème - en: Thematic - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - description_fr: - fr: description_fr - en: description_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Thème + en: Thematic + OA_description: + fr: Liste des thèmes + en: Thematic list + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{description_fr}" + en: "{description_en}" OA_basicComponents: nom_key: null - nom_fr: null - nom_en: null - description_fr: null - description_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "nom" + OA_description: + fr: "Le nom du thème" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "Site name" + OA_langRestrictions: [en] + description_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "La definition du thème" + OA_langRestrictions: [fr] + description_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "Thematic definition" + OA_langRestrictions: [en] type_de_fichiers: OA_tags: [ "__HIDDEN__" ] OA_naturalKey: - nom_key OA_i18n: - fr: Types de fichiers - en: Files types - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - description_fr: - fr: description_fr - en: description_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Types de fichiers + en: Files types + OA_description: + fr: Les types de fichiers + en: The files types + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{description_fr}" + en: "{description_en}" OA_basicComponents: nom_key: null nom_fr: null nom_en: null description_fr: null - description_en: null + description_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "Thematic definition" + OA_langRestrictions: [en] type_de_sites: OA_tags: [ context ] OA_naturalKey: - tze_nom_key OA_i18n: - fr: Types de sites - en: Sites types - OA_i18nColumns: - tze_nom_key: - fr: tze_nom_fr - en: tze_nom_en - tze_definition_fr: - fr: tze_definition_fr - en: tze_definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{tze_nom_key}' - en: '{tze_nom_key}' + OA_title: + fr: Types de sites + en: Sites types + OA_description: + fr: Liste des types de sites + en: Sites types list + OA_i18nDisplayPattern: + OA_title: + fr: "{tze_nom_fr}" + en: "{tze_nom_en}" + OA_description: + fr: "{tze_definition_fr}" + en: "{tze_definition_en}" OA_basicComponents: tze_nom_key: null - tze_nom_fr: null - tze_nom_en: null - tze_definition_fr: null - tze_definition_en: null + tze_nom_fr: + OA_exportHeader: + OA_title: + fr: "nom" + OA_description: + fr: "La nom du type de sites" + OA_langRestrictions: [fr] + tze_nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "Site type name" + OA_langRestrictions: [en] + tze_definition_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "La definition du type de site" + OA_langRestrictions: [fr] + tze_definition_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "Site type definition" + OA_langRestrictions: [en] site_theme_datatype: OA_tags: [ context ] OA_i18n: - fr: Types de données par site et projet - en: Data types by site and project - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Types de données par site et projet + en: Data types by site and project + OA_description: + fr: Table de jointure des sites theme et datatypes + en: Join table of theme sites and datatypes + OA_i18nDisplayPattern: + OA_title: fr: >- nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype} en: >- projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype} + OA_description: + fr: >- + Jointure nom du projet: {projet}, nom du site : {site}, nom du + thème : {theme}, nom du type de données : {datatype} + en: >- + Join on projet name: {projet}, site name : {site}, theme name : + {theme}, data type name : {datatype} OA_validations: projetRef: OA_i18n: @@ -334,7 +520,7 @@ OA_data: OA_params: OA_reference: OA_name: projet - OA_columns: [ projet ] + OA_components: [ projet ] sitesRef: OA_i18n: fr: référence au site @@ -343,7 +529,7 @@ OA_data: OA_params: OA_reference: OA_name: sites - OA_columns: [ site ] + OA_components: [ site ] themesRef: OA_i18n: fr: référence au theme @@ -352,21 +538,35 @@ OA_data: OA_params: OA_reference: OA_name: themes - OA_columns: [ theme ] + OA_components: [ theme ] checkDatatype: OA_i18n: fr: test - OA_columns: [ datatype ] + OA_components: [ datatype ] OA_checker: OA_name: OA_groovyExpression OA_params: OA_groovy: OA_expression: > - String datatype = datum.datatype; - return application.getConfiguration().i18n().data - .collect { - it->it.value.i18n.get(java.util.Locale.FRENCH)} - .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null; + String datatype = datum.datatype; + def data = application.getConfiguration().i18n().data ; + if(data==null){ + return false; + }; + def i18n = data + .collect{ it->it.value.i18n}; + if(i18n==null){ + return false; + }; + def title = i18n + .collect{ it->it.title}; + if(title==null){ + return false; + }; + def french = title + .collect { it->it.get(java.util.Locale.FRENCH)}; + return french + .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null; OA_naturalKey: - projet - site @@ -386,76 +586,145 @@ OA_data: OA_naturalKey: - nom_key OA_i18n: - fr: Unités - en: Units - OA_i18nColumns: - code_key: - fr: code_fr - en: code_en - nom_key: - fr: nom_fr - en: nom_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key} ({code_key})' - en: '{nom_key} ({code_key})' + OA_title: + fr: Unités + en: Units + OA_description: + fr: Liste des unités + en: Units list + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr} ({code_key})" + en: "{nom_en} ({code_key})" OA_basicComponents: code_key: null - code_fr: null - code_en: null + code_fr: + OA_exportHeader: + OA_title: + fr: "code" + OA_description: + fr: "Le code du unité" + OA_langRestrictions: [fr] + code_en: + OA_exportHeader: + OA_title: + en: "code" + OA_description: + en: "Unit code" + OA_langRestrictions: [en] nom_key: null - nom_fr: null - nom_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "nom" + OA_description: + fr: "La nom de l'unité" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "Unit name" + OA_langRestrictions: [en] valeurs_qualitatives: OA_tags: [ data ] OA_naturalKey: - nom_key - valeur_key OA_i18n: - fr: Valeurs qualitatives - en: Qualitative values - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - valeur_key: - fr: valeur_fr - en: valeur_en - OA_i18nDisplay: - OA_pattern: - fr: '{valeur_key}' - en: '{valeur_key}' + OA_title: + fr: Valeurs qualitatives + en: Qualitative values + OA_description: + fr: Liste de liste de valeurs qualitatives + en: List of qualitative values list + OA_i18nDisplayPattern: + OA_title: + fr: "{valeur_fr}" + en: "{valeur_en}" + OA_description: + fr: "{valeur_fr} de {nom_fr}" + en: "{valeur_en} of {nom_en}" OA_basicComponents: nom_key: null - nom_fr: null - nom_en: null - valeur_key: null - valeur_fr: null - valeur_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "Nom" + OA_description: + fr: "Le nom de la liste" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "The name list" + OA_langRestrictions: [en] + valeur_key: + valeur_fr: + OA_exportHeader: + OA_title: + fr: "valeur" + OA_description: + fr: "La valeur dans la liste" + OA_langRestrictions: [fr] + valeur_en: + OA_exportHeader: + OA_title: + en: "value" + OA_description: + en: "The value in list" + OA_langRestrictions: [en] variables: OA_tags: [ data ] OA_naturalKey: - nom_key OA_i18n: - fr: Variables - en: Variables - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Variables + en: Variables + OA_description: + fr: Liste des variables + en: Variables list + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{definition_fr}" + en: "{definition_en}" OA_basicComponents: nom_key: null - nom_fr: null - nom_en: null - definition_fr: null - definition_en: null + nom_fr: + OA_exportHeader: + OA_title: + fr: "nom" + OA_description: + fr: "Le nom de la variable" + OA_langRestrictions: [fr] + nom_en: + OA_exportHeader: + OA_title: + en: "name" + OA_description: + en: "Variable name" + OA_langRestrictions: [en] + definition_fr: + OA_exportHeader: + OA_title: + fr: "définition" + OA_description: + fr: "La définition de la variable" + OA_langRestrictions: [fr] + definition_en: + OA_exportHeader: + OA_title: + en: "definition" + OA_description: + en: "Variable definition" + OA_langRestrictions: [en] is_qualitative: OA_importHeader: isQualitative variables_et_unites_par_types_de_donnees: @@ -469,7 +738,7 @@ OA_data: OA_params: OA_reference: OA_name: variables - OA_columns: [ variable ] + OA_components: [ variable ] uniteRef: OA_i18n: fr: référence à l'unité' @@ -478,34 +747,58 @@ OA_data: OA_params: OA_reference: OA_name: unites - OA_columns: [ unite ] + OA_components: [ unite ] checkDatatype: OA_i18n: fr: test - OA_columns: [ datatype ] + OA_components: [ datatype ] OA_checker: OA_name: OA_groovyExpression OA_params: OA_groovy: OA_expression: > - String datatype = datum.datatype; - return application.getConfiguration().i18n().data - .collect { - it->it.value.i18n.get(java.util.Locale.FRENCH)} - .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null; + String datatype = datum.datatype; + def data = application.getConfiguration().i18n().data ; + if(data==null){ + return false; + }; + def i18n = data + .collect{ it->it.value.i18n}; + if(i18n==null){ + return false; + }; + def title = i18n + .collect{ it->it.title}; + if(title==null){ + return false; + }; + def french = title + .collect { it->it.get(java.util.Locale.FRENCH)}; + return french + .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null; OA_naturalKey: - datatype - variable OA_i18n: - fr: Variables et unités par type de données - en: Variables and units by data type - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Variables et unités par type de données + en: Variables and units by data type + OA_description: + fr: Liste de jointure des variables et unités par type de données + en: Variables and units by data type join list + OA_i18nDisplayPattern: + OA_title: fr: >- nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite} en: >- datatype name : {datatype}, variable name : {variable}, : unit name {unite} + OA_description: + fr: >- + Jointure des nom du type de données : {datatype}, nom de la variable + : {variable}, : nom de l'unité {unite} + en: >- + Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite} OA_basicComponents: datatype: OA_importHeader: nom du type de données @@ -516,13 +809,12 @@ OA_data: pem: OA_tags: [ context, data, test, __DATA__, __ORDER_2__ ] OA_i18n: - fr: Piégeage en Montée - en: Trap in ascent - OA_i18nDisplay: - especes: - OA_pattern: - fr: 'Piégeage en montée' - en: 'TRap in ascent' + OA_title: + fr: Piégeage en Montée + en: Trap in ascent + OA_description: + fr: Données de pêche par piégeage en Montée + en: Upstream trapping fishing data OA_naturalKey: - projet - site @@ -563,7 +855,7 @@ OA_data: color_value: OA_importHeader: "Couleur des individus" OA_exportHeader: - OA_i18n: + OA_title: fr: Couleur des individus en: United colors OA_checker: @@ -574,11 +866,28 @@ OA_data: individusNumbervalue: OA_importHeader: "Nombre d'individus" OA_exportHeader: - OA_i18n: + OA_title: fr: Nombre d'individus + en: Number of individuals OA_defaultValue: OA_expression: return 0 OA_computedComponents: + chemin: #optional + OA_withNaturalKeyComponents: #optional + - site #optional + - plateforme #optional + OA_checker: + OA_name: OA_reference + OA_params: + OA_reference: + OA_name: sites + OA_exportHeader: #optional + OA_title: + fr: Chemin + en: Path + OA_description: + fr: Données calculant le chemin complet du site + en: Data calculating the full path of the site color_unit: OA_computation: OA_expression: "'sans_unite'" @@ -634,3 +943,8 @@ OA_data: .get("nom de l'unité").equals((String)datum.variable.component); OA_references: - variables_et_unites_par_types_de_donnees + OA_authorizations: + OA_authorizationScope: + - projet + - chemin + OA_timeScope: date \ No newline at end of file diff --git a/src/test/resources/data/multiplicity/multiplicity.yaml b/src/test/resources/data/multiplicity/multiplicity.yaml index 10482c846..02cce3bdf 100644 --- a/src/test/resources/data/multiplicity/multiplicity.yaml +++ b/src/test/resources/data/multiplicity/multiplicity.yaml @@ -3,8 +3,12 @@ OA_application: OA_name: multiplicity OA_defaultLanguage: fr OA_i18n: - fr: Test de valeurs multiples - en: Multiple values test + OA_title: + fr: Test de valeurs multiples + en: Multiple values test + OA_description: + fr: Test de valeurs multiples + en: Multiple values test OA_version: 1.0.1 OA_data: reference1: diff --git a/src/test/resources/data/pattern/pattern.yaml b/src/test/resources/data/pattern/pattern.yaml index 64c738999..e6c44a97f 100644 --- a/src/test/resources/data/pattern/pattern.yaml +++ b/src/test/resources/data/pattern/pattern.yaml @@ -2,8 +2,12 @@ OA_version: 2.0.1 OA_application: OA_defaultLanguage: fr OA_i18n: - fr: Récursivité - en: Recusivity + OA_title: + fr: Récursivité + en: Recusivity + OA_description: + fr: Récursivité + en: Recusivity OA_comment: Fichier de test de l'application pattern OA_name: pattern OA_version: 3.0.1 @@ -16,7 +20,7 @@ OA_data: reference: OA_i18n: fr: les reference - OA_columns: [site] + OA_components: [site] OA_required: false OA_checker: OA_name: OA_reference @@ -27,29 +31,29 @@ OA_data: floats: OA_i18n: fr: les décimaux - OA_columns: [ isFloatValue ] + OA_components: [ isFloatValue ] OA_checker: OA_name: OA_float integer: OA_i18n: fr: les entiers - OA_columns: [ ordre_affichage ] + OA_components: [ ordre_affichage ] OA_checker: OA_name: OA_integer OA_i18n: - fr: Proprétés de Taxon - en: Properties of Taxa - OA_i18nColumns: - propriete_key: - fr: propriete_fr - en: propriete_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{propriete_key}' - en: '{propriete_key}' + OA_title: + fr: Proprétés de Taxon + en: Properties of Taxa + OA_description: + fr: Proprétés de Taxon + en: Properties of Taxa + OA_i18nDisplayPattern: + OA_title: + fr: '{propriete_fr}' + en: '{propriete_en}' + OA_description: + fr: '{definition_fr}' + en: '{definition_en}' OA_naturalKey: [propriete_key] OA_basicComponents: date: @@ -80,16 +84,19 @@ OA_data: site: site: OA_i18n: - fr: Site - en: Site - OA_i18nColumns: - site_key: - fr: site_fr - en: site_en - OA_i18nDisplay: - OA_pattern: - fr: '{site_key}' - en: '{site_key}' + OA_title: + fr: Site + en: Site + OA_description: + fr: Site + en: Site + OA_i18nDisplayPattern: + OA_title: + fr: '{site_fr}' + en: '{site_en}' + OA_description: + fr: '{description_fr}' + en: '{description_en}' OA_naturalKey: [site_key] OA_basicComponents: type_site: @@ -110,12 +117,19 @@ OA_data: OA_importHeader: code sandre de la Masse d'eau plan d'eau taxon: OA_i18n: - fr: Taxons - en: Taxa - OA_i18nDisplay: - OA_pattern: + OA_title: + fr: Taxons + en: Taxa + OA_description: + fr: Taxons + en: Taxa + OA_i18nDisplayPattern: + OA_title: fr: '{nom}' en: '{nom}' + OA_description: + fr: '{taxon_superieur} : {nom}' + en: '{taxon_superieur} : {nom}' OA_naturalKey: [nom] OA_validations: nomDuTaxonDetermine: @@ -124,7 +138,7 @@ OA_data: fr: "nom du taxon déterminé" OA_checker: OA_name: OA_string - OA_columns: [ nom ] + OA_components: [ nom ] OA_basicComponents: nom: OA_importHeader: nom du taxon déterminé @@ -160,24 +174,33 @@ OA_data: OA_dynamicComponents: proprietesDeTaxon: OA_exportHeader: - OA_i18n: + OA_title: + fr: Proprétés de Taxons + en: Properties of Taxa + OA_description: fr: Proprétés de Taxons en: Properties of Taxa OA_headerPrefix: "pt_" OA_reference: proprietes_taxon - OA_referenceColumnToLookForHeader: propriete_key + OA_referenceComponentToLookForHeader: propriete_key OA_patternComponents: tel_S1_value: OA_patternForComponents: "(.*)_S1_(.*)_(.*)" OA_required: false OA_exportHeader: - OA_i18n: + OA_title: + fr: "valeur" + en: "value" + OA_description: fr: "valeur" en: "value" - OA_components: + OA_componentQualifiers: - tel_S1_variable: #$1 OA_exportHeader: - OA_i18n: + OA_title: + fr: "variable fr" + en: "variable en" + OA_description: fr: "variable fr" en: "variable en" OA_tags: [__ORDER_1__] @@ -189,15 +212,21 @@ OA_data: - tel_S1_qualifier: #$2 OA_tags: [__ORDER_2__] OA_exportHeader: - OA_i18n: - fr: "qualificatif fr" - en: "qualifier en" + OA_title: + fr: "qualificatif fr" + en: "qualifier en" + OA_description: + fr: "qualificatif fr" + en: "qualifier en" OA_checker: OA_name: OA_integer - tel_S1_resolution: #$3 OA_tags: [__ORDER_3__] OA_exportHeader: - OA_i18n: + OA_title: + fr: "resolution fr" + en: "resolution en" + OA_description: fr: "resolution fr" en: "resolution en" OA_checker: @@ -206,13 +235,19 @@ OA_data: OA_patternForComponents: "(.*)_S2_(.*)_(.*)" OA_required: false OA_exportHeader: - OA_i18n: + OA_title: fr: "valeur" en: "value" - OA_components: + OA_description: + fr: "valeur" + en: "value" + OA_componentQualifiers: - tel_S2_variable: #$1 OA_exportHeader: - OA_i18n: + OA_title: + fr: "variable fr" + en: "variable en" + OA_description: fr: "variable fr" en: "variable en" OA_tags: [__ORDER_1__] @@ -224,7 +259,10 @@ OA_data: - tel_S2_qualifier: #$2 OA_tags: [__ORDER_2__] OA_exportHeader: - OA_i18n: + OA_title: + fr: "qualificatif fr" + en: "qualifier en" + OA_description: fr: "qualificatif fr" en: "qualifier en" OA_checker: @@ -232,7 +270,10 @@ OA_data: - tel_S2_resolution: #$3 OA_tags: [__ORDER_3__] OA_exportHeader: - OA_i18n: + OA_title: + fr: "resolution fr" + en: "resolution en" + OA_description: fr: "resolution fr" en: "resolution en" OA_checker: @@ -246,8 +287,12 @@ OA_data: - siteName # ajout d'un nom internationnalisé OA_i18n: - fr: Condition de prélèvement - en: Collection condition + OA_title: + fr: Condition de prélèvement + en: Collection condition + OA_description: + fr: Condition de prélèvement + en: Collection condition OA_basicComponents: date_day: OA_checker: @@ -302,12 +347,19 @@ OA_data: OA_submissionScope: OA_referenceScopes: - OA_i18n: - fr: Nom du site - en: Site name + OA_title: + fr: Nom du site + en: Site name + OA_description: + fr: Nom du site + en: Site name OA_component: siteName OA_reference: site OA_exportHeader: - OA_i18n: + OA_title: + fr: Nom du site + en: Site name + OA_description: fr: Nom du site en: Site name # par date diff --git a/src/test/resources/data/recursivite/recusivite.yaml b/src/test/resources/data/recursivite/recusivite.yaml index 95307d229..7952342ea 100644 --- a/src/test/resources/data/recursivite/recusivite.yaml +++ b/src/test/resources/data/recursivite/recusivite.yaml @@ -2,8 +2,12 @@ OA_version: 2.0.1 OA_application: OA_defaultLanguage: fr OA_i18n: - fr: Récursivité - en: Recusivity + OA_title: + fr: Récursivité + en: Recusivity + OA_description: + fr: Récursivité + en: Recusivity OA_comment: Fichier de test de l'application recursivité OA_name: recursivite OA_version: 3.0.1 @@ -16,7 +20,7 @@ OA_data: reference: OA_i18n: fr: les reference - OA_columns: [site] + OA_components: [site] OA_required: false OA_checker: OA_name: OA_reference @@ -27,29 +31,29 @@ OA_data: floats: OA_i18n: fr: les décimaux - OA_columns: [ isFloatValue ] + OA_components: [ isFloatValue ] OA_checker: OA_name: OA_float integer: OA_i18n: fr: les entiers - OA_columns: [ ordre_affichage ] + OA_components: [ ordre_affichage ] OA_checker: OA_name: OA_integer OA_i18n: - fr: Proprétés de Taxon - en: Properties of Taxa - OA_i18nColumns: - propriete_key: - fr: propriete_fr - en: propriete_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{propriete_key}' - en: '{propriete_key}' + OA_title: + fr: Proprétés de Taxon + en: Properties of Taxa + OA_description: + fr: Proprétés de Taxon + en: Properties of Taxa + OA_i18nDisplayPattern: + OA_title: + fr: "{propriete_fr}" + en: "{propriete_en}" + OA_description: + fr: "{definition_fr}" + en: "{definition_en}" OA_naturalKey: [propriete_key] OA_basicComponents: date: @@ -80,16 +84,19 @@ OA_data: site: site: OA_i18n: - fr: Site - en: Site - OA_i18nColumns: - site_key: - fr: site_fr - en: site_en - OA_i18nDisplay: - OA_pattern: - fr: '{site_key}' - en: '{site_key}' + OA_title: + fr: Site + en: Site + OA_description: + fr: Site + en: Site + OA_i18nDisplayPattern: + OA_title: + fr: "{site_fr}" + en: "{site_en}" + OA_description: + fr: "{description_fr}" + en: "{description_en}" OA_naturalKey: [site_key] OA_basicComponents: type_site: @@ -110,12 +117,19 @@ OA_data: OA_importHeader: code sandre de la Masse d'eau plan d'eau taxon: OA_i18n: - fr: Taxons - en: Taxa - OA_i18nDisplay: - OA_pattern: - fr: '{nom}' - en: '{nom}' + OA_title: + fr: Taxons + en: Taxa + OA_description: + fr: Taxons + en: Taxa + OA_i18nDisplayPattern: + OA_title: + fr: "{nom}" + en: "{nom}" + OA_description: + fr: "{nom}" + en: "{nom}" OA_naturalKey: [nom] OA_validations: nomDuTaxonSuperieur: @@ -128,14 +142,14 @@ OA_data: OA_reference: OA_name: taxon OA_isRecursive: true - OA_columns: [ taxon_superieur ] + OA_components: [ taxon_superieur ] nomDuTaxonDetermine: OA_required: true OA_i18n: fr: "nom du taxon déterminé" OA_checker: OA_name: OA_string - OA_columns: [ nom ] + OA_components: [ nom ] OA_basicComponents: nom: OA_importHeader: nom du taxon déterminé @@ -151,24 +165,33 @@ OA_data: OA_dynamicComponents: proprietesDeTaxon: OA_exportHeader: - OA_i18n: - fr: Proprétés de Taxons - en: Properties of Taxa + OA_title: + fr: Propriétés de Taxons + en: Taxa properties + OA_description: + fr: Propriétés de Taxons + en: Taxa properties OA_headerPrefix: "pt_" OA_reference: proprietes_taxon - OA_referenceColumnToLookForHeader: propriete_key + OA_referenceComponentToLookForHeader: propriete_key OA_patternComponents: tel_S1_value: OA_patternForComponents: "(.*)_S1_(.*)_(.*)" OA_required: false OA_exportHeader: - OA_i18n: + OA_title: fr: "valeur" en: "value" - OA_components: + OA_description: + fr: "valeur" + en: "value" + OA_componentQualifiers: - tel_S1_variable: #$1 OA_exportHeader: - OA_i18n: + OA_title: + fr: "variable fr" + en: "variable en" + OA_description: fr: "variable fr" en: "variable en" OA_tags: [__ORDER_1__] @@ -180,7 +203,10 @@ OA_data: - tel_S1_qualifier: #$2 OA_tags: [__ORDER_2__] OA_exportHeader: - OA_i18n: + OA_title: + fr: "qualificatif fr" + en: "qualifier en" + OA_description: fr: "qualificatif fr" en: "qualifier en" OA_checker: @@ -188,7 +214,10 @@ OA_data: - tel_S1_resolution: #$3 OA_tags: [__ORDER_3__] OA_exportHeader: - OA_i18n: + OA_title: + fr: "resolution fr" + en: "resolution en" + OA_description: fr: "resolution fr" en: "resolution en" OA_checker: @@ -197,13 +226,19 @@ OA_data: OA_patternForComponents: "(.*)_S2_(.*)_(.*)" OA_required: false OA_exportHeader: - OA_i18n: + OA_title: + fr: "valeur" + en: "value" + OA_description: fr: "valeur" en: "value" - OA_components: + OA_componentQualifiers: - tel_S2_variable: #$1 OA_exportHeader: - OA_i18n: + OA_title: + fr: "variable fr" + en: "variable en" + OA_description: fr: "variable fr" en: "variable en" OA_tags: [__ORDER_1__] @@ -215,7 +250,10 @@ OA_data: - tel_S2_qualifier: #$2 OA_tags: [__ORDER_2__] OA_exportHeader: - OA_i18n: + OA_title: + fr: "qualificatif fr" + en: "qualifier en" + OA_description: fr: "qualificatif fr" en: "qualifier en" OA_checker: @@ -223,7 +261,10 @@ OA_data: - tel_S2_resolution: #$3 OA_tags: [__ORDER_3__] OA_exportHeader: - OA_i18n: + OA_title: + fr: "resolution fr" + en: "resolution en" + OA_description: fr: "resolution fr" en: "resolution en" OA_checker: @@ -237,8 +278,12 @@ OA_data: - siteName # ajout d'un nom internationnalisé OA_i18n: - fr: Condition de prélèvement - en: Collection condition + OA_title: + fr: Condition de prélèvement + en: Collection condition + OA_description: + fr: Condition de prélèvement + en: Collection condition OA_basicComponents: date_day: OA_checker: @@ -293,12 +338,19 @@ OA_data: OA_submissionScope: OA_referenceScopes: - OA_i18n: - fr: Nom du site - en: Site name + OA_title: + fr: Nom du site + en: Site name + OA_description: + fr: Nom du site + en: Site name OA_reference: site OA_component: siteName OA_exportHeader: - OA_i18n: + OA_title: + fr: Nom du site + en: Site name + OA_description: fr: Nom du site en: Site name # par date diff --git a/src/test/resources/data/validation/broken-fake-app.yaml b/src/test/resources/data/validation/broken-fake-app.yaml index 434b0bd98..bff5d67e7 100644 --- a/src/test/resources/data/validation/broken-fake-app.yaml +++ b/src/test/resources/data/validation/broken-fake-app.yaml @@ -2,8 +2,12 @@ OA_version: 2.0.1 OA_application: OA_defaultLanguage: fr OA_i18n: - fr: Application pour de faux - en: Fake application + OA_title: + fr: Application pour de faux + en: Fake application + OA_description: + fr: Ceci est une application pour de faux + en: this is a fake application OA_comment: Fichier de test pour tester le builder de configuration OA_name: fake_application OA_version: 3.0.1 @@ -15,15 +19,22 @@ OA_tags: fr: test en: test OA_rightsRequest: - OA_description: - OA_i18n: - fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire - en: You can request rights to the monsore application by filling out this form - OA_FORM_FIELDS: + OA_i18n: + OA_title: + fr: Si pour de faux + en: Fake Si + OA_description: + fr: Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire + en: You can request rights to the monsore application by filling out this form + OA_formFields: organization: OA_i18n: - fr: Nom de l'organisme de recherche - en: Name of research organization + OA_title: + fr: Nom de l'organisme de recherche + en: Name of research organization + OA_description: + fr: Indiquez le nom de l'organisme de recherche + en: Give the research organization name OA_required: true OA_checker: OA_name: OA_string @@ -31,24 +42,36 @@ OA_rightsRequest: OA_pattern: ".*" project: OA_i18n: - fr: Description du projet de recherche - en: Description of the research project + OA_title: + fr: Description du projet de recherche + en: Description of the research project + OA_description: + fr: Indiquez une description du projet de recherche + en: Give a description of the research project OA_checker: OA_name: OA_string OA_params: OA_pattern: ".*" startDate: OA_i18n: - fr: Date de début du projet - en: Project start date + OA_title: + fr: Date de début du projet + en: Project start date + OA_description: + fr: Indiquez la date de début du projet + en: Give the project start date OA_checker: OA_name: OA_date OA_params: OA_pattern: "dd/MM/yyyy" endDate: OA_i18n: - fr: Date de fin du projet - en: Project end date + OA_title: + fr: Date de fin du projet + en: Project end date + OA_description: + fr: Indiquez la date de fin du projet + en: Give the project end date OA_checker: OA_name: OA_date OA_params: @@ -57,43 +80,56 @@ OA_data: especes: OA_tags: [ context ] OA_i18n: - fr: Espèces - en: Species - OA_i18nColumns: - esp_definition_fr: - fr: esp_definition_fr - en: esp_definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{esp_nom}' - en: '{esp_nom}' + OA_title: + fr: Espèces + en: Species + OA_description: + fr: Liste des espèces + en: Species list + OA_i18nDisplayPattern: + OA_title: + fr: "{esp_nom}" + en: "{esp_nom}" + OA_description: + fr: "{esp_definition_fr}" + en: "{esp_definition_en}" OA_naturalKey: - esp_nom OA_basicComponents: esp_nom: OA_tags: [ test ] OA_exportHeader: - OA_i18n: + OA_title: fr: "code" en: "code" + OA_description: + fr: "nom codique" + en: "code name" esp_definition_fr: OA_exportHeader: - OA_i18n: + OA_title: fr: "définition" - en: "définition" + OA_description: + fr: "définition de l'espece" + OA_langRestrictions: [fr] esp_definition_en: OA_exportHeader: - OA_i18n: - fr: "definition" + OA_title: en: "definition" + OA_description: + en: "species definition" + OA_langRestrictions: [en] colonne_homonyme_entre_referentiels: null OA_computedComponents: my_computed_column: OA_tags: [ __HIDDEN__ ] OA_exportHeader: - OA_i18n: + OA_title: fr: "colonne calculée" en: "computed column" + OA_description: + fr: "colonne calculant une constante" + en: "column calculating a constant" OA_computation: OA_expression: > return "my value"; @@ -107,19 +143,19 @@ OA_data: projet: OA_tags: [ context, test ] OA_i18n: - fr: Projet - en: Project - OA_i18nColumns: - nom_key: - fr: nom_fr - en: nom_en - definition_fr: - fr: definition_fr - en: definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{nom_key}' - en: '{nom_key}' + OA_title: + fr: Projet + en: Project + OA_description: + fr: Liste des projets + en: Project list + OA_i18nDisplayPattern: + OA_title: + fr: "{nom_fr}" + en: "{nom_en}" + OA_description: + fr: "{definition_fr}" + en: "{definition_en}" OA_naturalKey: - nom_key OA_basicComponents: @@ -134,19 +170,19 @@ OA_data: OA_naturalKey: - tze_nom_key OA_i18n: - fr: Types de sites - en: Sites types - OA_i18nColumns: - tze_nom_key: - fr: tze_nom_fr - en: tze_nom_en - tze_definition_fr: - fr: tze_definition_fr - en: tze_definition_en - OA_i18nDisplay: - OA_pattern: - fr: '{tze_nom_key}' - en: '{tze_nom_key}' + OA_title: + fr: Types de sites + en: Sites types + OA_description: + fr: Liste des types de sites + en: Sites types list + OA_i18nDisplayPattern: + OA_title: + fr: '{tze_nom_fr}' + en: '{tze_nom_en}' + OA_description: + fr: '{tze_definition_fr}' + en: '{tze_definition_en}' OA_basicComponents: tze_nom_key: null tze_nom_fr: null @@ -159,19 +195,19 @@ OA_data: - zet_chemin_parent - zet_nom_key OA_i18n: - fr: Site - en: Site - OA_i18nColumns: - zet_nom_key: - fr: zet_nom_fr - en: zet_nom_en - zet_description_fr: - fr: zet_description_fr - en: zet_description_en - OA_i18nDisplay: - OA_pattern: - fr: '{zet_nom_key}' - en: '{zet_nom_key}' + OA_title: + fr: Site + en: Site + OA_description: + fr: Liste des sites + en: Sites list + OA_i18nDisplayPattern: + OA_title: + fr: "{zet_nom_fr}" + en: "{zet_nom_en}" + OA_description: + fr: "{zet_description_fr}" + en: "{zet_description_en}" OA_basicComponents: tze_type_nom: OA_required: true @@ -200,22 +236,24 @@ OA_data: proprieteDeTaxon: OA_tags: [ test, context ] OA_exportHeader: - OA_i18n: + OA_title: fr: Type de Sites en: Site Type + OA_description: + fr: Liste des types de Sites + en: Site Types list OA_headerPrefix: "pt_" OA_reference: type_de_sites - OA_referenceColumnToLookForHeader: tze_nom_key + OA_referenceComponentToLookForHeader: tze_nom_key pem: OA_tags: [ context, test, __DATA__, __ORDER_2__ ] OA_i18n: - fr: Piégeage en Montée - en: Trap in ascent - OA_i18nDisplay: - especes: - OA_pattern: - fr: 'Piégeage en montée' - en: 'TRap in ascent' + OA_title: + fr: Piégeage en Montée + en: Trap in ascent + OA_description: + fr: Données de piégeage en Montée + en: Trap in ascent data OA_naturalKey: - projet - chemin @@ -271,7 +309,7 @@ OA_data: OA_i18n: fr: les reference OA_required: true - OA_columns: [ site ] + OA_components: [ site ] OA_checker: OA_name: OA_reference OA_params: @@ -280,13 +318,13 @@ OA_data: floats: OA_i18n: fr: les décimaux - OA_columns: [ is_float_value ] + OA_components: [ is_float_value ] OA_checker: OA_name: OA_float integer: OA_i18n: fr: les entiers - OA_columns: [ ordre_affichage ] + OA_components: [ ordre_affichage ] OA_checker: OA_name: OA_integer OA_computedComponents: @@ -311,9 +349,12 @@ OA_data: OA_rowNumber: 1 OA_columnNumber: 2 # ou OA_columnName: "réseau expe" OA_exportHeader: - OA_i18n: - fr: "experimental network" + OA_title: + fr: "réseau expérimental" en: "experimental network" + OA_description: + fr: "nom du réseau expérimental" + en: "experimental network name" # nom de l'en-tête de colonne à utiliser pour l'export tel_experimental_site: OA_required: true # la valeur ne peut être vide @@ -329,9 +370,12 @@ OA_data: OA_references: - sites OA_exportHeader: - OA_i18n: - fr: "experimental site" - en: "experimental site" + OA_title: + fr: "Site expérimental" + en: "Experimental site" + OA_description: + fr: "Nom du site expérimental" + en: "experimental site name" OA_checker: OA_name: OA_reference # un computationChecker de type reference OA_params: @@ -342,20 +386,29 @@ OA_data: OA_patternForComponents: "(.*)_(.*)" OA_required: false OA_exportHeader: - OA_i18n: + OA_title: fr: "valeur" en: "value" - OA_components: + OA_description: + fr: "valeur de la variable" + en: "variable value" + OA_componentQualifiers: - tel_date: #$1 OA_exportHeader: - OA_i18n: + OA_title: fr: "date fr" en: "date en" + OA_description: + fr: "la date fr" + en: "the date en" - tel_chemin: #$2 OA_exportHeader: - OA_i18n: + OA_title: fr: "Chemin" - en: "Chemin" + en: "Path" + OA_description: + fr: "le chemin" + en: "The path" OA_submission: OA_strategy: OA_VERSIONING OA_fileName: @@ -368,22 +421,36 @@ OA_data: OA_submissionScope: OA_referenceScopes: - OA_i18n: - fr: Projets - en: Projects + OA_title: + fr: Projets + en: Projects + OA_description: + fr: Choisissez le projet + en: Choose the project OA_reference: projet OA_component: projet OA_exportHeader: - OA_i18n: + OA_title: fr: projet en: project + OA_description: + fr: le projet + en: les projects - OA_i18n: - fr: Localisation - en: Localization + OA_title: + fr: Localisation + en: Localization + OA_description: + fr: Choississez la localisation + en: Choose the localization OA_reference: sites OA_component: site_bassin OA_exportHeader: - OA_i18n: + OA_title: fr: site en: site + OA_description: + fr: le site + en: the site OA_timeScope: OA_component: date \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index f1055b826..6e0b2f041 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:19.956869328","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:19.957176366","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:19.957690181","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:19.95783937","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:19.957994245","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:19.958158123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:19.958276356","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:33.72566104","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:33.725745695","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:33.725972486","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:33.72604292","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:33.726093939","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:33.726148124","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:33.726215942","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:52.402292976","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:52.402408858","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:52.402893521","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:52.403039224","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:52.403111653","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:52.403199757","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:52.403329046","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:07.296595168","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:07.296838714","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:07.297323155","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:07.297447093","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:07.297548646","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:07.297742014","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:07.298001207","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:09.422878655","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:09.423145853","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:09.423629723","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:09.423781015","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:09.423918866","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:09.424083756","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:09.424267204","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:26:58.404062937","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:26:58.404561569","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:26:58.405283123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:26:58.405451698","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:26:58.40557663","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:26:58.405962062","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:26:58.40618645","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:23.393646108","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:23.393741769","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:23.394014513","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:23.394090721","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:23.394181153","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:23.394242505","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:23.394320032","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:41.858660192","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-22T14:28:41.858726002","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:41.858792709","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:41.859044039","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:41.859120199","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:41.859181113","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:41.859233772","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:41.859300437","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:05.168174685","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:05.168450584","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:05.169047952","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:05.169167601","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:05.169337058","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:05.169540234","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:05.16975692","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:06.679360618","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:06.679510548","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:06.679844248","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:06.679963805","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:06.680082461","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:06.680190691","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:06.680354966","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:15.316251647","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:15.316403217","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:15.316800944","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:15.316915575","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:15.317029733","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:15.317140859","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:15.317284999","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:02.958441651","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:02.95854029","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:02.9587457","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:02.958900522","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:02.959031222","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:02.95914439","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:02.959273469","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:15.730923733","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:15.731200725","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:15.731660677","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:15.731800141","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:15.731961174","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:15.732103337","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:15.732269636","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:47.936620193","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:47.936717633","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:47.936961543","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:47.937053205","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:47.93710898","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:47.93716706","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:47.937283469","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:45.874732219","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:45.874861573","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:45.875200443","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:45.875253004","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:45.875300543","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:45.875350688","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:45.875415995","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:58.756236578","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:58.756342269","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:58.756585086","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:58.756651281","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:58.756711895","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:58.756773329","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:58.75687539","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ncolumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:59.459351091","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:59.459502435","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:59.459878896","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:59.460027291","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:59.460126075","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:59.46022662","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:59.460362197","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:00.65330023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:00.653513338","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:00.654477736","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:00.654682707","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:00.654801706","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:00.654918154","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:00.655079593","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:11.105685253","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:11.105790014","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:11.106025705","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:11.106099311","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:11.106207674","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:11.106291869","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:11.106382624","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:50.147198448","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:50.147318599","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:50.147577849","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:50.147685301","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:50.147781115","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:50.147841902","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:50.147922828","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:39.554263962","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:39.554523216","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:39.554916302","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:39.555148686","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:39.555291964","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:39.555509821","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:39.555607108","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:13.154402912","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:13.154555539","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:13.154988858","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:13.155109325","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:13.155207996","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:13.155316575","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:13.15544845","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:17.487328206","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:17.487405887","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:17.487580667","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:17.487665979","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:17.487728592","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:17.487799022","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:17.487890897","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:11.508649488","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:11.508802596","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:11.509210354","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:11.509299918","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:11.509376627","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:11.509455089","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:11.509551182","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:54.63307379","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:54.633171668","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:54.633523632","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:54.633583893","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:54.633637417","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:54.633706081","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:54.633801703","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:45.707950575","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:45.708086653","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:45.708357439","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:45.708420955","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:45.708475672","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:45.708534176","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:45.708643959","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:09.05066978","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:09.050789931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:09.051075757","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:09.051130084","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:09.051178814","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:09.051230403","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:09.051294902","type":"REACTIVE_ERROR"}],"testValidConfiguration":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:24.069937689","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:24.07019317","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:24.070809155","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:24.070973841","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:24.07113226","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:24.071264746","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:24.071426991","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:05.04734601","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:05.047488105","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:05.047822045","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:05.047980746","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:05.048113142","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:05.048221449","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:05.048354137","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:26.192757465","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:26.192975646","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:26.193442046","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:26.193574687","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:26.193698398","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:26.193848547","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:26.194048585","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:29.675139685","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:29.675264403","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:29.67553259","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:29.675585651","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:29.675633147","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:29.675684011","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:29.675749974","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:35.464890444","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:35.465084553","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:35.4653935","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:35.465468067","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:35.465535007","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:35.4656017","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:35.465688655","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:22.094429445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:22.094781427","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:22.095402204","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:22.095561585","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:22.095688567","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:22.095818587","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:22.096032689","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:31.72980067","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:31.729890521","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:31.730160476","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:31.730220522","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:31.730275411","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:31.730334227","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:31.73040796","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:37.553654234","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:37.553860598","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:37.554185373","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:37.554265721","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:37.554344969","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:37.554422612","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:37.554517455","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:13.628851914","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:13.629114576","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:13.629496473","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:13.62958907","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:13.629667179","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:13.629745192","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:13.629840822","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:11.033746643","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:11.033950403","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:11.034244237","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:11.034314895","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:11.034382177","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:11.034453957","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:11.034544547","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:54.845600713","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:54.845715553","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:54.845981245","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:54.846043423","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:54.846098956","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:54.846155854","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:54.846231763","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:32.490579097","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:32.49079475","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:32.491280617","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:32.491423062","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:32.491550762","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:32.49168419","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:32.491871142","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:01.584083337","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:01.584210268","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:01.584585136","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:01.584708016","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:01.58481894","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:01.58487277","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:01.584975668","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:39.868218168","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:39.868399902","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:39.868582027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:39.868634563","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:39.86868226","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:39.868731919","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:39.868797497","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:27.62453681","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:27.624615396","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:27.625006199","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:27.625141444","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:27.62525749","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:27.625421843","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:27.625641445","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:43.649479136","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:43.649790082","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:43.650280261","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:43.650410642","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:43.650541756","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:43.650680205","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:43.650861666","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:28.225521352","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:28.225760282","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:28.226240026","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:28.2264775","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:28.226589648","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:28.226775893","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:28.227018155","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:43.869310653","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:43.869447619","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:43.869732975","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:43.869855447","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:43.870009026","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:43.870140217","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:43.870262236","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:00.857370508","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:00.857464938","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:00.85775578","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:00.857812556","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:00.857864476","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:00.857919127","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:00.85803142","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:02.896516727","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:02.896779587","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:02.897418484","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:02.897618796","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:02.897809666","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:02.898017557","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:02.898273712","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > frrr","unexpectedSections":["en","frrr"]}},"time":"2024-10-22T14:28:19.267520847","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:19.267607538","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:19.267806467","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:19.267863347","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:19.26791506","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:19.268028466","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:19.26811652","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:41.589901245","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:41.59010249","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:41.590383657","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:41.590446453","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:41.59050032","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:41.590576761","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:41.590650395","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:17.89955189","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:17.8998383","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:17.900381897","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:17.900512067","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:17.900633265","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:17.900758755","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:17.900919899","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:25.510740994","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:25.510879997","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:25.511116987","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:25.511172674","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:25.511222511","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:25.511274859","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:25.511341594","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:47.978455359","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:47.97862512","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:47.978907805","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:47.979015343","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:47.979070362","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:47.979126922","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:47.979196677","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:30.34217547","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:30.342360918","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:30.34264631","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:30.342724332","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:30.342814435","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:30.342887772","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:30.343011081","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_components > tel_date","componentName":"tel_date"}},"time":"2024-10-22T14:27:30.343555538","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:27:56.715152798","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:27:56.715302304","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:56.715566616","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:56.715629959","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:56.715689556","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:27:56.715761984","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:27:56.715884931","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:35.871462445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:35.871564212","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:35.871816365","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:35.871870858","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:35.871919854","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:35.872014977","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:35.872085477","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-22T14:28:35.872519907","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:37.850207719","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:37.850294301","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:37.850482036","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:37.850534351","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:37.850582253","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:37.850633836","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:37.850699636","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:52.558717047","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:52.558804027","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:52.55914315","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:52.559198059","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:52.559247134","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:52.559299187","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_patternComponents","OA_validations","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:52.559364457","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-22T14:28:52.55956415","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:50.274552378","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:50.274630773","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:50.274824433","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:50.274878286","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:50.274936019","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:50.27503153","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:50.275098256","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:21.249125365","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:21.24920706","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:21.249397075","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:21.249451386","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:21.249500878","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:21.249553083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:21.249618738","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:04.350231821","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:04.350428723","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:04.350657477","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:04.350720193","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:04.350788818","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:04.350849472","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:04.350950568","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:13.085510712","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:13.085698249","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:13.085921968","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:13.08603213","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:13.086098357","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:13.086147959","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:13.086212619","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:17.259258137","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:17.259358207","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:17.259554614","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:17.259609204","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:17.259659161","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:17.259714435","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:17.259789525","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:15.248222873","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:15.248310922","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:15.248496138","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:15.248549794","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:15.248599455","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:15.248650626","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:15.24871777","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:07.014641508","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:07.014732197","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:07.014961225","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:07.015036962","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:07.015087874","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:07.015140718","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:07.01521071","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:29:08.940550199","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:29:08.940637864","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:08.940835022","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:08.940889703","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:08.940985332","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:29:08.941080879","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:29:08.941145481","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_description","OA_title"],"path":"OA_application > OA_i18n > en > fr","unexpectedSections":["en","fr"]}},"time":"2024-10-22T14:28:57.200899021","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_formFields","OA_i18n"],"path":"OA_rightsRequest > OA_FORM_FIELDS > OA_description","unexpectedSections":["OA_FORM_FIELDS","OA_description"]}},"time":"2024-10-22T14:28:57.201047429","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > especes > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:57.201228766","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > projet > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:57.201279798","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > type_de_sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:57.201327098","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > sites > OA_i18nDisplay > OA_basicComponents > OA_i18n > OA_i18nColumns > OA_dynamicComponents > OA_naturalKey > OA_tags","unexpectedSections":["OA_i18nDisplay","OA_i18nColumns"]}},"time":"2024-10-22T14:28:57.201376995","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_i18nDisplayPattern","OA_dataHeaderLine","OA_submission","OA_basicComponents","OA_i18n","OA_validations","OA_patternComponents","OA_tags","OA_computedComponents","OA_constantComponents","OA_authorizations","OA_allowUnexpectedColumns","OA_separator","OA_dynamicComponents","OA_naturalKey","OA_dataFirstLine"],"path":"OA_data > pem > OA_constantComponents > OA_i18nDisplay > OA_dataHeaderLine > OA_submission > OA_basicComponents > OA_i18n > OA_validations > OA_patternComponents > OA_naturalKey > OA_dataFirstLine > OA_tags > OA_computedComponents","unexpectedSections":["OA_i18nDisplay"]}},"time":"2024-10-22T14:28:57.201440963","type":"REACTIVE_ERROR"}]} \ No newline at end of file +{"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-23T17:41:25.390990013","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-23T17:41:28.917365094","type":"REACTIVE_ERROR"}]} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt index b082a20d5..b78fa72ca 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt @@ -1,17 +1,17 @@ -{"result":0.0,"time":[2024,10,22,18,15,46,943172566],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,945405776],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,22,18,15,46,945471640],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,945515482],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,22,18,15,46,945536770],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,22,18,15,46,947072049],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,22,18,15,46,947125135],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,22,18,15,46,947138851],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,22,18,15,47,939248754],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,22,18,15,47,939318233],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,22,18,15,47,939340728],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,48,162463271],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,48,162518951],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,48,162543769],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,48,214049936],"type":"REACTIVE_INFO"} -{"result":"64bc225e-6a79-4ee5-a13e-a1a62fefdd08","time":[2024,10,22,18,15,48,262118652],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,22,18,15,48,262172935],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,23,17,33,45,429536656],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,431074733],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,23,17,33,45,431125746],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,431184506],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,23,17,33,45,431215762],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,23,17,33,45,433239866],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,23,17,33,45,433301132],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,23,17,33,45,433315050],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,23,17,33,45,528055294],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,23,17,33,45,528135863],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,23,17,33,45,528147762],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,560486152],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,560560687],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,560591274],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,611038619],"type":"REACTIVE_INFO"} +{"result":"949d9a4a-bb34-4dba-830f-7bc220e96fa7","time":[2024,10,23,17,33,45,651486581],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,23,17,33,45,651571898],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt index b6a91180f..6b57feb59 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt @@ -1,21 +1,21 @@ -{"result":0.0,"time":[2024,10,22,18,15,45,191724502],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,45,194451655],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,22,18,15,45,194731989],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,45,194858137],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,22,18,15,45,194914327],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,22,18,15,45,198338327],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,22,18,15,45,198398321],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,22,18,15,45,198441411],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,22,18,15,46,277868129],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,22,18,15,46,277968218],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,22,18,15,46,277995990],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,489062258],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,489145142],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,489457003],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,770904670],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,770992286],"type":"REACTIVE_INFO"} -{"result":0.5,"time":[2024,10,22,18,15,46,771274048],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,46,771315576],"type":"REACTIVE_INFO"} -{"result":"64bc225e-6a79-4ee5-a13e-a1a62fefdd08","time":[2024,10,22,18,15,46,771362582],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,22,18,15,46,771529696],"type":"REACTIVE_PROGRESS"} -{"result":1.0,"time":[2024,10,22,18,15,46,771556283],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,23,17,33,44,845992860],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,847919023],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,23,17,33,44,848171712],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,848243493],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,23,17,33,44,848275527],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,23,17,33,44,850445975],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,23,17,33,44,850480939],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,23,17,33,44,850489653],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,23,17,33,44,951919815],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,23,17,33,44,951993528],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,23,17,33,44,952005282],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,991214124],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,991290033],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,991574865],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,281736361],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,281843852],"type":"REACTIVE_INFO"} +{"result":0.5,"time":[2024,10,23,17,33,45,282149372],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,282187368],"type":"REACTIVE_INFO"} +{"result":"949d9a4a-bb34-4dba-830f-7bc220e96fa7","time":[2024,10,23,17,33,45,282198089],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,23,17,33,45,282304892],"type":"REACTIVE_PROGRESS"} +{"result":1.0,"time":[2024,10,23,17,33,45,282314515],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index 4d1bee7e5..b2ebf01b8 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,10 +1,10 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,22,18,15,42,634000663],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,22,18,15,42,638371351],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,22,18,15,42,638777237],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2024,10,22,18,15,42,639750025],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,22,18,15,43,884815457],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,22,18,15,43,885282978],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,22,18,15,43,885774581],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,22,18,15,45,19275711],"type":"REACTIVE_INFO"} -{"result":{"id":"ffc998d8-d2a5-47c0-8b14-7f0575ff2cf4","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"projet","reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"especes","reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"valeurs_qualitatives","reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"type_de_sites","reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"format":{"organization":{"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"format":{"nom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"format":{"nom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,22,18,15,45,20289804],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,22,18,15,45,20673135],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,23,17,33,43,655713607],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,23,17,33,43,658825425],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,23,17,33,43,659196080],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2024,10,23,17,33,43,659936266],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,23,17,33,43,965406648],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,23,17,33,43,965950065],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,23,17,33,43,966298378],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,731964894],"type":"REACTIVE_INFO"} +{"result":{"id":"1277d94e-9ff2-4f32-a289-ead152e768f8","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"format":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"format":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"format":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,23,17,33,44,732897555],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,23,17,33,44,733222240],"type":"REACTIVE_PROGRESS"} -- GitLab From d0711bf91e34daa25575891fa51b1f0eef337329 Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Wed, 23 Oct 2024 18:45:42 +0200 Subject: [PATCH 28/52] Renommage de format en formFields --- .../configuration/AdditionalFileDescription.java | 2 +- .../application/configuration/RightRequestDescription.java | 2 +- .../oresing/persistence/AdditionalFileSearchHelper.java | 4 ++-- src/main/java/fr/inra/oresing/rest/OreSiService.java | 6 +++--- .../authorizations/RequestAuthorizationManagementView.vue | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/AdditionalFileDescription.java b/src/main/java/fr/inra/oresing/domain/application/configuration/AdditionalFileDescription.java index 7e28d24f3..c2b59fcc8 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/AdditionalFileDescription.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/AdditionalFileDescription.java @@ -2,7 +2,7 @@ package fr.inra.oresing.domain.application.configuration; import java.util.Map; -public record AdditionalFileDescription(Map<String, FieldDescription> format) { +public record AdditionalFileDescription(Map<String, FieldDescription> formFields) { private static AdditionalFileDescription EMPTY_INSTANCE = new AdditionalFileDescription(Map.of()); public static AdditionalFileDescription EMPTY_INSTANCE() { return EMPTY_INSTANCE; diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/RightRequestDescription.java b/src/main/java/fr/inra/oresing/domain/application/configuration/RightRequestDescription.java index 7d7887607..793fdaff5 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/RightRequestDescription.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/RightRequestDescription.java @@ -2,5 +2,5 @@ package fr.inra.oresing.domain.application.configuration; import java.util.Map; -public record RightRequestDescription(Map<String, FieldDescription> format) { +public record RightRequestDescription(Map<String, FieldDescription> formFields) { } diff --git a/src/main/java/fr/inra/oresing/persistence/AdditionalFileSearchHelper.java b/src/main/java/fr/inra/oresing/persistence/AdditionalFileSearchHelper.java index c3ce16f95..c9cfbee84 100644 --- a/src/main/java/fr/inra/oresing/persistence/AdditionalFileSearchHelper.java +++ b/src/main/java/fr/inra/oresing/persistence/AdditionalFileSearchHelper.java @@ -96,7 +96,7 @@ public class AdditionalFileSearchHelper { if (!CollectionUtils.isEmpty(fieldFilters)) { Optional.ofNullable(fieldFilters) .map(filters -> filters.stream() - .map(filter -> whereForField(filter, additionalFileDescription.format().get(filter.field))) + .map(filter -> whereForField(filter, additionalFileDescription.formFields().get(filter.field))) .collect(Collectors.joining(" and ", "(", ")"))) .ifPresent(whereElement -> where.add(whereElement)); } @@ -112,7 +112,7 @@ public class AdditionalFileSearchHelper { filters.add(String.format( "fileinfos #> '{\"%s\"}' @@ ('$ like_regex \"'||%s||'\"')::jsonpath", JsonTableInApplicationSchemaRepositoryTemplate.escapeSql(filter.getField()), - /*String.format(isRegExp ? "~ %s" : "ilike '%%'||%s||'%%'", */ + /*String.formFields(isRegExp ? "~ %s" : "ilike '%%'||%s||'%%'", */ addArgumentAndReturnSubstitution(filter.getFilter())//) ) ); diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index eb7cc2a96..bd20ccd35 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -196,7 +196,7 @@ public class OreSiService { .collect( Collectors.toMap( Map.Entry::getKey, - k -> new ApplicationResult.AdditionalFile(k.getValue().format().keySet()) + k -> new ApplicationResult.AdditionalFile(k.getValue().formFields().keySet()) ) ); final Map<String, StandardDataDescription> referenceComponents = Maps.filterValues(application.getConfiguration().dataDescription(), cd -> { @@ -988,8 +988,8 @@ public class OreSiService { AdditionalFilesInfos.AdditionalFileInfos value = entry.getValue(); if (value != null && !CollectionUtils.isEmpty(value.getFieldFilters())) { for (final AdditionalFilesInfos.FieldFilters filter : value.getFieldFilters()) { - if (additionalFileDescription.format().get(filter.field) == null) { - builder.unknownFieldAdditionalFilename(additionalFileName, filter.field, additionalFileDescription.format().keySet()); + if (additionalFileDescription.formFields().get(filter.field) == null) { + builder.unknownFieldAdditionalFilename(additionalFileName, filter.field, additionalFileDescription.formFields().keySet()); } } } diff --git a/ui/src/views/authorizations/RequestAuthorizationManagementView.vue b/ui/src/views/authorizations/RequestAuthorizationManagementView.vue index ab582f547..849ac224a 100644 --- a/ui/src/views/authorizations/RequestAuthorizationManagementView.vue +++ b/ui/src/views/authorizations/RequestAuthorizationManagementView.vue @@ -64,7 +64,7 @@ {{ internationalisationService.getLocaleforPath( application, - "rightsRequest.format." + name, + "rightsRequest.formFields." + name, name ) }} -- GitLab From d39a84e0587da508c7b89004fd8e8d303a4e02dc Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Thu, 24 Oct 2024 09:24:49 +0200 Subject: [PATCH 29/52] Correction du test en echec --- .../inra/oresing/rest/OreSiResourcesTest.java | 4 +- .../fixtures/applications/errors/errors.json | 2 +- .../ore/monsore/changeMonsore.txt | 34 +++++++-------- .../ore/monsore/createMonsore.txt | 42 +++++++++---------- .../ore/monsore/validateMonsore.txt | 20 ++++----- 5 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index 2d26f6d3f..63d0226bd 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -992,8 +992,8 @@ public class OreSiResourcesTest { .andExpect(jsonPath("$.data.valeurs_qualitatives.tags[*].tagName", contains("data"))) .andExpect(jsonPath("$.data.variables_et_unites_par_types_de_donnees.tags[*].tagName", contains("data"))) .andExpect(jsonPath("$.internationalization.tags.context.fr", Is.is("contexte"))) - .andExpect(jsonPath("$.rightsRequest.description.format.endDate", not(empty()))) - .andExpect(jsonPath("$.configuration.rightsRequest.format.organization", not(empty()))) + .andExpect(jsonPath("$.rightsRequest.description.formFields.endDate", not(empty()))) + .andExpect(jsonPath("$.configuration.rightsRequest.formFields.organization", not(empty()))) .andExpect(jsonPath("$.data.pem.tags[*].tagName", hasItem("data"))) .andExpect(jsonPath("$.data.pem.componentDescriptions.projet.tags[*].tagName", hasItem("test"))) .andExpect(jsonPath("$.data.pem.componentDescriptions.projet.tags[*].tagOrder", hasItem(2))) diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index 6e0b2f041..9e26dfeeb 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-23T17:41:25.390990013","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-23T17:41:28.917365094","type":"REACTIVE_ERROR"}]} \ No newline at end of file +{} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt index b78fa72ca..d3141c85d 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt @@ -1,17 +1,17 @@ -{"result":0.0,"time":[2024,10,23,17,33,45,429536656],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,431074733],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,23,17,33,45,431125746],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,431184506],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,23,17,33,45,431215762],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,23,17,33,45,433239866],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,23,17,33,45,433301132],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,23,17,33,45,433315050],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,23,17,33,45,528055294],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,23,17,33,45,528135863],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,23,17,33,45,528147762],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,560486152],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,560560687],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,560591274],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,611038619],"type":"REACTIVE_INFO"} -{"result":"949d9a4a-bb34-4dba-830f-7bc220e96fa7","time":[2024,10,23,17,33,45,651486581],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,23,17,33,45,651571898],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,24,9,20,58,320527080],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,322638463],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,24,9,20,58,322715410],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,322773525],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,24,9,20,58,322795962],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,24,9,20,58,324399305],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,24,9,20,58,324473455],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,24,9,20,58,324488966],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,24,9,20,58,446863508],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,24,9,20,58,446983711],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,24,9,20,58,447003467],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,475834460],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,475892099],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,475914348],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,517801687],"type":"REACTIVE_INFO"} +{"result":"17caefc0-0c09-4b95-a132-212ef6a22c01","time":[2024,10,24,9,20,58,552781663],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,24,9,20,58,552848810],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt index 6b57feb59..4080b94eb 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt @@ -1,21 +1,21 @@ -{"result":0.0,"time":[2024,10,23,17,33,44,845992860],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,847919023],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,23,17,33,44,848171712],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,848243493],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,23,17,33,44,848275527],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,23,17,33,44,850445975],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,23,17,33,44,850480939],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,23,17,33,44,850489653],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,23,17,33,44,951919815],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,23,17,33,44,951993528],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,23,17,33,44,952005282],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,991214124],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,991290033],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,991574865],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,281736361],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,281843852],"type":"REACTIVE_INFO"} -{"result":0.5,"time":[2024,10,23,17,33,45,282149372],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,45,282187368],"type":"REACTIVE_INFO"} -{"result":"949d9a4a-bb34-4dba-830f-7bc220e96fa7","time":[2024,10,23,17,33,45,282198089],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,23,17,33,45,282304892],"type":"REACTIVE_PROGRESS"} -{"result":1.0,"time":[2024,10,23,17,33,45,282314515],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,24,9,20,57,664075998],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,666188860],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,24,9,20,57,666401654],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,666484352],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,24,9,20,57,666515492],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,24,9,20,57,669336928],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,24,9,20,57,669402464],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,24,9,20,57,669417649],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,24,9,20,57,773192956],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,24,9,20,57,773278649],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,24,9,20,57,773291965],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,826298441],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,826404394],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,826801157],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,167919857],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,168083147],"type":"REACTIVE_INFO"} +{"result":0.5,"time":[2024,10,24,9,20,58,168370497],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,168408828],"type":"REACTIVE_INFO"} +{"result":"17caefc0-0c09-4b95-a132-212ef6a22c01","time":[2024,10,24,9,20,58,168429801],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,24,9,20,58,168615861],"type":"REACTIVE_PROGRESS"} +{"result":1.0,"time":[2024,10,24,9,20,58,168635852],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index b2ebf01b8..519e027dd 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,10 +1,10 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,23,17,33,43,655713607],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,23,17,33,43,658825425],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,23,17,33,43,659196080],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2024,10,23,17,33,43,659936266],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,23,17,33,43,965406648],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,23,17,33,43,965950065],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,23,17,33,43,966298378],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,23,17,33,44,731964894],"type":"REACTIVE_INFO"} -{"result":{"id":"1277d94e-9ff2-4f32-a289-ead152e768f8","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"format":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"format":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"format":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,23,17,33,44,732897555],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,23,17,33,44,733222240],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,24,9,20,56,69207874],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,24,9,20,56,72722399],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,24,9,20,56,73126376],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2024,10,24,9,20,56,74064583],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,24,9,20,56,495739526],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,24,9,20,56,496351433],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,24,9,20,56,496738243],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,508849579],"type":"REACTIVE_INFO"} +{"result":{"id":"e41f4e15-2509-47b6-8dd1-1c5bf429ed9b","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"projet","reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"especes","reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"valeurs_qualitatives","reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"type_de_sites","reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,24,9,20,57,509799070],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,24,9,20,57,510150808],"type":"REACTIVE_PROGRESS"} -- GitLab From f01d004ec56038dedd7255ffed0520e99eeb4012 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Mon, 28 Oct 2024 17:04:13 +0100 Subject: [PATCH 30/52] affichage des infos formulaire de la demande d'autorisation avec format date + le select + le number --- .../fr/inra/oresing/rest/OreSiService.java | 15 +- .../CreateRightsRequestRequest.java | 9 +- .../http/application/LoadMonSores.http | 3 +- .../resources/http/application/addrights.http | 34 +- .../common/AuthorizationTableForDatatype.vue | 22 +- .../components/common/provider/FieldsForm.vue | 11 +- .../components/common/provider/InputDate.vue | 5 +- .../common/provider/InputNumber.vue | 2 +- .../common/provider/OreInputDate.vue | 26 +- .../common/provider/OreInputNumber.vue | 26 +- .../common/provider/OreInputReference.vue | 2 +- .../common/provider/OreInputText.vue | 2 +- ui/src/composable/application/DatePattern.js | 24 +- .../AdditionalFileInfosView.vue | 2 +- .../AdditionalFilesManagementView.vue | 10 +- .../AuthorizationsRightsRequestInfoView.vue | 176 ++++---- .../DataTypeAuthorizationInfoView.vue | 4 +- .../DataTypeAuthorizationsView.vue | 26 -- .../RequestAuthorizationManagementView.vue | 388 ++++++++++-------- 19 files changed, 437 insertions(+), 350 deletions(-) diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index e11789916..387ff8217 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -12,6 +12,7 @@ import fr.inra.oresing.domain.application.ApplicationInformation; import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.Ltree; +import fr.inra.oresing.domain.authorization.request.AuthorizationRequest; import fr.inra.oresing.domain.chart.Chart; import fr.inra.oresing.domain.chart.OreSiSynthesis; import fr.inra.oresing.domain.checker.CheckerFactory; @@ -851,7 +852,9 @@ public class OreSiService { final RightRequestDescription description = application.getConfiguration().rightsRequest(); List<RightsRequest> rightsRequests = rightsRequestService.findRightsRequests(application, rightsRequestInfos); List<RightsRequestResult> rightsRequestResult = rightsRequests.stream() - .map(rightsRequest -> getRightsRequestResult(rightsRequest, application)) + .map(rightsRequest -> + getRightsRequestResult(rightsRequest, application) + ) .collect(Collectors.toList()); ImmutableSortedSet<GetGrantableResult.User> grantableUsers = authorizationService.getGrantableUsers(); return new GetRightsRequestResult(grantableUsers, rightsRequestResult, description); @@ -895,10 +898,18 @@ public class OreSiService { OreSiAuthorization authorizations = Optional.ofNullable(createRightsRequestRequest) .map(CreateRightsRequestRequest::rightsRequest) .map(authorization -> { + List errors = new ArrayList<>(); + AuthorizationRequest authorizationRequestToAuthorizationRequest = authorizationService.createAuthorizationRequestToAuthorizationRequest( + authorization, + application, + List.of(getCurrentUser().getId()), + List.of(), + errors + ); OreSiAuthorization oreSiAuthorization = new OreSiAuthorization(); oreSiAuthorization.setId(rightsRequest.getId()); oreSiAuthorization.setApplication(application.getId()); - //TODOoreSiAuthorization.setAuthorizations(authorization.authorizations()); + oreSiAuthorization.setAuthorizations(authorizationRequestToAuthorizationRequest.buildAuthorizationsByDataname()); return oreSiAuthorization; }) .orElse(null); diff --git a/src/main/java/fr/inra/oresing/rest/model/rightsrequest/CreateRightsRequestRequest.java b/src/main/java/fr/inra/oresing/rest/model/rightsrequest/CreateRightsRequestRequest.java index 96a3a459b..2d45efa8c 100644 --- a/src/main/java/fr/inra/oresing/rest/model/rightsrequest/CreateRightsRequestRequest.java +++ b/src/main/java/fr/inra/oresing/rest/model/rightsrequest/CreateRightsRequestRequest.java @@ -6,6 +6,11 @@ import java.util.Map; import java.util.UUID; -public record CreateRightsRequestRequest(UUID id, Map<String, String> fields, CreateAuthorizationRequest rightsRequest, - boolean setted, String comment) { +public record CreateRightsRequestRequest( + UUID id, + Map<String, String> fields, + CreateAuthorizationRequest rightsRequest, + boolean setted, + String comment +) { } \ No newline at end of file diff --git a/src/test/resources/http/application/LoadMonSores.http b/src/test/resources/http/application/LoadMonSores.http index db600ad65..2856abda7 100644 --- a/src/test/resources/http/application/LoadMonSores.http +++ b/src/test/resources/http/application/LoadMonSores.http @@ -1,5 +1,4 @@ ### login - POST localhost:8081/api/v1/login?login=poussin&password=xxxx Content-Type: application/json @@ -383,5 +382,5 @@ Content-Type: application/json }, "authorizationsWithRestriction": {} }, - "comment": "demande pour philippe" + "comment": "demande pour echo" } \ No newline at end of file diff --git a/src/test/resources/http/application/addrights.http b/src/test/resources/http/application/addrights.http index 121842649..41cc9f116 100644 --- a/src/test/resources/http/application/addrights.http +++ b/src/test/resources/http/application/addrights.http @@ -55,8 +55,6 @@ Content-Type: application/json "authorizationsWithRestriction": {} } - - ### On met les droits test droit pem nivelle p1 + projets(les 2) de 02/10/2024 à 31/12/2024 POST localhost:8081/api/v1/applications/monsore/authorization Content-Type: application/json @@ -89,4 +87,36 @@ Content-Type: application/json } } } +} + +### création d'une demande de droit d'accès aux données +POST http://localhost:8081/api/v1/applications/monsore/rightsRequest +Content-Type: application/json + +{ + "id": null, + "fields": { + "float": "10.005", + "number": "5", + "endDate": "31/10/2024", + "project": "projet manche en text", + "startDate": "01/10/2024", + "organization": "besoin des données de scarff", + "selcetProject": "projet_manche" + }, + "rightsRequest": { + "uuid": null, + "name": "Demande d'autorisations pour l'utilisateur echo", + "description": "null", + "usersId": [ + "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9" + ], + "authorizationForAll": { + "variables_et_unites_par_types_de_donnees": [ + "extraction" + ] + }, + "authorizationsWithRestriction": {} + }, + "comment": "demande pour echo" } \ No newline at end of file diff --git a/ui/src/components/common/AuthorizationTableForDatatype.vue b/ui/src/components/common/AuthorizationTableForDatatype.vue index 017571823..2c6a0e5d3 100644 --- a/ui/src/components/common/AuthorizationTableForDatatype.vue +++ b/ui/src/components/common/AuthorizationTableForDatatype.vue @@ -2,10 +2,10 @@ <div> <b-collapse v-if=" - (localeInitialized && - localeReferences.withoutScope && + localeInitialized && + ((localeReferences.withoutScope && Object.keys(localeReferences.withoutScope).length !== 0) || - (localeReferences.withScope && Object.keys(localeReferences.withScope).length !== 0) + (localeReferences.withScope && Object.keys(localeReferences.withScope).length !== 0)) " :open="false" animation="slide" @@ -74,10 +74,10 @@ </b-collapse> <b-collapse v-if=" - (localeInitialized && - localeDatatypes.withoutScope && + localeInitialized && + ((localeDatatypes.withoutScope && Object.keys(localeDatatypes.withoutScope).length !== 0) || - (localeDatatypes.withScope && Object.keys(localeDatatypes.withScope).length !== 0) + (localeDatatypes.withScope && Object.keys(localeDatatypes.withScope).length !== 0)) " :open="false" animation="slide" @@ -167,6 +167,7 @@ export default { }, datatypes: { type: Object, + required: true, }, listColumnName: { type: Object, @@ -179,6 +180,7 @@ export default { initialized: Boolean, references: { type: Object, + required: true, }, application: { type: Object, @@ -199,7 +201,7 @@ export default { const localeApplicationName = ref(""); const localeAuthorizationId = ref(""); const localeDatatypes = ref({}); - const localeListColumnName = ref([]); + const localeListColumnName = ref({}); const localeHasDependencies = ref([]); const localeInitialized = ref(false); const localeReferences = ref({}); @@ -211,11 +213,11 @@ export default { watchEffect(() => { localeApplicationName.value = props.applicationName || ""; localeAuthorizationId.value = props.authorizationId || ""; - localeDatatypes.value = props.datatypes || {}; - localeListColumnName.value = props.listColumnName || []; + localeDatatypes.value = props.datatypes; + localeListColumnName.value = props.listColumnName; localeHasDependencies.value = props.hasDependencies || []; localeInitialized.value = props.initialized || false; - localeReferences.value = props.references || {}; + localeReferences.value = props.references; localeApplication.value = props.application || {}; localeCurrentAuthorization.value = props.currentAuthorization || {}; localeAuthorizations.value = props.authorizations || {}; diff --git a/ui/src/components/common/provider/FieldsForm.vue b/ui/src/components/common/provider/FieldsForm.vue index 58ea1868f..6c772eed1 100644 --- a/ui/src/components/common/provider/FieldsForm.vue +++ b/ui/src/components/common/provider/FieldsForm.vue @@ -33,7 +33,7 @@ :label=" internationalisationService.getLocaleforPath(application, pathForKey + '.' + key, key) " - :value="fields[key] ? fields[key] : 0" + :value="fields[key] ? (item.checker.type === 'FloatChecker' ? parseFloat(fields[key]) : parseInt(fields[key])) : 0" :vid="key" @update:value="updateValue(key, $event)" /> @@ -119,14 +119,17 @@ export default { if (newValue) { fields.value = ref(newValue); } - } + }, { immediate: true } ); onMounted(async ()=> { + const newReferencesScopes = {}; for (let item in props.format) { if(props.format[item].checker && props.format[item].checker.type ==='ReferenceChecker' && props.format[item].checker.refType) { - referencesScopes.value[item] = await services.dataService.getData(props.application.name, props.format[item].checker.refType); + newReferencesScopes[item] = await services.dataService.getData(props.application.name, props.format[item].checker.refType); } } + referencesScopes.value = newReferencesScopes; + console.log(props.fields) }) function onSubmit(event) { @@ -152,7 +155,7 @@ export default { updateComment, updateValue, onSubmit, - referencesScopes + referencesScopes, }; }, methods: {}, diff --git a/ui/src/components/common/provider/InputDate.vue b/ui/src/components/common/provider/InputDate.vue index d998449aa..1f0b7aa8f 100644 --- a/ui/src/components/common/provider/InputDate.vue +++ b/ui/src/components/common/provider/InputDate.vue @@ -20,7 +20,7 @@ export default { () => props.from, (value) => { valueDate.value = value; - } + }, { immediate: true } ); function updateValueDate(event) { if (typeof event === "number") { @@ -50,6 +50,7 @@ export default { editable expanded icon="calendar-day" + :years-range="[-100,100]" @focus="updateValueDate(22.625)" @blur="updateValueDate(-22.625)" > @@ -62,6 +63,7 @@ export default { editable expanded icon="calendar-day" + :years-range="[-100,100]" @focus="updateValueDate(22.625)" @blur="updateValueDate(-22.625)" > @@ -74,6 +76,7 @@ export default { editable expanded icon="clock" + :years-range="[-100,100]" @blur="updateValueDate" > </b-timepicker> diff --git a/ui/src/components/common/provider/InputNumber.vue b/ui/src/components/common/provider/InputNumber.vue index 11733ccb3..275fcc2c2 100644 --- a/ui/src/components/common/provider/InputNumber.vue +++ b/ui/src/components/common/provider/InputNumber.vue @@ -20,7 +20,7 @@ export default { () => props.from, (value) => { valueNumber.value = value; - } + }, { immediate: true } ); function updateValueNumber() { ctx.emit("update:numberValue", { diff --git a/ui/src/components/common/provider/OreInputDate.vue b/ui/src/components/common/provider/OreInputDate.vue index 31d90ca29..1d0b80515 100644 --- a/ui/src/components/common/provider/OreInputDate.vue +++ b/ui/src/components/common/provider/OreInputDate.vue @@ -43,9 +43,9 @@ <script> import moment from "moment"; import { extend, ValidationProvider } from "vee-validate"; -import { watch, ref, computed } from "vue"; +import {watch, ref, reactive} from "vue"; import InputDate from "@/components/common/provider/InputDate.vue"; -import { datePatternLang } from "@/composable/application/DatePattern"; +import {datePatternLang, parseDate} from "@/composable/application/DatePattern"; export default { name: "OreInputDate", @@ -77,21 +77,17 @@ export default { () => props.value, (newValue) => { val.value = newValue; - } + }, { immediate: true } ); - const dateValue = computed({ - get: () => { - if (typeof val.value === "string") { - return new Date(val.value); - } - return val.value; - }, - set: (newValue) => { - val.value = newValue; - updateValue(newValue); - }, - }); + const dateValue = reactive({}); + watch(() => [props.vid, val.value, props.checker.pattern], ([vid, value, pattern]) => { + if (typeof value === "string") { + dateValue[vid] = parseDate(value, pattern); + } else { + dateValue[vid] = value; + } + }, { immediate: true }); const pattern = { "dd/MM/yyyy": { diff --git a/ui/src/components/common/provider/OreInputNumber.vue b/ui/src/components/common/provider/OreInputNumber.vue index 818df8b3f..d85020e71 100644 --- a/ui/src/components/common/provider/OreInputNumber.vue +++ b/ui/src/components/common/provider/OreInputNumber.vue @@ -46,7 +46,7 @@ <script> import { extend, ValidationProvider } from "vee-validate"; -import {computed, ref, watch} from "vue"; +import {reactive, ref, watch} from "vue"; import InputNumber from "@/components/common/provider/InputNumber.vue"; import useNumber from "@/composable/components/number"; @@ -80,20 +80,18 @@ export default { () => props.value, (newValue) => { val.value = newValue; - } + }, { immediate: true } ); - const numberValue = computed({ - get: () => { - if (typeof val.value === "string") { - return 0; - } - return val.value; - }, - set: (newValue) => { - val.value = newValue; - updateValue(newValue); - }, - }); + + const numberValue = reactive({}); + watch(() => [props.vid, val.value], ([vid, value]) => { + if (typeof value === "string") { + numberValue[vid] = parseFloat(value) || 0; + } else { + numberValue[vid] = value; + } + }, { immediate: true }); + const { refNumber: min } = useNumber( props.checker.min && props.checker.min !== "-Infinity" ? props.checker.min diff --git a/ui/src/components/common/provider/OreInputReference.vue b/ui/src/components/common/provider/OreInputReference.vue index ea42f1299..ef62bd38b 100644 --- a/ui/src/components/common/provider/OreInputReference.vue +++ b/ui/src/components/common/provider/OreInputReference.vue @@ -52,7 +52,7 @@ export default { () => props.value, () => { val.value = ref(props.value); - } + }, { immediate: true } ); function getFullName(naturalKey) { diff --git a/ui/src/components/common/provider/OreInputText.vue b/ui/src/components/common/provider/OreInputText.vue index 35d239353..a7e798375 100644 --- a/ui/src/components/common/provider/OreInputText.vue +++ b/ui/src/components/common/provider/OreInputText.vue @@ -109,7 +109,7 @@ export default { if (newValue) { val.value = ref(newValue); } - } + }, { immediate: true } ); const textValue = computed({ diff --git a/ui/src/composable/application/DatePattern.js b/ui/src/composable/application/DatePattern.js index 9e98c9c23..744704582 100644 --- a/ui/src/composable/application/DatePattern.js +++ b/ui/src/composable/application/DatePattern.js @@ -1,6 +1,8 @@ -export function datePatternLang(date, pattern) { - let regex = - /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([Zz]|([/+-])([01]\d|2[0-3]):?([0-5]\d)?)?/i; +export function datePatternLang(date, pattern, regex) { + if(!regex) { + regex = + /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([Zz]|([/+-])([01]\d|2[0-3]):?([0-5]\d)?)?/i; + } let dateExec = regex.exec(date) ? new Date(regex.exec(date)[0]) : date; if (pattern != null) { if (pattern.includes("mm") || pattern.includes("HH") || pattern.includes("ss")) { @@ -123,3 +125,19 @@ export function patternCheckerDateRef(application, columnName, refId) { .checker.pattern; } } + +export function parseDate(input, format) { + format = format || 'dd/MM/yyyy'; // default format + let parts = input.match(/(\d+)/g), + i = 0, fmt = {}; + format.replace(/(yyyy|dd|MM|hh|mm|ss)/g, function(part) { fmt[part] = i++; }); + if (format.includes("hh") && format.includes("mm") && format.includes("ss")) { + return new Date(parts[fmt['yyyy']], parts[fmt['MM']] - 1, parts[fmt['dd']], parts[fmt['hh']], parts[fmt['mm']], parts[fmt['ss']]); + } else if (format.includes("hh") && format.includes("mm")) { + return new Date(parts[fmt['yyyy']], parts[fmt['MM']] - 1, parts[fmt['dd']], parts[fmt['hh']], parts[fmt['mm']], 0); + } else if (format.includes("hh")) { + return new Date(parts[fmt['yyyy']], parts[fmt['MM']] - 1, parts[fmt['dd']], parts[fmt['hh']], 0, 0); + } else { + return new Date(parts[fmt['yyyy']], parts[fmt['MM']]-1, parts[fmt['dd']],0,0,0); + } +} diff --git a/ui/src/views/additionalfiles/AdditionalFileInfosView.vue b/ui/src/views/additionalfiles/AdditionalFileInfosView.vue index eb3adb10f..7c445339c 100644 --- a/ui/src/views/additionalfiles/AdditionalFileInfosView.vue +++ b/ui/src/views/additionalfiles/AdditionalFileInfosView.vue @@ -12,7 +12,7 @@ localName: internationalisationService.getLocaleforPath( application, "additionalFiles." + additionalFileName + ".internationalizationName" - ), + ) || additionalFileName, }) }} </h1> diff --git a/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue b/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue index d66a61301..f6c15e8a9 100644 --- a/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue +++ b/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue @@ -13,7 +13,7 @@ localName: services.internationalisationService.getLocaleforPath( application, "additionalFiles." + additionalFileName + ".internationalizationName" - ), + ) || additionalFileName, }) : $t("titles.additionalFile") }} @@ -31,7 +31,7 @@ services.internationalisationService.getLocaleforPath( application, "additionalFiles." + option + ".internationalizationName" - ) + ) || option }} </option> </b-select> @@ -42,7 +42,7 @@ localName: services.internationalisationService.getLocaleforPath( application, "additionalFiles." + additionalFileName + ".internationalizationName" - ), + ) || additionalFileName, }) }} </b-button> @@ -253,7 +253,7 @@ export default { new SubMenuPath( i18n.t("additionalFilesManagement.additionalFilesManagement").toLowerCase(), () => {}, - () => app.$router.push("/applications") + () => app.$router.push("/applications/"+props.applicationName) ), ]); }); @@ -284,7 +284,7 @@ export default { Object.values(application.authorizations || []).some((rights) => rights.ADMIN) ); } catch (error) { - services.alertService.toastServerError; + services.alertService.toastServerError(error); } if (props.additionalFileName) { await loadAdditionalFiles(); diff --git a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue index 36aa71509..16cc9ee07 100644 --- a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue +++ b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue @@ -8,7 +8,7 @@ /> <h1 class="title main-title"> - <span>{{ $t("dataTypeAuthorizations.title", { label: currentUser.login }) }}</span> + <span>{{ $t("dataTypeAuthorizations.title", { label: currentUser[0] ? currentUser[0].label : currentUser.label }) }}</span> </h1> <LoadingAnimate v-if="isLoading" :size="'is-medium'"></LoadingAnimate> <ValidationObserver v-else ref="observer" v-slot="{ handleSubmit }"> @@ -25,6 +25,7 @@ > </FieldsForm> <AuthorizationTableForDatatype + v-if="Object.keys(currentAuthorization).length" :application="application" :application-name="applicationName" :authorization-id="authorizationId" @@ -90,7 +91,7 @@ import useArray from "@/composable/components/array"; import { getListColumnName } from "@/composable/authorization/grantableInfos"; export default { - name: "AuthorizationsManagementForApplicationCreatorView", + name: "AuthorizationsRightsRequestInfoView", components: { LoadingAnimate, AuthorizationTableForDatatype, @@ -117,8 +118,8 @@ export default { const isLoading = ref(false); const authenticatedUser = services.loginService.getAuthenticatedUser(); const canCreateApplication = authenticatedUser.isApplicationCreator(application); - const { reactiveObject: datatypes, doChangeObject: changeDataTypes } = useObject({}); - const { reactiveObject: references, doChangeObject: changeReferences } = useObject({}); + const datatypes = ref({withScope:{}, withoutScope:{}}); + const references = ref({withScope:{}, withoutScope:{}}); const { reactiveObject: datas } = useObject({}); const { reactiveObject: configuration, doChangeObject: changeConfiguration } = useObject({}); const { reactiveObject: authorization, doChangeObject: changeAuthorization } = useObject({}); @@ -136,7 +137,7 @@ export default { let endDate = ref(null); const description = ref(""); const dependencies = ref({}); - let currentUser = {}; + const currentUser = ref({}); let comment = null; const hasDependencies = computed(() => { const result = new Set(); @@ -248,6 +249,54 @@ export default { ), ]); } + datatypes.value = { + withScope: Object.keys(application.dataTypes) + .filter((name) => application.configuration.dataDescription[name].authorization) + .reduce((acc, dataType) => { + acc[dataType] = { + id: dataType, + name: + services.internationalisationService.localeReferenceNames(dataType, application) || + dataType, + }; + return acc; + }, {}), + withoutScope: Object.keys(application.dataTypes) + .filter((name) => application.configuration.dataDescription[name].authorization === null) + .reduce((acc, dataType) => { + acc[dataType] = { + id: dataType, + name: + services.internationalisationService.localeReferenceNames(dataType, application) || + dataType, + }; + return acc; + }, {}), + }; + references.value = { + withScope: Object.keys(application.references) + .filter((name) => application.configuration.dataDescription[name].authorization) + .reduce((acc, reference) => { + acc[reference] = { + id: reference, + name: + services.internationalisationService.localeReferenceNames(reference, application) || + reference, + }; + return acc; + }, {}), + withoutScope: Object.keys(application.references) + .filter((name) => application.configuration.dataDescription[name].authorization === null) + .reduce((acc, reference) => { + acc[reference] = { + id: reference, + name: + services.internationalisationService.localeReferenceNames(reference, application) || + reference, + }; + return acc; + }, {}), + }; isLoading.value = false; }); @@ -264,54 +313,6 @@ export default { }; return acc; }, {}); - changeDataTypes({ - withScope: Object.keys(application.dataTypes) - .filter((name) => application.configuration.dataDescription[name].authorization) - .reduce((acc, dataType) => { - acc[dataType] = { - id: dataType, - name: - services.internationalisationService.localeReferenceNames(dataType, application) || - dataType, - }; - return acc; - }, {}), - withoutScope: Object.keys(application.dataTypes) - .filter((name) => application.configuration.dataDescription[name].authorization === null) - .reduce((acc, dataType) => { - acc[dataType] = { - id: dataType, - name: - services.internationalisationService.localeReferenceNames(dataType, application) || - dataType, - }; - return acc; - }, {}), - }); - changeReferences({ - withScope: Object.keys(application.references) - .filter((name) => application.configuration.dataDescription[name].authorization) - .reduce((acc, reference) => { - acc[reference] = { - id: reference, - name: - services.internationalisationService.localeReferenceNames(reference, application) || - reference, - }; - return acc; - }, {}), - withoutScope: Object.keys(application.references) - .filter((name) => application.configuration.dataDescription[name].authorization === null) - .reduce((acc, reference) => { - acc[reference] = { - id: reference, - name: - services.internationalisationService.localeReferenceNames(reference, application) || - reference, - }; - return acc; - }, {}), - }); for (let data of Object.keys(configuration.dataDescription)) { if ( configuration.dataDescription[data] && @@ -363,7 +364,8 @@ export default { uuids: [props.authorizationId], } ); - currentUser = [request.users.find( + console.log("request", request) + currentUser.value = [request.users.find( (user) => user.id === ((request && @@ -380,35 +382,39 @@ export default { return acc; }, {}) ); - let authorizations = (rightsRequest && rightsRequest.rightsRequest) || {}; - let initialValue = new Authorizations( - { - authorizations: {}, - applicationNameOrId: props.applicationName, - users: authorizations.users, - name: authorizations.name, - uuid: authorizations.uuid, - }, - [] - ); - changeAuthorization( - (Object.keys(datatypes.value) || []).reduce((auth, datatype) => { - auth.authorizations[datatype] = new Authorizations( - { authorizations: authorizations[datatype] }, - (referencesScopes[datatype] || []).map((as) => as.id) - ); - return auth; - }, initialValue) - ); - canManage = - canCreateApplication || - (authorizations.users && - authorizations.users[0].login === - JSON.parse(localStorage.getItem("authenticatedUser")).login); + if (rightsRequest && Object.keys(rightsRequest.rightsRequest).length !== 0) { + let authorizations = (rightsRequest && rightsRequest.rightsRequest) || {}; + let initialValue = new Authorizations( + { + authorizations: {}, + applicationNameOrId: props.applicationName, + users: authorizations.users, + name: authorizations.name, + uuid: authorizations.uuid, + }, + [] + ); + initialized.value = true; + console.log(application.data) + changeAuthorization( + (Object.keys(application.data) || []).reduce((auth, dataName) => { + auth.authorizations[dataName] = new Authorizations( + { authorizations: authorizations[dataName] }, + (referencesScopes[dataName] || []).map((as) => as.id) + ); + return auth; + }, initialValue) + ); + canManage = + canCreateApplication || + (authorizations.users && + authorizations.users[0].login === + JSON.parse(localStorage.getItem("authenticatedUser")).login); + } } else { - currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); + currentUser.value = JSON.parse(localStorage.getItem("authenticatedUser")); currentAuthorization.value = {}; - initialized.value = true; + initialized.value = true; } listColumnName.value = getListColumnName(); } catch (error) { @@ -524,9 +530,9 @@ export default { return { uuid: props.authorizationId === "new" ? null : props.authorizationId, - name: i18n.t("dataTypeAuthorizations.title", { label: currentUser.login }), + name: i18n.t("dataTypeAuthorizations.title", { label: currentUser[0] ? currentUser[0].label : currentUser.label }), description: "null", - usersId: [currentUser.id], + usersId: [currentUser.value.id], authorizationForAll, authorizationsWithRestriction, }; @@ -589,7 +595,7 @@ export default { name: `request ${props.authorizationId}} for user ${currentUser.label}}`, applicationNameOrId: props.applicationName, authorizations: {}, - usersId: [currentUser.id], + usersId: [currentUser.value.id], }; for (const datatype in authorization.value.authorizations) { let authorizationForDatatype = @@ -620,7 +626,7 @@ export default { function confirmGrantAuthorization() { app.$buefy.dialog.confirm({ title: i18n.t("dataTypeAuthorizations.confirmGrantRequestsTitle"), - message: i18n.t("dataTypeAuthorizations.confirmGrantRequests", currentUser), + message: i18n.t("dataTypeAuthorizations.confirmGrantRequests", currentUser.value), cancelText: i18n.t("dataTypeAuthorizations.grantRequestDismiss"), confirmText: i18n.t("dataTypeAuthorizations.grantRequestConfirm"), onConfirm: () => grantAuthorization(), diff --git a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue index ab64adb6a..abe70521c 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue @@ -134,8 +134,8 @@ export default { provide("reference:dataLoader", loader); const application = ref({}); const datas = ref({}); - const datatypes = ref({}); - const references = ref({}); + const datatypes = ref({withScope:{}, withoutScope:{}}); + const references = ref({withScope:{}, withoutScope:{}}); const referencesScopes = ref({}); const initialized = ref(false); const configuration = ref({}); diff --git a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue index b46cf9ca1..dc5499a66 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue @@ -662,12 +662,6 @@ export default { let localizations = {}; let listAllUsers = ref({}); let listUsersHasSignedCharter = ref({}); - let periods = { - FROM_DATE: i18n.t("dataTypeAuthorizations.from-date"), - TO_DATE: i18n.t("dataTypeAuthorizations.to-date"), - FROM_DATE_TO_DATE: i18n.t("dataTypeAuthorizations.from-date-to-date"), - ALWAYS: i18n.t("dataTypeAuthorizations.always"), - }; let authorizationLength = 0; const isLoading = ref(false); const isLoadingModal = ref(false); @@ -918,24 +912,6 @@ export default { window.location.reload(); } - function getPeriod(authorization) { - if (!authorization.fromDay && !authorization.toDay) { - return periods.ALWAYS; - } else if (authorization.fromDay && !authorization.toDay) { - return ( - periods.FROM_DATE + - ` ${authorization.fromDay[2]}/${authorization.fromDay[1]}/${authorization.fromDay[0]}` - ); - } else if (!authorization.fromDay && authorization.toDay) { - return ( - periods.TO_DATE + - ` ${authorization.toDay[2]}/${authorization.toDay[1]}/${authorization.toDay[0]}` - ); - } else { - return `${authorization.fromDay[2]}/${authorization.fromDay[1]}/${authorization.fromDay[0]} - ${authorization.toDay[2]}/${authorization.toDay[1]}/${authorization.toDay[0]}`; - } - } - function onMove({ relatedContext, draggedContext }) { const relatedElement = relatedContext.element; const draggedElement = draggedContext.element; @@ -974,7 +950,6 @@ export default { listAuthorizationsByUsers, listAuthorizationsByUsersBasedOnAuth, application, - periods, listAuthorizations, subMenuPaths, isLoading, @@ -1001,7 +976,6 @@ export default { modifyAuthorization, addPublicAuthorization, revoke, - getPeriod, updateListUsersInAuthorization, updateTableAuthorizations, hasAuthorizationsByUsers, diff --git a/ui/src/views/authorizations/RequestAuthorizationManagementView.vue b/ui/src/views/authorizations/RequestAuthorizationManagementView.vue index ab582f547..6671312a9 100644 --- a/ui/src/views/authorizations/RequestAuthorizationManagementView.vue +++ b/ui/src/views/authorizations/RequestAuthorizationManagementView.vue @@ -1,10 +1,10 @@ <template> - <PageView class="with-submenu" :application="application"> + <PageView :application="application" class="with-submenu"> <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="application.localName || application.title" - role="navigation" + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="application.localName || application.title" + role="navigation" /> <h1 class="title main-title"> {{ @@ -14,195 +14,237 @@ }} </h1> <div> - <b-select :placeholder="filterStates[filterState].label" v-model="filterState"> - <option v-for="(option, id) in filterStates" :key="id" :value="id"> - {{ option.label }} - </option> - </b-select> - <div v-for="(rightsRequest, i) in rightsRequests.rightsRequests" :key="i"> - <CollapsibleTree - v-if="isVisibleRequest(rightsRequest.setted)" - :id="rightsRequest.id" - :application-title="$t('titles.references-page')" - :buttons="buttons" - :level="0" - :line-count="12" - :on-click-label-cb="() => ''" - :option="rightsRequest" - :repository-redirect="(label) => manageRequest(label)" - class="liste" + <b-table + :data="listRightsRequests" + :striped="true" + default-sort="row.name" + default-sort-direction="asc" + height="100%" + sort-icon="arrow-up" + sort-icon-size="is-small" + sortable> + <b-table-column + :searchable="true" + field="name" + label="Nom du demandeur" + sortable> + <template #searchable="props"> + <b-input + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" + /> + </template> + <template v-slot="props"> + <p v-if="props.row.user"> + {{ listAllUsers.find((user) => user.id === props.row.user).label }} + </p> + </template> + </b-table-column> + <b-table-column + :searchable="true" + field="email" + label="E-mail du demandeur" + sortable + > + <template #searchable="props"> + <b-input + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" + /> + </template> + <template v-slot="props"> + <p v-if="props.row.user"> + {{ listAllUsers.find((user) => user.id === props.row.user).email }} + </p> + </template> + </b-table-column> + <b-table-column + :searchable="true" + field="number request" + label="N° de la demande" + sortable > - <template v-slot:secondaryMenu> </template> - <template v-slot:upload> </template> - <template v-slot:label="{ option }"> - <b-icon - :icon="option.setted ? 'check' : 'clock'" - :type="option.setted ? 'is-primary' : 'is-light'" - class="column is-one-fifth" - > - {{ - option.setted - ? $t("dataTypeAuthorizations.scopes.close") - : $t("dataTypeAuthorizations.scopes.open") - }} - </b-icon> - <div class="column is-four-fifth">{{ option.comment || "---" }}</div> + <template #searchable="props"> + <b-input + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" + /> + </template> + <template v-slot="props"> + <a @click="manageRequest(props.row.id)"> + {{ props.row.id.split("-").pop() }} + </a> </template> - <template v-slot:synthesisDetail="{ option }"> - <div class="column is-one-fifth"> - {{ (option.creationDate && getDate(option.creationDate)) || "---" }} - </div> - <div class="column is-one-fifth"> - {{ users.find((user) => user.id === option.user).label || "---" }} - </div> + </b-table-column> + <b-table-column + :searchable="true" + field="setted" + label="Statut" + sortable + > + <template #searchable> + <b-select v-model="filterState" :placeholder="filterStates[filterState].label" @input="isVisibleRequest"> + <option v-for="(option, id) in filterStates" :key="id" :value="id"> + {{ option.label }} + </option> + </b-select> </template> - <template v-slot:default="{ option, displayChildren }"> - <div v-if="displayChildren" class="rows"> - <div v-for="(value, name) in option.rightsRequestForm" :key="name" class="row"> - <div class="columns"> - <div class="column is-primary"> - {{ - internationalisationService.getLocaleforPath( - application, - "rightsRequest.format." + name, - name - ) - }} - </div> - <div class="column">{{ value }}</div> - </div> - </div> - </div> + <template v-slot="props"> + <b-icon v-if="props.row.setted" icon="circle" type="is-success"></b-icon> + <b-icon v-else icon="circle" type="is-danger"></b-icon> </template> - </CollapsibleTree> - </div> + </b-table-column> + </b-table> </div> </PageView> </template> <script> import moment from "moment"; -import SubMenu, { SubMenuPath } from "@/components/common/SubMenu.vue"; -import { AlertService } from "@/services/AlertService"; -import { ApplicationService } from "@/services/rest/ApplicationService"; -import { RequestRightsService } from "@/services/rest/RequestRightsService"; -import { InternationalisationService } from "@/services/InternationalisationService"; -import { Component, Prop, Vue } from "vue-property-decorator"; +import SubMenu, {SubMenuPath} from "@/components/common/SubMenu.vue"; import PageView from "../common/PageView.vue"; -import { ApplicationResult } from "@/model/ApplicationResult"; -import { Button } from "@/model/Button"; -import CollapsibleTree from "@/components/common/CollapsibleTree.vue"; - -@Component({ - components: { PageView, SubMenu, CollapsibleTree }, -}) -export default class RequestAuthorizationManagementView extends Vue { - @Prop() dataTypeId; - @Prop() applicationName; - toList; - internationalisationService = InternationalisationService.INSTANCE; - alertService = AlertService.INSTANCE; - - requestRightsService = RequestRightsService.INSTANCE; - applicationService = ApplicationService.INSTANCE; - application = new ApplicationResult(); - // pagination - offset = 0; - currentPage = 1; - perPage = 10; - isSelectedName = ""; - isSelectedAuthorization = ""; - isCardModalActive = false; - isCardModalActive2 = false; - localizations = {}; - rightsRequests = {}; - canManageRights = false; - users = []; - buttons = [ - new Button( - this.canManageRights - ? this.$t("dataTypeAuthorizations.grantRequests") - : this.$t("dataTypeAuthorizations.modifyRequests"), - "eye", - (label) => this.manageRequest(label), - "is-dark" - ), - ]; - filterState = 0; - filterStates = [ - { - type: "open", - label: this.$t("dataTypeAuthorizations.filterScope.open"), - }, - { - type: "close", - label: this.$t("dataTypeAuthorizations.filterScope.close"), - }, - { - type: "all", - label: this.$t("dataTypeAuthorizations.filterScope.all"), - }, - ]; +import {ApplicationResult} from "@/model/ApplicationResult"; +import services from "@/composable/services"; +import app, {i18n} from "@/main"; +import useObject from "@/composable/components/object"; +import {onMounted, ref, watch} from "vue"; +import useArray from "@/composable/components/array"; - created() { - this.init(); - this.subMenuPaths = [ - new SubMenuPath( - this.$t("requestAuthorization.request").toLowerCase(), - () => {}, - () => this.$router.push("/applications") - ), +export default { + name: "RequestAuthorizationManagementView", + components: { + PageView, SubMenu + }, + props: { + dataTypeId: String, + applicationName: String, + }, + setup(props) { + const {shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths} = useArray(); + const {reactiveObject: application, doChangeObject: changeApplication} = useObject( + new ApplicationResult() + ); + const {reactiveObject: rightsRequests, doChangeObject: changeRightsRequests} = useObject(); + const {shallowRefArray: listRightsRequests, doChangeArray: changeListRightsRequests} = useArray(); + let canManageRights = false; + let listAllUsers = ref({}); + let filterState = ref(0); + watch(() => filterState, + (value) => { + if (value.value === 0) { + changeListRightsRequests(rightsRequests.rightsRequests.filter(request => + request.setted === false)); + } else if (value.value === 1) { + changeListRightsRequests(rightsRequests.rightsRequests.filter(request => + request.setted === true)); + } else { + changeListRightsRequests(rightsRequests.rightsRequests); + } + } + ) + let filterStates = [ + { + type: "open", + label: i18n.t("dataTypeAuthorizations.filterScope.open"), + }, + { + type: "close", + label: i18n.t("dataTypeAuthorizations.filterScope.close"), + }, + { + type: "all", + label: i18n.t("dataTypeAuthorizations.filterScope.all"), + }, ]; - } - - getDate(value) { - return moment(value).format("DD/MM/YYYY"); - } - async init() { - try { - this.application = await this.applicationService.getApplication(this.applicationName, [ - "CONFIGURATION", - "DATATYPE", - "RIGHTSREQUEST", + onMounted(async () => { + await init(); + changeSubMenuPaths([ + new SubMenuPath( + i18n.t("requestAuthorization.request").toLowerCase(), + () => { + }, + () => app.$router.push("/applications/" + props.applicationName) + ), ]); - this.application = this.internationalisationService.mergeInternationalization( - this.application - ); - this.canManageRights = - this.application.isAdministrator || - Object.values(this.application.authorizationsDatatypesRights || []).some( - (rights) => rights.ADMIN + }) + + function getDate(value) { + return moment(value).format("DD/MM/YYYY"); + } + + async function init() { + try { + let getApplication = await services.applicationService.getApplication( + props.applicationName, + [ + "DATATYPE", + "REFERENCETYPE", + "CONFIGURATION", + "RIGHTSREQUEST" + ] ); - let rightsRequests = await this.requestRightsService.getRightsRequests(this.applicationName); - let users1 = rightsRequests.users || []; - users1.shift(); - users1 = users1.filter((user) => { - return rightsRequests.rightsRequests.some((rr) => rr.user === user.id); - }); - for (const request of rightsRequests.rightsRequests) { - request.children = [{}]; - request.label = request.id; + changeApplication( + services.internationalisationService.mergeInternationalization(getApplication) + ); + canManageRights = + application.isAdministrator || + Object.values(application.authorizationsDatatypesRights || []).some( + (rights) => rights.ADMIN + ); + let localRightsRequests = await services.requestRightsService.getRightsRequests(props.applicationName); + for (const request of localRightsRequests.rightsRequests) { + request.children = [{}]; + request.label = request.id; + } + let localeListAllUsers = await services.authorizationService.getAuthorizationGrantableInfos( + props.applicationName + ); + listAllUsers.value = localeListAllUsers.users.filter((user) => user.label !== "_public_"); + changeRightsRequests(localRightsRequests); + if (localRightsRequests.rightsRequests) { + changeListRightsRequests(localRightsRequests.rightsRequests); + } + } catch (error) { + services.alertService.toastServerError(error); } - this.rightsRequests = rightsRequests; - this.users = users1; - } catch (error) { - this.alertService.toastServerError; } - } - isVisibleRequest(setted) { - if (this.filterState == 0) { - return !setted; - } else if (this.filterState == 1) { - return setted; - } else { - return true; + function isVisibleRequest(setted) { + let filterRiquest = rightsRequests; + if (setted === 0) { + filterRiquest = rightsRequests.rightsRequests.filter(request => + request.setted === false) || []; + changeListRightsRequests(filterRiquest); + } else if (setted === 1) { + filterRiquest = rightsRequests.rightsRequests.filter(request => + request.setted === true) || []; + changeListRightsRequests(filterRiquest); + } else { + changeListRightsRequests(rightsRequests.rightsRequests); + } } - } - manageRequest(id) { - this.$router.push(`/applications/${this.applicationName}/authorizationsRequest/${id}`); + function manageRequest(id) { + app.$router.push(`/applications/${props.applicationName}/authorizationsRequest/${id}`); + } + + return { + manageRequest, + isVisibleRequest, + getDate, + subMenuPaths, + filterStates, + filterState, + listAllUsers, + canManageRights, + rightsRequests, + application, + listRightsRequests + } } } </script> -- GitLab From 7d123463664946063e516b72ac1c00308556cfc9 Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Tue, 29 Oct 2024 13:35:48 +0100 Subject: [PATCH 31/52] Enregistrement des pattern et qualifier dans une map --- .../InvalidDatasetContentException.java | 13 +- .../oresing/domain/checker/type/MapType.java | 14 +- .../domain/data/DataColumnPatternValue.java | 58 +++++++++ .../inra/oresing/domain/data/DataDatum.java | 66 +++++++++- .../domain/data/deposit/DataImporter.java | 28 +++- .../deposit/context/DataImporterContext.java | 3 +- .../data/deposit/context/column/Column.java | 33 ++++- .../deposit/context/column/ContextHeader.java | 9 ++ .../column/OneValueStaticPatternColumn.java | 58 +++++++++ .../context/column/PatternColumnFactory.java | 121 ++++++++++++------ .../domain/data/read/DataHeaderReader.java | 12 +- .../oresing/persistence/JsonRowMapper.java | 6 +- .../inra/oresing/rest/data/DataService.java | 21 ++- .../inra/oresing/rest/OreSiResourcesTest.java | 8 +- .../fixtures/applications/errors/errors.json | 2 +- .../ore/monsore/changeMonsore.txt | 34 ++--- .../ore/monsore/createMonsore.txt | 42 +++--- .../ore/monsore/validateMonsore.txt | 20 +-- 18 files changed, 421 insertions(+), 127 deletions(-) create mode 100644 src/main/java/fr/inra/oresing/domain/data/DataColumnPatternValue.java create mode 100644 src/main/java/fr/inra/oresing/domain/data/deposit/context/column/ContextHeader.java create mode 100644 src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java diff --git a/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java b/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java index aaa5766c4..a91136a0c 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java +++ b/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java @@ -2,6 +2,7 @@ package fr.inra.oresing.domain.checker; import com.google.common.base.Preconditions; import com.google.common.collect.*; +import fr.inra.oresing.domain.data.deposit.context.column.ContextHeader; import fr.inra.oresing.domain.data.deposit.context.column.PatternColumnFactory; import fr.inra.oresing.domain.data.deposit.validation.CsvRowValidationCheckResult; import fr.inra.oresing.domain.data.deposit.validation.DefaultValidationCheckResult; @@ -15,6 +16,8 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; /** * Exception levée si un jeu de données est incorrect (aussi bien entêtes que contenu) @@ -82,7 +85,8 @@ public class InvalidDatasetContentException extends OreSiTechnicalException { } public static ImmutableList<String> checkHeader( - final ImmutableList<String> headers, final ImmutableSet<String> expectedColumns, + final ImmutableList<String> headersForRow, + final ImmutableSet<String> expectedColumns, final ImmutableSet<String> mandatoryColumns, final ImmutableMultiset<String> actualColumns, final PatternColumnFactory patternColumnFactory, @@ -104,17 +108,18 @@ public class InvalidDatasetContentException extends OreSiTechnicalException { final Boolean mandatoryColumnIsMissing = !actualColumnsAsSet.containsAll(mandatoryColumns); if (givenColumnIsUnexpected || mandatoryColumnIsMissing) { if(!mandatoryColumnIsMissing && patternColumnFactory!=null) { - final List<String> notOrdinaryColumns = actualColumnsAsSet.stream() + List<ContextHeader> notOrdinaryColumns = headersForRow.stream() .filter(column -> !expectedColumns.contains(column)) + .map(columnHeader -> new ContextHeader(columnHeader, headersForRow)) .toList(); if(patternColumnFactory.test(notOrdinaryColumns)){ - return headers; + return headersForRow; } } throw forInvalidHeaders(expectedColumns, mandatoryColumns, actualColumnsAsSet, headerLine); } - return headers; + return headersForRow; } private static InvalidDatasetContentException forEmptyHeader(final int headerLine) { diff --git a/src/main/java/fr/inra/oresing/domain/checker/type/MapType.java b/src/main/java/fr/inra/oresing/domain/checker/type/MapType.java index b9762b022..bd21c32a5 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/type/MapType.java +++ b/src/main/java/fr/inra/oresing/domain/checker/type/MapType.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.NullNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.TextNode; import fr.inra.oresing.domain.checker.LineChecker; @@ -88,7 +89,18 @@ public non-sealed class MapType<K, V> implements FieldType<Map<K, V>> { final ObjectMapper mapper = new ObjectMapper(); final ObjectNode mapNode = mapper.createObjectNode(); for (final Map.Entry<K, V> kvEntry : value.entrySet()) { - mapNode.put((String) kvEntry.getKey(), kvEntry.getValue().toString()); + switch (kvEntry.getValue()){ + case null -> mapNode.put((String) kvEntry.getKey(), NullNode.getInstance()); + case Integer integer -> mapNode.put((String) kvEntry.getKey(), integer); + case IntegerType integerType -> mapNode.put((String) kvEntry.getKey(), integerType.getValue()); + case Float floating -> mapNode.put((String) kvEntry.getKey(), floating); + case FloatType floatType -> mapNode.put((String) kvEntry.getKey(), floatType.getValue()); + case Boolean bool -> mapNode.put((String) kvEntry.getKey(), bool); + case BooleanType booleanType -> mapNode.put((String) kvEntry.getKey(), booleanType.getValue()); + case NullType fieldType-> mapNode.put((String) kvEntry.getKey(), NullNode.getInstance()); + case FieldType fieldType-> mapNode.put((String) kvEntry.getKey(), fieldType.toString()); + default -> mapNode.put((String) kvEntry.getKey(), kvEntry.getValue().toString()); + }; } gen.writeFieldName(key); mapper.writeValue(gen, mapNode); diff --git a/src/main/java/fr/inra/oresing/domain/data/DataColumnPatternValue.java b/src/main/java/fr/inra/oresing/domain/data/DataColumnPatternValue.java new file mode 100644 index 000000000..b8841ecde --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/data/DataColumnPatternValue.java @@ -0,0 +1,58 @@ +package fr.inra.oresing.domain.data; + +import fr.inra.oresing.domain.application.configuration.Ltree; +import fr.inra.oresing.domain.checker.type.*; +import fr.inra.oresing.domain.data.deposit.context.DataImporterContext; + +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +public record DataColumnPatternValue( + Map<DataColumn, DataColumnValue> values) implements DataColumnValue<Map<String, Object>, Map<String, Object>> { + + @Override + public MapType getValuesToCheck() { + Map<String, FieldType> valuesToCheck = values().entrySet() + .stream().collect(Collectors.toMap(e -> e.getKey().column(), e -> e.getValue().getValuesToCheck())); + return new MapType<String, FieldType>(valuesToCheck); + } + + @Override + public DataColumnPatternValue transform(final Function<FieldType, FieldType> transformation) { + final Map<Ltree, String> transformedValues = null;//Maps.transformValues(values, transformation::apply); + return new DataColumnPatternValue(null); + } + + @Override + public String toValueString(final DataImporterContext referenceImporterContext, final String referencedColumn, final String locale) { + return values.entrySet().stream() + .map(ltreeStringEntry -> String.format("\"%s\"\"=%s\"", referenceImporterContext.getDisplayNamesByReferenceAndNaturalKey(referencedColumn, ltreeStringEntry.getKey().toString(), locale), ltreeStringEntry.getValue())) + .collect(Collectors.joining(",", "[", "]")); + } + + @Override + public Map<String, Object> toJsonForFrontend() { + return toStringStringMap(); + } + + @Override + public Map<String, Object> toJsonForDatabase() { + return toStringStringMap(); + } + + private Map<String, Object> toStringStringMap() { + final Map<String, Object> jsonForDatabase = values.entrySet().stream() + .collect(Collectors.toMap(entry -> entry.getKey().column(), entry-> { + Object value = entry.getValue().toJsonForDatabase(); + return switch (value){ + case IntegerType integerType -> integerType.getValue(); + case BooleanType booleanType -> booleanType.getValue(); + case FloatType floatType -> floatType.getValue(); + case NullType nullType -> null; + default -> value; + }; + })); + return jsonForDatabase; + } +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/data/DataDatum.java b/src/main/java/fr/inra/oresing/domain/data/DataDatum.java index 55d343051..89dc820a3 100644 --- a/src/main/java/fr/inra/oresing/domain/data/DataDatum.java +++ b/src/main/java/fr/inra/oresing/domain/data/DataDatum.java @@ -1,6 +1,7 @@ package fr.inra.oresing.domain.data; import com.google.common.base.Preconditions; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.Ltree; import fr.inra.oresing.domain.checker.type.*; @@ -57,16 +58,41 @@ public class DataDatum implements SomethingThatCanProvideEvaluationContext, Some } public boolean contains(final DataColumn column) { - return values.containsKey(column); + return values.containsKey(column) || + values().values() + .stream() + .filter(DataColumnPatternValue.class::isInstance) + .map(DataColumnPatternValue.class::cast) + .map(DataColumnPatternValue::values) + .anyMatch(values -> values.containsKey(column)); } public DataColumnValue get(final DataColumn column) { Preconditions.checkArgument( - contains(column), ExceptionMessage.MISSING_COLUMN.toMessage(), + contains(column), + ExceptionMessage.MISSING_COLUMN.toMessage(), column.column(), values.keySet().stream().map(DataColumn::column).collect(Collectors.joining(" - ")) ); - return values.get(column); + return Optional.ofNullable(values) + .map(values -> values.get(column)) + .orElseGet(() -> values().values().stream() + .filter(DataColumnPatternValue.class::isInstance) + .map(DataColumnPatternValue.class::cast) + .map(DataColumnPatternValue::values) + .map(Map::entrySet) + .flatMap(Set::stream) + .filter(c -> c.getKey().equals(column)) + .findAny() + .map(Map.Entry::getValue) + .orElseThrow(() -> new IllegalArgumentException(Strings.lenientFormat(ExceptionMessage.MISSING_COLUMN.toMessage(), new Object[]{column.column(), values().values().stream() + .filter(DataColumnPatternValue.class::isInstance) + .map(DataColumnPatternValue.class::cast) + .map(DataColumnPatternValue::values) + .map(Map::keySet) + .flatMap(values -> values.stream().map(DataColumn::column)) + .collect(Collectors.joining(" - ")) + })))); } @Override @@ -78,6 +104,12 @@ public class DataDatum implements SomethingThatCanProvideEvaluationContext, Some .map(SomethingToBeStoredAsJsonInDatabase<FieldType>::toJsonForDatabase) .orElse(new MapType(new HashMap<>())); map.put(entry.getKey().toJsonForDatabase(), valueThatMayBeNull); + } else if (entry.getValue() instanceof DataColumnPatternValue patternValue) { + final FieldType valueThatMayBeNull = Optional.of(patternValue) + .map(DataColumnPatternValue::toJsonForDatabase) + .map(MapType::new) + .orElse(new MapType<>(Map.of())); + map.put(entry.getKey().toJsonForDatabase(), valueThatMayBeNull); } else { final FieldType valueThatMayBeNull = Optional.ofNullable(entry.getValue()) .map(SomethingToBeStoredAsJsonInDatabase<FieldType>::toJsonForDatabase) @@ -101,9 +133,28 @@ public class DataDatum implements SomethingThatCanProvideEvaluationContext, Some } public DataColumnValue put(final DataColumn column, final DataColumnValue value) { - final DataColumnValue replaced = values.put(column, value); - final boolean consistent = replaced == null || replaced.getClass().equals(value.getClass()); - Preconditions.checkState(consistent, "dans ce cas, on est en train de remplacer un champs avec une valeur qui a une autre multiplicité, c'est sûrement une erreur"); + final DataColumnValue replaced; + if (values().entrySet().stream() + .filter(entry -> entry.getValue() instanceof DataColumnPatternValue) + .anyMatch(entry -> ((DataColumnPatternValue) entry.getValue()).values().containsKey(column))) { + replaced = values().entrySet().stream() + .filter(entry -> entry.getValue() instanceof DataColumnPatternValue) + .filter(entry -> ((DataColumnPatternValue) entry.getValue()).values().containsKey(column)) + .map(entry -> { + ((DataColumnPatternValue) entry.getValue()).values().put(column, value); + return entry; + }) + .map(Map.Entry::getValue) + .findFirst() + .orElse(null); + final boolean consistent = replaced == null || ((DataColumnPatternValue) replaced).values().get(column).getClass().equals(value.getClass()); + Preconditions.checkState(consistent, "dans ce cas, on est en train de remplacer un champs avec une valeur qui a une autre multiplicité, c'est sûrement une erreur"); + } else { + replaced = values.put(column, value); + final boolean consistent = replaced == null || replaced.getClass().equals(value.getClass()); + Preconditions.checkState(consistent, "dans ce cas, on est en train de remplacer un champs avec une valeur qui a une autre multiplicité, c'est sûrement une erreur"); + + } return replaced; } @@ -118,6 +169,7 @@ public class DataDatum implements SomethingThatCanProvideEvaluationContext, Some /** * Étant donné une colonne, l'ensemble des valeurs qui doivent être subir transformation et computationChecker + * * @param column * @return */ @@ -139,7 +191,7 @@ public class DataDatum implements SomethingThatCanProvideEvaluationContext, Some continue; } final FieldType valueThatMayBeNull = Optional.ofNullable(entry.getValue()) - .map(DataColumnValue <FieldType, FieldType >::toJsonForFrontend) + .map(DataColumnValue<FieldType, FieldType>::toJsonForFrontend) .orElse(null); map.put(entry.getKey().toJsonForDatabase(), valueThatMayBeNull); } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java index 9a896e494..2df2955e5 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java @@ -18,6 +18,7 @@ import fr.inra.oresing.domain.checker.type.FieldType; import fr.inra.oresing.domain.checker.type.ReferenceType; import fr.inra.oresing.domain.data.*; import fr.inra.oresing.domain.data.deposit.context.DataImporterContext; +import fr.inra.oresing.domain.data.deposit.context.column.OneValueStaticPatternColumn; import fr.inra.oresing.domain.data.deposit.validation.*; import fr.inra.oresing.domain.data.deposit.validation.validationcheckresults.CheckerValidationCheckResult; import fr.inra.oresing.domain.data.menu.ReferenceScope; @@ -90,8 +91,18 @@ public class DataImporter { final ImmutableList.Builder<CsvRowValidationCheckResult> allCheckerErrorsBuilder = ImmutableList.builder(); final DataDatum referenceDatum = DataDatum.copyOf(referenceDatumBeforeChecking); for (final LineChecker lineChecker : transformedLineCheckers) { - if (rowWithReferenceDatum.referenceDatum().values().keySet() - .stream().noneMatch(column -> column.equals(lineChecker.target()))) { + boolean matchingTarget = rowWithReferenceDatum.referenceDatum().values() + .entrySet() + .stream() + .flatMap(entry->{ + if(entry.getValue() instanceof DataColumnPatternValue dcv){ + return dcv.values().keySet().stream().map(dataColumn -> dataColumn.column().equals("__VALUES__") ? entry.getKey() : dataColumn); + } + return Stream.of(entry.getKey()); + }).noneMatch(column -> { + return column.equals(lineChecker.target()); + }); + if (matchingTarget) { continue; } if (lineChecker instanceof final LineChecker.ManyChecker manyChecker) { @@ -107,7 +118,9 @@ public class DataImporter { context = publishContextBuilder.getGroovyContextForReferences( groovyReferences, new PublishContext.RowInfos( - rowWithReferenceDatum.referenceDatum.values().values().stream().map(DataColumnValue::getValuesToCheck).map(FieldType::toString).toList(), + rowWithReferenceDatum.referenceDatum.values().values().stream() + .map(DataColumnValue::getValuesToCheck) + .map(FieldType::toString).toList(), rowWithReferenceDatum.lineNumber ) ); @@ -201,7 +214,6 @@ public class DataImporter { final Function<CSVRecord, Stream<RowWithReferenceDatum>> csvRecordToReferenceDatumFn = csvRecord -> csvRecordToRowWithReferenceDatum( columns, - dataHeaderReader, csvRecord ); final Stream<CSVRecord> csvRecordsStream = Streams.stream(csvParser); @@ -340,11 +352,14 @@ public class DataImporter { /** * Transforme une ligne du fichier CSV ({@link CSVRecord}) en {@link DataDatum}, plus simple à lire et y associe un n° de ligne. */ - private Stream<RowWithReferenceDatum> csvRecordToRowWithReferenceDatum(final ImmutableList<String> columns, final DataHeaderReader dataHeaderReader, final CSVRecord csvRecord) { + private Stream<RowWithReferenceDatum> csvRecordToRowWithReferenceDatum( + final ImmutableList<String> columns, + final CSVRecord csvRecord) { final Iterator<String> currentHeader = columns.iterator(); final DataDatum referenceDatum = new DataDatum(); final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo = new HashMap<>(); final List<PatternValueForHeader> patternValueForHeaders = new LinkedList<>(); + final int lineNumber = Ints.checkedCast(csvRecord.getRecordNumber()); for (int i = 0; i < columns.size(); i++) { final String cellContent = csvRecord.values().length > i ? csvRecord.values()[i] : ""; final String header = currentHeader.next(); @@ -352,13 +367,12 @@ public class DataImporter { patternValueForHeaders.add(new PatternValueForHeader(header, cellContent.trim(), refsLinkedTo)); } } - final int lineNumber = Ints.checkedCast(csvRecord.getRecordNumber()); if (patternValueForHeaders.isEmpty()) { return Stream.of(new RowWithReferenceDatum(lineNumber, "", referenceDatum, ImmutableMap.copyOf(refsLinkedTo))); } final AtomicInteger rowId = new AtomicInteger(); return patternValueForHeaders.stream() - .map(dataImporterContext.getPatternColumnFactory()::toDatum) + .map(dataImporterContext.getPatternColumnFactory()::toQualifierDatum) .map(datum -> referenceDatum.with(datum)) .map(dataDatum -> new RowWithReferenceDatum(lineNumber, patternValueForHeaders.get(rowId.getAndIncrement()).header(), diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java index 22d9117e5..59d710e9a 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java @@ -281,7 +281,8 @@ public class DataImporterContext { .anyMatch(c -> c.equals(column)) || constantColumnsValues.keySet().stream() .map(DataColumn::column) - .anyMatch(c -> c.equals(column.column())); + .anyMatch(c -> c.equals(column.column())) || + patternColumnFactory.existColumn(column); } public void withPatternColumn() { diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java index 45c851a63..81c606faa 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java @@ -68,6 +68,37 @@ public abstract class Column implements Comparable<Column> { return column; } + public static final Column staticPatternColumnDescriptionToColumn(final DataColumn referenceColumn, + String headerForColumn, + final ComponentPresenceConstraint presenceConstraint, + final Multiplicity multiplicity, + final DataRepository referenceValueRepository, + final List<Column> qualifierColumns, + final List<Column> adjacentColumns, + final TransformationConfiguration defaultValue) { + Column column = null; + column = new OneValueStaticPatternColumn( + referenceColumn, + headerForColumn, + presenceConstraint, + ComputedValueUsage.NOT_COMPUTED, + qualifierColumns, + adjacentColumns + ) { + @Override + public String getExpectedHeader() { + return Optional.ofNullable(headerForColumn) + .orElseGet(referenceColumn::column); + } + + @Override + public Optional<DataColumnValue> computeValue(final DataDatum referenceDatum) { + throw new UnsupportedOperationException("pas de valeur par défaut pour " + referenceColumn); + } + }; + return column; + } + public boolean canHandle(final String header) { return isExpected() && getExpectedHeader().equals(header); } @@ -89,7 +120,7 @@ public abstract class Column implements Comparable<Column> { public abstract Optional<DataColumnValue> computeValue(DataDatum referenceDatum); @Override - public int compareTo( final Column o) { + public int compareTo(final Column o) { return getReferenceColumn().column().compareTo(o.getReferenceColumn().column()); } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/ContextHeader.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/ContextHeader.java new file mode 100644 index 000000000..feb4a28e1 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/ContextHeader.java @@ -0,0 +1,9 @@ +package fr.inra.oresing.domain.data.deposit.context.column; + +import com.google.common.collect.ImmutableList; + +public record ContextHeader(int columnIndex, String columnHeader, ImmutableList<String> headersForRow) { + public ContextHeader(String columnHeader, ImmutableList<String> headersForRow) { + this(headersForRow.indexOf(columnHeader), columnHeader,headersForRow); + } +} diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java new file mode 100644 index 000000000..49d395db8 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java @@ -0,0 +1,58 @@ +package fr.inra.oresing.domain.data.deposit.context.column; + +import fr.inra.oresing.domain.ComponentPresenceConstraint; +import fr.inra.oresing.domain.checker.type.FieldType; +import fr.inra.oresing.domain.checker.type.StringType; +import fr.inra.oresing.domain.data.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +public abstract class OneValueStaticPatternColumn extends Column { + + private final List<Column> qualifierColumns; + private final List<Column> adjacentColumns; + + @Override + public Optional<DataColumnValue> computeValue(DataDatum referenceDatum) { + return Optional.empty(); + } + + public OneValueStaticPatternColumn(final DataColumn referenceColumn, final String headerForColumn, final ComponentPresenceConstraint presenceConstraint, final ComputedValueUsage computedValueUsage, List<Column> qualifierColumns, List<Column> adjacentColumns) { + super(referenceColumn, headerForColumn, presenceConstraint, computedValueUsage); + this.qualifierColumns = qualifierColumns; + this.adjacentColumns = adjacentColumns; + } + + @Override + public void pushValue(final String cellContent, final DataDatum referenceDatum, final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { + Map<DataColumn, DataColumnValue> columnValues = new HashMap<>(); + columnValues.put(new DataColumn("__VALUES__"), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(cellContent))); + columnValues.putAll(referenceDatum.values()); + final DataColumnValue referenceColumnValue = new DataColumnPatternValue(columnValues); + referenceDatum.values().clear(); + referenceDatum.put(getReferenceColumn(), referenceColumnValue); + } + + public DataDatum buildValue(final String cellContent, final DataDatum referenceDatum, final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { + Map<DataColumn, DataColumnValue> columnValues = new HashMap<>(); + columnValues.put(new DataColumn("__VALUES__"), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(cellContent))); + columnValues.putAll(referenceDatum.values()); + final DataColumnValue referenceColumnValue = new DataColumnPatternValue(columnValues); + DataDatum datum = new DataDatum(); + datum.put(getReferenceColumn(), referenceColumnValue); + return datum; + } + + @Override + public String getCsvCellContent(final DataDatum referenceDatum) { + try { + final DataColumnSingleValue referenceColumnSingleValue = (DataColumnSingleValue) referenceDatum.get(getReferenceColumn()); + return referenceColumnSingleValue.getValue().toString(); + } catch (final IllegalArgumentException iae) { + return "NA"; + } + } +} diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java index 761b38633..69f23e8f9 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java @@ -1,6 +1,7 @@ package fr.inra.oresing.domain.data.deposit.context.column; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.ComponentDescription; @@ -47,28 +48,36 @@ public class PatternColumnFactory { PatternDescription.of(patternComponentDescriptions)); } - public DataDatum toDatum(final DataImporter.PatternValueForHeader patternValueForHeader) { - final PatternColumn patternColumn = patternColumns.get(patternValueForHeader.header()); - final DataDatum datum = patternColumn.dataDatum(); - patternColumn.column().pushValue(patternValueForHeader.cellContent(), datum, patternValueForHeader.refsLinkedTo()); + public DataDatum toQualifierDatum(final DataImporter.PatternValueForHeader patternValueForHeader) { + PatternColumn patternColumn = patternColumns.get(patternValueForHeader.header()).copy(); + + final DataDatum qualifierComponents = patternColumn.qualifierComponents(); + DataDatum datum = ((OneValueStaticPatternColumn) patternColumn.column()).buildValue(patternValueForHeader.cellContent(), qualifierComponents, patternValueForHeader.refsLinkedTo()); return datum; } - private PatternDescription.RapportForPatterns test(final String columnName, final Map<String, PatternColumn> dataDatum) { - final Predicate<PatternDescription> matches = p -> p.matches.test(columnName); - final Function<PatternDescription, PatternDescription.RapportForPatterns> toRapport = p -> p.toRapport(dataRepository, columnName, dataDatum); + public DataDatum toAdjacentDatum(final DataImporter.PatternValueForHeader patternValueForHeader) { + final PatternColumn patternColumn = patternColumns.get(patternValueForHeader.header()); + final DataDatum adjacentComponents = patternColumn.adjacentComponents(); + patternColumn.column().pushValue(patternValueForHeader.cellContent(), adjacentComponents, patternValueForHeader.refsLinkedTo()); + return adjacentComponents; + } + + private PatternDescription.RapportForPatterns test(final ContextHeader potentialPatternColumn, final Map<String, PatternColumn> patternColumnData) { + final Predicate<PatternDescription> matches = p -> p.matches.test(potentialPatternColumn.columnHeader()); + final Function<PatternDescription, PatternDescription.RapportForPatterns> toRapport = p -> p.toRapport(dataRepository, potentialPatternColumn, patternColumnData); final PatternDescription.RapportForPatterns rapports = patternComponentDescriptions.stream() .filter(matches) .map(toRapport) .filter(PatternDescription.MatchingPattern.class::isInstance) .findFirst() - .orElse(new PatternDescription.ExceptionPattern(columnName)); + .orElse(new PatternDescription.ExceptionPattern(potentialPatternColumn.columnHeader())); return rapports; } - public boolean test(final List<String> list) { - final Function<String, PatternDescription.RapportForPatterns> test = (s) -> test(s, patternColumns); - final List<PatternDescription.RapportForPatterns> rapports = list.stream() + public boolean test(final List<ContextHeader> potentialPatternColumns) { + final Function<ContextHeader, PatternDescription.RapportForPatterns> test = (s) -> test(s, patternColumns); + final List<PatternDescription.RapportForPatterns> rapports = potentialPatternColumns.stream() .map(test) .toList(); @@ -81,8 +90,8 @@ public class PatternColumnFactory { .collect(Collectors.partitioningBy(PatternDescription.MatchingPattern.class::isInstance)) .get(true).stream() .map(PatternDescription.MatchingPattern.class::cast) - .map(PatternDescription.MatchingPattern::columns) - .flatMap(Set::stream) + .map(PatternDescription.MatchingPattern::column) + //.flatMap(List::stream) .collect(Collectors.collectingAndThen(Collectors.toSet(), ImmutableSet::copyOf)); } @@ -90,7 +99,25 @@ public class PatternColumnFactory { } - record PatternColumn(Column column, DataDatum dataDatum) { + public boolean existColumn(DataColumn column) { + return patternComponentDescriptions.stream() + .flatMap(pcd->pcd.patternComponentDescriptions().patternComponentQualifiers().keySet().stream()) + .peek(System.out::println) + .anyMatch(c->c.equals(column.column())) || + patternComponentDescriptions.stream() + .flatMap(pcd->pcd.patternComponentDescriptions().patternComponentAdjacents().keySet().stream()) + .peek(System.out::println) + .anyMatch(c->c.equals(column.column())); + } + + record PatternColumn(Column column, DataDatum qualifierComponents, DataDatum adjacentComponents) { + public PatternColumn copy() { + return new PatternColumn( + column(), + new DataDatum(qualifierComponents().values()), + new DataDatum(adjacentComponents().values()) + ); + } } record PatternDescription( @@ -115,10 +142,10 @@ public class PatternColumnFactory { ); } - public RapportForPatterns toRapport(final DataRepository dataRepository, final String columnName, final Map<String, PatternColumn> patternColumns) { - final Matcher matcher = pattern().matcher(columnName); + public RapportForPatterns toRapport(final DataRepository dataRepository, final ContextHeader potentialPatternColumn, final Map<String, PatternColumn> patternColumnData) { + final Matcher matcher = pattern().matcher(potentialPatternColumn.columnHeader()); Preconditions.checkArgument(matcher.matches(), "verified before"); - if (matches().test(columnName)) { + if (matches().test(potentialPatternColumn.columnHeader())) { final String componentKey = patternComponentDescriptions().componentKey(); final Multiplicity multiplicity = Optional.ofNullable(patternComponentDescriptions()) .map(PatternComponent::checker) @@ -134,17 +161,10 @@ public class PatternColumnFactory { final TransformationConfiguration defaultValue = Optional .ofNullable(patternComponentDescriptions().defaultValue()) .orElse(null); - final Column column = Column.staticColumnDescriptionToColumn( - new DataColumn(componentKey), - headerForReferenceColumn, - mandatory, - multiplicity, - dataRepository, - defaultValue - ); - final DataDatum dataDatum = new DataDatum(); - final Set<Column> columns = new TreeSet<>(); - columns.add(column); + final DataDatum qualifierComponents = new DataDatum(); + final DataDatum adjacentComponents = new DataDatum(); + final List<Column> qualifierColumns = new LinkedList<>(); + final List<Column> adjacentColumns = new LinkedList<>(); patternComponentDescriptions() .patternComponentQualifiers().entrySet() .forEach(patternColumnComponentEntry -> { @@ -160,7 +180,7 @@ public class PatternColumnFactory { .orElse(ComponentPresenceConstraint.MANDATORY); final String constantValue = matcher.group(patternNumber); final DataColumn dataColumn = new DataColumn(componentComponentKey); - columns.add(Column.staticColumnDescriptionToColumn( + qualifierColumns.add(Column.staticColumnDescriptionToColumn( new DataColumn(componentComponentKey), componentComponentKey, mandatoryForComponentComponent, @@ -175,13 +195,13 @@ public class PatternColumnFactory { .map(StringType::getStringTypeFromStringValue) .toList(); final DataColumnValue dataColumnValue = new DataColumnMultipleValue(valuesToList); - dataDatum + qualifierComponents .put(dataColumn, dataColumnValue); } case null, default -> { final DataColumnValue dataColumnValue = new DataColumnSingleValue(StringType.getStringTypeFromStringValue(constantValue)); - dataDatum + qualifierComponents .put(dataColumn, dataColumnValue); } } @@ -202,7 +222,7 @@ public class PatternColumnFactory { .orElse(ComponentPresenceConstraint.MANDATORY); final String constantValue = matcher.group(patternNumber); final DataColumn dataColumn = new DataColumn(componentComponentKey); - columns.add(Column.staticColumnDescriptionToColumn( + adjacentColumns.add(Column.staticColumnDescriptionToColumn( new DataColumn(componentComponentKey), componentComponentKey, mandatoryForComponentComponent, @@ -217,22 +237,32 @@ public class PatternColumnFactory { .map(StringType::getStringTypeFromStringValue) .toList(); final DataColumnValue dataColumnValue = new DataColumnMultipleValue(valuesToList); - dataDatum + adjacentComponents .put(dataColumn, dataColumnValue); } case null, default -> { final DataColumnValue dataColumnValue = new DataColumnSingleValue(StringType.getStringTypeFromStringValue(constantValue)); - dataDatum + adjacentComponents .put(dataColumn, dataColumnValue); } } }); - patternColumns.put(columnName, new PatternColumn(column, dataDatum)); - return new MatchingPattern(columnName, columns); + final Column column = Column.staticPatternColumnDescriptionToColumn( + new DataColumn(componentKey), + headerForReferenceColumn, + mandatory, + multiplicity, + dataRepository, + qualifierColumns, + adjacentColumns, + defaultValue + ); + patternColumnData.put(potentialPatternColumn.columnHeader(), new PatternColumn(column, qualifierComponents, adjacentComponents)); + return new MatchingPattern(potentialPatternColumn.columnHeader(), column); } else { - return new ExceptionPattern(columnName); + return new ExceptionPattern(potentialPatternColumn.columnHeader()); } } @@ -241,8 +271,23 @@ public class PatternColumnFactory { String columnName(); } - public record MatchingPattern(String columnName, Set<Column> columns) implements RapportForPatterns { + public record MatchingPattern( + String columnName, + Column column + ) implements RapportForPatterns { + + public Set<Column> toMapColumn() { + ImmutableMap.Builder<String, Column> columnBuilder = ImmutableMap.builder(); + columnBuilder.put("__VALUE__", column()); + return Set.of(); + } + + public Set<Column> allColumns() { + ImmutableSet.Builder<Column> columns= ImmutableSet.builder(); + columns.add(column()); + return columns.build(); + } } public record ExceptionPattern(String columnName) implements RapportForPatterns { diff --git a/src/main/java/fr/inra/oresing/domain/data/read/DataHeaderReader.java b/src/main/java/fr/inra/oresing/domain/data/read/DataHeaderReader.java index 751977fc5..99cdb2bbb 100644 --- a/src/main/java/fr/inra/oresing/domain/data/read/DataHeaderReader.java +++ b/src/main/java/fr/inra/oresing/domain/data/read/DataHeaderReader.java @@ -86,20 +86,20 @@ public record DataHeaderReader(DataDatum constantValues, */ private ImmutableList<String> readHeaderRows(final Iterator<CSVRecord> linesIterator, final PublishContext.PublishContextBuilder publishContextBuilder) { final CSVRecord headerRow = linesIterator.next(); - ImmutableList<String> headers = Streams.stream(headerRow) + ImmutableList<String> headersForRow = Streams.stream(headerRow) .map(String::trim) .collect(ImmutableList.toImmutableList()); - headers = InvalidDatasetContentException.checkHeader( - headers, + headersForRow = InvalidDatasetContentException.checkHeader( + headersForRow, dataImporterContext().getExpectedHeaders(), dataImporterContext().getMandatoryHeaders(), - ImmutableMultiset.copyOf(headers), + ImmutableMultiset.copyOf(headersForRow), dataImporterContext().getPatternColumnFactory(), dataImporterContext().getDataDescription().headerLine(), dataImporterContext().getDataDescription().allowUnexpectedColumns() ); - publishContextBuilder().withHeaderRow(headers); - return headers; + publishContextBuilder().withHeaderRow(headersForRow); + return headersForRow; } /** diff --git a/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java b/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java index 404aae9e6..3f8ac4166 100644 --- a/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java +++ b/src/main/java/fr/inra/oresing/persistence/JsonRowMapper.java @@ -20,6 +20,7 @@ import fr.inra.oresing.domain.checker.InvalidDatasetContentException; import fr.inra.oresing.domain.checker.type.AbstractType; import fr.inra.oresing.domain.checker.type.FieldType; import fr.inra.oresing.domain.data.DataDatum; +import fr.inra.oresing.domain.data.DataValue; import fr.inra.oresing.domain.exceptions.SiOreIllegalArgumentException; import fr.inra.oresing.domain.groovy.StringGroovyExpression; import fr.inra.oresing.domain.repository.authorization.OperationType; @@ -35,10 +36,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.temporal.TemporalAccessor; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @Component diff --git a/src/main/java/fr/inra/oresing/rest/data/DataService.java b/src/main/java/fr/inra/oresing/rest/data/DataService.java index 976705453..dad9fad0b 100644 --- a/src/main/java/fr/inra/oresing/rest/data/DataService.java +++ b/src/main/java/fr/inra/oresing/rest/data/DataService.java @@ -190,7 +190,7 @@ public class DataService { final DataRepository referenceValueRepository = getReferenceValueRepository(application); final Configuration configuration = application.getConfiguration(); final CheckerFactory checkerFactory = new CheckerFactory(referenceValueRepository); - Function<String, List<DataValue>> getDatavaluesByReference = reference-> referenceValueRepository.findAllByReferenceTypeStream(reference).toList(); + Function<String, List<DataValue>> getDatavaluesByReference = reference -> referenceValueRepository.findAllByReferenceTypeStream(reference).toList(); PublishContext.PublishContextBuilder publishContextBuilder = new PublishContext.PublishContextBuilder(application, dataName, fileOrUUID, getDatavaluesByReference); final ImmutableSet<LineChecker> lineCheckers = checkerFactory.getCheckers(application, dataName, publishContextBuilder); @@ -265,7 +265,11 @@ public class DataService { private DataService.BuildColumns buildColumns(Map<Class<? extends ComponentDescription>, List<Map.Entry<String, ComponentDescription>>> componentDescriptionEntryByComputedType, DataRepository referenceValueRepository) { - final ImmutableSet<Column> staticColumns = componentDescriptionEntryByComputedType.getOrDefault(BasicComponent.class, new LinkedList<>()).stream() + final ImmutableSet<Column> staticColumns = componentDescriptionEntryByComputedType + .getOrDefault( + BasicComponent.class, + new LinkedList<>() + ).stream() .map(entry -> { final ComponentDescription basicComponent = (BasicComponent) entry.getValue(); final TransformationConfiguration defaultValue = Optional @@ -303,7 +307,11 @@ public class DataService { return column; }).collect(ImmutableSet.toImmutableSet()); - final ImmutableSet<Column> computedColumns = componentDescriptionEntryByComputedType.getOrDefault(ComputedComponent.class, new LinkedList<>()).stream() + final ImmutableSet<Column> computedColumns = componentDescriptionEntryByComputedType + .getOrDefault( + ComputedComponent.class, + new LinkedList<>() + ).stream() .map(entry -> { final DataColumn referenceColumn = new DataColumn(entry.getKey()); final ComputedComponent computedComponent = (ComputedComponent) entry.getValue(); @@ -334,7 +342,10 @@ public class DataService { return computedColumnDescriptionToColumn(referenceValueRepository, referenceColumn, multiplicity, referenceStaticComputedColumnDescription); }).collect(ImmutableSet.toImmutableSet()); - final ImmutableSet<Column> dynamicColumns = componentDescriptionEntryByComputedType.getOrDefault(DynamicComponent.class, new LinkedList<>()).stream() + final ImmutableSet<Column> dynamicColumns = componentDescriptionEntryByComputedType + .getOrDefault( + DynamicComponent.class, + new LinkedList<>()).stream() .flatMap(entry -> { final DataColumn referenceColumn = new DataColumn(entry.getKey()); final DynamicComponent dynamicComponent = (DynamicComponent) entry.getValue(); @@ -555,7 +566,7 @@ public class DataService { zipOutputStream.closeEntry(); return true; })) - .any(b->b) + .any(b -> b) .onErrorResume(e -> { log.error("Erreur lors du traitement des données stockées", e); return Mono.just(false); diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index 63d0226bd..4e5120452 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -2436,10 +2436,10 @@ public class OreSiResourcesTest { mockMvc.perform(get("/api/v1/applications/pattern/data/{refType}/json", "taxon") .cookie(authCookie)) .andExpect(status().is2xxSuccessful()) - .andExpect(jsonPath("$..values.tel_S2_value", containsInAnyOrder("7.2", "3.4", "2.1", "2.6", "2.5", "5.2", "3.9", "3.2", "1.2"))) - .andExpect(jsonPath("$..values.tel_S2_resolution", containsInAnyOrder(3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2))) - .andExpect(jsonPath("$..values.tel_S2_qualifier", containsInAnyOrder(3, 3, 3, 3, 3, 3, 3, 3, 3))) - .andExpect(jsonPath("$..values.tel_S2_variable", containsInAnyOrder("annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy"))) + .andExpect(jsonPath("$..values.tel_S2_value.__VALUES__", containsInAnyOrder("7.2", "3.4", "2.1", "2.6", "2.5", "5.2", "3.9", "3.2", "1.2"))) + .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_resolution", containsInAnyOrder(3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2))) + .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_qualifier", containsInAnyOrder(3, 3, 3, 3, 3, 3, 3, 3, 3))) + .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_variable", containsInAnyOrder("annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy"))) //.andExpect(jsonPath("$.referenceTypeForReferencingColumns.tel_S2_variable", Is.is("site"))) //TODO .andReturn().getResponse().getContentAsString(); diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index 9e26dfeeb..335fd29fe 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{} \ No newline at end of file +{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2024-10-29T13:36:40.014022263","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2024-10-29T13:38:22.607151323","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2024-10-29T13:37:22.255694552","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2024-10-29T13:36:26.430889694","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2024-10-29T13:36:28.454403998","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:36:18.230072998","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:36:18.230994367","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-29T13:38:01.466645563","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-29T13:38:31.970380982","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:36:24.375141479","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:36:24.375892619","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"componentReference":"proj","submissionReference":"projet","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2024-10-29T13:38:55.748117037","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:39:04.75543507","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:37:34.48074135","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_version","OA_application","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2024-10-29T13:37:26.291557223","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2024-10-29T13:36:34.641513621","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:38.211375852","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2024-10-29T13:38:36.199742604","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:37:30.436912369","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2024-10-29T13:36:20.209450407","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2024-10-29T13:37:43.191093665","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2024-10-29T13:37:20.228833111","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2024-10-29T13:37:03.50667593","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:37:45.532456511","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:39:06.87047632","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2024-10-29T13:37:05.929513065","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2024-10-29T13:36:30.432669463","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:37:24.235688515","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:37:24.236522729","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:37:24.23677821","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.419827713","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.420909123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:38:49.42102865","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.421697445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:38:49.421800767","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.42215638","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:38:49.422209176","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.422815857","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2024-10-29T13:37:18.183892315","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2024-10-29T13:37:13.221332847","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2024-10-29T13:37:13.221483095","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-29T13:37:40.770324033","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","componentName":"tel_date"}},"time":"2024-10-29T13:38:08.189968563","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:37:36.540992403","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-29T13:36:47.946626907","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:17.248977907","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-29T13:36:58.534053943","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-29T13:36:42.473337713","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:38:19.358663072","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2024-10-29T13:37:00.930503142","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2024-10-29T13:36:32.485863438","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:39:00.341268086","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:39:00.342271656","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:39:00.342544823","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:44.954104363","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2024-10-29T13:36:53.239105794","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:38:51.490459833","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:38:29.957133279","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.957277064","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.958058163","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.958355173","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.95862817","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.959161116","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.959298165","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:12.920019052","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2024-10-29T13:38:15.0823626","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2024-10-29T13:37:10.924479044","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2024-10-29T13:36:50.658272058","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2024-10-29T13:38:34.12936978","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2024-10-29T13:38:10.711438432","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:37:32.495503058","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:36:22.220440902","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:37:54.660746142","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-29T13:37:08.509821457","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2024-10-29T13:36:37.229761023","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:38:04.931387567","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2024-10-29T13:37:15.893915358","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2024-10-29T13:37:28.355535592","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-29T13:38:25.66141612","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:27.786170622","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-29T13:38:42.696892967","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2024-10-29T13:38:40.465472286","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2024-10-29T13:37:58.26768099","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2024-10-29T13:38:53.566526212","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2024-10-29T13:39:02.679721767","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-29T13:37:51.664919483","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:37:48.479740274","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-29T13:37:38.644620817","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:38:57.905200352","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:38:47.137341615","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:38:47.137600612","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:47.137693304","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:38:47.13821786","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:38:47.138656926","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:47.139043652","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:47.139319542","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:38:47.139915487","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:38:47.14009647","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:38:47.140404371","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:38:47.140870163","type":"REACTIVE_ERROR"}]} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt index d3141c85d..263941dea 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt @@ -1,17 +1,17 @@ -{"result":0.0,"time":[2024,10,24,9,20,58,320527080],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,322638463],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,24,9,20,58,322715410],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,322773525],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,24,9,20,58,322795962],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,24,9,20,58,324399305],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,24,9,20,58,324473455],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,24,9,20,58,324488966],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,24,9,20,58,446863508],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,24,9,20,58,446983711],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,24,9,20,58,447003467],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,475834460],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,475892099],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,475914348],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,517801687],"type":"REACTIVE_INFO"} -{"result":"17caefc0-0c09-4b95-a132-212ef6a22c01","time":[2024,10,24,9,20,58,552781663],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,24,9,20,58,552848810],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,42,18,645065401],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,647309857],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,29,13,42,18,647380824],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,647432960],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,29,13,42,18,647471368],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,29,13,42,18,648863707],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,29,13,42,18,648924377],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,29,13,42,18,648962853],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,42,18,704025247],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,29,13,42,18,704102413],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,42,18,704114216],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,741417815],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,741471278],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,741495414],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,797483612],"type":"REACTIVE_INFO"} +{"result":"8c08f1e9-4c37-4bd5-9c51-d92a4adaade6","time":[2024,10,29,13,42,18,821352450],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,29,13,42,18,821422749],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt index 4080b94eb..f482688ea 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt @@ -1,21 +1,21 @@ -{"result":0.0,"time":[2024,10,24,9,20,57,664075998],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,666188860],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,24,9,20,57,666401654],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,666484352],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,24,9,20,57,666515492],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,24,9,20,57,669336928],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,24,9,20,57,669402464],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,24,9,20,57,669417649],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,24,9,20,57,773192956],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,24,9,20,57,773278649],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,24,9,20,57,773291965],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,826298441],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,826404394],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,826801157],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,167919857],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,168083147],"type":"REACTIVE_INFO"} -{"result":0.5,"time":[2024,10,24,9,20,58,168370497],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,58,168408828],"type":"REACTIVE_INFO"} -{"result":"17caefc0-0c09-4b95-a132-212ef6a22c01","time":[2024,10,24,9,20,58,168429801],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,24,9,20,58,168615861],"type":"REACTIVE_PROGRESS"} -{"result":1.0,"time":[2024,10,24,9,20,58,168635852],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,42,18,21381529],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,23395343],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,29,13,42,18,23573442],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,23650435],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,29,13,42,18,23705712],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,29,13,42,18,26675695],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,29,13,42,18,26735032],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,29,13,42,18,26750385],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,42,18,117242738],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,29,13,42,18,117337376],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,42,18,117352704],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,160389240],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,160498649],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,160853920],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,498362410],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,498450593],"type":"REACTIVE_INFO"} +{"result":0.5,"time":[2024,10,29,13,42,18,498709270],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,498761851],"type":"REACTIVE_INFO"} +{"result":"8c08f1e9-4c37-4bd5-9c51-d92a4adaade6","time":[2024,10,29,13,42,18,498779959],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,29,13,42,18,498922694],"type":"REACTIVE_PROGRESS"} +{"result":1.0,"time":[2024,10,29,13,42,18,498968126],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index 519e027dd..e5c2ce1e3 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,10 +1,10 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,24,9,20,56,69207874],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,24,9,20,56,72722399],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,24,9,20,56,73126376],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2024,10,24,9,20,56,74064583],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,24,9,20,56,495739526],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,24,9,20,56,496351433],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,24,9,20,56,496738243],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,24,9,20,57,508849579],"type":"REACTIVE_INFO"} -{"result":{"id":"e41f4e15-2509-47b6-8dd1-1c5bf429ed9b","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"projet","reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"especes","reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"valeurs_qualitatives","reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"type_de_sites","reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,24,9,20,57,509799070],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,24,9,20,57,510150808],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,29,13,42,16,785101540],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,29,13,42,16,790035763],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,29,13,42,16,790506124],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2024,10,29,13,42,16,791787291],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,42,17,94847160],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,29,13,42,17,95366068],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,42,17,95697007],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,17,858072488],"type":"REACTIVE_INFO"} +{"result":{"id":"7d4c6e93-b58e-4c27-90e4-6a9ea960c8ad","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"projet","reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"especes","reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"valeurs_qualitatives","reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"type_de_sites","reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,29,13,42,17,858958200],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,29,13,42,17,859320644],"type":"REACTIVE_PROGRESS"} -- GitLab From c9713aaac6427593902cb2964ca8806bb6e66af1 Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Tue, 29 Oct 2024 15:51:34 +0100 Subject: [PATCH 32/52] OA_format -> OA_formFields --- .../internationnalisation_i18n.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md index 9d55421cc..3eaf91eae 100644 --- a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md +++ b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md @@ -80,7 +80,7 @@ OA_additionalFiles: OA_description: # description du formulaire fr: "Ces fichiers additionnels sont dédiés à la description des sites pour compléter les informations déjà fournies dans la base de données." en: "These additional files are dedicated to site descriptions, to complement the information already provided in the database." - OA_format: # ce mot réservé est-il bien choisi ? Est ce que OA_inputFields serait plus explicite apr ex ? + OA_formFields: site: # construira une liste déroulante contenant les différents sites enregistrés dans le référentiel des sites. OA_i18n: OA_title: # titre de ce champ du formulaire @@ -113,7 +113,7 @@ OA_rightsRequest: OA_description: fr: "Si vous êtes intéressé par des données non publiques, vous pouvez remplir ce formulaire afin de demandes des accès. Le gestionnaire sera averti par mail. Veuillez à bien compléter les champs pour faciliter le traitement de votre demande." en: "If you are interested in non-public data, please fill in this form to request access. The administrator will be notified by e-mail. Please complete all fields to facilitate the processing of your request." - OA_format: # ce mot réservé est-il bien choisi ? Est ce que OA_inputFields serait plus explicite apr ex ? + OA_formFields: organization: # champ texte du formulaire OA_i18n: OA_title: # titre de ce champ du formulaire -- GitLab From 3ae58e0a0ffa1f4b4e840ade058fe3fecc010016 Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Tue, 29 Oct 2024 16:12:39 +0100 Subject: [PATCH 33/52] pas d'i18n sur les tags, ajout de OA_comment --- .../internationnalisation_i18n.md | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md index 3eaf91eae..f1c85ed23 100644 --- a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md +++ b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md @@ -32,7 +32,8 @@ Certains éléments indépendants des référentiels et des types de données pe ````yaml OA_version: 2.0.1 #obligatoire, version de l'application OpenADOM OA_application: #obligatoire - OA_name: optmix1 #obligatoire, nom du schéma + OA_name: optmix1 #obligatoire, nom du schéma + OA_comment : "commentaire du développeur pour lui même" #optionnel affiché après la validation, à l'usage exclusif d'un applicationManager. OA_defaultLanguage: fr OA_i18n: # internationalisation du titre et de la description de l'application (du SI) OA_title: @@ -49,20 +50,14 @@ OA_application: #obligatoire ````yaml OA_tags: metadata: #identificateur du tag - OA_i18n: - OA_title: - en: "metadata" - fr: "métadonnées" + en: "metadata" + fr: "métadonnées" location: - OA_i18n: - OA_title: - en : "location" - fr: "localisation" + en : "location" + fr: "localisation" method: - OA_i18n: - OA_title: - en: "methodology" - fr: "méthodologie" + en: "methodology" + fr: "méthodologie" ```` **les formulaires des fichiers additionnels** -- GitLab From 4b9b226697a2a0a409e5b693426b4f62e084539b Mon Sep 17 00:00:00 2001 From: Damien Maurice <damien.maurice@inra.fr> Date: Tue, 29 Oct 2024 16:16:50 +0100 Subject: [PATCH 34/52] ajout obligation encadrement obligatoire par des quotes des pattern dans OA_i18nDisplayPattern --- .../internationnalisation_i18n.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md index f1c85ed23..222845209 100644 --- a/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md +++ b/documentations/Documentation_fichier_Yaml_broken/internationnalisation_i18n.md @@ -312,7 +312,7 @@ Lors de l'affichage ou l'extraction de données de référentiel directement, la **2. la surcharge et l'internationalisation des valeurs d'une clé naturelle** -Lorsqu'un affichage de données, référentiels ou data, ou une extraction contient une ou plusieurs colonnes faisant référence à des colonnes d'autres données (référentiels ou données expérimentales), c'est la valeur de la clé naturelle qui est est fournie par défaut (faisant office de clé étangère). La clé naturelle n'est pas dans tous les cas explicite pour les utilisateurs finaux et on peut surcharger son affichage et l'internationaliser avec l'emploi d'une section `OA_i18nDisplayPattern` dans la section `OA_naturalKey` comme dans l'exemple ci-dessous. Le titre correspond à la valeur qui sera affichée. Ce titre est cliquable dans l'ihm et ouvre une modale affichant le détail de la ligne correspondante dans le référentiel. La description sera elle affichée au survol par le curseur de la valeur affichée (le titre ici). +Lorsqu'un affichage de données, référentiels ou data, ou une extraction contient une ou plusieurs colonnes faisant référence à des colonnes d'autres données (référentiels ou données expérimentales), c'est la valeur de la clé naturelle qui est est fournie par défaut (faisant office de clé étangère). La clé naturelle n'est pas dans tous les cas explicite pour les utilisateurs finaux et on peut surcharger son affichage et l'internationaliser avec l'emploi d'une section `OA_i18nDisplayPattern` dans la section `OA_naturalKey` comme dans l'exemple ci-dessous. Le titre correspond à la valeur qui sera affichée. Ce titre est cliquable dans l'ihm et ouvre une modale affichant le détail de la ligne correspondante dans le référentiel. La description sera elle affichée au survol par le curseur de la valeur affichée (le titre ici). Chaque pattern de surcharge doit être obligatoirement encadré par des quotes (doubles ou simple). ````yaml tr_site_sit: #site.csv (= dispositif dans OPTmix) @@ -331,11 +331,11 @@ Lorsqu'un affichage de données, référentiels ou data, ou une extraction conti - sit_code OA_i18nDisplayPattern: OA_title: - fr: "{sit_code} ({sit_label_fr})" # {sit_code} sera remplacé par les valeur du composant sit_code et {sit_label_fr} par les valeurs du composant sit_label_fr. Ex: O108 (mélange) - en: "{sit_code} ({sit_label_en})" # ex: O108 (mixed) + fr: "{sit_code} ({sit_label_fr})" # {sit_code} sera remplacé par les valeur du composant sit_code et {sit_label_fr} par les valeurs du composant sit_label_fr. Ex: O108 (mélange). Encadrement obligatoire par des quotes. + en: "{sit_code} ({sit_label_en})" # ex: O108 (mixed). Encadrement obligatoire par des quotes. OA_description: - fr: "{sit_description_fr}" - en: "{sit_description_en}" + fr: "{sit_description_fr}" # Encadrement obligatoire par des quotes. + en: "{sit_description_en}" # Encadrement obligatoire par des quotes. OA_basicComponents: sit_code: OA_importHeader: "site_code" -- GitLab From 332c37e60bfabe719761ff659e036107ba69648d Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 30 Oct 2024 11:49:23 +0100 Subject: [PATCH 35/52] =?UTF-8?q?cr=C3=A9ation=20et=20validation=20de=20de?= =?UTF-8?q?mande=20de=20droit=20et=20cr=C3=A9ation=20d'une=20autorisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/AuthorizationForScope.java | 2 +- .../oresing/rest/AuthorizationService.java | 2 + .../fr/inra/oresing/rest/OreSiService.java | 2 +- .../common/AuthorizationTableForDatatype.vue | 9 +- .../AuthorizationTableForOneDataType.vue | 4 +- .../components/common/provider/FieldsForm.vue | 30 +- .../components/common/provider/InputDate.vue | 9 +- .../common/provider/InputNumber.vue | 3 +- .../common/provider/OreInputDate.vue | 25 +- .../common/provider/OreInputNumber.vue | 39 +- .../common/provider/OreInputReference.vue | 77 ++-- .../common/provider/OreInputText.vue | 3 +- ui/src/composable/application/DatePattern.js | 42 +- .../AdditionalFileInfosView.vue | 9 +- .../AdditionalFilesManagementView.vue | 20 +- .../AuthorizationsRightsRequestInfoView.vue | 430 ++++++++++-------- .../DataTypeAuthorizationInfoView.vue | 4 +- .../RequestAuthorizationManagementView.vue | 175 ++++--- 18 files changed, 485 insertions(+), 400 deletions(-) diff --git a/src/main/java/fr/inra/oresing/domain/authorization/request/AuthorizationForScope.java b/src/main/java/fr/inra/oresing/domain/authorization/request/AuthorizationForScope.java index fd7945f29..18725b02e 100644 --- a/src/main/java/fr/inra/oresing/domain/authorization/request/AuthorizationForScope.java +++ b/src/main/java/fr/inra/oresing/domain/authorization/request/AuthorizationForScope.java @@ -15,7 +15,7 @@ public sealed interface AuthorizationForScope permits AuthorizationNoRestricti static AuthorizationForScope of(AuthorizationInput authorization, DataRepositoryForBuffer dataRepositoryWithBuffer) { Map<String, List<Ltree>> authorizationScope = Map.of(); if(MapUtils.isNotEmpty(authorization.getRequiredAuthorizations())){ - authorizationScope = dataRepositoryWithBuffer.checkHierarchicalKey(authorization.getRequiredAuthorizations()); + authorizationScope = authorization.getRequiredAuthorizations(); } if(MapUtils.isEmpty(authorization.getRequiredAuthorizations()) && authorization.getTimeScope()==null){ diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationService.java b/src/main/java/fr/inra/oresing/rest/AuthorizationService.java index 5f0f268ef..aa334652d 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationService.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationService.java @@ -1073,6 +1073,8 @@ public class AuthorizationService implements fr.inra.oresing.domain.services.aut String datatype = authorizationEntry.getKey(); AuthorizationForScope authorizationToParse = authorizationEntry.getValue(); AuthorizationParsed authorizationParsed = AuthorizationParsed.of(authorizationToParse); + authorizationsParsed.computeIfAbsent(datatype, k->new LinkedList<>()) + .add(authorizationParsed); } } } diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index 387ff8217..86d6c21cd 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -701,7 +701,7 @@ public class OreSiService { .map(map -> map.get(datatype)) .map(authList -> authList.stream() .flatMap(auth -> auth.operationTypes().stream()) - .collect(Collectors.toSet())) + .collect(Collectors.toSet())) .orElseGet(Set::of); boolean isAdmin = authorizationsForUser.isAdministrator() || rolesSetted.contains(OperationType.admin); diff --git a/ui/src/components/common/AuthorizationTableForDatatype.vue b/ui/src/components/common/AuthorizationTableForDatatype.vue index 2c6a0e5d3..ca05d4992 100644 --- a/ui/src/components/common/AuthorizationTableForDatatype.vue +++ b/ui/src/components/common/AuthorizationTableForDatatype.vue @@ -3,9 +3,9 @@ <b-collapse v-if=" localeInitialized && - ((localeReferences.withoutScope && + ((localeReferences.withoutScope && Object.keys(localeReferences.withoutScope).length !== 0) || - (localeReferences.withScope && Object.keys(localeReferences.withScope).length !== 0)) + (localeReferences.withScope && Object.keys(localeReferences.withScope).length !== 0)) " :open="false" animation="slide" @@ -75,9 +75,8 @@ <b-collapse v-if=" localeInitialized && - ((localeDatatypes.withoutScope && - Object.keys(localeDatatypes.withoutScope).length !== 0) || - (localeDatatypes.withScope && Object.keys(localeDatatypes.withScope).length !== 0)) + ((localeDatatypes.withoutScope && Object.keys(localeDatatypes.withoutScope).length !== 0) || + (localeDatatypes.withScope && Object.keys(localeDatatypes.withScope).length !== 0)) " :open="false" animation="slide" diff --git a/ui/src/components/common/authorization/AuthorizationTableForOneDataType.vue b/ui/src/components/common/authorization/AuthorizationTableForOneDataType.vue index 27b6e885b..31a88aa18 100644 --- a/ui/src/components/common/authorization/AuthorizationTableForOneDataType.vue +++ b/ui/src/components/common/authorization/AuthorizationTableForOneDataType.vue @@ -18,7 +18,7 @@ export default { "update:operation-type", "update:has-extraction", ], - components: {CollapseMenuMultiselect, InputDateInterval }, + components: { CollapseMenuMultiselect, InputDateInterval }, props: { authorization: Object, listColumnName: Object, @@ -141,7 +141,7 @@ export default { hasExtraction, localHasExtraction, rootReferenceScopeSelected, - displayNodeTagHierarchical + displayNodeTagHierarchical, }; }, }; diff --git a/ui/src/components/common/provider/FieldsForm.vue b/ui/src/components/common/provider/FieldsForm.vue index 6c772eed1..d2a5bf96f 100644 --- a/ui/src/components/common/provider/FieldsForm.vue +++ b/ui/src/components/common/provider/FieldsForm.vue @@ -33,7 +33,13 @@ :label=" internationalisationService.getLocaleforPath(application, pathForKey + '.' + key, key) " - :value="fields[key] ? (item.checker.type === 'FloatChecker' ? parseFloat(fields[key]) : parseInt(fields[key])) : 0" + :value=" + fields[key] + ? item.checker.type === 'FloatChecker' + ? parseFloat(fields[key]) + : parseInt(fields[key]) + : 0 + " :vid="key" @update:value="updateValue(key, $event)" /> @@ -81,7 +87,7 @@ import OreInputDate from "@/components/common/provider/OreInputDate"; import OreInputReference from "@/components/common/provider/OreInputReference"; import { ValidationObserver } from "vee-validate"; import { InternationalisationService } from "@/services/InternationalisationService"; -import {onMounted, ref, watch} from "vue"; +import { onMounted, ref, watch } from "vue"; import app from "@/main"; import services from "@/composable/services"; @@ -119,18 +125,26 @@ export default { if (newValue) { fields.value = ref(newValue); } - }, { immediate: true } + }, + { immediate: true } ); - onMounted(async ()=> { + onMounted(async () => { const newReferencesScopes = {}; for (let item in props.format) { - if(props.format[item].checker && props.format[item].checker.type ==='ReferenceChecker' && props.format[item].checker.refType) { - newReferencesScopes[item] = await services.dataService.getData(props.application.name, props.format[item].checker.refType); + if ( + props.format[item].checker && + props.format[item].checker.type === "ReferenceChecker" && + props.format[item].checker.refType + ) { + newReferencesScopes[item] = await services.dataService.getData( + props.application.name, + props.format[item].checker.refType + ); } } referencesScopes.value = newReferencesScopes; - console.log(props.fields) - }) + console.log(props.fields); + }); function onSubmit(event) { console.log("submit", event); diff --git a/ui/src/components/common/provider/InputDate.vue b/ui/src/components/common/provider/InputDate.vue index 1f0b7aa8f..45c5d643c 100644 --- a/ui/src/components/common/provider/InputDate.vue +++ b/ui/src/components/common/provider/InputDate.vue @@ -20,7 +20,8 @@ export default { () => props.from, (value) => { valueDate.value = value; - }, { immediate: true } + }, + { immediate: true } ); function updateValueDate(event) { if (typeof event === "number") { @@ -50,7 +51,7 @@ export default { editable expanded icon="calendar-day" - :years-range="[-100,100]" + :years-range="[-100, 100]" @focus="updateValueDate(22.625)" @blur="updateValueDate(-22.625)" > @@ -63,7 +64,7 @@ export default { editable expanded icon="calendar-day" - :years-range="[-100,100]" + :years-range="[-100, 100]" @focus="updateValueDate(22.625)" @blur="updateValueDate(-22.625)" > @@ -76,7 +77,7 @@ export default { editable expanded icon="clock" - :years-range="[-100,100]" + :years-range="[-100, 100]" @blur="updateValueDate" > </b-timepicker> diff --git a/ui/src/components/common/provider/InputNumber.vue b/ui/src/components/common/provider/InputNumber.vue index 275fcc2c2..0bc7e0e3e 100644 --- a/ui/src/components/common/provider/InputNumber.vue +++ b/ui/src/components/common/provider/InputNumber.vue @@ -20,7 +20,8 @@ export default { () => props.from, (value) => { valueNumber.value = value; - }, { immediate: true } + }, + { immediate: true } ); function updateValueNumber() { ctx.emit("update:numberValue", { diff --git a/ui/src/components/common/provider/OreInputDate.vue b/ui/src/components/common/provider/OreInputDate.vue index 1d0b80515..13887b961 100644 --- a/ui/src/components/common/provider/OreInputDate.vue +++ b/ui/src/components/common/provider/OreInputDate.vue @@ -43,9 +43,9 @@ <script> import moment from "moment"; import { extend, ValidationProvider } from "vee-validate"; -import {watch, ref, reactive} from "vue"; +import { watch, ref, reactive } from "vue"; import InputDate from "@/components/common/provider/InputDate.vue"; -import {datePatternLang, parseDate} from "@/composable/application/DatePattern"; +import { datePatternLang, parseDate } from "@/composable/application/DatePattern"; export default { name: "OreInputDate", @@ -77,17 +77,22 @@ export default { () => props.value, (newValue) => { val.value = newValue; - }, { immediate: true } + }, + { immediate: true } ); const dateValue = reactive({}); - watch(() => [props.vid, val.value, props.checker.pattern], ([vid, value, pattern]) => { - if (typeof value === "string") { - dateValue[vid] = parseDate(value, pattern); - } else { - dateValue[vid] = value; - } - }, { immediate: true }); + watch( + () => [props.vid, val.value, props.checker.pattern], + ([vid, value, pattern]) => { + if (typeof value === "string") { + dateValue[vid] = parseDate(value, pattern); + } else { + dateValue[vid] = value; + } + }, + { immediate: true } + ); const pattern = { "dd/MM/yyyy": { diff --git a/ui/src/components/common/provider/OreInputNumber.vue b/ui/src/components/common/provider/OreInputNumber.vue index d85020e71..74f26dd47 100644 --- a/ui/src/components/common/provider/OreInputNumber.vue +++ b/ui/src/components/common/provider/OreInputNumber.vue @@ -46,7 +46,7 @@ <script> import { extend, ValidationProvider } from "vee-validate"; -import {reactive, ref, watch} from "vue"; +import { reactive, ref, watch } from "vue"; import InputNumber from "@/components/common/provider/InputNumber.vue"; import useNumber from "@/composable/components/number"; @@ -77,30 +77,31 @@ export default { setup(props, ctx) { const val = ref(props.value); watch( - () => props.value, - (newValue) => { - val.value = newValue; - }, { immediate: true } + () => props.value, + (newValue) => { + val.value = newValue; + }, + { immediate: true } ); const numberValue = reactive({}); - watch(() => [props.vid, val.value], ([vid, value]) => { - if (typeof value === "string") { - numberValue[vid] = parseFloat(value) || 0; - } else { - numberValue[vid] = value; - } - }, { immediate: true }); + watch( + () => [props.vid, val.value], + ([vid, value]) => { + if (typeof value === "string") { + numberValue[vid] = parseFloat(value) || 0; + } else { + numberValue[vid] = value; + } + }, + { immediate: true } + ); const { refNumber: min } = useNumber( - props.checker.min && props.checker.min !== "-Infinity" - ? props.checker.min - : Number(-Infinity) + props.checker.min && props.checker.min !== "-Infinity" ? props.checker.min : Number(-Infinity) ); const { refNumber: max } = useNumber( - props.checker.max && props.checker.max !== "Infinity" - ? props.checker.max - : Number(Infinity) + props.checker.max && props.checker.max !== "Infinity" ? props.checker.max : Number(Infinity) ); function updateValue(event) { if (typeof event == "object") { @@ -139,7 +140,7 @@ export default { validateRegExp, validateRequired, regexpInteger, - regexpFloat + regexpFloat, }; }, methods: { diff --git a/ui/src/components/common/provider/OreInputReference.vue b/ui/src/components/common/provider/OreInputReference.vue index ef62bd38b..a4dd65300 100644 --- a/ui/src/components/common/provider/OreInputReference.vue +++ b/ui/src/components/common/provider/OreInputReference.vue @@ -1,33 +1,33 @@ <template> <ValidationProvider - v-slot="{ errors, valid }" - :name="vid" - :rules="rules" - :vid="vid" - class="column is-12" + v-slot="{ errors, valid }" + :name="vid" + :rules="rules" + :vid="vid" + class="column is-12" > <b-field - :label="label" - :message="errors" - :type="{ + :label="label" + :message="errors" + :type="{ 'is-danger': errors && errors.length > 0, 'is-success': valid, }" - class="file is-primary column is-12" + class="file is-primary column is-12" > <b-select - v-if="references" - :multiple="multiplicity" - :required="required" - :value="val" - @blur="updateValue" - @input="updateValue" + v-if="references" + :multiple="multiplicity" + :required="required" + :value="val" + @blur="updateValue" + @input="updateValue" > <option - v-for="option in references" - :key="option.naturalKey" - :label="getFullName(option.naturalKey)" - :value="option.naturalKey" + v-for="option in references" + :key="option.naturalKey" + :label="getFullName(option.naturalKey)" + :value="option.naturalKey" ></option> </b-select> </b-field> @@ -35,10 +35,10 @@ </template> <script> -import {extend, ValidationProvider} from "vee-validate"; -import {LOCAL_STORAGE_LANG} from "@/services/Fetcher"; -import {provide, ref, watch} from "vue"; -import {dataLoader} from "@/composable/data/dataLoader"; +import { extend, ValidationProvider } from "vee-validate"; +import { LOCAL_STORAGE_LANG } from "@/services/Fetcher"; +import { provide, ref, watch } from "vue"; +import { dataLoader } from "@/composable/data/dataLoader"; import services from "@/composable/services"; const defaultLanguage = localStorage.getItem(LOCAL_STORAGE_LANG); @@ -47,26 +47,27 @@ export default { const val = ref(props.value); const loader = dataLoader(services); provide("reference:dataLoader", loader); - const {getValueDisplay} = loader; + const { getValueDisplay } = loader; watch( - () => props.value, - () => { - val.value = ref(props.value); - }, { immediate: true } + () => props.value, + () => { + val.value = ref(props.value); + }, + { immediate: true } ); function getFullName(naturalKey) { let currentNames = []; return ( - naturalKey - .split("__") - .map((key) => { - currentNames.push(key); - let currentName = currentNames.join("__"); - return props.references.find((reference) => reference.naturalKey === currentName); - }) - .map((reference) => getValueDisplay(reference, props.references)) - .join("/") || naturalKey + naturalKey + .split("__") + .map((key) => { + currentNames.push(key); + let currentName = currentNames.join("__"); + return props.references.find((reference) => reference.naturalKey === currentName); + }) + .map((reference) => getValueDisplay(reference, props.references)) + .join("/") || naturalKey ); } @@ -121,7 +122,7 @@ export default { computed: { required: { get() { - return this.checker && this.checker.required; + return this.checker && this.checker.required; }, }, multiplicity: { diff --git a/ui/src/components/common/provider/OreInputText.vue b/ui/src/components/common/provider/OreInputText.vue index a7e798375..4a876bce3 100644 --- a/ui/src/components/common/provider/OreInputText.vue +++ b/ui/src/components/common/provider/OreInputText.vue @@ -109,7 +109,8 @@ export default { if (newValue) { val.value = ref(newValue); } - }, { immediate: true } + }, + { immediate: true } ); const textValue = computed({ diff --git a/ui/src/composable/application/DatePattern.js b/ui/src/composable/application/DatePattern.js index 744704582..6e96dbe73 100644 --- a/ui/src/composable/application/DatePattern.js +++ b/ui/src/composable/application/DatePattern.js @@ -1,7 +1,7 @@ export function datePatternLang(date, pattern, regex) { - if(!regex) { + if (!regex) { regex = - /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([Zz]|([/+-])([01]\d|2[0-3]):?([0-5]\d)?)?/i; + /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([Zz]|([/+-])([01]\d|2[0-3]):?([0-5]\d)?)?/i; } let dateExec = regex.exec(date) ? new Date(regex.exec(date)[0]) : date; if (pattern != null) { @@ -127,17 +127,41 @@ export function patternCheckerDateRef(application, columnName, refId) { } export function parseDate(input, format) { - format = format || 'dd/MM/yyyy'; // default format + format = format || "dd/MM/yyyy"; // default format let parts = input.match(/(\d+)/g), - i = 0, fmt = {}; - format.replace(/(yyyy|dd|MM|hh|mm|ss)/g, function(part) { fmt[part] = i++; }); + i = 0, + fmt = {}; + format.replace(/(yyyy|dd|MM|hh|mm|ss)/g, function (part) { + fmt[part] = i++; + }); if (format.includes("hh") && format.includes("mm") && format.includes("ss")) { - return new Date(parts[fmt['yyyy']], parts[fmt['MM']] - 1, parts[fmt['dd']], parts[fmt['hh']], parts[fmt['mm']], parts[fmt['ss']]); + return new Date( + parts[fmt["yyyy"]], + parts[fmt["MM"]] - 1, + parts[fmt["dd"]], + parts[fmt["hh"]], + parts[fmt["mm"]], + parts[fmt["ss"]] + ); } else if (format.includes("hh") && format.includes("mm")) { - return new Date(parts[fmt['yyyy']], parts[fmt['MM']] - 1, parts[fmt['dd']], parts[fmt['hh']], parts[fmt['mm']], 0); + return new Date( + parts[fmt["yyyy"]], + parts[fmt["MM"]] - 1, + parts[fmt["dd"]], + parts[fmt["hh"]], + parts[fmt["mm"]], + 0 + ); } else if (format.includes("hh")) { - return new Date(parts[fmt['yyyy']], parts[fmt['MM']] - 1, parts[fmt['dd']], parts[fmt['hh']], 0, 0); + return new Date( + parts[fmt["yyyy"]], + parts[fmt["MM"]] - 1, + parts[fmt["dd"]], + parts[fmt["hh"]], + 0, + 0 + ); } else { - return new Date(parts[fmt['yyyy']], parts[fmt['MM']]-1, parts[fmt['dd']],0,0,0); + return new Date(parts[fmt["yyyy"]], parts[fmt["MM"]] - 1, parts[fmt["dd"]], 0, 0, 0); } } diff --git a/ui/src/views/additionalfiles/AdditionalFileInfosView.vue b/ui/src/views/additionalfiles/AdditionalFileInfosView.vue index 7c445339c..8332c9d41 100644 --- a/ui/src/views/additionalfiles/AdditionalFileInfosView.vue +++ b/ui/src/views/additionalfiles/AdditionalFileInfosView.vue @@ -9,10 +9,11 @@ <h1 class="title main-title"> {{ $t("titles.additionalFileWithType", { - localName: internationalisationService.getLocaleforPath( - application, - "additionalFiles." + additionalFileName + ".internationalizationName" - ) || additionalFileName, + localName: + internationalisationService.getLocaleforPath( + application, + "additionalFiles." + additionalFileName + ".internationalizationName" + ) || additionalFileName, }) }} </h1> diff --git a/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue b/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue index f6c15e8a9..99688e8d7 100644 --- a/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue +++ b/ui/src/views/additionalfiles/AdditionalFilesManagementView.vue @@ -10,10 +10,11 @@ {{ additionalFileName ? $t("titles.additionalFileWithType", { - localName: services.internationalisationService.getLocaleforPath( - application, - "additionalFiles." + additionalFileName + ".internationalizationName" - ) || additionalFileName, + localName: + services.internationalisationService.getLocaleforPath( + application, + "additionalFiles." + additionalFileName + ".internationalizationName" + ) || additionalFileName, }) : $t("titles.additionalFile") }} @@ -39,10 +40,11 @@ <b-button icon-left="plus" type="is-primary is-right" @click="addAdditionalFile"> {{ $t("additionalFilesManagement.addAdditionalFile", { - localName: services.internationalisationService.getLocaleforPath( - application, - "additionalFiles." + additionalFileName + ".internationalizationName" - ) || additionalFileName, + localName: + services.internationalisationService.getLocaleforPath( + application, + "additionalFiles." + additionalFileName + ".internationalizationName" + ) || additionalFileName, }) }} </b-button> @@ -253,7 +255,7 @@ export default { new SubMenuPath( i18n.t("additionalFilesManagement.additionalFilesManagement").toLowerCase(), () => {}, - () => app.$router.push("/applications/"+props.applicationName) + () => app.$router.push("/applications/" + props.applicationName) ), ]); }); diff --git a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue index 16cc9ee07..aeca9a063 100644 --- a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue +++ b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue @@ -1,70 +1,102 @@ <template> <PageView class="with-submenu"> <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="application.localName || application.title" - role="navigation" + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="application.localName || application.title" + role="navigation" /> <h1 class="title main-title"> - <span>{{ $t("dataTypeAuthorizations.title", { label: currentUser[0] ? currentUser[0].label : currentUser.label }) }}</span> + <span>{{ + $t("dataTypeAuthorizations.title", { + label: currentUser[0] ? currentUser[0].label : currentUser.label, + }) + }}</span> </h1> <LoadingAnimate v-if="isLoading" :size="'is-medium'"></LoadingAnimate> <ValidationObserver v-else ref="observer" v-slot="{ handleSubmit }"> <FieldsForm - :application="application" - :comment="comment" - :description="description" - :fields="fields" - :format="format" - :showComment="Object.keys(format).length === 0" - pathForKey="rightsrequest.fields" - @update:fields="updateFields" - @update:comment="updateComment" + :application="application" + :comment="description" + :description="description" + :fields="fields" + :format="format" + :showComment="Object.keys(format).length === 0" + pathForKey="rightsrequest.fields" + @update:fields="updateFields" + @update:comment="updateComment" > </FieldsForm> - <AuthorizationTableForDatatype - v-if="Object.keys(currentAuthorization).length" - :application="application" - :application-name="applicationName" - :authorization-id="authorizationId" - :authorizations="authorizations" - :current-authorization="currentAuthorization" - :datatypes="datatypes" - :has-dependencies="hasDependencies" - :initialized="initialized" - :list-column-name="listColumnName" - :references="references" - :references-scopes="referencesScopes" - @update:authorization="updateAuthorization" + <b-collapse + :open="false" + animation="slide" + aria-id="tableCurrentAuth" + class="card" + style="box-shadow: none" > - </AuthorizationTableForDatatype> + <template #trigger="detail"> + <div + :aria-expanded="!detail.open" + aria-controls="tableCurrentAuth" + class="card-header" + role="button" + style="box-shadow: none; border-bottom: thick double #009d9d" + > + <p class="card-header-title">Demande des droits par références ou datatypes</p> + <a class="card-header-icon"> + <b-icon + :icon="detail.open ? 'chevron-up' : 'chevron-down'" + type="is-primary" + ></b-icon> + </a> + </div> + </template> + <div class="card-content"> + <div> + <AuthorizationTableForDatatype + :application="application" + :application-name="applicationName" + :authorization-id="authorizationId" + :authorizations="authorizations" + :current-authorization="currentAuthorization" + :datatypes="datatypes" + :has-dependencies="hasDependencies" + :initialized="initialized" + :list-column-name="listColumnName" + :references="references" + :references-scopes="referencesScopes" + @update:authorization="updateAuthorization" + > + </AuthorizationTableForDatatype> + </div> + </div> + </b-collapse> <div class="buttons"> <b-button - v-if="canCreateApplication" - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(confirmGrantAuthorization)" + v-if="canCreateApplication" + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(confirmGrantAuthorization)" > {{ $t("dataTypeAuthorizations.grantRequests") }} </b-button> <b-button - v-else-if="'new' === authorizationId" - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(createRequest)" + v-else-if="'new' === authorizationId" + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(createRequest)" > {{ $t("dataTypeAuthorizations.showRequests") }} </b-button> <b-button - v-else - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(createRequest)" + v-else + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(createRequest)" > {{ $t("dataTypeAuthorizations.modifyRequests") }} </b-button> @@ -74,21 +106,19 @@ </template> <script> -import { ValidationObserver } from "vee-validate"; -import SubMenu, { SubMenuPath } from "@/components/common/SubMenu.vue"; +import {ValidationObserver} from "vee-validate"; +import SubMenu, {SubMenuPath} from "@/components/common/SubMenu.vue"; import PageView from "../common/PageView.vue"; -import { ApplicationResult } from "@/model/ApplicationResult"; +import {ApplicationResult} from "@/model/ApplicationResult"; import AuthorizationTableForDatatype from "@/components/common/AuthorizationTableForDatatype.vue"; -import { Authorization } from "@/model/authorization/Authorization"; -import { Authorizations } from "@/model/authorization/Authorizations"; import FieldsForm from "@/components/common/provider/FieldsForm.vue"; import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; import services from "@/composable/services"; -import { computed, inject, onMounted, ref, watch } from "vue"; +import {computed, inject, onMounted, ref, watch} from "vue"; import useObject from "@/composable/components/object"; -import app, { i18n } from "@/main"; +import app, {i18n} from "@/main"; import useArray from "@/composable/components/array"; -import { getListColumnName } from "@/composable/authorization/grantableInfos"; +import {getListColumnName} from "@/composable/authorization/grantableInfos"; export default { name: "AuthorizationsRightsRequestInfoView", @@ -111,34 +141,33 @@ export default { }, setup(props) { const loadApplications = inject("application:loadApplications"); - let { reactiveObject: application, doChangeObject: changeApplication } = useObject( - new ApplicationResult() + let {reactiveObject: application, doChangeObject: changeApplication} = useObject( + new ApplicationResult() ); - const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); + const {shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths} = useArray(); const isLoading = ref(false); const authenticatedUser = services.loginService.getAuthenticatedUser(); const canCreateApplication = authenticatedUser.isApplicationCreator(application); - const datatypes = ref({withScope:{}, withoutScope:{}}); - const references = ref({withScope:{}, withoutScope:{}}); - const { reactiveObject: datas } = useObject({}); - const { reactiveObject: configuration, doChangeObject: changeConfiguration } = useObject({}); - const { reactiveObject: authorization, doChangeObject: changeAuthorization } = useObject({}); - const { reactiveObject: format, doChangeObject: changeFormat } = useObject({}); - const { reactiveObject: fields, doChangeObject: changeFields } = useObject({}); - const { reactiveObject: authorizations } = useObject({}); + const datatypes = ref({withScope: {}, withoutScope: {}}); + const references = ref({withScope: {}, withoutScope: {}}); + const {reactiveObject: datas} = useObject({}); + const {reactiveObject: configuration, doChangeObject: changeConfiguration} = useObject({}); + const {reactiveObject: authorization, doChangeObject: changeAuthorization} = useObject({}); + const {reactiveObject: format, doChangeObject: changeFormat} = useObject({}); + const {reactiveObject: fields, doChangeObject: changeFields} = useObject({}); + const {reactiveObject: authorizations} = useObject({}); const currentAuthorization = ref({}); const listColumnName = ref({}); const initialized = ref(false); const referencesScopes = ref({}); let canManage = false; let valid = false; - const { reactiveObject: period } = useObject(); + const {reactiveObject: period} = useObject(); let startDate = ref(null); let endDate = ref(null); const description = ref(""); const dependencies = ref({}); const currentUser = ref({}); - let comment = null; const hasDependencies = computed(() => { const result = new Set(); const authorizations = currentAuthorization.value.authorizations; @@ -209,43 +238,49 @@ export default { startDate.value = null; }); + watch(currentAuthorization, () => { + changeAuthorization(currentAuthorization.value); + }); + onMounted(async () => { await init(); if (canCreateApplication) { changeSubMenuPaths([ new SubMenuPath( - i18n.t("menu.accueil").toLowerCase(), - () => app.$router.push(`/applications/${props.applicationName}`), - () => app.$router.push(`/applications`) + i18n.t("menu.accueil").toLowerCase(), + () => app.$router.push(`/applications/${props.applicationName}`), + () => app.$router.push(`/applications`) ), new SubMenuPath( - i18n.t(`dataTypeAuthorizations.sub-menu-request-authorization`), - () => { - app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); - }, - () => app.$router.push(`/applications/${props.applicationName}`) + i18n.t(`dataTypeAuthorizations.sub-menu-request-authorization`), + () => { + app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + }, + () => app.$router.push(`/applications/${props.applicationName}`) ), new SubMenuPath( - i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), - () => {}, - () => { - app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); - } + i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), + () => { + }, + () => { + app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + } ), ]); } else { changeSubMenuPaths([ new SubMenuPath( - i18n.t("menu.accueil").toLowerCase(), - () => app.$router.push(`/applications/${props.applicationName}`), - () => app.$router.push(`/applications/${props.applicationName}`) + i18n.t("menu.accueil").toLowerCase(), + () => app.$router.push(`/applications/${props.applicationName}`), + () => app.$router.push(`/applications/${props.applicationName}`) ), new SubMenuPath( - i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), - () => {}, - () => { - app.$router.push(`/applications/${props.applicationName}`); - } + i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), + () => { + }, + () => { + app.$router.push(`/applications/${props.applicationName}`); + } ), ]); } @@ -302,21 +337,21 @@ export default { function initApplication(getApplication) { changeApplication( - services.internationalisationService.mergeInternationalization(getApplication) + services.internationalisationService.mergeInternationalization(getApplication) ); changeConfiguration(application.configuration); datas.value = Object.keys(application.data).reduce((acc, data) => { acc[data] = { id: data, name: - services.internationalisationService.localeReferenceNames(data, application) || data, + services.internationalisationService.localeReferenceNames(data, application) || data, }; return acc; }, {}); for (let data of Object.keys(configuration.dataDescription)) { if ( - configuration.dataDescription[data] && - configuration.dataDescription[data].authorization + configuration.dataDescription[data] && + configuration.dataDescription[data].authorization ) { authorizations[data] = configuration.dataDescription[data].authorization; } @@ -327,27 +362,27 @@ export default { isLoading.value = true; try { let getApplication = await services.applicationService.getApplication( - props.applicationName, - ["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "ADDITIONALFILE"] + props.applicationName, + ["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "ADDITIONALFILE"] ); initApplication(getApplication); dependencies.value = buildDependencies(configuration.hierarchicalNodes); changeFormat(configuration.rightsRequest.format || {}); changeFields( - (Object.keys(format) || []).reduce((acc, field) => { - acc[field] = ""; - return acc; - }, {}) + (Object.keys(format) || []).reduce((acc, field) => { + acc[field] = ""; + return acc; + }, {}) ); description.value = - application?.internationalization.rightsrequest?.description[ - services.userPreferencesService.getUserPrefLocale() - ] || - i18n.t("dataTypeAuthorizations.field_form_description", { - applicationName: application.localName, - }); + application?.internationalization.rightsrequest?.description[ + services.userPreferencesService.getUserPrefLocale() + ] || + i18n.t("dataTypeAuthorizations.field_form_description", { + applicationName: application.localName, + }); let listAllUsers = await services.authorizationService.getAuthorizationGrantableInfos( - props.applicationName + props.applicationName ); let scopes = listAllUsers.referenceScopes; referencesScopes.value = Object.keys(scopes || {}).reduce((acc, dataName) => { @@ -359,52 +394,43 @@ export default { if (props.authorizationId !== "new") { valid = true; let request = await services.requestRightsService.getRightsRequests( - props.applicationName, - { - uuids: [props.authorizationId], - } + props.applicationName, + { + uuids: [props.authorizationId], + } ); - console.log("request", request) - currentUser.value = [request.users.find( - (user) => - user.id === - ((request && - request.rightsRequests && - request.rightsRequests[0] && - request.rightsRequests[0].user) || - JSON.parse(localStorage.authenticatedUser).id) - )] || [JSON.parse(localStorage.authenticatedUser)]; + currentUser.value = [ + request.users.find( + (user) => + user.id === + ((request && + request.rightsRequests && + request.rightsRequests[0] && + request.rightsRequests[0].user) || + JSON.parse(localStorage.authenticatedUser).id) + ), + ] || [JSON.parse(localStorage.authenticatedUser)]; let rightsRequest = request.rightsRequests[0]; - comment = rightsRequest.comment; + description.value = rightsRequest.comment; changeFields( - (Object.keys(format) || []).reduce((acc, field) => { - acc[field] = rightsRequest.rightsRequestForm[field]; - return acc; - }, {}) + (Object.keys(format) || []).reduce((acc, field) => { + acc[field] = rightsRequest.rightsRequestForm[field]; + return acc; + }, {}) ); if (rightsRequest && Object.keys(rightsRequest.rightsRequest).length !== 0) { - let authorizations = (rightsRequest && rightsRequest.rightsRequest) || {}; - let initialValue = new Authorizations( - { - authorizations: {}, - applicationNameOrId: props.applicationName, - users: authorizations.users, - name: authorizations.name, - uuid: authorizations.uuid, - }, - [] - ); - initialized.value = true; - console.log(application.data) - changeAuthorization( - (Object.keys(application.data) || []).reduce((auth, dataName) => { - auth.authorizations[dataName] = new Authorizations( - { authorizations: authorizations[dataName] }, - (referencesScopes[dataName] || []).map((as) => as.id) - ); - return auth; - }, initialValue) - ); + let authorizations = rightsRequest.rightsRequest; + currentAuthorization.value = { + description: "coucou", + name: "je suis un nom", + uuid: null, + authorizations: {}, + }; + // Copier les autorisations existantes dans l'objet currentAuthorization + Object.keys(authorizations).forEach((key) => { + currentAuthorization.value.authorizations[key] = authorizations[key][0]; + }); + changeAuthorization(currentAuthorization.value); canManage = canCreateApplication || (authorizations.users && @@ -414,8 +440,8 @@ export default { } else { currentUser.value = JSON.parse(localStorage.getItem("authenticatedUser")); currentAuthorization.value = {}; - initialized.value = true; } + initialized.value = true; listColumnName.value = getListColumnName(); } catch (error) { services.alertService.toastServerError(error); @@ -436,31 +462,30 @@ export default { } function updateComment(event) { - comment = event.comment; + description.value = event.comment; valid = event.valid; } async function grantAuthorization() { try { - const auth = await createAuthorization(); - console.log(auth); - await createRequest(true); + await createAuthorization(); } catch (e) { console.log("error", e); + } finally { + await createRequest(true); } } function updateAuthorization(event) { - let current = { ...currentAuthorization.value }; + let current = {...currentAuthorization.value}; current.authorizations = event; currentAuthorization.value = current; - console.log(current) } const buildAuthorization = () => { const authorizationForAll = {}; const authorizationsWithRestriction = {}; - const authorization = { ...currentAuthorization.value.authorizations }; + const authorization = {...currentAuthorization.value.authorizations}; for (const [datatype, auth] of Object.entries(authorization)) { // Ignorer les datatypes sans opérationTypes ou avec seulement 'extraction' s'ils sont dans hasDependencies if ( @@ -527,25 +552,25 @@ export default { } } } - return { uuid: props.authorizationId === "new" ? null : props.authorizationId, - name: i18n.t("dataTypeAuthorizations.title", { label: currentUser[0] ? currentUser[0].label : currentUser.label }), + name: i18n.t("dataTypeAuthorizations.title", { + label: currentUser.value[0] ? currentUser.value[0].label : currentUser.label, + }), description: "null", - usersId: [currentUser.value.id], + usersId: [currentUser.value.id ? currentUser.value.id : currentUser.value[0].id], authorizationForAll, authorizationsWithRestriction, }; }; async function createRequest(isSetted) { - console.log("createRequest isSetted", isSetted) if (!valid) { return; } try { let authorizationToSend = buildAuthorization(); - if (!(comment && comment.length)) { + if (!(description.value && description.value.length)) { await new Promise((resolve) => { app.$buefy.dialog.prompt({ message: i18n.t("dataTypeAuthorizations.addComment"), @@ -558,21 +583,21 @@ export default { }, trapFocus: true, onConfirm: (value) => { - comment = value; + description.value = value; resolve(); }, onCancel: () => { resolve(); - } + }, }); - }) + }); } await services.requestRightsService.createRequestRights(props.applicationName, { id: props.authorizationId === "new" ? null : props.authorizationId, fields: fields, rightsRequest: authorizationToSend, setted: isSetted, - comment: comment, + comment: description.value, }); if ("new" === props.authorizationId) { services.alertService.toastSuccess(i18n.t("alert.create-request")); @@ -590,47 +615,69 @@ export default { async function createAuthorization() { try { - let authorizationToSend = { - uuid: authorization.value.uuid, - name: `request ${props.authorizationId}} for user ${currentUser.label}}`, - applicationNameOrId: props.applicationName, - authorizations: {}, - usersId: [currentUser.value.id], - }; - for (const datatype in authorization.value.authorizations) { - let authorizationForDatatype = - authorization.value.authorizations[datatype].authorizations; - for (const scope in authorizationForDatatype) { - authorizationForDatatype[scope] = authorizationForDatatype[scope].map((auth) => { - const returnedAuth = new Authorization(auth); - returnedAuth.intervalDates = { - fromDay: returnedAuth.fromDay, - toDay: returnedAuth.toDay, - }; - return returnedAuth; - }); - authorizationToSend.authorizations[datatype] = authorizationForDatatype; + let authorizationForAll = {}; + let authorizationsWithRestriction = {}; + for (let datatype in authorization.authorizations) { + if ( + authorization.authorizations[datatype].requiredAuthorizations && + Object.keys( + authorization.authorizations[datatype].requiredAuthorizations + ).length !== 0 + ) { + authorizationsWithRestriction[datatype] = Object.values( + authorization.authorizations[datatype].operationTypes + ); + } else { + authorizationForAll[datatype] = Object.values( + authorization.authorizations[datatype].operationTypes + ); } } - const auth = await services.authorizationService.createAuthorization( - props.applicationName, - authorizationToSend + let authorizationToSend = { + uuid: null, + name: `request ${props.authorizationId} for user ${currentUser.value.label ? currentUser.value.label : currentUser.value[0].label}`, + description: description.value, + usersId: [currentUser.value[0].id], + authorizationForAll, + authorizationsWithRestriction, + }; + return await services.authorizationService.createAuthorization( + props.applicationName, + authorizationToSend ); - services.alertService.toastSuccess(i18n.t("alert.create-authorization")); - return auth; } catch (error) { services.alertService.toastServerError(error); + } finally { + services.alertService.toastSuccess(i18n.t("alert.create-authorization")); } } function confirmGrantAuthorization() { - app.$buefy.dialog.confirm({ + app.$buefy.dialog.prompt({ title: i18n.t("dataTypeAuthorizations.confirmGrantRequestsTitle"), - message: i18n.t("dataTypeAuthorizations.confirmGrantRequests", currentUser.value), - cancelText: i18n.t("dataTypeAuthorizations.grantRequestDismiss"), + message: i18n.t("dataTypeAuthorizations.confirmGrantRequests", currentUser.value[0]), + inputAttrs: { + placeholder: i18n.t("dataTypeAuthorizations.commentExample"), + maxlength: 255, + minLength: 3, + }, + inputValue: description.value, confirmText: i18n.t("dataTypeAuthorizations.grantRequestConfirm"), - onConfirm: () => grantAuthorization(), + cancelText: i18n.t("dataTypeAuthorizations.grantRequestDismiss"), + trapFocus: true, + onConfirm: (value) => { + if (value && value.trim().length > 0) { + description.value = value; + grantAuthorization(); + } else { + app.$buefy.toast.open({ + message: i18n.t("dataTypeAuthorizations.grantRequestConfirm"), + type: 'is-danger' + }); + } + } }); + currentAuthorization.value.description = description.value; } return { @@ -643,7 +690,6 @@ export default { datatypes, application, currentUser, - comment, fields, format, references, @@ -658,7 +704,7 @@ export default { updateComment, confirmGrantAuthorization, createRequest, - updateAuthorization + updateAuthorization, }; }, }; diff --git a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue index abe70521c..4945f5c13 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue @@ -134,8 +134,8 @@ export default { provide("reference:dataLoader", loader); const application = ref({}); const datas = ref({}); - const datatypes = ref({withScope:{}, withoutScope:{}}); - const references = ref({withScope:{}, withoutScope:{}}); + const datatypes = ref({ withScope: {}, withoutScope: {} }); + const references = ref({ withScope: {}, withoutScope: {} }); const referencesScopes = ref({}); const initialized = ref(false); const configuration = ref({}); diff --git a/ui/src/views/authorizations/RequestAuthorizationManagementView.vue b/ui/src/views/authorizations/RequestAuthorizationManagementView.vue index 6671312a9..6decf3538 100644 --- a/ui/src/views/authorizations/RequestAuthorizationManagementView.vue +++ b/ui/src/views/authorizations/RequestAuthorizationManagementView.vue @@ -1,10 +1,10 @@ <template> <PageView :application="application" class="with-submenu"> <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="application.localName || application.title" - role="navigation" + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="application.localName || application.title" + role="navigation" /> <h1 class="title main-title"> {{ @@ -15,24 +15,21 @@ </h1> <div> <b-table - :data="listRightsRequests" - :striped="true" - default-sort="row.name" - default-sort-direction="asc" - height="100%" - sort-icon="arrow-up" - sort-icon-size="is-small" - sortable> - <b-table-column - :searchable="true" - field="name" - label="Nom du demandeur" - sortable> + :data="listRightsRequests" + :striped="true" + default-sort="row.name" + default-sort-direction="asc" + height="100%" + sort-icon="arrow-up" + sort-icon-size="is-small" + sortable + > + <b-table-column :searchable="true" field="name" label="Nom du demandeur" sortable> <template #searchable="props"> <b-input - v-model="props.filters[props.column.field]" - :placeholder="$t('dataTypeAuthorizations.search')" - icon="search" + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" /> </template> <template v-slot="props"> @@ -41,17 +38,12 @@ </p> </template> </b-table-column> - <b-table-column - :searchable="true" - field="email" - label="E-mail du demandeur" - sortable - > + <b-table-column :searchable="true" field="email" label="E-mail du demandeur" sortable> <template #searchable="props"> <b-input - v-model="props.filters[props.column.field]" - :placeholder="$t('dataTypeAuthorizations.search')" - icon="search" + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" /> </template> <template v-slot="props"> @@ -60,17 +52,12 @@ </p> </template> </b-table-column> - <b-table-column - :searchable="true" - field="number request" - label="N° de la demande" - sortable - > + <b-table-column :searchable="true" field="number request" label="N° de la demande" sortable> <template #searchable="props"> <b-input - v-model="props.filters[props.column.field]" - :placeholder="$t('dataTypeAuthorizations.search')" - icon="search" + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" /> </template> <template v-slot="props"> @@ -79,14 +66,13 @@ </a> </template> </b-table-column> - <b-table-column - :searchable="true" - field="setted" - label="Statut" - sortable - > + <b-table-column :searchable="true" field="setted" label="Statut" sortable> <template #searchable> - <b-select v-model="filterState" :placeholder="filterStates[filterState].label" @input="isVisibleRequest"> + <b-select + v-model="filterState" + :placeholder="filterStates[filterState].label" + @input="isVisibleRequest" + > <option v-for="(option, id) in filterStates" :key="id" :value="id"> {{ option.label }} </option> @@ -104,47 +90,52 @@ <script> import moment from "moment"; -import SubMenu, {SubMenuPath} from "@/components/common/SubMenu.vue"; +import SubMenu, { SubMenuPath } from "@/components/common/SubMenu.vue"; import PageView from "../common/PageView.vue"; -import {ApplicationResult} from "@/model/ApplicationResult"; +import { ApplicationResult } from "@/model/ApplicationResult"; import services from "@/composable/services"; -import app, {i18n} from "@/main"; +import app, { i18n } from "@/main"; import useObject from "@/composable/components/object"; -import {onMounted, ref, watch} from "vue"; +import { onMounted, ref, watch } from "vue"; import useArray from "@/composable/components/array"; export default { name: "RequestAuthorizationManagementView", components: { - PageView, SubMenu + PageView, + SubMenu, }, props: { dataTypeId: String, applicationName: String, }, setup(props) { - const {shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths} = useArray(); - const {reactiveObject: application, doChangeObject: changeApplication} = useObject( - new ApplicationResult() + const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); + const { reactiveObject: application, doChangeObject: changeApplication } = useObject( + new ApplicationResult() ); - const {reactiveObject: rightsRequests, doChangeObject: changeRightsRequests} = useObject(); - const {shallowRefArray: listRightsRequests, doChangeArray: changeListRightsRequests} = useArray(); + const { reactiveObject: rightsRequests, doChangeObject: changeRightsRequests } = useObject(); + const { shallowRefArray: listRightsRequests, doChangeArray: changeListRightsRequests } = + useArray(); let canManageRights = false; let listAllUsers = ref({}); let filterState = ref(0); - watch(() => filterState, - (value) => { - if (value.value === 0) { - changeListRightsRequests(rightsRequests.rightsRequests.filter(request => - request.setted === false)); - } else if (value.value === 1) { - changeListRightsRequests(rightsRequests.rightsRequests.filter(request => - request.setted === true)); - } else { - changeListRightsRequests(rightsRequests.rightsRequests); - } + watch( + () => filterState, + (value) => { + if (value.value === 0) { + changeListRightsRequests( + rightsRequests.rightsRequests.filter((request) => request.setted === false) + ); + } else if (value.value === 1) { + changeListRightsRequests( + rightsRequests.rightsRequests.filter((request) => request.setted === true) + ); + } else { + changeListRightsRequests(rightsRequests.rightsRequests); } - ) + } + ); let filterStates = [ { type: "open", @@ -164,13 +155,12 @@ export default { await init(); changeSubMenuPaths([ new SubMenuPath( - i18n.t("requestAuthorization.request").toLowerCase(), - () => { - }, - () => app.$router.push("/applications/" + props.applicationName) + i18n.t("requestAuthorization.request").toLowerCase(), + () => {}, + () => app.$router.push("/applications/" + props.applicationName) ), ]); - }) + }); function getDate(value) { return moment(value).format("DD/MM/YYYY"); @@ -179,29 +169,26 @@ export default { async function init() { try { let getApplication = await services.applicationService.getApplication( - props.applicationName, - [ - "DATATYPE", - "REFERENCETYPE", - "CONFIGURATION", - "RIGHTSREQUEST" - ] + props.applicationName, + ["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "RIGHTSREQUEST"] ); changeApplication( - services.internationalisationService.mergeInternationalization(getApplication) + services.internationalisationService.mergeInternationalization(getApplication) ); canManageRights = - application.isAdministrator || - Object.values(application.authorizationsDatatypesRights || []).some( - (rights) => rights.ADMIN - ); - let localRightsRequests = await services.requestRightsService.getRightsRequests(props.applicationName); + application.isAdministrator || + Object.values(application.authorizationsDatatypesRights || []).some( + (rights) => rights.ADMIN + ); + let localRightsRequests = await services.requestRightsService.getRightsRequests( + props.applicationName + ); for (const request of localRightsRequests.rightsRequests) { request.children = [{}]; request.label = request.id; } let localeListAllUsers = await services.authorizationService.getAuthorizationGrantableInfos( - props.applicationName + props.applicationName ); listAllUsers.value = localeListAllUsers.users.filter((user) => user.label !== "_public_"); changeRightsRequests(localRightsRequests); @@ -216,12 +203,12 @@ export default { function isVisibleRequest(setted) { let filterRiquest = rightsRequests; if (setted === 0) { - filterRiquest = rightsRequests.rightsRequests.filter(request => - request.setted === false) || []; + filterRiquest = + rightsRequests.rightsRequests.filter((request) => request.setted === false) || []; changeListRightsRequests(filterRiquest); } else if (setted === 1) { - filterRiquest = rightsRequests.rightsRequests.filter(request => - request.setted === true) || []; + filterRiquest = + rightsRequests.rightsRequests.filter((request) => request.setted === true) || []; changeListRightsRequests(filterRiquest); } else { changeListRightsRequests(rightsRequests.rightsRequests); @@ -243,10 +230,10 @@ export default { canManageRights, rightsRequests, application, - listRightsRequests - } - } -} + listRightsRequests, + }; + }, +}; </script> <style lang="scss"> td { -- GitLab From 9d6fda2ff1cedec4d6ca1ee4591c95420a628571 Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Wed, 30 Oct 2024 13:58:53 +0100 Subject: [PATCH 36/52] Ajout des adjacentComponent dans la description --- .../domain/checker/CheckerFactory.java | 2 +- .../inra/oresing/domain/data/DataDatum.java | 26 +- .../domain/data/deposit/DataImporter.java | 114 +++-- .../deposit/context/DataImporterContext.java | 8 +- .../context/column/AdjacentDescription.java | 8 + .../data/deposit/context/column/Column.java | 6 + .../column/OneValueStaticPatternColumn.java | 43 +- .../context/column/PatternColumnFactory.java | 63 +-- .../configuration/ConfigurationException.java | 1 + .../fr/inra/oresing/rest/OreSiService.java | 482 ++++++------------ .../builder/DataAndComponentTestDoublon.java | 73 ++- .../PatternComponentAdjacentsBuilder.java | 3 +- .../PatternComponentQualifiersBuilder.java | 3 +- .../inra/oresing/rest/OreSiResourcesTest.java | 33 +- src/test/resources/data/pattern/pattern.yaml | 81 +++ .../fixtures/applications/errors/errors.json | 2 +- .../ore/monsore/changeMonsore.txt | 34 +- .../ore/monsore/createMonsore.txt | 42 +- .../ore/monsore/validateMonsore.txt | 20 +- 19 files changed, 517 insertions(+), 527 deletions(-) create mode 100644 src/main/java/fr/inra/oresing/domain/data/deposit/context/column/AdjacentDescription.java diff --git a/src/main/java/fr/inra/oresing/domain/checker/CheckerFactory.java b/src/main/java/fr/inra/oresing/domain/checker/CheckerFactory.java index 958811ddb..28ad2a951 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/CheckerFactory.java +++ b/src/main/java/fr/inra/oresing/domain/checker/CheckerFactory.java @@ -43,7 +43,7 @@ public class CheckerFactory { dataRepository, publishContextBuilder, componentDescription.transformation(), - componentDescription.componentKey(), + variableEntry.getKey(), componentDescription.checker())); } } diff --git a/src/main/java/fr/inra/oresing/domain/data/DataDatum.java b/src/main/java/fr/inra/oresing/domain/data/DataDatum.java index 89dc820a3..499e59647 100644 --- a/src/main/java/fr/inra/oresing/domain/data/DataDatum.java +++ b/src/main/java/fr/inra/oresing/domain/data/DataDatum.java @@ -5,6 +5,7 @@ import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.Ltree; import fr.inra.oresing.domain.checker.type.*; +import fr.inra.oresing.domain.data.deposit.context.column.Column; import fr.inra.oresing.rest.exceptions.ExceptionMessage; import java.util.*; @@ -59,12 +60,14 @@ public class DataDatum implements SomethingThatCanProvideEvaluationContext, Some public boolean contains(final DataColumn column) { return values.containsKey(column) || - values().values() + values().entrySet() .stream() - .filter(DataColumnPatternValue.class::isInstance) - .map(DataColumnPatternValue.class::cast) - .map(DataColumnPatternValue::values) - .anyMatch(values -> values.containsKey(column)); + .filter(entry->entry.getValue() instanceof DataColumnPatternValue) + .flatMap(entry->((DataColumnPatternValue)entry.getValue()).values().keySet().stream() + .map(registerColumn-> Column.__VALUE__.equals(registerColumn.column())?entry.getKey().column():Column.COLUMN_IN_COLUMN_PATTERN.formatted(entry.getKey().column(), registerColumn.column())) + ) + .map(DataColumn::new) + .anyMatch(registerColumn->registerColumn.equals(column)); } public DataColumnValue get(final DataColumn column) { @@ -76,15 +79,12 @@ public class DataDatum implements SomethingThatCanProvideEvaluationContext, Some ); return Optional.ofNullable(values) .map(values -> values.get(column)) - .orElseGet(() -> values().values().stream() - .filter(DataColumnPatternValue.class::isInstance) - .map(DataColumnPatternValue.class::cast) - .map(DataColumnPatternValue::values) - .map(Map::entrySet) - .flatMap(Set::stream) - .filter(c -> c.getKey().equals(column)) - .findAny() + .orElseGet(() -> values().entrySet().stream() + .filter(entry -> entry.getValue() instanceof DataColumnPatternValue) + .flatMap(entry-> ((DataColumnPatternValue)entry.getValue()).values().entrySet().stream() + .filter(storedColumn->Column.COLUMN_IN_COLUMN_PATTERN.formatted(entry.getKey().column(),storedColumn.getKey().column()).equals(column.column()))) .map(Map.Entry::getValue) + .findFirst() .orElseThrow(() -> new IllegalArgumentException(Strings.lenientFormat(ExceptionMessage.MISSING_COLUMN.toMessage(), new Object[]{column.column(), values().values().stream() .filter(DataColumnPatternValue.class::isInstance) .map(DataColumnPatternValue.class::cast) diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java index 2df2955e5..d0aa887dd 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java @@ -18,6 +18,7 @@ import fr.inra.oresing.domain.checker.type.FieldType; import fr.inra.oresing.domain.checker.type.ReferenceType; import fr.inra.oresing.domain.data.*; import fr.inra.oresing.domain.data.deposit.context.DataImporterContext; +import fr.inra.oresing.domain.data.deposit.context.column.Column; import fr.inra.oresing.domain.data.deposit.context.column.OneValueStaticPatternColumn; import fr.inra.oresing.domain.data.deposit.validation.*; import fr.inra.oresing.domain.data.deposit.validation.validationcheckresults.CheckerValidationCheckResult; @@ -85,7 +86,10 @@ public class DataImporter { * <li>détecter les référentiels utilisés (et conserver les clés vers ceux utilisés pour fixer le refsLinkedTo)</li> * </ul> */ - private static ReferenceDatumAfterChecking check(final RowWithReferenceDatum rowWithReferenceDatum, final ImmutableSet<LineChecker> transformedLineCheckers, PublishContext.PublishContextBuilder publishContextBuilder) { + private static ReferenceDatumAfterChecking check( + final RowWithReferenceDatum rowWithReferenceDatum, + final ImmutableSet<LineChecker> transformedLineCheckers, + PublishContext.PublishContextBuilder publishContextBuilder) { final DataDatum referenceDatumBeforeChecking = rowWithReferenceDatum.referenceDatum(); final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo = new HashMap<>(); final ImmutableList.Builder<CsvRowValidationCheckResult> allCheckerErrorsBuilder = ImmutableList.builder(); @@ -94,13 +98,23 @@ public class DataImporter { boolean matchingTarget = rowWithReferenceDatum.referenceDatum().values() .entrySet() .stream() - .flatMap(entry->{ - if(entry.getValue() instanceof DataColumnPatternValue dcv){ - return dcv.values().keySet().stream().map(dataColumn -> dataColumn.column().equals("__VALUES__") ? entry.getKey() : dataColumn); + .flatMap(entry -> { + if (entry.getValue() instanceof DataColumnPatternValue dcv) { + return dcv.values().keySet().stream() + .map(dataColumn -> dataColumn.column().equals(Column.__VALUE__) ? + entry.getKey() : + new DataColumn( + Column.COLUMN_IN_COLUMN_PATTERN.formatted( + entry.getKey().column(), + dataColumn.column() + ) + ) + ); } return Stream.of(entry.getKey()); }).noneMatch(column -> { - return column.equals(lineChecker.target()); + return column.equals(lineChecker.target()) || + column.column().equals(lineChecker.target().column().split(Column.COLUMN_IN_COLUMN_SEPARATOR)[0]); }); if (matchingTarget) { continue; @@ -109,39 +123,40 @@ public class DataImporter { manyChecker.value().getValue().clear(); } Map<String, Object> context = new HashMap<>(); - switch (lineChecker.transformer()) { - case LineChecker.LineTransformer.ChainTransformersLineTransformer transformers -> { - for (LineChecker.LineTransformer transformer : transformers.transformers()) { - switch (transformer) { - case LineChecker.LineTransformer.TransformOneLineElementTransformer.GroovyExpressionOnOneLineElementTransformer groovyExpressionOnOneLineElementTransformer -> { - Set<String> groovyReferences = groovyExpressionOnOneLineElementTransformer.references(); - context = publishContextBuilder.getGroovyContextForReferences( - groovyReferences, - new PublishContext.RowInfos( - rowWithReferenceDatum.referenceDatum.values().values().stream() - .map(DataColumnValue::getValuesToCheck) - .map(FieldType::toString).toList(), - rowWithReferenceDatum.lineNumber - ) - ); - } - default -> {} - } + switch (lineChecker.transformer()) { + case LineChecker.LineTransformer.ChainTransformersLineTransformer transformers -> { + for (LineChecker.LineTransformer transformer : transformers.transformers()) { + switch (transformer) { + case LineChecker.LineTransformer.TransformOneLineElementTransformer.GroovyExpressionOnOneLineElementTransformer groovyExpressionOnOneLineElementTransformer -> { + Set<String> groovyReferences = groovyExpressionOnOneLineElementTransformer.references(); + context = publishContextBuilder.getGroovyContextForReferences( + groovyReferences, + new PublishContext.RowInfos( + rowWithReferenceDatum.referenceDatum.values().values().stream() + .map(DataColumnValue::getValuesToCheck) + .map(FieldType::toString).toList(), + rowWithReferenceDatum.lineNumber + ) + ); + } + default -> { + } } } - default -> { - if (lineChecker.checkerDescription() instanceof GroovyExpressionChecker groovyExpressionChecker) { - Set<String> groovyReferences = groovyExpressionChecker.references(); - context = publishContextBuilder.getGroovyContextForReferences( - groovyReferences, - new PublishContext.RowInfos( - rowWithReferenceDatum.referenceDatum.values().values().stream().map(DataColumnValue::getValuesToCheck).map(FieldType::toString).toList(), - rowWithReferenceDatum.lineNumber - ) - ); - } + } + default -> { + if (lineChecker.checkerDescription() instanceof GroovyExpressionChecker groovyExpressionChecker) { + Set<String> groovyReferences = groovyExpressionChecker.references(); + context = publishContextBuilder.getGroovyContextForReferences( + groovyReferences, + new PublishContext.RowInfos( + rowWithReferenceDatum.referenceDatum.values().values().stream().map(DataColumnValue::getValuesToCheck).map(FieldType::toString).toList(), + rowWithReferenceDatum.lineNumber + ) + ); } } + } //} final CheckerValidationCheckResult validationCheckResults = lineChecker.checkReference(referenceDatumBeforeChecking, context); Optional.ofNullable(validationCheckResults) @@ -149,13 +164,23 @@ public class DataImporter { .ifPresent(validationCheckResult -> { final DataColumn dataColumn = (DataColumn) validationCheckResult.target(); final DataColumnValue referenceColumnRawValue = referenceDatumBeforeChecking.get(dataColumn); - final DataColumnValue valueToStoreInDatabase = + DataColumnValue valueToStoreInDatabase = validationCheckResults.transform( lineChecker, referenceColumnRawValue, dataColumn, refsLinkedTo); - referenceDatum.put(dataColumn, valueToStoreInDatabase); + List<DataColumn> patternOfColumn = Arrays.stream(dataColumn.column().split(Column.COLUMN_IN_COLUMN_SEPARATOR)) + .map(DataColumn::new) + .toList(); + DataColumn firstPatternOfColumn = patternOfColumn.get(0); + DataColumnValue columnValue = referenceDatum.get(firstPatternOfColumn); + if (columnValue instanceof DataColumnPatternValue dataColumnPatternValue) { + DataColumn secondPatternOfColumn = patternOfColumn.get(1); + dataColumnPatternValue.values().put(secondPatternOfColumn, valueToStoreInDatabase); + valueToStoreInDatabase = columnValue; + } + referenceDatum.put(firstPatternOfColumn, valueToStoreInDatabase); }); Optional.ofNullable(validationCheckResults) @@ -453,9 +478,9 @@ public class DataImporter { .filter(ReferenceType.class::isInstance) .map(ReferenceType.class::cast) .forEach(referenceType -> { - List<ReferenceScope.NodeDescription> nodesForMenu = dataImporterContext.getNodesForMenu(); - List<Ltree> hierarchyOfHierarchicalkeys = getHierarchyOfHierarchicalkeys(referenceType); - requiredAuthorizations.put(referenceType.getRefType(), hierarchyOfHierarchicalkeys); + List<ReferenceScope.NodeDescription> nodesForMenu = dataImporterContext.getNodesForMenu(); + List<Ltree> hierarchyOfHierarchicalkeys = getHierarchyOfHierarchicalkeys(referenceType); + requiredAuthorizations.put(referenceType.getRefType(), hierarchyOfHierarchicalkeys); } ); } @@ -482,16 +507,17 @@ public class DataImporter { timeScope ); } - private List<Ltree> getHierarchyOfHierarchicalkeys(ReferenceType referenceType){ + + private List<Ltree> getHierarchyOfHierarchicalkeys(ReferenceType referenceType) { List<ReferenceScope.NodeDescription> nodesForMenu = dataImporterContext.getNodesForMenu(); List<Ltree> hierarchicalKeys = new LinkedList<>(); ReferenceScope.NodeDescription referenceNode = nodesForMenu.stream() - .filter(node->node.node_type().equals(referenceType.getRefType())) - .filter(node->node.node_key().equals(referenceType.getHierarchicalKey())) + .filter(node -> node.node_type().equals(referenceType.getRefType())) + .filter(node -> node.node_key().equals(referenceType.getHierarchicalKey())) .findFirst() - .orElseThrow(()->new IllegalArgumentException("reference of type %s and hirarchicalkey %s doesn't exist".formatted(referenceType.getRefType(), referenceType.getHierarchicalKey()))); + .orElseThrow(() -> new IllegalArgumentException("reference of type %s and hirarchicalkey %s doesn't exist".formatted(referenceType.getRefType(), referenceType.getHierarchicalKey()))); hierarchicalKeys.add(referenceNode.node().node_key()); - while(referenceNode.parent_nk()!=null) { + while (referenceNode.parent_nk() != null) { ReferenceScope.NodeDescription finalReferenceNode = referenceNode; referenceNode = nodesForMenu.stream() .filter(node -> node.node_type().equals(finalReferenceNode.parent_type())) diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java index 59d710e9a..a995f9536 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java @@ -277,12 +277,8 @@ public class DataImporterContext { public boolean existsColumn(final DataColumn column, Map<DataColumn, DataColumnValue> constantColumnsValues) { return columnsWithPatternColumns.stream() - .map(Column::getReferenceColumn) - .anyMatch(c -> c.equals(column)) || - constantColumnsValues.keySet().stream() - .map(DataColumn::column) - .anyMatch(c -> c.equals(column.column())) || - patternColumnFactory.existColumn(column); + .map(registeredColumn->registeredColumn.as(column.column())) + .anyMatch(Objects::nonNull); } public void withPatternColumn() { diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/AdjacentDescription.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/AdjacentDescription.java new file mode 100644 index 000000000..98a7e9fd5 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/AdjacentDescription.java @@ -0,0 +1,8 @@ +package fr.inra.oresing.domain.data.deposit.context.column; + +import fr.inra.oresing.domain.ComponentPresenceConstraint; +import fr.inra.oresing.domain.checker.Multiplicity; + +public record AdjacentDescription (String adjacentColumnName, ComponentPresenceConstraint mandatoryForComponentComponent, Multiplicity multiplicityForComponentComponent) { + +} diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java index 81c606faa..cfd1cbe60 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java @@ -10,9 +10,15 @@ import lombok.Getter; import java.util.*; public abstract class Column implements Comparable<Column> { + public static final String COLUMN_IN_COLUMN_SEPARATOR = "::"; + public static final String COLUMN_IN_COLUMN_PATTERN = "%s::%s"; + public static final String __VALUE__ = "__VALUE__"; @Getter private final DataColumn referenceColumn; + public Column as(String columnHeader){ + return columnHeader.equals(getExpectedHeader())?this:null; + } @Getter private final ComponentPresenceConstraint presenceConstraint; diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java index 49d395db8..e82b1c0a1 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java @@ -1,17 +1,12 @@ package fr.inra.oresing.domain.data.deposit.context.column; import fr.inra.oresing.domain.ComponentPresenceConstraint; -import fr.inra.oresing.domain.checker.type.FieldType; import fr.inra.oresing.domain.checker.type.StringType; import fr.inra.oresing.domain.data.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; public abstract class OneValueStaticPatternColumn extends Column { - private final List<Column> qualifierColumns; private final List<Column> adjacentColumns; @@ -20,6 +15,38 @@ public abstract class OneValueStaticPatternColumn extends Column { return Optional.empty(); } + @Override + public Column as(String columnHeader) { + if(super.as(columnHeader) != null){ + return this; + } + if(!columnHeader.contains(COLUMN_IN_COLUMN_SEPARATOR)){ + return null; + } + List<String> patternOfColumn = Arrays.stream(columnHeader.split(COLUMN_IN_COLUMN_SEPARATOR)).toList(); + if(!getExpectedHeader().equals(patternOfColumn.get(0))){ + return null; + } + if(getExpectedHeader().equals(__VALUE__)){ + return this; + } + Optional<Column> matchingQualifierColumn = qualifierColumns.stream() + .map(qualifierColumn -> qualifierColumn.as(patternOfColumn.get(1))) + .filter(Objects::nonNull) + .findFirst(); + if(matchingQualifierColumn.isPresent()){ + return matchingQualifierColumn.get(); + } + Optional<Column> matchingAdjacentColumn = adjacentColumns.stream() + .map(adjacentColumn -> adjacentColumn.as(columnHeader)) + .filter(Objects::nonNull) + .findFirst(); + if(matchingAdjacentColumn.isPresent()){ + return matchingAdjacentColumn.get(); + } + return null; + } + public OneValueStaticPatternColumn(final DataColumn referenceColumn, final String headerForColumn, final ComponentPresenceConstraint presenceConstraint, final ComputedValueUsage computedValueUsage, List<Column> qualifierColumns, List<Column> adjacentColumns) { super(referenceColumn, headerForColumn, presenceConstraint, computedValueUsage); this.qualifierColumns = qualifierColumns; @@ -29,7 +56,7 @@ public abstract class OneValueStaticPatternColumn extends Column { @Override public void pushValue(final String cellContent, final DataDatum referenceDatum, final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { Map<DataColumn, DataColumnValue> columnValues = new HashMap<>(); - columnValues.put(new DataColumn("__VALUES__"), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(cellContent))); + columnValues.put(new DataColumn(Column.__VALUE__), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(cellContent))); columnValues.putAll(referenceDatum.values()); final DataColumnValue referenceColumnValue = new DataColumnPatternValue(columnValues); referenceDatum.values().clear(); @@ -38,7 +65,7 @@ public abstract class OneValueStaticPatternColumn extends Column { public DataDatum buildValue(final String cellContent, final DataDatum referenceDatum, final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { Map<DataColumn, DataColumnValue> columnValues = new HashMap<>(); - columnValues.put(new DataColumn("__VALUES__"), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(cellContent))); + columnValues.put(new DataColumn(Column.__VALUE__), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(cellContent))); columnValues.putAll(referenceDatum.values()); final DataColumnValue referenceColumnValue = new DataColumnPatternValue(columnValues); DataDatum datum = new DataDatum(); diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java index 69f23e8f9..91cde1aa7 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java @@ -91,7 +91,6 @@ public class PatternColumnFactory { .get(true).stream() .map(PatternDescription.MatchingPattern.class::cast) .map(PatternDescription.MatchingPattern::column) - //.flatMap(List::stream) .collect(Collectors.collectingAndThen(Collectors.toSet(), ImmutableSet::copyOf)); } @@ -99,17 +98,6 @@ public class PatternColumnFactory { } - public boolean existColumn(DataColumn column) { - return patternComponentDescriptions.stream() - .flatMap(pcd->pcd.patternComponentDescriptions().patternComponentQualifiers().keySet().stream()) - .peek(System.out::println) - .anyMatch(c->c.equals(column.column())) || - patternComponentDescriptions.stream() - .flatMap(pcd->pcd.patternComponentDescriptions().patternComponentAdjacents().keySet().stream()) - .peek(System.out::println) - .anyMatch(c->c.equals(column.column())); - } - record PatternColumn(Column column, DataDatum qualifierComponents, DataDatum adjacentComponents) { public PatternColumn copy() { return new PatternColumn( @@ -207,9 +195,9 @@ public class PatternColumnFactory { } }); - patternComponentDescriptions() + List<AdjacentDescription> adjacentColumnNames = patternComponentDescriptions() .patternComponentAdjacents().entrySet() - .forEach(patternColumnComponentEntry -> { + .stream().map(patternColumnComponentEntry -> { final PatternComponentAdjacents patternColumnComponent = patternColumnComponentEntry.getValue(); final String componentComponentKey = patternColumnComponent.componentKey(); final String patternNumber = patternColumnComponent.importHeaderPattern(); @@ -220,35 +208,32 @@ public class PatternColumnFactory { final ComponentPresenceConstraint mandatoryForComponentComponent = Optional.ofNullable(patternColumnComponent) .map(ComponentDescription::mandatory) .orElse(ComponentPresenceConstraint.MANDATORY); - final String constantValue = matcher.group(patternNumber); - final DataColumn dataColumn = new DataColumn(componentComponentKey); - adjacentColumns.add(Column.staticColumnDescriptionToColumn( - new DataColumn(componentComponentKey), - componentComponentKey, + return new AdjacentDescription( + matcher.replaceAll(patternNumber.replaceAll("\\{(\\$[0-9])\\}", "$1")), mandatoryForComponentComponent, - multiplicityForComponentComponent, + multiplicityForComponentComponent + ); + }) + .toList(); + for (int i = potentialPatternColumn.columnIndex(); i < potentialPatternColumn.headersForRow().size(); i++) { + String nextColumnName = potentialPatternColumn.headersForRow().get(i); + if(adjacentColumnNames.stream().anyMatch(adjacentDescription -> adjacentDescription.adjacentColumnName().equals(nextColumnName))){ + AdjacentDescription resolvedAdjacentDescription = adjacentColumnNames.stream() + .filter(adjacentDescription -> adjacentDescription.adjacentColumnName().equals(nextColumnName)) + .findFirst() + .orElseThrow(IllegalStateException::new); + adjacentColumns.add(Column.staticColumnDescriptionToColumn( + new DataColumn(nextColumnName), + nextColumnName, + resolvedAdjacentDescription.mandatoryForComponentComponent(), + resolvedAdjacentDescription.multiplicityForComponentComponent(), dataRepository, defaultValue )); - - switch (multiplicityForComponentComponent) { - case Multiplicity.MANY -> { - final List<StringType> valuesToList = Arrays.stream(constantValue.split(",")) - .map(StringType::getStringTypeFromStringValue) - .toList(); - final DataColumnValue dataColumnValue = new DataColumnMultipleValue(valuesToList); - adjacentComponents - .put(dataColumn, dataColumnValue); - - } - case null, default -> { - final DataColumnValue dataColumnValue = new DataColumnSingleValue(StringType.getStringTypeFromStringValue(constantValue)); - adjacentComponents - .put(dataColumn, dataColumnValue); - } - } - - }); + }else{ + break; + } + } final Column column = Column.staticPatternColumnDescriptionToColumn( new DataColumn(componentKey), headerForReferenceColumn, diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java b/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java index 654fe0c3f..64bcc85b9 100644 --- a/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java +++ b/src/main/java/fr/inra/oresing/domain/exceptions/configuration/ConfigurationException.java @@ -223,6 +223,7 @@ public enum ConfigurationException { MISSING_CONSTANT_IMPORT_HEADER_COLUMN_NUMBER, DUPLICATED_COMPONENT_NAME, DUPLICATED_COMPONENT_HEADER, + DUPLICATED_COMPONENT_HEADER_IN_PATTERN_COMPONENT, INVALID_CONFIGURATION_FILE, ADDING_AUTHORIZATION_SCOPE_ATTRIBUTES_ERROR, REMOVING_AUTHORIZATION_SCOPE_ATTRIBUTES_ERROR, diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index bd20ccd35..6d971d2ac 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -71,6 +71,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.multipart.MultipartFile; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; + import static fr.inra.oresing.domain.authorization.privilegeassessor.role.PrivilegeSystemDomain.*; import static fr.inra.oresing.domain.authorization.privilegeassessor.role.PrivilegeApplicationDomain.*; @@ -128,14 +129,8 @@ public class OreSiService { private JsonRowMapper jsonRowMapper; @Transactional() - public ReactiveProgression.CreateApplicationProgression createApplication( - ReactiveProgression.CreateApplicationProgression progression, - final String name, - final MultipartFile configurationFile, - final String comment) { - authorizationService.getPrivilegeAssessorForSystem(SYSTEM_ADMINISTRATION) - .forCreateApplication() - .canCreateApplication(name); + public ReactiveProgression.CreateApplicationProgression createApplication(ReactiveProgression.CreateApplicationProgression progression, final String name, final MultipartFile configurationFile, final String comment) { + authorizationService.getPrivilegeAssessorForSystem(SYSTEM_ADMINISTRATION).forCreateApplication().canCreateApplication(name); final ReactiveProgression.CreateApplicationProgressionMessagesLabel baseMessage = new ReactiveProgression.CreateApplicationProgressionMessagesLabel(); progression.pushProgression(); OreSiUser currentUser = getCurrentUser(); @@ -144,20 +139,15 @@ public class OreSiService { application.setName(name); ReactiveProgression.CreateApplicationProgression result = null; try { - result = (ReactiveProgression.CreateApplicationProgression) changeApplicationConfiguration( - comment, - progression, - application, - configurationFile, - application1 -> { - try { - return initApplication(application1); - } catch (SQLException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); + result = (ReactiveProgression.CreateApplicationProgression) changeApplicationConfiguration(comment, progression, application, configurationFile, application1 -> { + try { + return initApplication(application1); + } catch (SQLException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); } catch (final OreSiTechnicalException | IOException e) { progression.fluxSink().error(e); progression.fluxSink().complete(); @@ -177,9 +167,7 @@ public class OreSiService { public ApplicationResult buildOpenAdom(final Application application, final String[] filter) { - final List<ApplicationInformation> filters = Arrays.stream(filter) - .map(s -> ApplicationInformation.valueOf(s)) - .toList(); + final List<ApplicationInformation> filters = Arrays.stream(filter).map(s -> ApplicationInformation.valueOf(s)).toList(); final boolean withDatatypes = filters.contains(ApplicationInformation.ALL) || filters.contains(ApplicationInformation.DATATYPE); final boolean withReferenceType = filters.contains(ApplicationInformation.ALL) || filters.contains(ApplicationInformation.REFERENCETYPE); final boolean withConfiguration = filters.contains(ApplicationInformation.ALL) || filters.contains(ApplicationInformation.CONFIGURATION); @@ -188,17 +176,10 @@ public class OreSiService { final TreeMultimap<String, String> childrenPerReferences = TreeMultimap.create(); ApplicationResult.RightsRequest rightsRequest = null; if (withRightsRequest) { - RightRequestDescription rightsRequestDescription = application.findRightRequest() - .orElse(null); + RightRequestDescription rightsRequestDescription = application.findRightRequest().orElse(null); rightsRequest = new ApplicationResult.RightsRequest(rightsRequestDescription); } - Map<String, ApplicationResult.AdditionalFile> additionalFilesWithFields = application.getConfiguration().additionalFiles().entrySet().stream() - .collect( - Collectors.toMap( - Map.Entry::getKey, - k -> new ApplicationResult.AdditionalFile(k.getValue().formFields().keySet()) - ) - ); + Map<String, ApplicationResult.AdditionalFile> additionalFilesWithFields = application.getConfiguration().additionalFiles().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, k -> new ApplicationResult.AdditionalFile(k.getValue().formFields().keySet()))); final Map<String, StandardDataDescription> referenceComponents = Maps.filterValues(application.getConfiguration().dataDescription(), cd -> { return cd.tags().contains(Tag.ReferenceTag.INSTANCE()) || !cd.tags().contains(Tag.DataTag.INSTANCE()); }); @@ -206,39 +187,17 @@ public class OreSiService { return cd.tags().contains(Tag.DataTag.INSTANCE()); }); - final Map<String, Node> referencesNodes = application.getConfiguration().hierarchicalNodes().stream() - .filter(node -> referenceComponents.containsKey(node.nodeName())) - .collect(Collectors.toMap(node -> node.nodeName(), Function.identity())); - final Map<String, Node> datatypesNodes = application.getConfiguration().hierarchicalNodes().stream() - .filter(node -> datatypeComponents.containsKey(node.nodeName())) - .collect(Collectors.toMap(node -> node.nodeName(), Function.identity())); + final Map<String, Node> referencesNodes = application.getConfiguration().hierarchicalNodes().stream().filter(node -> referenceComponents.containsKey(node.nodeName())).collect(Collectors.toMap(node -> node.nodeName(), Function.identity())); + final Map<String, Node> datatypesNodes = application.getConfiguration().hierarchicalNodes().stream().filter(node -> datatypeComponents.containsKey(node.nodeName())).collect(Collectors.toMap(node -> node.nodeName(), Function.identity())); final String nameOrId = application.getId().toString(); Map<String, Map<AuthorizationsForUserResult.Roles, Boolean>> authorizations = withDatatypes || withReferenceType ? getAuthorizationsDatatypesRights(nameOrId, datatypeComponents.keySet()) : new HashMap<>(); final Configuration configuration = withConfiguration ? application.getConfiguration() : null; final Boolean isAdministrator = isAdmnistrator(application); - final ApplicationResult applicationResult = new ApplicationResult( - application.getId().toString(), - Optional.ofNullable(application).map(Application::getName).orElseThrow(IllegalArgumentException::new), - application.findApplicationDescription() - .map(ApplicationDescription::comment) - .orElseGet(String::new), - application.findApplicationDescription() - .map(ApplicationDescription::comment) - .orElse(""), - application.findInternationalizations() - .orElseGet(Internationalizations::new), - - application.findData(), - referencesNodes, - authorizations, - referenceSynthesis,//referenceSynthesis, - datatypesNodes, - additionalFilesWithFields, - rightsRequest, - configuration, - isAdministrator, - application.findDependantNodesByDataName()); + final ApplicationResult applicationResult = new ApplicationResult(application.getId().toString(), Optional.ofNullable(application).map(Application::getName).orElseThrow(IllegalArgumentException::new), application.findApplicationDescription().map(ApplicationDescription::comment).orElseGet(String::new), application.findApplicationDescription().map(ApplicationDescription::comment).orElse(""), application.findInternationalizations().orElseGet(Internationalizations::new), + + application.findData(), referencesNodes, authorizations, referenceSynthesis,//referenceSynthesis, + datatypesNodes, additionalFilesWithFields, rightsRequest, configuration, isAdministrator, application.findDependantNodesByDataName()); return applicationResult; } @@ -274,16 +233,10 @@ public class OreSiService { @Transactional() - public UUID changeApplicationConfiguration( - ReactiveProgression.ChangeApplicationProgression progression, - final String nameOrId, - final MultipartFile configurationFile, - final String comment) { + public UUID changeApplicationConfiguration(ReactiveProgression.ChangeApplicationProgression progression, final String nameOrId, final MultipartFile configurationFile, final String comment) { final Application application = applicationService.getApplication(nameOrId); - authorizationService.getPrivilegeAssessorForApplication(APPLICATION_MANAGER, application) - .forUpdateApplication() - .canUpdateApplication(); + authorizationService.getPrivilegeAssessorForApplication(APPLICATION_MANAGER, application).forUpdateApplication().canUpdateApplication(); ReactiveProgression.ChangeApplicationProgression progression1 = progression; final ReactiveProgression.ChangeApplicationProgressionMessagesLabel baseMessage = new ReactiveProgression.ChangeApplicationProgressionMessagesLabel(); progression1.pushProgression(); @@ -292,12 +245,7 @@ public class OreSiService { final Configuration oldConfiguration = application.getConfiguration(); final UUID oldConfigFileId = application.getConfigFile(); try { - progression1 = (ReactiveProgression.ChangeApplicationProgression) changeApplicationConfiguration(comment, - progression1, - application, - configurationFile, - this::modifySchemaApplication - ).up().withSubLabel("migrate"); + progression1 = (ReactiveProgression.ChangeApplicationProgression) changeApplicationConfiguration(comment, progression1, application, configurationFile, this::modifySchemaApplication).up().withSubLabel("migrate"); } catch (final IOException e) { progression1.pushError(e); } @@ -399,18 +347,13 @@ public class OreSiService { .subscribe(validateRow); }*/ - private ReactiveProgression.ChangeOrCreateApplicationProgression changeApplicationConfiguration( - String comment, - final ReactiveProgression.ChangeOrCreateApplicationProgression progression, - Application application, - final MultipartFile configurationFile, - final Function<Application, Application> createOrModifySchema) throws IOException { + private ReactiveProgression.ChangeOrCreateApplicationProgression changeApplicationConfiguration(String comment, final ReactiveProgression.ChangeOrCreateApplicationProgression progression, Application application, final MultipartFile configurationFile, final Function<Application, Application> createOrModifySchema) throws IOException { String applicationName = application.getName(); OreSiUser currentUser = getCurrentUser(); UUID oldApplicationId = application.getId(); ReactiveProgression.ChangeOrCreateApplicationProgression progressionForConfiguration = (ReactiveProgression.ChangeOrCreateApplicationProgression) progression.withSubLabel("configuration"); progressionForConfiguration.pushMessage("rights.checking", Map.of("applicationName", applicationName)); - progressionForConfiguration = (ReactiveProgression.ChangeOrCreateApplicationProgression) progressionForConfiguration.incrementAndPush(i -> i + .02); + progressionForConfiguration = (ReactiveProgression.ChangeOrCreateApplicationProgression) progressionForConfiguration.incrementAndPush(i -> i + .02); final ReactiveProgression.ChangeOrCreateApplicationProgression progressionForParsingConfiguration = (ReactiveProgression.ChangeOrCreateApplicationProgression) progressionForConfiguration.withSubLabel("parsingConfiguration"); if (Objects.requireNonNull(configurationFile.getOriginalFilename()).matches(".*\\.zip")) { InputStream multiYAmlInput = new MultiYaml().parseConfigurationBytes(configurationFile); @@ -431,8 +374,7 @@ public class OreSiService { assert configuration != null; application.setData(new ArrayList<>(configuration.dataDescription().keySet())); application.setConfiguration(configuration); - final Optional<Set<String>> additionalsFiles = Optional.ofNullable(configuration.additionalFiles()) - .map(Map::keySet); + final Optional<Set<String>> additionalsFiles = Optional.ofNullable(configuration.additionalFiles()).map(Map::keySet); if (additionalsFiles.isPresent()) { application.setAdditionalFiles(new LinkedList<>(additionalsFiles.get())); } else { @@ -465,26 +407,15 @@ public class OreSiService { } public Mono<List<DownloadDatasetQueryByRowId>> getDownloadDatasetQueriesAsync(Application application, Locale locale, DataRepository dataRepository, Set<UUID> uuidsFromData) { - return Flux.fromStream(dataRepository.getLinkedReferenceValuesStream(uuidsFromData)) - .map(dataValuesByDataType -> { - String dataType = dataValuesByDataType.getDataType(); - Set<DataRowIds> ids = dataValuesByDataType.getIds(); - return new DownloadDatasetQueryByRowId( - application, - dataType, - new OutPut(locale, 0L, null), - new HashSet<>(), - new HashSet<>(), - ids - ); - }) - .collectList(); + return Flux.fromStream(dataRepository.getLinkedReferenceValuesStream(uuidsFromData)).map(dataValuesByDataType -> { + String dataType = dataValuesByDataType.getDataType(); + Set<DataRowIds> ids = dataValuesByDataType.getIds(); + return new DownloadDatasetQueryByRowId(application, dataType, new OutPut(locale, 0L, null), new HashSet<>(), new HashSet<>(), ids); + }).collectList(); } @Transactional(readOnly = true) - public void buildDataZip( - ZipOutputStream zipOutputStream, - DownloadDatasetQuery downloadDatasetQuery) { + public void buildDataZip(ZipOutputStream zipOutputStream, DownloadDatasetQuery downloadDatasetQuery) { Application application = downloadDatasetQuery.application(); DataRepository dataRepository = repository.getRepository(downloadDatasetQuery.application()).data(); DataRepositoryWithBuffer dataRepositoryWithBuffer = new DataRepositoryWithBuffer(application, dataRepository); @@ -494,21 +425,20 @@ public class OreSiService { UUIDsfromData uuiDsfromData = addDatacsv(zipOutputStream, dataRepositoryWithBuffer, downloadDatasetQuery, "%s.csv"); - getDownloadDatasetQueriesAsync(application, downloadDatasetQuery.outPut().locale(), dataRepository, uuiDsfromData.uuidsfromData()) - .subscribe(downloadDatasetQueries -> { - for (DownloadDatasetQueryByRowId downloadDatasetQueryByRowId : downloadDatasetQueries) { - try { - addDatacsv(zipOutputStream, dataRepositoryWithBuffer, downloadDatasetQueryByRowId, "references/%s.csv"); - } catch (Exception e) { - throw new SiOreIllegalArgumentException("IOException", Map.of("message", e.getLocalizedMessage())); - } - } - try { - zipOutputStream.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); + getDownloadDatasetQueriesAsync(application, downloadDatasetQuery.outPut().locale(), dataRepository, uuiDsfromData.uuidsfromData()).subscribe(downloadDatasetQueries -> { + for (DownloadDatasetQueryByRowId downloadDatasetQueryByRowId : downloadDatasetQueries) { + try { + addDatacsv(zipOutputStream, dataRepositoryWithBuffer, downloadDatasetQueryByRowId, "references/%s.csv"); + } catch (Exception e) { + throw new SiOreIllegalArgumentException("IOException", Map.of("message", e.getLocalizedMessage())); + } + } + try { + zipOutputStream.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); //TODO add additionalFiles /*Flux.fromStream(dataRepository.getLinkedReferenceValuesStream(uuiDsfromData.uuidsfromData())) @@ -556,22 +486,12 @@ public class OreSiService { }*/ } - public UUIDsfromData addDatacsv( - final ZipOutputStream zipOutputStream, - DataRepositoryWithBuffer dataRepositoryWithBuffer, - final DownloadDatasetQuery downloadDatasetQuery, - String fileNamePattern) { + public UUIDsfromData addDatacsv(final ZipOutputStream zipOutputStream, DataRepositoryWithBuffer dataRepositoryWithBuffer, final DownloadDatasetQuery downloadDatasetQuery, String fileNamePattern) { final Flux<DataRow> datas = dataService.findDataFlux(downloadDatasetQuery); try { DataRepository dataRepository = repository.getRepository(downloadDatasetQuery.application()).data(); AdditionalFileRepository additionalFileRepository = repository.getRepository(downloadDatasetQuery.application()).additionalBinaryFile(); - return DataCsvBuilder.getDataCsvBuilder((applicationNameOrId, referenceType) -> dataService.getDataImporterContext(downloadDatasetQuery.application(), referenceType, null)) - .withDownloadDatasetQuery(downloadDatasetQuery) - .withReferenceService(dataService) - .withOutputStream(zipOutputStream) - .onRepositories(dataRepositoryWithBuffer, additionalFileRepository) - .addDatas(datas) - .build(fileNamePattern); + return DataCsvBuilder.getDataCsvBuilder((applicationNameOrId, referenceType) -> dataService.getDataImporterContext(downloadDatasetQuery.application(), referenceType, null)).withDownloadDatasetQuery(downloadDatasetQuery).withReferenceService(dataService).withOutputStream(zipOutputStream).onRepositories(dataRepositoryWithBuffer, additionalFileRepository).addDatas(datas).build(fileNamePattern); } catch (IOException e) { throw new RuntimeException(e); } @@ -580,11 +500,27 @@ public class OreSiService { public Map<String, Map<String, LineCheckerResult>> getCheckedFormatComponents(final String nameOrId, final String dataName) { Application application = applicationService.getApplication(nameOrId); - return new CheckerFactory(repository.getRepository(application).data()).getCheckers(application, dataName, new PublishContext.PublishContextBuilder(application, dataName, null, r -> List.of())).stream() - .filter(c -> (c.underlyingType() instanceof DateType) || (c.underlyingType() instanceof IntegerType) || (c.underlyingType() instanceof FloatType) || (c.underlyingType() instanceof ReferenceType)).collect(Collectors - .groupingBy( + return new CheckerFactory(repository.getRepository(application).data()) + .getCheckers(application, + dataName, + new PublishContext.PublishContextBuilder( + application, + dataName, + null, + r -> List.of() + ) + ) + .stream() + .filter( + c -> (c.underlyingType() instanceof DateType) || + (c.underlyingType() instanceof IntegerType) || + (c.underlyingType() instanceof FloatType) || + (c.underlyingType() instanceof ReferenceType) + ) + .collect(Collectors.groupingBy( c -> c.underlyingType().getClass().getSimpleName(), - Collectors.toMap(c -> { + Collectors.toMap( + c -> { final DataColumn dataColumn = (DataColumn) c.target(); return dataColumn.toHumanReadableString(); }, @@ -597,23 +533,10 @@ public class OreSiService { @Transactional(readOnly = true) public Map<String, Map<String, LineChecker>> getFormatChecked(final String nameOrId, final String references) { final DataRepository dataRepository = repository.getRepository(applicationService.getApplication(nameOrId)).data(); - return new CheckerFactory(dataRepository) - .getCheckers( - applicationService.getApplicationOrApplicationAccordingToRights(nameOrId), - references, - null - ).stream() - .filter(c -> (c.underlyingType() instanceof DateType) || (c.underlyingType() instanceof IntegerType) || (c.underlyingType() instanceof FloatType) || (c.underlyingType() instanceof ReferenceType)).collect(Collectors - .groupingBy( - c -> c.fieldTypeForOne().getClass().getSimpleName(), - Collectors.toMap( - c -> { - final DataColumn vc = (DataColumn) c.target(); - return vc.asString(); - }, - c -> c) - ) - ); + return new CheckerFactory(dataRepository).getCheckers(applicationService.getApplicationOrApplicationAccordingToRights(nameOrId), references, null).stream().filter(c -> (c.underlyingType() instanceof DateType) || (c.underlyingType() instanceof IntegerType) || (c.underlyingType() instanceof FloatType) || (c.underlyingType() instanceof ReferenceType)).collect(Collectors.groupingBy(c -> c.fieldTypeForOne().getClass().getSimpleName(), Collectors.toMap(c -> { + final DataColumn vc = (DataColumn) c.target(); + return vc.asString(); + }, c -> c))); } public List<DataRow> findData(final DownloadDatasetQuery downloadDatasetQuery) { @@ -665,18 +588,11 @@ public class OreSiService { final Stream<Application> applicationForAdmin = repository.application().findAllStream(); final AtomicLong progres = new AtomicLong(0); progression.fluxSink().next(new ReactiveTypeProgress(progres.get())); - applicationForAdmin - .map(application -> applicationForUser.stream() - .filter(app -> app.getId().equals(application.getId())) - .findAny() - .orElse(application.applicationAccordingToRights()) - ) - .map(application -> application.filterFieldsAndHidden(filters)) - .forEach(application -> { - progression.fluxSink().next(new ReactiveTypeResult(application)); - final double prog = progres.incrementAndGet() / ((double) applicationForUser.size()); - progression.fluxSink().next(new ReactiveTypeProgress(prog)); - }); + applicationForAdmin.map(application -> applicationForUser.stream().filter(app -> app.getId().equals(application.getId())).findAny().orElse(application.applicationAccordingToRights())).map(application -> application.filterFieldsAndHidden(filters)).forEach(application -> { + progression.fluxSink().next(new ReactiveTypeResult(application)); + final double prog = progres.incrementAndGet() / ((double) applicationForUser.size()); + progression.fluxSink().next(new ReactiveTypeProgress(prog)); + }); progression.complete(); } @@ -684,19 +600,11 @@ public class OreSiService { return datatypes.stream().map(dty -> getAuthorizationsDatatypesRights(nameOrId, dty, request.getRequestUserId().toString())).collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); } - private Map.Entry<String, Map<AuthorizationsForUserResult.Roles, Boolean>> getAuthorizationsDatatypesRights( - final String nameOrId, - final String datatype, - final String userId) { + private Map.Entry<String, Map<AuthorizationsForUserResult.Roles, Boolean>> getAuthorizationsDatatypesRights(final String nameOrId, final String datatype, final String userId) { AuthorizationsResult authorizationsForUser = authorizationService.getAuthorizationsForUserAndPublic(nameOrId, userId); final Map<AuthorizationsForUserResult.Roles, Boolean> roleForDatatype = new EnumMap<>(AuthorizationsForUserResult.Roles.class); - Set<OperationType> rolesSetted = Optional.ofNullable(authorizationsForUser.userAuthorization()) - .map(map -> map.get(datatype)) - .map(authList -> authList.stream() - .flatMap(auth -> auth.operationTypes().stream()) - .collect(Collectors.toSet())) - .orElseGet(Set::of); + Set<OperationType> rolesSetted = Optional.ofNullable(authorizationsForUser.userAuthorization()).map(map -> map.get(datatype)).map(authList -> authList.stream().flatMap(auth -> auth.operationTypes().stream()).collect(Collectors.toSet())).orElseGet(Set::of); boolean isAdmin = authorizationsForUser.isAdministrator() || rolesSetted.contains(OperationType.admin); roleForDatatype.put(AuthorizationsForUserResult.Roles.ADMIN, isAdmin); @@ -713,10 +621,7 @@ public class OreSiService { public List<List<String>> getDataColumn(final Application application, final String refType, final String column) { List<List<String>> list = List.of(); - if (application.findData(refType) - .map(StandardDataDescription::tags) - .filter(Tag.HiddenTag.HAS_HIDDEN_TAG_PREDICATE) - .isPresent()) { + if (application.findData(refType).map(StandardDataDescription::tags).filter(Tag.HiddenTag.HAS_HIDDEN_TAG_PREDICATE).isPresent()) { list = repository.getRepository(application).data().findDataColumn(refType, column); } return list; @@ -729,8 +634,7 @@ public class OreSiService { public List<DataValue> findReference(final String nameOrId, final String refType, final MultiValueMap<String, String> params) { Application application = applicationService.getApplicationOrApplicationAccordingToRights(nameOrId); - return dataService - .findReferenceAccordingToRights(application, refType, params); + return dataService.findReferenceAccordingToRights(application, refType, params); } @Transactional() @@ -787,16 +691,10 @@ public class OreSiService { } else { repo.removeSynthesisByApplicationDatatypeAndVariable(application.getId(), dataType, variable); } - final boolean hasChartDescription = application.getConfiguration().dataDescription().get(dataType).componentDescriptions().entrySet().stream() - .filter(entry -> Strings.isNullOrEmpty(variable) || entry.getKey().equals(variable)) - .anyMatch(entry -> entry.getValue().getChartDescription() != null); + final boolean hasChartDescription = application.getConfiguration().dataDescription().get(dataType).componentDescriptions().entrySet().stream().filter(entry -> Strings.isNullOrEmpty(variable) || entry.getKey().equals(variable)).anyMatch(entry -> entry.getValue().getChartDescription() != null); final String sql; if (hasChartDescription) { - sql = application.getConfiguration().dataDescription().get(dataType).componentDescriptions().entrySet().stream() - .filter(entry -> Strings.isNullOrEmpty(variable) || entry.getKey().equals(variable)) - .filter(entry -> entry.getValue().getChartDescription() != null) - .map(entry -> entry.getValue().getChartDescription().toSQL(entry.getKey(), dataType)) - .collect(Collectors.joining(", \n")); + sql = application.getConfiguration().dataDescription().get(dataType).componentDescriptions().entrySet().stream().filter(entry -> Strings.isNullOrEmpty(variable) || entry.getKey().equals(variable)).filter(entry -> entry.getValue().getChartDescription() != null).map(entry -> entry.getValue().getChartDescription().toSQL(entry.getKey(), dataType)).collect(Collectors.joining(", \n")); } else { sql = Chart.toSQL(dataType); } @@ -809,30 +707,16 @@ public class OreSiService { public Map<String, List<OreSiSynthesis>> getSynthesis(final String nameOrId, final String dataType) { final Application application = applicationService.getApplicationOrApplicationAccordingToRights(nameOrId); - if (Optional.of(application.getConfiguration()) - .map(Configuration::dataDescription) - .map(datatypes -> datatypes.get(dataType)) - .map(StandardDataDescription::tags) - .map(tags -> tags.stream().noneMatch(tag -> Tag.HiddenTag.INSTANCE().equals(tag))) - .orElse(false)) { - return repository.getRepository(application).synthesisRepository().selectSynthesisDatatype(application.getId(), dataType).stream() - .collect(Collectors.groupingBy(OreSiSynthesis::getVariable)); + if (Optional.of(application.getConfiguration()).map(Configuration::dataDescription).map(datatypes -> datatypes.get(dataType)).map(StandardDataDescription::tags).map(tags -> tags.stream().noneMatch(tag -> Tag.HiddenTag.INSTANCE().equals(tag))).orElse(false)) { + return repository.getRepository(application).synthesisRepository().selectSynthesisDatatype(application.getId(), dataType).stream().collect(Collectors.groupingBy(OreSiSynthesis::getVariable)); } return null; } public Map<String, List<OreSiSynthesis>> getSynthesis(final String nameOrId, final String dataName, final String componentName) { final Application application = applicationService.getApplication(nameOrId); - if (Optional.of(application.getConfiguration()) - .map(Configuration::dataDescription) - .map(data -> data.get(dataName)) - .map(StandardDataDescription::componentDescriptions) - .map(data -> data.get(componentName)) - .map(ComponentDescription::tags) - .map(tags -> tags.stream().noneMatch(tag -> Tag.HiddenTag.INSTANCE() == tag)) - .orElse(false)) { - return repository.getRepository(application).synthesisRepository().selectSynthesisDatatypeAndVariable(application.getId(), dataName, componentName).stream() - .collect(Collectors.groupingBy(OreSiSynthesis::getVariable)); + if (Optional.of(application.getConfiguration()).map(Configuration::dataDescription).map(data -> data.get(dataName)).map(StandardDataDescription::componentDescriptions).map(data -> data.get(componentName)).map(ComponentDescription::tags).map(tags -> tags.stream().noneMatch(tag -> Tag.HiddenTag.INSTANCE() == tag)).orElse(false)) { + return repository.getRepository(application).synthesisRepository().selectSynthesisDatatypeAndVariable(application.getId(), dataName, componentName).stream().collect(Collectors.groupingBy(OreSiSynthesis::getVariable)); } return null; } @@ -845,31 +729,20 @@ public class OreSiService { Application application = applicationService.getApplicationOrApplicationAccordingToRights(nameOrId); final RightRequestDescription description = application.getConfiguration().rightsRequest(); List<RightsRequest> rightsRequests = rightsRequestService.findRightsRequests(application, rightsRequestInfos); - List<RightsRequestResult> rightsRequestResult = rightsRequests.stream() - .map(rightsRequest -> getRightsRequestResult(rightsRequest, application)) - .collect(Collectors.toList()); + List<RightsRequestResult> rightsRequestResult = rightsRequests.stream().map(rightsRequest -> getRightsRequestResult(rightsRequest, application)).collect(Collectors.toList()); ImmutableSortedSet<GetGrantableResult.User> grantableUsers = authorizationService.getGrantableUsers(); return new GetRightsRequestResult(grantableUsers, rightsRequestResult, description); } private RightsRequestResult getRightsRequestResult(final RightsRequest rightsRequest, final Application application) { Map<String, List<AuthorizationParsed>> authorizationsParsed = new HashMap<>(); - AuthorizationService.authorizationsToParsedAuthorizations( - List.of(rightsRequest.getRightsRequest()), - authorizationsParsed); - return new RightsRequestResult( - rightsRequest, - authorizationsParsed - ); + AuthorizationService.authorizationsToParsedAuthorizations(List.of(rightsRequest.getRightsRequest()), authorizationsParsed); + return new RightsRequestResult(rightsRequest, authorizationsParsed); } - private AdditionalBinaryFileResult getAdditionalBinaryFileResult( - final AdditionalBinaryFile additionalBinaryFile, - final Application application) { + private AdditionalBinaryFileResult getAdditionalBinaryFileResult(final AdditionalBinaryFile additionalBinaryFile, final Application application) { Map<String, List<AuthorizationParsed>> authorizationsParsed = new HashMap<>(); - authorizationService.authorizationsToParsedAuthorizations( - additionalBinaryFile.getAssociates(), - authorizationsParsed); + authorizationService.authorizationsToParsedAuthorizations(additionalBinaryFile.getAssociates(), authorizationsParsed); return new AdditionalBinaryFileResult(additionalBinaryFile, authorizationsParsed); } @@ -878,25 +751,19 @@ public class OreSiService { authenticationService.setRoleForClient(); final Application application = applicationService.getApplicationOrApplicationAccordingToRights(nameOrId); - RightsRequest rightsRequest = Optional.of(createRightsRequestRequest) - .map(CreateRightsRequestRequest::id) - .map(id -> repository.getRepository(application).rightsRequestRepository().findById(id)) - .orElseGet(RightsRequest::new); + RightsRequest rightsRequest = Optional.of(createRightsRequestRequest).map(CreateRightsRequestRequest::id).map(id -> repository.getRepository(application).rightsRequestRepository().findById(id)).orElseGet(RightsRequest::new); rightsRequest.setRightsRequestForm(createRightsRequestRequest.fields()); rightsRequest.setApplication(application.getId()); rightsRequest.setComment(createRightsRequestRequest.comment()); rightsRequest.setSetted(createRightsRequestRequest.setted()); rightsRequest.setId(rightsRequest.getId() == null ? UUID.randomUUID() : rightsRequest.getId()); - OreSiAuthorization authorizations = Optional.ofNullable(createRightsRequestRequest) - .map(CreateRightsRequestRequest::rightsRequest) - .map(authorization -> { - OreSiAuthorization oreSiAuthorization = new OreSiAuthorization(); - oreSiAuthorization.setId(rightsRequest.getId()); - oreSiAuthorization.setApplication(application.getId()); - //TODOoreSiAuthorization.setAuthorizations(authorization.authorizations()); - return oreSiAuthorization; - }) - .orElse(null); + OreSiAuthorization authorizations = Optional.ofNullable(createRightsRequestRequest).map(CreateRightsRequestRequest::rightsRequest).map(authorization -> { + OreSiAuthorization oreSiAuthorization = new OreSiAuthorization(); + oreSiAuthorization.setId(rightsRequest.getId()); + oreSiAuthorization.setApplication(application.getId()); + //TODOoreSiAuthorization.setAuthorizations(authorization.authorizations()); + return oreSiAuthorization; + }).orElse(null); rightsRequest.setRightsRequest(authorizations); rightsRequest.setUser(rightsRequest.getUser() == null ? request.getRequestUserId() : rightsRequest.getUser()); rightsRequest.getRightsRequest().setOreSiUsers(Set.of(rightsRequest.getUser())); @@ -916,19 +783,15 @@ public class OreSiService { final AdditionalFileRepository additionalFileRepository = repository.getRepository(nameOrId).additionalBinaryFile(); authenticationService.setRoleForClient(); - final Stream<AdditionalBinaryFile> additionnalFilesStream = additionalFileRepository - .findByCriteriaStream(additionalFileSearchHelper); + final Stream<AdditionalBinaryFile> additionnalFilesStream = additionalFileRepository.findByCriteriaStream(additionalFileSearchHelper); final Mono<byte[]> mono = Mono.just(additionnalFilesStream) - .map(Stream::findFirst) - .map(o -> o.orElse(null))//orElseGet(() -> getDefaultCharte(additionalFilesInfos, nameOrId))) + .map(Stream::findFirst).map(o -> o.orElse(null))//orElseGet(() -> getDefaultCharte(additionalFilesInfos, nameOrId))) .map(additionalBinaryFile -> { response.setHeader("Content-Disposition", "inline; filename=" + additionalBinaryFile.getFileName()); response.setHeader("Content-Length", Long.toString(additionalBinaryFile.getSize())); return additionalBinaryFile; - }) - .map(AdditionalBinaryFile::getData) - .onErrorComplete(); + }).map(AdditionalBinaryFile::getData).onErrorComplete(); final byte[] block = mono.block(); if (block != null && block.length > 0) { out.write(block); @@ -944,19 +807,16 @@ public class OreSiService { BadAdditionalFileParamsSearchException.check(additionalFileParamsParsingResult); final AdditionalFileSearchHelper additionalFileSearchHelper = additionalFileParamsParsingResult.getResult(); final AtomicLong counter = new AtomicLong(0); - repository - .getRepository(application).additionalBinaryFile() - .findByCriteriaStream(additionalFileSearchHelper) - .forEach(additionalBinaryFile -> { - try { - if (counter.incrementAndGet() % 1000 == 0) { - zipOutputStream.flush(); - } - additionalFileSearchHelper.addAdditionalFilesToZip(additionalBinaryFile, zipOutputStream, ""); - } catch (final IOException e) { - throw new RuntimeException(e); - } - }); + repository.getRepository(application).additionalBinaryFile().findByCriteriaStream(additionalFileSearchHelper).forEach(additionalBinaryFile -> { + try { + if (counter.incrementAndGet() % 1000 == 0) { + zipOutputStream.flush(); + } + additionalFileSearchHelper.addAdditionalFilesToZip(additionalBinaryFile, zipOutputStream, ""); + } catch (final IOException e) { + throw new RuntimeException(e); + } + }); } @@ -967,9 +827,7 @@ public class OreSiService { BadAdditionalFileParamsSearchException.check(additionalFileParamsParsingResult); final AdditionalFileSearchHelper additionalFileSearchHelper = additionalFileParamsParsingResult.getResult(); try { - final List<UUID> deletedAdditionalBinaryFiles = repository - .getRepository(application).additionalBinaryFile() - .deleteByCriteria(additionalFileSearchHelper); + final List<UUID> deletedAdditionalBinaryFiles = repository.getRepository(application).additionalBinaryFile().deleteByCriteria(additionalFileSearchHelper); return deletedAdditionalBinaryFiles; } catch (final DataIntegrityViolationException e) { return null; @@ -1001,36 +859,28 @@ public class OreSiService { } @Transactional() - public UUID createOrUpdate(final CreateAdditionalFileRequest createAdditionalFileRequest, - final String additionalFileName, - final String nameOrId, - final MultipartFile file) { + public UUID createOrUpdate(final CreateAdditionalFileRequest createAdditionalFileRequest, final String additionalFileName, final String nameOrId, final MultipartFile file) { authenticationService.setRoleForClient(); final Application application = applicationService.getApplication(nameOrId); - AdditionalBinaryFile additionalBinaryFile = Optional.of(createAdditionalFileRequest) - .map(CreateAdditionalFileRequest::id) - .map(id -> { - UUID id1 = id; - if (CHARTE.equals(additionalFileName)) { - id1 = application.getId(); - } - AdditionalBinaryFile abf = repository.getRepository(application).additionalBinaryFile().findById(id1); - if (abf == null) { - abf = new AdditionalBinaryFile(); - abf.setId(id1); - abf.setApplication(id1); - abf.setFileType(CHARTE); - abf.setForApplication(true); - } - return abf; - }) - .orElseGet(AdditionalBinaryFile::new); + AdditionalBinaryFile additionalBinaryFile = Optional.of(createAdditionalFileRequest).map(CreateAdditionalFileRequest::id).map(id -> { + UUID id1 = id; + if (CHARTE.equals(additionalFileName)) { + id1 = application.getId(); + } + AdditionalBinaryFile abf = repository.getRepository(application).additionalBinaryFile().findById(id1); + if (abf == null) { + abf = new AdditionalBinaryFile(); + abf.setId(id1); + abf.setApplication(id1); + abf.setFileType(CHARTE); + abf.setForApplication(true); + } + return abf; + }).orElseGet(AdditionalBinaryFile::new); additionalBinaryFile.setFileInfos(createAdditionalFileRequest.fields()); additionalBinaryFile.setApplication(application.getId()); - additionalBinaryFile.setForApplication( - Optional.ofNullable(createAdditionalFileRequest.forApplication()) - .orElse(CHARTE.equals(additionalFileName))); + additionalBinaryFile.setForApplication(Optional.ofNullable(createAdditionalFileRequest.forApplication()).orElse(CHARTE.equals(additionalFileName))); if (file != null) { additionalBinaryFile.setSize(file.getSize()); additionalBinaryFile.setFileName(file.getOriginalFilename()); @@ -1073,8 +923,7 @@ public class OreSiService { List<String> referentielsAvecDonneesExemple = new ArrayList<>(); List<String> referentielsEnErreur = new ArrayList<>(); - locale = Optional.of(locale) - .orElseGet(application.getConfiguration().applicationDescription()::defaultLanguage); + locale = Optional.of(locale).orElseGet(application.getConfiguration().applicationDescription()::defaultLanguage); try { // Écrire le fichier Groovy @@ -1114,11 +963,7 @@ public class OreSiService { // Traiter chaque référentiel for (String reference : application.getConfiguration().dataDescription().keySet()) { - String fileName = application.getConfiguration().findData(reference) - .map(StandardDataDescription::submission) - .map(Submission::fileNameParsing) - .map(Submission.SubmissionFileNameParsing::createExampleSubmissionFileName) - .orElse("%s.csv".formatted(reference)); + String fileName = application.getConfiguration().findData(reference).map(StandardDataDescription::submission).map(Submission::fileNameParsing).map(Submission.SubmissionFileNameParsing::createExampleSubmissionFileName).orElse("%s.csv".formatted(reference)); String dataCsvFilePath = "%1$s/%2$s".formatted(reference, fileName); try { @@ -1166,32 +1011,15 @@ public class OreSiService { try { FileSenderInternationalisation fileSenderInternationalisation = new FileSenderInternationalisationForDownloadDatasetQuery(downloadDatasetQuery); Locale locale = downloadDatasetQuery.outPut().locale(); - String applicationName = Optional.ofNullable( - fileSenderInternationalisation.getInternationnalizedApplication(locale) - ) - .orElseGet(() -> Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedApplication(fileSenderInternationalisation.getDefaultLanguage())) - .orElse(downloadDatasetQuery.application().getName())); - String dataName = Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedDataName(locale, downloadDatasetQuery.dataName())) - .orElseGet(() -> Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedDataName(fileSenderInternationalisation.getDefaultLanguage(), downloadDatasetQuery.dataName())) - .orElse(downloadDatasetQuery.dataName())); + String applicationName = Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedApplication(locale)).orElseGet(() -> Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedApplication(fileSenderInternationalisation.getDefaultLanguage())).orElse(downloadDatasetQuery.application().getName())); + String dataName = Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedDataName(locale, downloadDatasetQuery.dataName())).orElseGet(() -> Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedDataName(fileSenderInternationalisation.getDefaultLanguage(), downloadDatasetQuery.dataName())).orElse(downloadDatasetQuery.dataName())); ; String subject = fileSenderInternationalisation.subjectPattern(); String message = fileSenderInternationalisation.messagePattern(); - String internationnalizedDataName = fileSenderInternationalisation.getInternationnalizedDataName( - Locale.of(downloadDatasetQuery.getLanguage()), - dataName - ); - - String messageWithReport = fileSenderInternationalisation. - mailMessagefor(message.formatted(internationnalizedDataName), - FileSenderRepository.DEFAULT_TRANSFER_DAYS_VALID); - FileInfos fileInfos = new FileInfos( - applicationName, - dataName, - filePath, - currentUser.getEmail(), - subject.formatted(applicationName), - messageWithReport); + String internationnalizedDataName = fileSenderInternationalisation.getInternationnalizedDataName(Locale.of(downloadDatasetQuery.getLanguage()), dataName); + + String messageWithReport = fileSenderInternationalisation.mailMessagefor(message.formatted(internationnalizedDataName), FileSenderRepository.DEFAULT_TRANSFER_DAYS_VALID); + FileInfos fileInfos = new FileInfos(applicationName, dataName, filePath, currentUser.getEmail(), subject.formatted(applicationName), messageWithReport); String downloadUrl = fileRepository.postTransfer(fileInfos); log.info("Adresse de téléchargement : %s".formatted(downloadUrl)); /*sendUploadZipEmail( @@ -1212,11 +1040,7 @@ public class OreSiService { FileSenderInternationalisation fileSenderInternationalisation = new FileSenderInternationalisationForBuildBundleReport(buildBundleReport); Locale locale = buildBundleReport.locale(); - String applicationName = Optional.ofNullable( - fileSenderInternationalisation.getInternationnalizedApplication(locale) - ).orElseGet(() -> Optional.ofNullable( - fileSenderInternationalisation.getInternationnalizedApplication(fileSenderInternationalisation.getDefaultLanguage()) - ).orElse(buildBundleReport.applicationName().getName())); + String applicationName = Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedApplication(locale)).orElseGet(() -> Optional.ofNullable(fileSenderInternationalisation.getInternationnalizedApplication(fileSenderInternationalisation.getDefaultLanguage())).orElse(buildBundleReport.applicationName().getName())); String subject = fileSenderInternationalisation.subjectPattern().formatted(applicationName); String message = fileSenderInternationalisation.messagePattern().formatted(applicationName); @@ -1232,14 +1056,7 @@ public class OreSiService { fileSenderInternationalisation, applicationName );*/ - FileInfos fileInfos = new FileInfos( - applicationName, - "BulkUploadZIP", - filePath, - currentUser.getEmail(), - subject, - message - ); + FileInfos fileInfos = new FileInfos(applicationName, "BulkUploadZIP", filePath, currentUser.getEmail(), subject, message); String downloadUrl = fileRepository.postTransfer(fileInfos); log.info("Adresse de téléchargement du ZIP pour dépôt en masse : %s".formatted(downloadUrl)); @@ -1255,23 +1072,12 @@ public class OreSiService { @Async - public void sendUploadZipEmail( - final String to, - final String subject, - final String message, - final String downloadUrl, - FileSenderInternationalisation fileSenderInternationalisation, - String internationnalizedDataName) { + public void sendUploadZipEmail(final String to, final String subject, final String message, final String downloadUrl, FileSenderInternationalisation fileSenderInternationalisation, String internationnalizedDataName) { final SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setTo(to); mailMessage.setFrom("openadom@inrae.fr"); mailMessage.setSubject(subject); - mailMessage.setText( - String.format( - fileSenderInternationalisation.mailMessagefor(message, FileSenderRepository.DEFAULT_TRANSFER_DAYS_VALID), - internationnalizedDataName - ) - ); + mailMessage.setText(String.format(fileSenderInternationalisation.mailMessagefor(message, FileSenderRepository.DEFAULT_TRANSFER_DAYS_VALID), internationnalizedDataName)); mailSender.send(mailMessage); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java index 8ce08ef27..7bbcd175a 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java @@ -3,9 +3,12 @@ package fr.inra.oresing.rest.model.configuration.builder; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import java.util.*; +import java.util.function.Predicate; +import java.util.stream.Collectors; import static fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode.*; @@ -17,6 +20,7 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis OA_COMPUTED_COMPONENTS, OA_PATTERN_COMPONENTS }; + private final Map<String, Map<String, Map<String, List<String>>>> duplicatedInPattern = new HashMap<>(); private final RootBuilder rootBuilder; private final Map<String, Map<String, List<String>>> headers = new HashMap<>(); private boolean hasErrors; @@ -33,10 +37,6 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis .flatMap(map -> map.entrySet().stream()) .filter(entry -> entry.getValue().size() > 1) .toList(); - final List<Entry<String, List<String>>> duplicatedComponentHeaders = headers.values().stream() - .flatMap(map -> map.entrySet().stream()) - .filter(entry -> entry.getValue().size() > 1) - .toList(); if (!duplicatedComponentLabels.isEmpty()) { duplicatedComponentLabels .forEach(entry -> rootBuilder.buildError( @@ -47,9 +47,22 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis ), entry.getValue().getLast() )); - hasErrors=true; + hasErrors = true; return; } + Map<String, List<String>> duplicatedComponentInPatternComponent = duplicatedInPattern.values().stream() + .flatMap(map -> map.entrySet().stream()) + .collect(Collectors.toMap( + Entry::getKey, + entry -> entry.getValue().entrySet().stream() + .filter(entry2 -> entry2.getValue().size() > 1) + .map(Entry::getKey) + .toList() + )); + final List<Entry<String, List<String>>> duplicatedComponentHeaders = headers.values().stream() + .flatMap(map -> map.entrySet().stream()) + .filter(entry -> entry.getValue().size() > 1) + .toList(); if (!duplicatedComponentHeaders.isEmpty()) { duplicatedComponentHeaders .forEach(entry -> rootBuilder.buildError( @@ -60,7 +73,19 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis ), entry.getValue().getLast() )); - hasErrors=true; + if (duplicatedComponentInPatternComponent.values().stream().anyMatch(entry -> entry.size() > 1)) { + duplicatedComponentInPatternComponent.entrySet().stream() + .filter(entry -> entry.getValue().size() > 1) + .forEach(entry -> rootBuilder.buildError( + ConfigurationException.DUPLICATED_COMPONENT_HEADER_IN_PATTERN_COMPONENT, + Map.of( + "header", entry.getKey(), + "duplicatedPathes", entry.getValue() + ), + entry.getValue().getLast() + )); + hasErrors = true; + } } } @@ -78,10 +103,10 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis .findPath(OA_PATTERN_COMPONENTS) .findPath(componentName) .findPath(OA_COMPONENT_QUALIFIERS)) { - componentComponentNode.fieldNames().forEachRemaining(componentComponentName -> + componentComponentNode.fieldNames().forEachRemaining(qualifierName -> { - final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENT_QUALIFIERS, componentComponentName); - addPathesForNode(componentComponentNode, dataName, componentComponentName, componentComponentPath); + final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENT_QUALIFIERS, qualifierName); + addPathesForPatternNode(componentComponentNode, dataName, componentName, qualifierName, componentComponentPath); }); } for (final JsonNode componentComponentNode : dataNodes @@ -89,13 +114,12 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis .findPath(OA_PATTERN_COMPONENTS) .findPath(componentName) .findPath(OA_COMPONENT_ADJACENTS)) { - componentComponentNode.fieldNames().forEachRemaining(componentComponentName -> + componentComponentNode.fieldNames().forEachRemaining(adjacentName -> { - final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENT_ADJACENTS, componentComponentName); - addPathesForNode(componentComponentNode, dataName, componentComponentName, componentComponentPath); + final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENT_ADJACENTS, adjacentName); + addPathesForPatternNode(componentComponentNode, dataName, componentName, adjacentName, componentComponentPath); }); } - } }); }); @@ -113,6 +137,20 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis ); } + private void addPathesForPatternNode(final JsonNode dataNodes, final String dataName, final String componentName, final String qualifierOrAdjacentName, final String path) { + duplicatedInPattern.computeIfAbsent(dataName, l -> new HashMap<String, Map<String, List<String>>>()) + .computeIfAbsent(componentName, l -> new HashMap<String, List<String>>()) + .computeIfAbsent(qualifierOrAdjacentName, l -> new LinkedList<String>()) + .add(path); + addPatternImportHeader( + dataNodes.findPath(qualifierOrAdjacentName), + path, + qualifierOrAdjacentName, + headers + .computeIfAbsent(dataName, l -> new HashMap<>()) + ); + } + private static void addImportHeader(final JsonNode dataNodes, final String path, final Map<String, List<String>> headerForData) { JsonNode currentNode = dataNodes; boolean first = true; @@ -135,6 +173,13 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis } } + private static void addPatternImportHeader(final JsonNode componentComponentNode, final String headerName, final String path, final Map<String, List<String>> headerForData) { + final boolean noHeader = componentComponentNode.findPath(OA_IMPORT_HEADER).findPath(OA_HEADER_NAME).isMissingNode() || componentComponentNode.findPath(OA_IMPORT_HEADER).findPath(OA_HEADER_NAME).isNull(); + final String importHeaderPath = noHeader ? path : NodeSchemaValidator.joinPath(path, OA_IMPORT_HEADER, OA_HEADER_NAME); + headerForData.computeIfAbsent(headerName, l -> new LinkedList<>()) + .add(importHeaderPath); + } + public List<String> listDataKeys() { return keySet().stream().toList(); } @@ -144,7 +189,7 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis entrySet().forEach(dataEntry -> { final ImmutableList.Builder<String> components = new ImmutableList.Builder<>(); for (final Entry<String, List<String>> componentEntry : dataEntry.getValue().entrySet()) { - if (componentEntry.getValue().stream().anyMatch(path -> path.matches(".*("+OA_BASIC_COMPONENTS+"|"+OA_CONSTANT_COMPONENTS+"|"+OA_PATTERN_COMPONENTS+"|"+OA_COMPUTED_COMPONENTS+").*"))) { + if (componentEntry.getValue().stream().anyMatch(path -> path.matches(".*(" + OA_BASIC_COMPONENTS + "|" + OA_CONSTANT_COMPONENTS + "|" + OA_PATTERN_COMPONENTS + "|" + OA_COMPUTED_COMPONENTS + ").*"))) { components.add(componentEntry.getKey()); } } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java index df1396d6a..bac83de77 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java @@ -8,6 +8,7 @@ import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; +import fr.inra.oresing.domain.data.deposit.context.column.Column; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import java.util.Map; @@ -87,7 +88,7 @@ public record PatternComponentAdjacentsBuilder(RootBuilder rootBuilder) { ); patternColumnComponentBuilder.put(label, patternColumnComponent); componentDescriptionBuilder.put( - label, + Column.COLUMN_IN_COLUMN_PATTERN.formatted(componentKey,label), patternColumnComponent ); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentQualifiersBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentQualifiersBuilder.java index f432448ec..376815b10 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentQualifiersBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentQualifiersBuilder.java @@ -9,6 +9,7 @@ import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; import fr.inra.oresing.domain.application.configuration.PatternComponentQualifiers; import fr.inra.oresing.domain.application.configuration.Tag; import fr.inra.oresing.domain.application.configuration.checker.CheckerDescription; +import fr.inra.oresing.domain.data.deposit.context.column.Column; import java.util.Map; import java.util.Optional; @@ -71,7 +72,7 @@ public record PatternComponentQualifiersBuilder(RootBuilder rootBuilder) { ); patternColumnComponentBuilder.put(label, patternColumnComponent); componentDescriptionBuilder.put( - label, + Column.COLUMN_IN_COLUMN_PATTERN.formatted(componentKey,label), patternColumnComponent ); } diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index 4e5120452..93b8c36a9 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -168,6 +168,7 @@ public class OreSiResourcesTest { } }; } + @Test @Tag("SUITE") public void testDatabaseUser() throws SQLException { @@ -178,7 +179,7 @@ public class OreSiResourcesTest { private String getCurrentDatabaseUser() throws SQLException { try (Connection conn = dataSource.getConnection(); Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT current_user")) { + ResultSet rs = stmt.executeQuery("SELECT CURRENT_USER")) { if (rs.next()) { return rs.getString(1); } @@ -239,7 +240,7 @@ public class OreSiResourcesTest { void setToActive(final UUID userId) { namedParameterJdbcTemplate.update( """ - update public.OreSiUser set accountstate = 'active' where id = :id + UPDATE public.oresiuser SET accountstate = 'active' WHERE id = :id """, Map.of("id", userId)); } @@ -391,16 +392,16 @@ public class OreSiResourcesTest { .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_OCTET_STREAM)) .andExpect(result -> { final List<String> expected = """ - "zet_chemin_parent";"zet_nom_key";"tze_type_nom";"zet_description_en";"zet_description_fr";"zet_nom_en";"zet_nom_fr" - "";"nivelle";"bassin_versant";"Watershed Nivelle";"Bassin versant de Nivelle";"Nivelle";"Nivelle" - "";"oir";"bassin_versant";"Oir catchment";"Bassin versant d'Oir";"Oir";"Oir" - "";"scarff";"bassin_versant";"Watershed Scarff";"Bassin versant de Scarff";"Scarff";"Scarff" - "nivelle";"p1";"plateforme";"";"";"P1";"P1" - "oir";"p1";"plateforme";"";"";"P1";"P1" - "oir__p1";"a";"plateforme";"";"";"A";"A" - "oir__p1";"b";"plateforme";"";"";"B";"B" - "oir";"p2";"plateforme";"";"";"P2";"P2" - "scarff";"p1";"plateforme";"";"";"P1";"P1\"""" + "zet_chemin_parent";"zet_nom_key";"tze_type_nom";"zet_description_en";"zet_description_fr";"zet_nom_en";"zet_nom_fr" + "";"nivelle";"bassin_versant";"Watershed Nivelle";"Bassin versant de Nivelle";"Nivelle";"Nivelle" + "";"oir";"bassin_versant";"Oir catchment";"Bassin versant d'Oir";"Oir";"Oir" + "";"scarff";"bassin_versant";"Watershed Scarff";"Bassin versant de Scarff";"Scarff";"Scarff" + "nivelle";"p1";"plateforme";"";"";"P1";"P1" + "oir";"p1";"plateforme";"";"";"P1";"P1" + "oir__p1";"a";"plateforme";"";"";"A";"A" + "oir__p1";"b";"plateforme";"";"";"B";"B" + "oir";"p2";"plateforme";"";"";"P2";"P2" + "scarff";"p1";"plateforme";"";"";"P1";"P1\"""" .lines().collect(Collectors.toCollection(LinkedList::new)); final List<String> actual = new String(result.getResponse().getContentAsByteArray()) .lines().collect(Collectors.toCollection(LinkedList::new)); @@ -2405,6 +2406,12 @@ public class OreSiResourcesTest { final String response = mockMvc.perform(get("/api/v1/applications/pattern") .param("filter", "ALL") .cookie(authCookie)) + .andDo(result -> { + final int status = result.getResponse().getStatus(); + if (status > 300) { + System.out.println(result.getResolvedException().getMessage()); + } + }) .andExpect(status().is2xxSuccessful()) .andExpect(jsonPath("$.data.taxon.componentDescriptions.proprietesDeTaxon.type", IsEqual.equalTo("DynamicComponent"))) .andExpect(jsonPath("$.data.taxon.componentDescriptions.proprietesDeTaxon.reference", IsEqual.equalTo("proprietes_taxon"))) @@ -2436,7 +2443,7 @@ public class OreSiResourcesTest { mockMvc.perform(get("/api/v1/applications/pattern/data/{refType}/json", "taxon") .cookie(authCookie)) .andExpect(status().is2xxSuccessful()) - .andExpect(jsonPath("$..values.tel_S2_value.__VALUES__", containsInAnyOrder("7.2", "3.4", "2.1", "2.6", "2.5", "5.2", "3.9", "3.2", "1.2"))) + .andExpect(jsonPath("$..values.tel_S2_value.__VALUE__", containsInAnyOrder("7.2", "3.4", "2.1", "2.6", "2.5", "5.2", "3.9", "3.2", "1.2"))) .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_resolution", containsInAnyOrder(3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2))) .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_qualifier", containsInAnyOrder(3, 3, 3, 3, 3, 3, 3, 3, 3))) .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_variable", containsInAnyOrder("annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy"))) diff --git a/src/test/resources/data/pattern/pattern.yaml b/src/test/resources/data/pattern/pattern.yaml index e6c44a97f..0a270e583 100644 --- a/src/test/resources/data/pattern/pattern.yaml +++ b/src/test/resources/data/pattern/pattern.yaml @@ -1,4 +1,8 @@ OA_version: 2.0.1 +OA_tags: #optional + data: #optional + fr: données + en: data OA_application: OA_defaultLanguage: fr OA_i18n: @@ -231,6 +235,45 @@ OA_data: en: "resolution en" OA_checker: OA_name: OA_float + + OA_componentAdjacents: #optional + - #optional + swc_sd: #optional + OA_importHeaderPattern: "{$1}_sd" #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: écart_type + en: standard_deviation + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_float #mandatory + OA_params: #optional + OA_max: 500.0 #optional + OA_min: 0.0 #optional + OA_multiplicity: ONE #optional + - #optional + swc_qc: #optional + OA_importHeaderPattern: "{$1}_qc" #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Indic de qualité + en: Quality class + OA_description: #optional + fr: 0 pour une valeur valide ; 2 pour une valeur incorrecte + en: 0 for valid value; 2 for bad value + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_integer #mandatory + OA_params: #optional + OA_max: 2 #optional + OA_min: 0 #optional + OA_multiplicity: ONE #optional tel_S2_value: OA_patternForComponents: "(.*)_S2_(.*)_(.*)" OA_required: false @@ -279,6 +322,44 @@ OA_data: OA_checker: OA_name: OA_float + OA_componentAdjacents: #optional + - #optional + swc_sd: #optional + OA_importHeaderPattern: "sd" #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: écart_type + en: standard_deviation + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_float #mandatory + OA_params: #optional + OA_max: 500.0 #optional + OA_min: 0.0 #optional + OA_multiplicity: ONE #optional + - #optional + swc_qc: #optional + OA_importHeaderPattern: "qc" #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Indic de qualité + en: Quality class + OA_description: #optional + fr: 0 pour une valeur valide ; 2 pour une valeur incorrecte + en: 0 for valid value; 2 for bad value + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_integer #mandatory + OA_params: #optional + OA_max: 2 #optional + OA_min: 0 #optional + OA_multiplicity: ONE #optional condition_prelevements: OA_tags: ["__DATA__"] OA_naturalKey: diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index 335fd29fe..93ae50866 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2024-10-29T13:36:40.014022263","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2024-10-29T13:38:22.607151323","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2024-10-29T13:37:22.255694552","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2024-10-29T13:36:26.430889694","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2024-10-29T13:36:28.454403998","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:36:18.230072998","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:36:18.230994367","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-29T13:38:01.466645563","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-29T13:38:31.970380982","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:36:24.375141479","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:36:24.375892619","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"componentReference":"proj","submissionReference":"projet","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2024-10-29T13:38:55.748117037","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:39:04.75543507","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:37:34.48074135","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_version","OA_application","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2024-10-29T13:37:26.291557223","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2024-10-29T13:36:34.641513621","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:38.211375852","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2024-10-29T13:38:36.199742604","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:37:30.436912369","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2024-10-29T13:36:20.209450407","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2024-10-29T13:37:43.191093665","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2024-10-29T13:37:20.228833111","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2024-10-29T13:37:03.50667593","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:37:45.532456511","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:39:06.87047632","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2024-10-29T13:37:05.929513065","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2024-10-29T13:36:30.432669463","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:37:24.235688515","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:37:24.236522729","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:37:24.23677821","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.419827713","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.420909123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:38:49.42102865","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.421697445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:38:49.421800767","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.42215638","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:38:49.422209176","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:38:49.422815857","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2024-10-29T13:37:18.183892315","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2024-10-29T13:37:13.221332847","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2024-10-29T13:37:13.221483095","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-29T13:37:40.770324033","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","componentName":"tel_date"}},"time":"2024-10-29T13:38:08.189968563","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:37:36.540992403","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-29T13:36:47.946626907","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:17.248977907","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-29T13:36:58.534053943","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-29T13:36:42.473337713","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:38:19.358663072","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2024-10-29T13:37:00.930503142","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2024-10-29T13:36:32.485863438","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:39:00.341268086","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:39:00.342271656","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:39:00.342544823","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:44.954104363","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2024-10-29T13:36:53.239105794","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:38:51.490459833","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:38:29.957133279","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.957277064","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.958058163","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.958355173","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.95862817","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.959161116","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:29.959298165","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:12.920019052","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2024-10-29T13:38:15.0823626","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2024-10-29T13:37:10.924479044","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2024-10-29T13:36:50.658272058","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2024-10-29T13:38:34.12936978","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2024-10-29T13:38:10.711438432","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:37:32.495503058","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:36:22.220440902","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:37:54.660746142","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-29T13:37:08.509821457","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2024-10-29T13:36:37.229761023","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:38:04.931387567","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2024-10-29T13:37:15.893915358","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2024-10-29T13:37:28.355535592","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-29T13:38:25.66141612","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:38:27.786170622","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-29T13:38:42.696892967","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2024-10-29T13:38:40.465472286","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2024-10-29T13:37:58.26768099","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2024-10-29T13:38:53.566526212","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2024-10-29T13:39:02.679721767","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-29T13:37:51.664919483","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:37:48.479740274","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-29T13:37:38.644620817","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:38:57.905200352","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:38:47.137341615","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:38:47.137600612","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:47.137693304","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:38:47.13821786","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:38:47.138656926","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:47.139043652","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:38:47.139319542","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:38:47.139915487","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:38:47.14009647","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:38:47.140404371","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:38:47.140870163","type":"REACTIVE_ERROR"}]} \ No newline at end of file +{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2024-10-29T13:46:01.989693044","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2024-10-29T13:47:26.205585232","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2024-10-29T13:46:36.934378759","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2024-10-29T13:45:49.778155986","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2024-10-29T13:45:51.874913372","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:45:41.494864714","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:45:41.495807943","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-29T13:47:09.713493337","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-29T13:47:34.457377127","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:45:47.692259631","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:45:47.692702109","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"submissionReference":"projet","componentReference":"proj","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2024-10-29T13:47:57.260211429","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:48:05.405915452","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:46:49.186774993","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_application","OA_version","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2024-10-29T13:46:40.898719903","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2024-10-29T13:45:57.85507036","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:40.606772332","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","knownAuthorizationScope":["site_bassin","projet"],"unknownAuthorizationScope":"site_bassine"}},"time":"2024-10-29T13:47:38.590422215","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:46:44.893805115","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2024-10-29T13:45:43.586393097","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2024-10-29T13:46:57.560918004","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2024-10-29T13:46:34.905458443","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2024-10-29T13:46:20.824422679","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:46:59.604658803","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:48:07.468892413","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2024-10-29T13:46:22.76452003","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2024-10-29T13:45:53.848082721","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:46:38.941734607","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:46:38.942650782","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:46:38.942935108","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.876411405","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.876836267","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:47:50.876997432","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.877190064","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:47:50.87724604","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.877400615","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:47:50.877427378","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.877743393","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2024-10-29T13:46:32.907717627","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2024-10-29T13:46:28.806147142","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","knownAuthorizationScope":["site_bassin","proj"],"unknownAuthorizationScope":"projet"}},"time":"2024-10-29T13:46:28.806312992","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-29T13:46:55.495662801","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","componentName":"tel_date"}},"time":"2024-10-29T13:47:13.813874031","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:46:51.329891415","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-29T13:46:08.526101001","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:22.104428447","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-29T13:46:16.747863321","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-29T13:46:04.282713463","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:47:24.184548129","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2024-10-29T13:46:18.776772069","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2024-10-29T13:45:55.848803004","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:48:01.35256307","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:48:01.353377253","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:48:01.353601954","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:46.64643635","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2024-10-29T13:46:12.570329685","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:47:52.970509364","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:47:32.503125164","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.503265859","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.50405595","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.504319217","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.504557113","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.505078398","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.505209409","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:17.825103611","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2024-10-29T13:47:19.896194076","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2024-10-29T13:46:26.809406995","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2024-10-29T13:46:10.543259101","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2024-10-29T13:47:36.505990947","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2024-10-29T13:47:15.775769772","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:46:46.99060846","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:45:45.597771596","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:05.703899735","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-29T13:46:24.773960157","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2024-10-29T13:45:59.905056638","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:47:11.761873074","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2024-10-29T13:46:30.860754783","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2024-10-29T13:46:42.883231807","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-29T13:47:28.369291331","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:30.459117752","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-29T13:47:44.641545074","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2024-10-29T13:47:42.578354706","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2024-10-29T13:47:07.700798503","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2024-10-29T13:47:55.167155954","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2024-10-29T13:48:03.290262962","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-29T13:47:03.663379387","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:47:01.653352376","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-29T13:46:53.473755642","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:47:59.350168155","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:47:48.738366665","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:47:48.738708505","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:48.738837166","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:47:48.739507672","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:47:48.740001143","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:48.740524392","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:48.741045904","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:47:48.741761584","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:47:48.741940339","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:47:48.742354691","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:47:48.743007664","type":"REACTIVE_ERROR"}]} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt index 263941dea..4648ef4fa 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt @@ -1,17 +1,17 @@ -{"result":0.0,"time":[2024,10,29,13,42,18,645065401],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,647309857],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,29,13,42,18,647380824],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,647432960],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,29,13,42,18,647471368],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,29,13,42,18,648863707],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,29,13,42,18,648924377],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,29,13,42,18,648962853],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,42,18,704025247],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,29,13,42,18,704102413],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,29,13,42,18,704114216],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,741417815],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,741471278],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,741495414],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,797483612],"type":"REACTIVE_INFO"} -{"result":"8c08f1e9-4c37-4bd5-9c51-d92a4adaade6","time":[2024,10,29,13,42,18,821352450],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,29,13,42,18,821422749],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,43,18,173227799],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,175384321],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,29,13,43,18,175442871],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,175503652],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,29,13,43,18,175527003],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,29,13,43,18,177765693],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,29,13,43,18,177839732],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,29,13,43,18,177854502],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,43,18,295552912],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,29,13,43,18,295634495],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,43,18,295645747],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,326667000],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,326723554],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,326768060],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,373767935],"type":"REACTIVE_INFO"} +{"result":"d489389e-a500-463b-b27e-70dcf0b45e3f","time":[2024,10,29,13,43,18,401478990],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,29,13,43,18,401539397],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt index f482688ea..704e28d01 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt @@ -1,21 +1,21 @@ -{"result":0.0,"time":[2024,10,29,13,42,18,21381529],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,23395343],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,29,13,42,18,23573442],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,23650435],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,29,13,42,18,23705712],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,29,13,42,18,26675695],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,29,13,42,18,26735032],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,29,13,42,18,26750385],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,42,18,117242738],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,29,13,42,18,117337376],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,29,13,42,18,117352704],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,160389240],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,160498649],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,160853920],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,498362410],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,498450593],"type":"REACTIVE_INFO"} -{"result":0.5,"time":[2024,10,29,13,42,18,498709270],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,18,498761851],"type":"REACTIVE_INFO"} -{"result":"8c08f1e9-4c37-4bd5-9c51-d92a4adaade6","time":[2024,10,29,13,42,18,498779959],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,29,13,42,18,498922694],"type":"REACTIVE_PROGRESS"} -{"result":1.0,"time":[2024,10,29,13,42,18,498968126],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,43,17,502085162],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,504178938],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,10,29,13,43,17,504415788],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,504482122],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,29,13,43,17,504507428],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,29,13,43,17,507325322],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,29,13,43,17,507382085],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,10,29,13,43,17,507395858],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,43,17,677449970],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,29,13,43,17,677525344],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,43,17,677539746],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,732781716],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,732865969],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,733205771],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,66264096],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,66337181],"type":"REACTIVE_INFO"} +{"result":0.5,"time":[2024,10,29,13,43,18,66569775],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,66592607],"type":"REACTIVE_INFO"} +{"result":"d489389e-a500-463b-b27e-70dcf0b45e3f","time":[2024,10,29,13,43,18,66634204],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,29,13,43,18,66756130],"type":"REACTIVE_PROGRESS"} +{"result":1.0,"time":[2024,10,29,13,43,18,66769772],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index e5c2ce1e3..c90f9ff59 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,10 +1,10 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,29,13,42,16,785101540],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,29,13,42,16,790035763],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,29,13,42,16,790506124],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2024,10,29,13,42,16,791787291],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,42,17,94847160],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,29,13,42,17,95366068],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,29,13,42,17,95697007],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,42,17,858072488],"type":"REACTIVE_INFO"} -{"result":{"id":"7d4c6e93-b58e-4c27-90e4-6a9ea960c8ad","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"projet","reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"especes","reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"valeurs_qualitatives","reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"unites","reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"type_de_sites","reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"StringChecker","reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"chartDescription":null,"referenceCheckerType":"sites","reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,29,13,42,17,858958200],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,29,13,42,17,859320644],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,29,13,43,15,671919939],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,29,13,43,15,677418996],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,29,13,43,15,677831563],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2024,10,29,13,43,15,679029727],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,43,16,199432624],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,10,29,13,43,16,199962254],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,10,29,13,43,16,200354100],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,363567203],"type":"REACTIVE_INFO"} +{"result":{"id":"1dd09d76-4240-49f4-9dd8-3ecebce4aba9","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,29,13,43,17,364380890],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,10,29,13,43,17,364656626],"type":"REACTIVE_PROGRESS"} -- GitLab From dfe9f43b669685466866e0abeda8ca856d10bf4c Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 30 Oct 2024 15:59:07 +0100 Subject: [PATCH 37/52] =?UTF-8?q?retrait=20des=20verrifications=20lors=20d?= =?UTF-8?q?e=20la=20cr=C3=A9ations=20d'une=20request=20et=20d'une=20author?= =?UTF-8?q?ization?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/AuthorizationRequestBuilder.java | 14 ------- .../AuthorizationsRightsRequestInfoView.vue | 38 +++++++++++-------- .../RequestAuthorizationManagementView.vue | 2 +- 3 files changed, 23 insertions(+), 31 deletions(-) diff --git a/src/main/java/fr/inra/oresing/rest/model/authorization/request/AuthorizationRequestBuilder.java b/src/main/java/fr/inra/oresing/rest/model/authorization/request/AuthorizationRequestBuilder.java index fe4293f4a..d91a10d4e 100644 --- a/src/main/java/fr/inra/oresing/rest/model/authorization/request/AuthorizationRequestBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/authorization/request/AuthorizationRequestBuilder.java @@ -87,20 +87,6 @@ public class AuthorizationRequestBuilder { UUID authorizationId = authorizationRequest.uuid(); String name = authorizationRequest.name(); Set<UUID> userId = authorizationRequest.usersId(); - if (!CollectionUtils.containsAll(getAllUsers(), userId)) { - buildError( - AuthorizationRequestException.UNKNOWN_USER_IDS, - Map.of("unknownUserids", CollectionUtils.disjunction(getAllUsers(), userId)) - ); - return null; - } - if (authorizationRequest.authorizationForAll() == null && authorizationRequest.authorizationsWithRestriction() == null) { - buildError( - AuthorizationRequestException.NO_AUTHORIZATIONS, - Map.of() - ); - return null; - } AuthorizationWithRestriction authorizationWithRestriction = MapUtils.isEmpty(authorizationRequest.authorizationsWithRestriction()) ? null : diff --git a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue index aeca9a063..1de8c5d70 100644 --- a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue +++ b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue @@ -160,7 +160,6 @@ export default { const listColumnName = ref({}); const initialized = ref(false); const referencesScopes = ref({}); - let canManage = false; let valid = false; const {reactiveObject: period} = useObject(); let startDate = ref(null); @@ -431,11 +430,6 @@ export default { currentAuthorization.value.authorizations[key] = authorizations[key][0]; }); changeAuthorization(currentAuthorization.value); - canManage = - canCreateApplication || - (authorizations.users && - authorizations.users[0].login === - JSON.parse(localStorage.getItem("authenticatedUser")).login); } } else { currentUser.value = JSON.parse(localStorage.getItem("authenticatedUser")); @@ -552,19 +546,26 @@ export default { } } } + let usersId; + if (currentUser.value.id !== JSON.parse(localStorage.authenticatedUser).id || currentUser.value[0].id !== JSON.parse(localStorage.authenticatedUser).id){ + usersId = currentUser.value.id ? [currentUser.value.id, JSON.parse(localStorage.authenticatedUser).id] : [currentUser.value[0].id, JSON.parse(localStorage.authenticatedUser).id]; + } else { + usersId = [currentUser.value.id ? currentUser.value.id : currentUser.value[0].id]; + } return { uuid: props.authorizationId === "new" ? null : props.authorizationId, name: i18n.t("dataTypeAuthorizations.title", { label: currentUser.value[0] ? currentUser.value[0].label : currentUser.label, }), - description: "null", - usersId: [currentUser.value.id ? currentUser.value.id : currentUser.value[0].id], + description: description.value ? description.value : "null", + usersId: usersId, authorizationForAll, authorizationsWithRestriction, }; }; async function createRequest(isSetted) { + console.log("createRequest isSetted", isSetted); if (!valid) { return; } @@ -601,13 +602,14 @@ export default { }); if ("new" === props.authorizationId) { services.alertService.toastSuccess(i18n.t("alert.create-request")); + await app.$router.push(`/applications/${props.applicationName}`); } else if (isSetted) { services.alertService.toastSuccess(i18n.t("alert.valid-request")); - await app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + await app.$router.push(`/applications/${props.applicationName}/authorizations`); } else { services.alertService.toastSuccess(i18n.t("alert.modified-request")); + await app.$router.push(`/applications/${props.applicationName}`); } - await app.$router.push(`/applications/${props.applicationName}`); } catch (error) { services.alertService.toastServerError(error); } @@ -624,9 +626,14 @@ export default { authorization.authorizations[datatype].requiredAuthorizations ).length !== 0 ) { - authorizationsWithRestriction[datatype] = Object.values( - authorization.authorizations[datatype].operationTypes - ); + authorizationsWithRestriction[datatype] = { + operationTypes: authorization.authorizations[datatype].operationTypes, + requiredAuthorizations: authorization.authorizations[datatype].requiredAuthorizations, + timeScope: { + fromDay:authorization.authorizations[datatype].fromDay, + toDay: authorization.authorizations[datatype].toDay + }, + }; } else { authorizationForAll[datatype] = Object.values( authorization.authorizations[datatype].operationTypes @@ -637,11 +644,11 @@ export default { uuid: null, name: `request ${props.authorizationId} for user ${currentUser.value.label ? currentUser.value.label : currentUser.value[0].label}`, description: description.value, - usersId: [currentUser.value[0].id], + usersId: [currentUser.value[0].id, JSON.parse(localStorage.authenticatedUser).id], authorizationForAll, authorizationsWithRestriction, }; - return await services.authorizationService.createAuthorization( + await services.authorizationService.createAuthorization( props.applicationName, authorizationToSend ); @@ -684,7 +691,6 @@ export default { isLoading, subMenuPaths, loadApplications, - canManage, description, canCreateApplication, datatypes, diff --git a/ui/src/views/authorizations/RequestAuthorizationManagementView.vue b/ui/src/views/authorizations/RequestAuthorizationManagementView.vue index 6decf3538..12e418c05 100644 --- a/ui/src/views/authorizations/RequestAuthorizationManagementView.vue +++ b/ui/src/views/authorizations/RequestAuthorizationManagementView.vue @@ -119,7 +119,7 @@ export default { useArray(); let canManageRights = false; let listAllUsers = ref({}); - let filterState = ref(0); + let filterState = ref(2); watch( () => filterState, (value) => { -- GitLab From 9b0a8586329710cae736aa5f2bbe77c10d3dd562 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 30 Oct 2024 17:39:49 +0100 Subject: [PATCH 38/52] =?UTF-8?q?cr=C3=A9ation=20page=20gestion=20des=20ut?= =?UTF-8?q?ilisateurs=20d'une=20application?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/router/index.js | 11 +- .../AuthorizationReferencesManagement.vue | 302 ------------ ...tionsManagementForApplicationUsersView.vue | 290 ++++++++++++ .../ReferencesAuthorizationInfoView.vue | 428 ------------------ 4 files changed, 298 insertions(+), 733 deletions(-) delete mode 100644 ui/src/views/authorizations/AuthorizationReferencesManagement.vue create mode 100644 ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue delete mode 100644 ui/src/views/authorizations/ReferencesAuthorizationInfoView.vue diff --git a/ui/src/router/index.js b/ui/src/router/index.js index 73f95f224..f24d808d5 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -7,15 +7,14 @@ import ApplicationCreationView from "@/views/application/ApplicationCreationView import { ToastProgrammatic as Toast } from "buefy"; import { i18n } from "@/main"; -/*import AuthorizationReferencesManagement from "@/views/authorizations/AuthorizationReferencesManagement.vue"; -import AuthorizationAdditionalFilesManagement from "@/views/authorizations/AuthorizationAdditionalFilesManagement.vue"; -import ReferencesAuthorizationInfoView from "@/views/authorizations/ReferencesAuthorizationInfoView.vue";*/ +/*import AuthorizationAdditionalFilesManagement from "@/views/authorizations/AuthorizationAdditionalFilesManagement.vue";*/ import AdditionalFilesManagementView from "@/views/additionalfiles/AdditionalFilesManagementView.vue"; import AdditionalFileInfosView from "@/views/additionalfiles/AdditionalFileInfosView.vue"; import AdditionalFilesAuthorizationInfoView from "@/views/authorizations/AdditionalFilesAuthorizationInfoView.vue"; import DataTypeAuthorizationsView from "@/views/authorizations/DataTypeAuthorizationsView.vue"; import DataTypeAuthorizationInfoView from "@/views/authorizations/DataTypeAuthorizationInfoView.vue"; import AuthorizationsManagementForApplicationCreatorView from "@/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue"; +import AuthorizationsManagementForApplicationUsersView from "@/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue"; import AuthorizationsRightsRequestInfoView from "@/views/authorizations/AuthorizationsRightsRequestInfoView.vue"; import RequestAuthorizationManagementView from "@/views/authorizations/RequestAuthorizationManagementView.vue"; import DatasManagementView from "@/views/data/DatasManagementView.vue"; @@ -95,6 +94,12 @@ const routes = [ name: "Authorizations management view", component: AuthorizationsManagementForApplicationCreatorView, }, + { + path: "/applications/:applicationName/authorizationsManagementForApplicationUsers", + name: "Authorizations users management view", + component: AuthorizationsManagementForApplicationUsersView, + props: true, + }, { path: "/applicationCreation/:applicationName/:applicationVersion", name: "Application update", diff --git a/ui/src/views/authorizations/AuthorizationReferencesManagement.vue b/ui/src/views/authorizations/AuthorizationReferencesManagement.vue deleted file mode 100644 index 4fa66f5c3..000000000 --- a/ui/src/views/authorizations/AuthorizationReferencesManagement.vue +++ /dev/null @@ -1,302 +0,0 @@ -<template> - <PageView class="with-submenu" :application="application"> - <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="$t('titles.applications-page')" - role="navigation" - /> - <h1 class="title main-title"> - {{ $t("titles.references-authorizations") }} - </h1> - <div class="rows"> - <div v-if="canManageRights" class="row"> - <div class="columns" style="margin: 0"> - <div class="column is-offset-10 is-2"> - <b-button icon-left="plus" type="is-primary is-right" @click="addAuthorization"> - {{ $t("referencesAuthorizations.add-auhtorization") }} - </b-button> - </div> - </div> - </div> - <LoadingAnimate v-if="isLoading" :size="'is-large'"></LoadingAnimate> - <b-table - :data="authorizations" - :is-focusable="true" - :is-hoverable="true" - :paginated="true" - :per-page="perPage" - :striped="true" - class="row" - height="100%" - > - <template #pagination> - <b-pagination - v-model="currentPage" - :aria-current-label="$t('menu.aria-curent-page')" - :aria-label="$t('menu.aria-pagination')" - :aria-next-label="$t('menu.aria-next-page')" - :aria-previous-label="$t('menu.aria-previous-page')" - :current-page.sync="currentPage" - :per-page="perPage" - :rounded="true" - :total="authorizations.length" - order="is-centered" - range-after="3" - range-before="3" - role="navigation" - @change="changePage" - /> - </template> - <b-table-column - :label="$t('dataTypeAuthorizations.name')" - :searchable="true" - b-table-column - field="name" - sortable - > - <template #searchable="props"> - <b-input - v-model="props.filters[props.column.field]" - :placeholder="$t('dataTypeAuthorizations.search')" - icon="search" - size="is-small" - /> - </template> - <template v-slot="props"> - {{ props.row.name }} - </template> - </b-table-column> - <b-table-column - v-slot="props" - :label="$t('dataTypeAuthorizations.users')" - b-table-column - field="users" - sortable - > - <template v-for="(user, idx) in props.row.users.map((use) => use.login)"> - <div v-bind:key="idx" class="columns"> - <b-tooltip :label="$t('dataTypeAuthorizations.showMore')" position="is-right"> - <a - class="show-check-details column is-half" - style="color: rgb(0, 100, 100); margin-left: 10px" - type="is-primary " - @click="showModalUser(user)" - > - {{ user }} - </a> - </b-tooltip> - <b-modal v-model="isCardModalActive" v-show="isSelectedName === user"> - <div class="card"> - <div class="card-header"> - <div class="title card-header-title"> - <p field="name">{{ user }}</p> - </div> - </div> - <div class="card-content"> - <div class="content"> - <h3> - {{ isSelectedName }} - </h3> - </div> - </div> - </div> - </b-modal> - </div> - </template> - </b-table-column> - <b-table-column - v-slot="props" - :label="$t('dataTypeAuthorizations.data')" - b-table-column - field="authorizations" - sortable - > - <template v-for="(listAuthorizationName, idx) in Object.keys(props.row.authorizations)"> - <div v-bind:key="idx" class="columns"> - <p class="column is-half"> - {{ listAuthorizationName }} {{ $t("ponctuation.colon") }} - </p> - <!-- TODO : voir pour traduire le nom des références dans la liste des rôles --> - <ul class="column is-half"> - <li - v-for="(authorizationName, indx) in props.row.authorizations[ - listAuthorizationName - ]" - :key="indx" - > - {{ authorizationName }} - </li> - </ul> - </div> - </template> - </b-table-column> - <b-table-column v-slot="props" :label="$t('dataTypeAuthorizations.actions')" b-table-column> - <b-button - icon-left="pen-square" - onmouseout="this.style.color='';" - onmouseover="this.style.color='rgba(255,140,0,0.5)'" - outlined - size="is-small" - style=" - height: 1.5em; - background-color: transparent; - font-size: 1.45rem; - border-color: transparent; - " - type="is-warning" - @click="addAuthorization(props.row.uuid)" - > - </b-button> - <b-button - icon-left="times-circle" - size="is-small" - style="height: 1.5em; background-color: transparent; font-size: 1.45rem" - type="is-danger is-light" - @click="revoke(props.row.uuid)" - > - </b-button> - </b-table-column> - </b-table> - </div> - </PageView> -</template> - -<script> -import PageView from "../common/PageView.vue"; -import SubMenu from "@/components/common/SubMenu.vue"; -import { SubMenuPath } from "@/components/common/SubMenu"; -import { AuthorizationService } from "@/services/rest/AuthorizationService"; -import { ApplicationService } from "@/services/rest/ApplicationService"; -import { AlertService } from "@/services/AlertService"; -import { InternationalisationService } from "@/services/InternationalisationService"; -import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; - -export default { - name: "AuthorizationReferencesManagement", - async created() { - this.subMenuPaths = [ - new SubMenuPath( - this.$t("referencesManagement.references").toLowerCase(), - () => this.$router.push(`/applications/${this.applicationName}/references`), - () => this.$router.push(`/applications`), - () => this.$router.push(`/applications/${this.applicationName}/references`) - ), - new SubMenuPath( - this.$t("titles.references-authorizations"), - () => { - this.$router.push(`/applications/${this.applicationName}/references/authorizations`); - }, - () => this.$router.push(`/applications/${this.applicationName}/references`) - ), - ]; - await this.init(); - }, - components: { - LoadingAnimate, - PageView, - SubMenu, - }, - props: { - applicationName: {}, - }, - data: () => { - return { - isLoading: false, - subMenuPaths: [], - authorizationService: AuthorizationService.INSTANCE, - authorizations: [], - applicationService: ApplicationService.INSTANCE, - internationalisationService: InternationalisationService.INSTANCE, - alertService: AlertService.INSTANCE, - canManageRights: false, - isSelectedName: "", - isCardModalActive: false, - // pagination - offset: 0, - currentPage: 1, - perPage: 10, - }; - }, - methods: { - init: async function () { - this.isLoading = true; - try { - this.application = await this.applicationService.getApplication(this.applicationName, [ - "CONFIGURATION", - "REFERENCETYPE", - ]); - this.references = Object.values( - this.internationalisationService.treeReferenceName(this.application) - ); - this.application = this.internationalisationService.mergeInternationalization( - this.application - ); - let authorizations = await this.authorizationService.getReferencesAuthorizations( - this.applicationName, - { - offset: this.offset, - limit: this.perPage, - } - ); - this.authorizations = authorizations.authorizationResults.filter( - () => - authorizations.authorizationsForUser.isAdministrator || - authorizations.authorizationsForUser.authorizationResults.admin - ); - let authorizationForUser = authorizations.authorizationsForUser; - this.canManageRights = - authorizationForUser.isAdministrator || authorizationForUser.authorizationResults.admin; - } catch (error) { - this.alertService.toastServerError(error); - } - this.isLoading = false; - }, - - getFilteredTags(text) { - this.userLabels = []; - this.filteredTags = this.users.filter((option) => { - return option.label.toString().toLowerCase().indexOf(text.toLowerCase()) >= 0; - }); - for (let i = 0; i < this.filteredTags.length; i++) { - if (!this.selectedlabels.includes(this.filteredTags[i].label)) { - this.userLabels.push(this.filteredTags[i].label); - } - } - this.userLabels.sort(); - }, - async changePage(page) { - this.offset = (page - 1) * this.perPage; - }, - - showModalUser(name) { - this.isSelectedName = name; - this.isCardModalActive = true; - }, - - addAuthorization(uuid) { - this.$router.push( - `/applications/${this.applicationName}/references/authorizations/${ - typeof uuid === "string" ? uuid : "new" - }` - ); - }, - - async revoke(id) { - try { - await this.authorizationService.revokeReferenceAuthorization(this.applicationName, id); - this.alertService.toastSuccess(this.$t("alert.revoke-authorization")); - } catch (error) { - this.alertService.toastServerError(error); - } - //window.location.reload(); - }, - }, -}; -</script> - -<style lang="scss"> -li { - list-style-type: square; -} -</style> diff --git a/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue b/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue new file mode 100644 index 000000000..17b6b7df6 --- /dev/null +++ b/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue @@ -0,0 +1,290 @@ +<template> + <PageView class="with-submenu"> + <SubMenu + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="$t('titles.applications-page')" + role="navigation" + /> + <h1 class="title main-title"> + {{ $t("titles.authorization-application-creator-management") }} + </h1> + <div class="rows"> + <LoadingAnimate v-if="isLoading" :size="'is-large'"></LoadingAnimate> + <b-table + :current-page="currentPage" + :data="listUsersAuth" + class="row" + paginated + per-page="15" + > + <template #pagination> + <b-pagination + v-model="currentPage" + :aria-current-label="$t('menu.aria-curent-page')" + :aria-label="$t('menu.aria-pagination')" + :aria-next-label="$t('menu.aria-next-page')" + :aria-previous-label="$t('menu.aria-previous-page')" + :current-page.sync="currentPage" + :rounded="true" + :total="listUsersAuth.length" + order="is-centered" + per-page="15" + range-after="3" + range-before="3" + role="navigation" + /> + </template> + <b-table-column + :custom-search="search" + :label="$t('dataTypeAuthorizations.users')" + field="admin" + searchable + sortable + > + <template #searchable="props"> + <b-input + v-model="props.filters[props.column.field]" + :placeholder="$t('dataTypeAuthorizations.search')" + icon="search" + size="is-normal" + /> + </template> + <template v-slot="props"> + {{ props.row.login }} + </template> + </b-table-column> + <b-table-column + v-if="currentUser.openAdomAdmin" + v-slot="props" + :label="$t('dataTypeAuthorizations.status-auth-application-creator')" + field="administrator" + sortable + > + <template> + <b-checkbox v-model="props.row.openAdomAdmin" @input="selectAdmin($event, props.row)" /> + </template> + </b-table-column> + <b-table-column + v-if="currentUser.authorizedForApplicationCreation" + v-slot="props" + :label="$t('dataTypeAuthorizations.pattern-application-name')" + field="usersAdministrator" + sortable + > + <template> + <b-checkbox v-model="props.row.openAdomAdmin" @input="selectAdmin($event, props.row)" /> + </template> + </b-table-column> + </b-table> + <div class="row"> + <div class="column is-offset-10 is-2"> + <b-button + icon-left="floppy-disk" + icon-pack="far" + type="is-primary is-right" + @click="registerChanges" + > + {{ $t("dataTypeAuthorizations.save") }} + </b-button> + </div> + </div> + </div> + </PageView> +</template> + +<script> +import SubMenu from "@/components/common/SubMenu.vue"; +import PageView from "../common/PageView.vue"; +import { SubMenuPath } from "@/components/common/SubMenu"; +import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; +import { onMounted, ref } from "vue"; +import useArray from "@/composable/components/array"; +import useObject from "@/composable/components/object"; +import app, { i18n } from "@/main"; +import services from "@/composable/services"; + +export default { + name: "AuthorizationsManagementForApplicationUsersView", + components: { + LoadingAnimate, + PageView, + SubMenu, + }, + setup() { + const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); + const { shallowRefArray: listUsersAuth, doChangeArray: changeListUsersAuth } = useArray(); + const { reactiveObject: changes, doChangeObject: changeChanges } = useObject({ + administrator: { add: [], remove: [] }, + applications: {}, + }); + let totalRows = -1; + let currentPage = 1; + const isLoading = ref(false); + const currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); + onMounted(async () => { + await init(); + changeSubMenuPaths([ + new SubMenuPath( + i18n.t("titles.authorization-application-creator-management").toLowerCase(), + () => app.$router.push(`/authorizationsManagementForApplicationCreator`), + () => app.$router.push("/applications") + ), + ]); + }); + + function search(user, search) { + return user.login.match(search); + } + + async function init() { + isLoading.value = true; + changeChanges({ + administrator: { add: [], remove: [] }, + applications: {}, + }); + if (Object.keys(listUsersAuth.value).length === 0) { + changeListUsersAuth(await services.authorizationService.getAuthorizations()); + } + isLoading.value = false; + } + + async function registerChanges() { + await makeChanges(); + await init(); + //window.location.reload(); + } + + async function makeChanges() { + let localeListUsersAuth = listUsersAuth.value; + if (Object.keys(changes.applications).length !== 0) { + for (const userId in changes.applications) { + if (changes.applications[userId].add) { + changes.applications[userId].add.forEach((applicationPattern) => { + services.authorizationService.createAuthorizedRole( + "applicationCreator", + userId, + applicationPattern + ); + if ( + !localeListUsersAuth + .filter((user) => user.id === userId)[0] + .authorizations.includes(applicationPattern) + ) { + localeListUsersAuth + .filter((user) => user.id === userId)[0] + .authorizations.push(applicationPattern); + } + }); + } + } + for (const userId in changes.applications) { + if (changes.applications[userId].remove) { + changes.applications[userId].remove.forEach((applicationPattern) => { + services.authorizationService.revokeAuthorizedRole( + "applicationCreator", + userId, + applicationPattern + ); + if ( + localeListUsersAuth + .filter((user) => user.id === userId)[0] + .authorizations.includes(applicationPattern) + ) { + localeListUsersAuth + .filter((user) => user.id === userId)[0] + .authorizations.filter((pattern) => pattern !== applicationPattern); + } + }); + } + } + changeListUsersAuth(localeListUsersAuth); + } else if (changes.administrator.add.length !== 0) { + changes.administrator.add.forEach((userId) => { + localeListUsersAuth.filter((user) => user.id === userId)[0].openAdomAdmin = true; + localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations = []; + localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations.push(".*"); + services.authorizationService.createAuthorizedRole("openAdomAdmin", userId, ".*"); + }); + } else if (changes.administrator.remove.length !== 0) { + changes.administrator.remove.forEach((userId) => { + localeListUsersAuth.filter((user) => user.id === userId)[0].openAdomAdmin = false; + localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations = []; + services.authorizationService.revokeAuthorizedRole("openAdomAdmin", userId, ".*"); + }); + } + } + + function selectAdmin(isAdmin, user) { + if (isAdmin) { + if (changes.administrator.remove.find((v) => v === user.id)) { + changes.administrator.remove = changes.administrator.remove.filter((v) => v === v.id); + } else if (!changes.administrator.add.find((v) => v === user.id)) { + changes.administrator.add.push(user.id); + } + } else { + if (changes.administrator.add.find((v) => v === user.id)) { + changes.administrator.add = changes.administrator.add.filter((v) => v === v.id); + } else if (!changes.administrator.remove.find((v) => v === user.id)) { + changes.administrator.remove.push(user.id); + } + } + } + + function addApplication(value, user) { + if (changes.applications[user.id]?.remove?.find((v) => v === value)) { + changes.applications[user.id].remove = changes.applications[user.id].remove.filter( + (v) => v !== value + ); + } else { + changes.applications[user.id] = changes.applications[user.id] || {}; + changes.applications[user.id].add = changes.applications[user.id].add || []; + changes.applications[user.id].add.push(value); + } + console.log("addApplication ", changes); + } + + function removeApplication(value, user) { + if (changes.applications[user.id]?.add?.find((v) => v === value)) { + changes.applications[user.id].add = changes.applications[user.id].add.filter( + (v) => v !== value + ); + } else { + changes.applications[user.id] = changes.applications[user.id] || {}; + changes.applications[user.id].remove = changes.applications[user.id].remove || []; + changes.applications[user.id].remove.push(value); + } + } + + function beforeAdding(value) { + return value; + } + + return { + subMenuPaths, + listUsersAuth, + totalRows, + currentPage, + isLoading, + search, + changes, + currentUser, + registerChanges, + makeChanges, + selectAdmin, + addApplication, + removeApplication, + beforeAdding, + }; + }, +}; +</script> +<style lang="scss" scoped> +.icon { + font-size: 0.5rem; +} + +.control.has-icons-left .icon { + top: 5px; +} +</style> diff --git a/ui/src/views/authorizations/ReferencesAuthorizationInfoView.vue b/ui/src/views/authorizations/ReferencesAuthorizationInfoView.vue deleted file mode 100644 index 9c23940e1..000000000 --- a/ui/src/views/authorizations/ReferencesAuthorizationInfoView.vue +++ /dev/null @@ -1,428 +0,0 @@ -<template> - <PageView class="with-submenu"> - <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="application.localName || application.title" - role="navigation" - /> - - <h1 class="title main-title"> - <span>{{ - $t( - authorizationId === "new" - ? `referencesAuthorizations.sub-menu-new-authorization` - : "referencesAuthorizations.sub-menu-modify-authorization", - { authorizationId } - ) - }}</span> - </h1> - <ValidationObserver ref="observer" v-slot="{ handleSubmit }"> - <div class="columns"> - <ValidationProvider - v-slot="{ errors, valid }" - class="column is-half" - name="users" - rules="required" - vid="users" - > - <b-field - :label="$t('referencesAuthorizations.users')" - :message="errors[0]" - :type="{ - 'is-danger': errors && errors.length > 0, - 'is-success': valid, - }" - class="column mb-4" - > - <b-taginput - v-model="selectedlabels" - :data="userLabels" - :open-on-focus="openOnFocus" - :placeholder="$t('referencesAuthorizations.users-placeholder')" - :value="userLabels" - autocomplete - expanded - type="is-dark" - @typing="getFilteredTags" - > - </b-taginput> - <b-tooltip :label="$t('referencesAuthorizations.closeUser')" position="is-bottom"> - <b-button v-model="openOnFocus" icon-left="times-circle"></b-button> - </b-tooltip> - </b-field> - </ValidationProvider> - <ValidationProvider - v-slot="{ errors, valid }" - class="column is-half" - name="users" - rules="required" - vid="users" - > - <b-field - :label="$t('referencesAuthorizations.name')" - :message="errors[0]" - :type="{ - 'is-danger': errors && errors.length > 0, - 'is-success': valid, - }" - class="column mb-4" - > - <b-input v-model="name" /> - </b-field> - </ValidationProvider> - </div> - <LoadingAnimate v-if="isLoading" :size="'is-large'"></LoadingAnimate> - <b-table :data="arrayReferences"> - <b-table-column :label="$t('referencesManagement.references')" v-slot="props"> - {{ props.row.dataNameLocal || props.row.label }} - </b-table-column> - <b-table-column :label="$t('referencesManagement.admin')" v-slot="props"> - <b-checkbox-button type="is-light" v-model="props.row.isAdmin"> - <b-icon - :icon="props.row.isAdmin ? 'square-check' : 'square'" - type="is-primary" - class="clickable" - pack="far" - size="is-medium" - /> - </b-checkbox-button> - </b-table-column> - <b-table-column :label="$t('referencesManagement.gestion')" v-slot="props"> - <b-checkbox-button v-model="props.row.isManage"> - <b-icon - :icon="props.row.isManage ? 'square-check' : 'square'" - type="is-primary" - class="clickable" - pack="far" - size="is-medium" - /> - </b-checkbox-button> - </b-table-column> - </b-table> - - <div class="buttons"> - <b-button - icon-left="plus" - style="margin-bottom: 10px; margin-top: 10px" - type="is-dark" - @click="handleSubmit(createOrUpdateAuthorization)" - > - {{ - authorization - ? $t("referencesAuthorizations.modify") - : $t("referencesAuthorizations.create") - }} - </b-button> - </div> - </ValidationObserver> - </PageView> -</template> - -<script> -import CollapsibleTree from "@/components/common/CollapsibleTree.vue"; -import SubMenu, { SubMenuPath } from "@/components/common/SubMenu.vue"; -import { ValidationObserver, ValidationProvider } from "vee-validate"; -import { Component, Prop, Vue } from "vue-property-decorator"; -import PageView from "../common/PageView.vue"; -import { ApplicationResult } from "@/model/ApplicationResult"; -import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; -import services from "@/composable/services"; - -@Component({ - components: { - LoadingAnimate, - PageView, - SubMenu, - CollapsibleTree, - ValidationObserver, - ValidationProvider, - }, -}) -export default class ReferencesAuthorizationInfoView extends Vue { - @Prop() dataTypeId; - @Prop() applicationName; - @Prop({ default: "new" }) authorizationId; - - __DEFAULT__ = "__DEFAULT__"; - dataService = services.dataService; - openOnFocus = true; - authorizationService = services.authorizationService; - internationalisationService = services.internationalisationService; - alertService = services.alertService; - applicationService = services.applicationService; - userPreferencesService = services.userPreferencesService; - authorization = {}; - publicAuthorizations = []; - ownAuthorizations = []; - ownAuthorizationsColumnsByPath = {}; - authorizations = []; - users = []; - name = null; - dataGroups = []; - authorizationScopes = []; - application = new ApplicationResult(); - selectedlabels = []; - userLabels = []; - authReferences = {}; - subMenuPaths = []; - selectedUsers = []; - filteredTags = []; - arrayReferences = []; - isLoading = false; - - getColumnTitle(column) { - if (column.display) { - return ( - (column.internationalizationName && column.internationalizationName[this.$i18n.locale]) || - column.title - ); - } - } - - async created() { - await this.init(); - this.chosenLocale = this.userPreferencesService.getUserPrefLocale(); - this.subMenuPaths = [ - new SubMenuPath( - this.$t("referencesManagement.references").toLowerCase(), - () => this.$router.push(`/applications/${this.applicationName}`), - () => this.$router.push("/applications") - ), - new SubMenuPath( - this.$t(`referencesAuthorizations.sub-menu-reference-authorizations`), - () => { - this.$router.push(`/applications/${this.applicationName}/references/authorizations`); - }, - () => this.$router.push(`/applications/${this.applicationName}/references`) - ), - new SubMenuPath( - this.$t( - this.authorizationId === "new" - ? `referencesAuthorizations.sub-menu-new-authorization` - : "referencesAuthorizations.sub-menu-modify-authorization", - { authorizationId: this.authorizationId } - ), - () => {}, - () => { - this.$router.push(`/applications/${this.applicationName}/references/authorizations`); - } - ), - ]; - let listAllUsers = await services.authorizationService.getAuthorizationGrantableInfos( - this.applicationName - ); - this.changeReferenceScopes(listAllUsers.referenceScopes); - } - - mounted() {} - - showDetail(parent) { - for (const child in parent) { - if (parent[child].children.length !== 0) { - parent[child] = { ...parent[child], showDetailIcon: true }; - } - parent[child] = { ...parent[child], showDetailIcon: false }; - } - } - - async init() { - this.isLoading = true; - try { - this.application = await this.applicationService.getApplication(this.applicationName, [ - "CONFIGURATION", - "REFERENCETYPE", - ]); - let params = { - userId: null, - }; - if ("new" !== this.authorizationId) { - params = { ...params, authorizationId: this.authorizationId }; - } else { - params = { ...params, limit: 0 }; - } - let authorizations = await this.authorizationService.getReferencesAuthorizations( - this.applicationName, - params - ); - let authorizationForUser = authorizations.authorizationsForUser; - this.users = authorizations.users; - this.authorizations = authorizations; - this.authorization = authorizations.authorizationResults?.[0]; - this.name = this.authorization?.name; - let configuration = Object.values( - this.internationalisationService.treeReferenceName(this.application) - ); - let arrayReferences = []; - for (const configurationCode in configuration) { - if ( - authorizationForUser.isAdministrator || - authorizationForUser.authorizationResults?.admin?.includes( - configuration[configurationCode].label - ) - ) { - let isAdmin = - this.authorization && - (this.authorization?.authorizations?.admin || []).includes( - configuration[configurationCode].label - ); - let isManage = - this.authorization && - (this.authorization?.authorizations?.manage || []).includes( - configuration[configurationCode].label - ); - arrayReferences[configurationCode] = { - ...configuration[configurationCode], - isAdmin, - isManage, - }; - } - } - this.arrayReferences = arrayReferences; - - this.application = { - ...this.internationalisationService.mergeInternationalization(this.application), - localReferencesNames: Object.values( - this.internationalisationService.treeReferenceName(this.application) - ), - }; - let currentAuthorizationUsers = (this.authorization && this.authorization.users) || []; - this.selectedUsers = this.users - .filter((user) => { - return currentAuthorizationUsers.find((u) => { - return u.id === user.id; - }); - }) - .map((user) => user.id); - for (let i = 0; i < this.selectedUsers.length; i++) { - for (let j = 0; j < this.users.length; j++) { - if (this.selectedUsers[i] === this.users[j].id) { - this.selectedlabels.push(this.users[j].label); - } - } - } - for (let i = 0; i < this.users.length; i++) { - if (!this.selectedlabels.includes(this.users[i].label)) - this.userLabels.push(this.users[i].label); - } - this.userLabels.sort(); - } catch (error) { - this.alertService.toastServerError(error); - } - this.isLoading = false; - } - - getFilteredTags(text) { - this.userLabels = []; - this.filteredTags = this.users.filter((option) => { - return option.label.toString().toLowerCase().indexOf(text.toLowerCase()) >= 0; - }); - for (let i = 0; i < this.filteredTags.length; i++) { - if (!this.selectedlabels.includes(this.filteredTags[i].label)) { - this.userLabels.push(this.filteredTags[i].label); - } - } - this.userLabels.sort(); - } - - async createOrUpdateAuthorization() { - try { - let users = this.selectedlabels - .reduce((acc, label) => { - acc.push(this.users.find((u) => u.label === label)); - return acc; - }, []) - .map((u) => u.id); - let references = Object.values(this.arrayReferences).reduce((acc, ref) => { - if (ref.isAdmin) { - let isAdmin = acc.admin || []; - isAdmin.push(ref.label); - acc.admin = isAdmin; - } - if (ref.isManage) { - let isManage = acc.manage || []; - isManage.push(ref.label); - acc.manage = isManage; - } - return acc; - }, {}); - let authorization = { - usersId: users, - applicationNameOrId: this.applicationName, - uuid: "new" === this.authorizationId ? null : this.authorizationId, - name: this.name, - references: references, - }; - await this.authorizationService.createOrUpdateReferencesAuthorization(authorization); - await this.$router.push(`/applications/${this.applicationName}/references/authorizations`); - } catch (error) { - this.alertService.toastServerError(error); - } - } -} -</script> - -<style lang="scss"> -.DataTypeAuthorizationInfoView-periods-container { - .field-body .field.has-addons { - display: flex; - flex-direction: column; - } -} - -.DataTypeAuthorizationInfoView-radio-field { - height: 40px; - - &.b-radio { - .control-label { - display: flex; - align-items: center; - width: 100%; - } - } -} - -.DataTypeAuthorizationInfoView-radio-label { - width: 200px; -} - -.collapse-content .card-content .content .CollapsibleTree-header .CollapsibleTree-buttons { - visibility: hidden; - display: none; -} - -.leaf label { - font-weight: lighter; - font-style: italic; - color: #2c3e50; -} - -.folder label { - font-weight: bolder; - color: $dark; -} - -.rows .card-content .row.label .columns .column { - padding: 0 0 0 10px; - border-bottom: 2px solid; - border-color: $dark; - margin-bottom: 12px; -} - -ul li.card-content { - background-color: rgba(0, 0, 0, 0.05); -} - -a { - color: $dark; -} - -.b-checkbox.checkbox.button, -.b-checkbox.checkbox.button:hover, -.b-checkbox.checkbox.button:active, -.b-checkbox.checkbox.button:focus { - border-color: transparent; - background-color: transparent; - box-shadow: none; -} -</style> -- GitLab From 1362e7f72282bb23b59cf4ef46284da2317bb03f Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 31 Oct 2024 16:50:06 +0100 Subject: [PATCH 39/52] =?UTF-8?q?traduction=20et=20mise=20en=20place=20de?= =?UTF-8?q?=20la=20d=C3=A9l=C3=A9gation=20de=20droit=20des=20utilisateur?= =?UTF-8?q?=20pour=20une=20application?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/common/provider/FieldsForm.vue | 17 +- ui/src/composable/applications/useFunction.js | 11 + ui/src/locales/en.json | 4 + ui/src/locales/fr.json | 4 + ui/src/main.js | 4 +- .../application/ApplicationCreationView.vue | 27 +- .../views/application/ApplicationInfoView.vue | 11 + ...tionsManagementForApplicationUsersView.vue | 206 ++++----- .../AuthorizationsRightsRequestInfoView.vue | 418 +++++++++--------- ui/src/views/common/MenuView.vue | 2 +- 10 files changed, 360 insertions(+), 344 deletions(-) diff --git a/ui/src/components/common/provider/FieldsForm.vue b/ui/src/components/common/provider/FieldsForm.vue index d2a5bf96f..88cacaf1f 100644 --- a/ui/src/components/common/provider/FieldsForm.vue +++ b/ui/src/components/common/provider/FieldsForm.vue @@ -88,7 +88,6 @@ import OreInputReference from "@/components/common/provider/OreInputReference"; import { ValidationObserver } from "vee-validate"; import { InternationalisationService } from "@/services/InternationalisationService"; import { onMounted, ref, watch } from "vue"; -import app from "@/main"; import services from "@/composable/services"; export default { @@ -113,12 +112,16 @@ export default { format: Object, description: String, fields: Object, - comment: String, + comment: { + type: String, + default: "", + }, showComment: Boolean, }, setup(props, ctx) { const fields = ref(props.fields); const referencesScopes = ref({}); + const formRef = ref(null); watch( () => props.fields, (newValue) => { @@ -156,20 +159,14 @@ export default { } function updateComment(event) { - app.$refs.form && - app.$refs.form.validate().then((v) => { - if (v) { - ctx.emit("update:comment", { comment: event, valid: true }); - } else { - ctx.emit("update:comment", { comment: event, valid: false }); - } - }); + ctx.emit("update:comment", { comment: event, valid: event !== "" }); } return { updateComment, updateValue, onSubmit, referencesScopes, + formRef, }; }, methods: {}, diff --git a/ui/src/composable/applications/useFunction.js b/ui/src/composable/applications/useFunction.js index 5bbb15199..c54a40dc9 100644 --- a/ui/src/composable/applications/useFunction.js +++ b/ui/src/composable/applications/useFunction.js @@ -146,6 +146,16 @@ export function useRedirections(application = { authorizations: [] }) { return downloadCharteApplication(application.id); } } + function authorizationsManagementForApplicationUsers() { + if (isCharteSigned(application)) { + app.$router.push( + `/applications/${application.name}/authorizationsManagementForApplicationUsers` + ); + return false; + } else { + return downloadCharteApplication(application.id); + } + } // rights @@ -194,5 +204,6 @@ export function useRedirections(application = { authorizations: [] }) { downloadApplicationUploadBundle, downloadApplicationUploadBundleWithData, landingPageApplication, + authorizationsManagementForApplicationUsers, }; } diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json index 6d0800100..20f7978fc 100644 --- a/ui/src/locales/en.json +++ b/ui/src/locales/en.json @@ -200,6 +200,8 @@ }, "pattern-application-name": "Allowed naming patterns for application creation", "status-auth-application-creator": "Administration of application creation", + "status-auth-application-manager": "Right to manage the application", + "status-auth-user-manager": "Right to manage application users", "authorization-user-creator-management": "You are the administrator of the creation of the application", "interval": "Search for interval", "from": "from", @@ -222,6 +224,7 @@ "period": "Authorization period", "publicAuthorization": "Autorisation Publique", "request": "Request authorizations", + "delegation-management-right": "Delegation of application management rights", "revoke": "Revoke", "data": "Datas", "save": "Save change", @@ -960,6 +963,7 @@ "application-update": "Application update {name}", "applications-page": "My applications", "authorization-application-creator-management": "Management of application creation rights", + "authorization-application-management": "Managing management rights for the application: {name}", "data-type-authorizations": "Managing {dataType} permissions by {type}", "data-type-new-authorization": "New authorization", "data-type-request-authorization": "Request authorizations", diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json index 25d4500ce..596e1cf12 100644 --- a/ui/src/locales/fr.json +++ b/ui/src/locales/fr.json @@ -201,6 +201,8 @@ }, "pattern-application-name": "Pattern de nommage autorisés pour la création d'applications", "status-auth-application-creator": "Administration de la création d'applications", + "status-auth-application-manager": "Droit de gestion de l'application", + "status-auth-user-manager": "Droit de gestion des utilisateurs de l'application", "authorization-user-creator-management": "Vous êtes administrateur de la création de l'application", "interval": "Recherche par intervalle", "from": "de", @@ -223,6 +225,7 @@ "period": "Période d'autorisation", "publicAuthorization": "Autorisation Publique", "request": "Voir les demandes d'autorisations", + "delegation-management-right": "Délégation droit de gestion application", "revoke": "Révoquer", "data": "Données", "save": "Enregister modification", @@ -969,6 +972,7 @@ "application-update": "Mise à jour de l'application {name}", "applications-page": "Mes applications", "authorization-application-creator-management": "Gestion des droits de création des applications", + "authorization-application-management": "Gestion des droits de gestion pour l'application : {name}", "data-type-authorizations": "Gestion des autorisations de {dataType} par {type}", "data-type-new-authorization": "Nouvelle autorisation", "data-type-request-authorization": "Demande d'autorisations", diff --git a/ui/src/main.js b/ui/src/main.js index bb98eaf60..db8801a46 100644 --- a/ui/src/main.js +++ b/ui/src/main.js @@ -82,6 +82,7 @@ import { faArrowRight, faExchangeAlt, faUserShield, + faCity, } from "@fortawesome/free-solid-svg-icons"; import { faCalendar as farCalendar, @@ -194,7 +195,8 @@ library.add( faBars, faHome, faToolbox, - faCog + faCog, + faCity ); Vue.component("vue-fontawesome", FontAwesomeIcon); diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue index 3eaf91262..9ae6c6c16 100644 --- a/ui/src/views/application/ApplicationCreationView.vue +++ b/ui/src/views/application/ApplicationCreationView.vue @@ -126,13 +126,13 @@ ></b-input> </b-field> </div> - <div class="buttons" v-if="errorsMessages.length !== 0"> + <div v-if="errorsMessages.length !== 0" class="buttons"> <ShowErrors :errors-messages="errorsMessages" :errors-messages-length="errorsMessages.length" ></ShowErrors> </div> - <div class="buttons" v-else> + <div v-else class="buttons"> <b-button v-if="btnUpdateConfig || applicationVersion || applicationName" :disabled=" @@ -267,14 +267,33 @@ export default { window.open(routeData.href, "_blank"); } + function testStringWithRegexArray(str, regexArray) { + return regexArray.some((regexStr) => { + // Convertir la chaîne en objet RegExp + const regex = new RegExp(regexStr); + // Tester la chaîne + return regex.test(str); + }); + } + function parseResultChunck(chunk, caller) { const response = chunk.result; if ("validate" === caller && response.name) { + console.log( + testStringWithRegexArray( + response.configuration.applicationDescription.name.toLowerCase(), + currentUser.authorizations + ) + ); if ( response.configuration.applicationDescription.name.length < 44 && - currentUser.authorizations.includes( + (currentUser.authorizations.includes( response.configuration.applicationDescription.name.toLowerCase() - ) + ) || + testStringWithRegexArray( + response.configuration.applicationDescription.name.toLowerCase(), + currentUser.authorizations + )) ) { applicationConfig.name = response.configuration.applicationDescription.name.toLowerCase(); applicationConfig.version = response.configuration.applicationDescription.version.version; diff --git a/ui/src/views/application/ApplicationInfoView.vue b/ui/src/views/application/ApplicationInfoView.vue index 0908b68b5..5b189be4b 100644 --- a/ui/src/views/application/ApplicationInfoView.vue +++ b/ui/src/views/application/ApplicationInfoView.vue @@ -86,6 +86,7 @@ export default { displayAdditionalFilesManagement, showAdditionalFilesManagementRights, requestRights, + authorizationsManagementForApplicationUsers, showRequestRights, } = useRedirections(application); @@ -152,6 +153,7 @@ export default { displayDataSetManagement, showDataRights, requestRights, + authorizationsManagementForApplicationUsers, showRequestRights, displayAdditionalFilesManagement, showAdditionalFilesManagementRights, @@ -394,6 +396,15 @@ export default { > {{ $t("dataTypeAuthorizations.request") }} </b-button> + <b-button + disabled + outlined + icon-left="toolbox" + type="is-primary" + @click="authorizationsManagementForApplicationUsers(application.name)" + > + {{ $t("dataTypeAuthorizations.delegation-management-right") }} + </b-button> </div> </b-tab-item> </b-tabs> diff --git a/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue b/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue index 17b6b7df6..0dc21b4d6 100644 --- a/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue +++ b/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue @@ -3,15 +3,16 @@ <SubMenu :aria-label="$t('menu.aria-sub-menu')" :paths="subMenuPaths" - :root="$t('titles.applications-page')" + :root="application.localName" role="navigation" /> <h1 class="title main-title"> - {{ $t("titles.authorization-application-creator-management") }} + {{ $t("titles.authorization-application-management", { name: application.localName }) }} </h1> <div class="rows"> <LoadingAnimate v-if="isLoading" :size="'is-large'"></LoadingAnimate> <b-table + v-else :current-page="currentPage" :data="listUsersAuth" class="row" @@ -55,25 +56,33 @@ </template> </b-table-column> <b-table-column - v-if="currentUser.openAdomAdmin" + v-if="currentUser.applicationManager || currentUser.authorizedForApplicationCreation" v-slot="props" - :label="$t('dataTypeAuthorizations.status-auth-application-creator')" - field="administrator" + :label="$t('dataTypeAuthorizations.status-auth-application-manager')" + field="applicationManager" sortable > <template> - <b-checkbox v-model="props.row.openAdomAdmin" @input="selectAdmin($event, props.row)" /> + <b-checkbox + v-model="props.row.applicationManager" + :disabled="!currentUser.applicationManager" + @input="selectManagementApplication($event, props.row, 'applicationManager')" + /> </template> </b-table-column> <b-table-column - v-if="currentUser.authorizedForApplicationCreation" + v-if="currentUser.userManager || currentUser.authorizedForApplicationCreation" v-slot="props" - :label="$t('dataTypeAuthorizations.pattern-application-name')" - field="usersAdministrator" + :label="$t('dataTypeAuthorizations.status-auth-user-manager')" + field="userManager" sortable > <template> - <b-checkbox v-model="props.row.openAdomAdmin" @input="selectAdmin($event, props.row)" /> + <b-checkbox + v-model="props.row.userManager" + :disabled="!currentUser.userManager" + @input="selectManagementApplication($event, props.row, 'userManager')" + /> </template> </b-table-column> </b-table> @@ -103,6 +112,7 @@ import useArray from "@/composable/components/array"; import useObject from "@/composable/components/object"; import app, { i18n } from "@/main"; import services from "@/composable/services"; +import { ApplicationResult } from "@/model/ApplicationResult"; export default { name: "AuthorizationsManagementForApplicationUsersView", @@ -111,12 +121,18 @@ export default { PageView, SubMenu, }, - setup() { + props: { + applicationName: String, + }, + setup(props) { const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); const { shallowRefArray: listUsersAuth, doChangeArray: changeListUsersAuth } = useArray(); + const { reactiveObject: application, doChangeObject: changeApplication } = useObject( + new ApplicationResult() + ); const { reactiveObject: changes, doChangeObject: changeChanges } = useObject({ - administrator: { add: [], remove: [] }, - applications: {}, + applicationManager: { add: [], remove: [] }, + usersManager: { add: [], remove: [] }, }); let totalRows = -1; let currentPage = 1; @@ -126,9 +142,14 @@ export default { await init(); changeSubMenuPaths([ new SubMenuPath( - i18n.t("titles.authorization-application-creator-management").toLowerCase(), - () => app.$router.push(`/authorizationsManagementForApplicationCreator`), - () => app.$router.push("/applications") + i18n + .t("titles.authorization-application-management", { name: application.localName }) + .toLowerCase(), + () => + app.$router.push( + `/applications/${props.applicationName}/authorizationsManagementForApplicationUsers` + ), + () => app.$router.push(`/applications/${props.applicationName}`) ), ]); }); @@ -140,12 +161,19 @@ export default { async function init() { isLoading.value = true; changeChanges({ - administrator: { add: [], remove: [] }, - applications: {}, + applicationManager: { add: [], remove: [] }, + usersManager: { add: [], remove: [] }, }); if (Object.keys(listUsersAuth.value).length === 0) { changeListUsersAuth(await services.authorizationService.getAuthorizations()); } + changeApplication( + await services.applicationService.getApplication(props.applicationName, [ + "CONFIGURATION", + "DATATYPE", + "REFERENCETYPE", + ]) + ); isLoading.value = false; } @@ -157,111 +185,64 @@ export default { async function makeChanges() { let localeListUsersAuth = listUsersAuth.value; - if (Object.keys(changes.applications).length !== 0) { - for (const userId in changes.applications) { - if (changes.applications[userId].add) { - changes.applications[userId].add.forEach((applicationPattern) => { - services.authorizationService.createAuthorizedRole( - "applicationCreator", - userId, - applicationPattern - ); - if ( - !localeListUsersAuth - .filter((user) => user.id === userId)[0] - .authorizations.includes(applicationPattern) - ) { - localeListUsersAuth - .filter((user) => user.id === userId)[0] - .authorizations.push(applicationPattern); - } - }); - } - } - for (const userId in changes.applications) { - if (changes.applications[userId].remove) { - changes.applications[userId].remove.forEach((applicationPattern) => { - services.authorizationService.revokeAuthorizedRole( - "applicationCreator", - userId, - applicationPattern - ); - if ( - localeListUsersAuth - .filter((user) => user.id === userId)[0] - .authorizations.includes(applicationPattern) - ) { - localeListUsersAuth - .filter((user) => user.id === userId)[0] - .authorizations.filter((pattern) => pattern !== applicationPattern); - } - }); - } - } - changeListUsersAuth(localeListUsersAuth); - } else if (changes.administrator.add.length !== 0) { - changes.administrator.add.forEach((userId) => { - localeListUsersAuth.filter((user) => user.id === userId)[0].openAdomAdmin = true; - localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations = []; - localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations.push(".*"); - services.authorizationService.createAuthorizedRole("openAdomAdmin", userId, ".*"); + if (changes.applicationManager.add.length !== 0) { + changes.applicationManager.add.forEach((userId) => { + localeListUsersAuth.filter((user) => user.id === userId)[0].applicationManager = true; + services.authorizationService.createAuthorizedRole("applicationManager", userId); }); - } else if (changes.administrator.remove.length !== 0) { - changes.administrator.remove.forEach((userId) => { - localeListUsersAuth.filter((user) => user.id === userId)[0].openAdomAdmin = false; - localeListUsersAuth.filter((user) => user.id === userId)[0].authorizations = []; - services.authorizationService.revokeAuthorizedRole("openAdomAdmin", userId, ".*"); + } else if (changes.applicationManager.remove.length !== 0) { + changes.applicationManager.remove.forEach((userId) => { + localeListUsersAuth.filter((user) => user.id === userId)[0].applicationManager = false; + services.authorizationService.revokeAuthorizedRole("applicationManager", userId); + }); + } + if (changes.usersManager.add.length !== 0) { + changes.usersManager.add.forEach((userId) => { + localeListUsersAuth.filter((user) => user.id === userId)[0].usersManager = true; + services.authorizationService.createAuthorizedRole("usersManager", userId); + }); + } else if (changes.usersManager.remove.length !== 0) { + changes.usersManager.remove.forEach((userId) => { + localeListUsersAuth.filter((user) => user.id === userId)[0].usersManager = false; + services.authorizationService.revokeAuthorizedRole("usersManager", userId); }); } } - function selectAdmin(isAdmin, user) { - if (isAdmin) { - if (changes.administrator.remove.find((v) => v === user.id)) { - changes.administrator.remove = changes.administrator.remove.filter((v) => v === v.id); - } else if (!changes.administrator.add.find((v) => v === user.id)) { - changes.administrator.add.push(user.id); + function selectManagementApplication(value, user, type) { + if (value && type === "usersManager") { + if (changes.usersManager.remove.find((v) => v === user.id)) { + changes.usersManager.remove = changes.usersManager.remove.filter((v) => v === v.id); + } else if (!changes.usersManager.add.find((v) => v === user.id)) { + changes.usersManager.add.push(user.id); } - } else { - if (changes.administrator.add.find((v) => v === user.id)) { - changes.administrator.add = changes.administrator.add.filter((v) => v === v.id); - } else if (!changes.administrator.remove.find((v) => v === user.id)) { - changes.administrator.remove.push(user.id); + } else if (!value && type === "usersManager") { + if (changes.usersManager.add.find((v) => v === user.id)) { + changes.usersManager.add = changes.usersManager.add.filter((v) => v === v.id); + } else if (!changes.usersManager.remove.find((v) => v === user.id)) { + changes.usersManager.remove.push(user.id); } } - } - - function addApplication(value, user) { - if (changes.applications[user.id]?.remove?.find((v) => v === value)) { - changes.applications[user.id].remove = changes.applications[user.id].remove.filter( - (v) => v !== value - ); - } else { - changes.applications[user.id] = changes.applications[user.id] || {}; - changes.applications[user.id].add = changes.applications[user.id].add || []; - changes.applications[user.id].add.push(value); - } - console.log("addApplication ", changes); - } - - function removeApplication(value, user) { - if (changes.applications[user.id]?.add?.find((v) => v === value)) { - changes.applications[user.id].add = changes.applications[user.id].add.filter( - (v) => v !== value - ); - } else { - changes.applications[user.id] = changes.applications[user.id] || {}; - changes.applications[user.id].remove = changes.applications[user.id].remove || []; - changes.applications[user.id].remove.push(value); + if (value && type === "applicationManager") { + if (changes.applicationManager.remove.find((v) => v === user.id)) { + changes.applicationManager.remove = changes.applicationManager.remove.filter( + (v) => v === v.id + ); + } else if (!changes.applicationManager.add.find((v) => v === user.id)) { + changes.applicationManager.add.push(user.id); + } + } else if (!value && type === "applicationManager") { + if (changes.applicationManager.add.find((v) => v === user.id)) { + changes.applicationManager.add = changes.applicationManager.add.filter((v) => v === v.id); + } else if (!changes.applicationManager.remove.find((v) => v === user.id)) { + changes.applicationManager.remove.push(user.id); + } } } - function beforeAdding(value) { - return value; - } - return { subMenuPaths, + application, listUsersAuth, totalRows, currentPage, @@ -271,10 +252,7 @@ export default { currentUser, registerChanges, makeChanges, - selectAdmin, - addApplication, - removeApplication, - beforeAdding, + selectManagementApplication, }; }, }; diff --git a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue index 1de8c5d70..ffc34eeb8 100644 --- a/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue +++ b/ui/src/views/authorizations/AuthorizationsRightsRequestInfoView.vue @@ -1,53 +1,53 @@ <template> <PageView class="with-submenu"> <SubMenu - :aria-label="$t('menu.aria-sub-menu')" - :paths="subMenuPaths" - :root="application.localName || application.title" - role="navigation" + :aria-label="$t('menu.aria-sub-menu')" + :paths="subMenuPaths" + :root="application.localName || application.title" + role="navigation" /> <h1 class="title main-title"> <span>{{ - $t("dataTypeAuthorizations.title", { - label: currentUser[0] ? currentUser[0].label : currentUser.label, - }) - }}</span> + $t("dataTypeAuthorizations.title", { + label: currentUser[0] ? currentUser[0].label : currentUser.label, + }) + }}</span> </h1> <LoadingAnimate v-if="isLoading" :size="'is-medium'"></LoadingAnimate> <ValidationObserver v-else ref="observer" v-slot="{ handleSubmit }"> <FieldsForm - :application="application" - :comment="description" - :description="description" - :fields="fields" - :format="format" - :showComment="Object.keys(format).length === 0" - pathForKey="rightsrequest.fields" - @update:fields="updateFields" - @update:comment="updateComment" + :application="application" + :comment="comment" + :description="description" + :fields="fields" + :format="format" + :showComment="Object.keys(format).length === 0" + pathForKey="rightsrequest.fields" + @update:fields="updateFields" + @update:comment="updateComment" > </FieldsForm> <b-collapse - :open="false" - animation="slide" - aria-id="tableCurrentAuth" - class="card" - style="box-shadow: none" + :open="false" + animation="slide" + aria-id="tableCurrentAuth" + class="card" + style="box-shadow: none" > <template #trigger="detail"> <div - :aria-expanded="!detail.open" - aria-controls="tableCurrentAuth" - class="card-header" - role="button" - style="box-shadow: none; border-bottom: thick double #009d9d" + :aria-expanded="!detail.open" + aria-controls="tableCurrentAuth" + class="card-header" + role="button" + style="box-shadow: none; border-bottom: thick double #009d9d" > <p class="card-header-title">Demande des droits par références ou datatypes</p> <a class="card-header-icon"> <b-icon - :icon="detail.open ? 'chevron-up' : 'chevron-down'" - type="is-primary" + :icon="detail.open ? 'chevron-up' : 'chevron-down'" + type="is-primary" ></b-icon> </a> </div> @@ -55,18 +55,18 @@ <div class="card-content"> <div> <AuthorizationTableForDatatype - :application="application" - :application-name="applicationName" - :authorization-id="authorizationId" - :authorizations="authorizations" - :current-authorization="currentAuthorization" - :datatypes="datatypes" - :has-dependencies="hasDependencies" - :initialized="initialized" - :list-column-name="listColumnName" - :references="references" - :references-scopes="referencesScopes" - @update:authorization="updateAuthorization" + :application="application" + :application-name="applicationName" + :authorization-id="authorizationId" + :authorizations="authorizations" + :current-authorization="currentAuthorization" + :datatypes="datatypes" + :has-dependencies="hasDependencies" + :initialized="initialized" + :list-column-name="listColumnName" + :references="references" + :references-scopes="referencesScopes" + @update:authorization="updateAuthorization" > </AuthorizationTableForDatatype> </div> @@ -74,29 +74,29 @@ </b-collapse> <div class="buttons"> <b-button - v-if="canCreateApplication" - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(confirmGrantAuthorization)" + v-if="canCreateApplication" + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(confirmGrantAuthorization)" > {{ $t("dataTypeAuthorizations.grantRequests") }} </b-button> <b-button - v-else-if="'new' === authorizationId" - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(createRequest)" + v-else-if="'new' === authorizationId" + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(createRequest)" > {{ $t("dataTypeAuthorizations.showRequests") }} </b-button> <b-button - v-else - icon-left="plus" - style="margin-bottom: 10px" - type="is-dark" - @click="handleSubmit(createRequest)" + v-else + icon-left="plus" + style="margin-bottom: 10px" + type="is-dark" + @click="handleSubmit(createRequest)" > {{ $t("dataTypeAuthorizations.modifyRequests") }} </b-button> @@ -106,19 +106,19 @@ </template> <script> -import {ValidationObserver} from "vee-validate"; -import SubMenu, {SubMenuPath} from "@/components/common/SubMenu.vue"; +import { ValidationObserver } from "vee-validate"; +import SubMenu, { SubMenuPath } from "@/components/common/SubMenu.vue"; import PageView from "../common/PageView.vue"; -import {ApplicationResult} from "@/model/ApplicationResult"; +import { ApplicationResult } from "@/model/ApplicationResult"; import AuthorizationTableForDatatype from "@/components/common/AuthorizationTableForDatatype.vue"; import FieldsForm from "@/components/common/provider/FieldsForm.vue"; import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; import services from "@/composable/services"; -import {computed, inject, onMounted, ref, watch} from "vue"; +import { computed, inject, onMounted, ref, watch } from "vue"; import useObject from "@/composable/components/object"; -import app, {i18n} from "@/main"; +import app, { i18n } from "@/main"; import useArray from "@/composable/components/array"; -import {getListColumnName} from "@/composable/authorization/grantableInfos"; +import { getListColumnName } from "@/composable/authorization/grantableInfos"; export default { name: "AuthorizationsRightsRequestInfoView", @@ -141,30 +141,31 @@ export default { }, setup(props) { const loadApplications = inject("application:loadApplications"); - let {reactiveObject: application, doChangeObject: changeApplication} = useObject( - new ApplicationResult() + let { reactiveObject: application, doChangeObject: changeApplication } = useObject( + new ApplicationResult() ); - const {shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths} = useArray(); + const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); const isLoading = ref(false); const authenticatedUser = services.loginService.getAuthenticatedUser(); const canCreateApplication = authenticatedUser.isApplicationCreator(application); - const datatypes = ref({withScope: {}, withoutScope: {}}); - const references = ref({withScope: {}, withoutScope: {}}); - const {reactiveObject: datas} = useObject({}); - const {reactiveObject: configuration, doChangeObject: changeConfiguration} = useObject({}); - const {reactiveObject: authorization, doChangeObject: changeAuthorization} = useObject({}); - const {reactiveObject: format, doChangeObject: changeFormat} = useObject({}); - const {reactiveObject: fields, doChangeObject: changeFields} = useObject({}); - const {reactiveObject: authorizations} = useObject({}); + const datatypes = ref({ withScope: {}, withoutScope: {} }); + const references = ref({ withScope: {}, withoutScope: {} }); + const { reactiveObject: datas } = useObject({}); + const { reactiveObject: configuration, doChangeObject: changeConfiguration } = useObject({}); + const { reactiveObject: authorization, doChangeObject: changeAuthorization } = useObject({}); + const { reactiveObject: format, doChangeObject: changeFormat } = useObject({}); + const { reactiveObject: fields, doChangeObject: changeFields } = useObject({}); + const { reactiveObject: authorizations } = useObject({}); const currentAuthorization = ref({}); const listColumnName = ref({}); const initialized = ref(false); const referencesScopes = ref({}); let valid = false; - const {reactiveObject: period} = useObject(); + const { reactiveObject: period } = useObject(); let startDate = ref(null); let endDate = ref(null); const description = ref(""); + const comment = ref(""); const dependencies = ref({}); const currentUser = ref({}); const hasDependencies = computed(() => { @@ -246,111 +247,85 @@ export default { if (canCreateApplication) { changeSubMenuPaths([ new SubMenuPath( - i18n.t("menu.accueil").toLowerCase(), - () => app.$router.push(`/applications/${props.applicationName}`), - () => app.$router.push(`/applications`) + i18n.t("menu.accueil").toLowerCase(), + () => app.$router.push(`/applications/${props.applicationName}`), + () => app.$router.push(`/applications`) ), new SubMenuPath( - i18n.t(`dataTypeAuthorizations.sub-menu-request-authorization`), - () => { - app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); - }, - () => app.$router.push(`/applications/${props.applicationName}`) + i18n.t(`dataTypeAuthorizations.sub-menu-request-authorization`), + () => { + app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + }, + () => app.$router.push(`/applications/${props.applicationName}`) ), new SubMenuPath( - i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), - () => { - }, - () => { - app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); - } + i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), + () => {}, + () => { + app.$router.push(`/applications/${props.applicationName}/authorizationsRequest`); + } ), ]); } else { changeSubMenuPaths([ new SubMenuPath( - i18n.t("menu.accueil").toLowerCase(), - () => app.$router.push(`/applications/${props.applicationName}`), - () => app.$router.push(`/applications/${props.applicationName}`) + i18n.t("menu.accueil").toLowerCase(), + () => app.$router.push(`/applications/${props.applicationName}`), + () => app.$router.push(`/applications/${props.applicationName}`) ), new SubMenuPath( - i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), - () => { - }, - () => { - app.$router.push(`/applications/${props.applicationName}`); - } + i18n.t(`dataTypeAuthorizations.sub-menu-new-authorization`), + () => {}, + () => { + app.$router.push(`/applications/${props.applicationName}`); + } ), ]); } datatypes.value = { withScope: Object.keys(application.dataTypes) - .filter((name) => application.configuration.dataDescription[name].authorization) - .reduce((acc, dataType) => { - acc[dataType] = { - id: dataType, - name: - services.internationalisationService.localeReferenceNames(dataType, application) || - dataType, - }; - return acc; - }, {}), + .filter((name) => application.configuration.dataDescription[name].authorization) + .reduce((acc, dataType) => { + acc[dataType] = { + id: dataType, + name: + services.internationalisationService.localeReferenceNames(dataType, application) || + dataType, + }; + return acc; + }, {}), withoutScope: Object.keys(application.dataTypes) - .filter((name) => application.configuration.dataDescription[name].authorization === null) - .reduce((acc, dataType) => { - acc[dataType] = { - id: dataType, - name: - services.internationalisationService.localeReferenceNames(dataType, application) || - dataType, - }; - return acc; - }, {}), - }; - references.value = { - withScope: Object.keys(application.references) - .filter((name) => application.configuration.dataDescription[name].authorization) - .reduce((acc, reference) => { - acc[reference] = { - id: reference, - name: - services.internationalisationService.localeReferenceNames(reference, application) || - reference, - }; - return acc; - }, {}), - withoutScope: Object.keys(application.references) - .filter((name) => application.configuration.dataDescription[name].authorization === null) - .reduce((acc, reference) => { - acc[reference] = { - id: reference, - name: - services.internationalisationService.localeReferenceNames(reference, application) || - reference, - }; - return acc; - }, {}), + .filter((name) => application.configuration.dataDescription[name].authorization === null) + .reduce((acc, dataType) => { + acc[dataType] = { + id: dataType, + name: + services.internationalisationService.localeReferenceNames(dataType, application) || + dataType, + }; + return acc; + }, {}), }; isLoading.value = false; }); function initApplication(getApplication) { changeApplication( - services.internationalisationService.mergeInternationalization(getApplication) + services.internationalisationService.mergeInternationalization(getApplication) ); changeConfiguration(application.configuration); datas.value = Object.keys(application.data).reduce((acc, data) => { acc[data] = { id: data, name: - services.internationalisationService.localeReferenceNames(data, application) || data, + services.internationalisationService.localeReferenceNames(data, application) || data, }; return acc; }, {}); for (let data of Object.keys(configuration.dataDescription)) { if ( - configuration.dataDescription[data] && - configuration.dataDescription[data].authorization + configuration.dataDescription[data] && + configuration.dataDescription[data].authorization ) { authorizations[data] = configuration.dataDescription[data].authorization; } @@ -361,27 +336,27 @@ export default { isLoading.value = true; try { let getApplication = await services.applicationService.getApplication( - props.applicationName, - ["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "ADDITIONALFILE"] + props.applicationName, + ["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "ADDITIONALFILE"] ); initApplication(getApplication); dependencies.value = buildDependencies(configuration.hierarchicalNodes); changeFormat(configuration.rightsRequest.format || {}); changeFields( - (Object.keys(format) || []).reduce((acc, field) => { - acc[field] = ""; - return acc; - }, {}) + (Object.keys(format) || []).reduce((acc, field) => { + acc[field] = ""; + return acc; + }, {}) ); description.value = - application?.internationalization.rightsrequest?.description[ - services.userPreferencesService.getUserPrefLocale() - ] || - i18n.t("dataTypeAuthorizations.field_form_description", { - applicationName: application.localName, - }); + application?.internationalization.rightsrequest?.description[ + services.userPreferencesService.getUserPrefLocale() + ] || + i18n.t("dataTypeAuthorizations.field_form_description", { + applicationName: application.localName, + }); let listAllUsers = await services.authorizationService.getAuthorizationGrantableInfos( - props.applicationName + props.applicationName ); let scopes = listAllUsers.referenceScopes; referencesScopes.value = Object.keys(scopes || {}).reduce((acc, dataName) => { @@ -393,35 +368,37 @@ export default { if (props.authorizationId !== "new") { valid = true; let request = await services.requestRightsService.getRightsRequests( - props.applicationName, - { - uuids: [props.authorizationId], - } + props.applicationName, + { + uuids: [props.authorizationId], + } ); currentUser.value = [ request.users.find( - (user) => - user.id === - ((request && - request.rightsRequests && - request.rightsRequests[0] && - request.rightsRequests[0].user) || - JSON.parse(localStorage.authenticatedUser).id) + (user) => + user.id === + ((request && + request.rightsRequests && + request.rightsRequests[0] && + request.rightsRequests[0].user) || + JSON.parse(localStorage.authenticatedUser).id) ), ] || [JSON.parse(localStorage.authenticatedUser)]; let rightsRequest = request.rightsRequests[0]; - description.value = rightsRequest.comment; + comment.value = rightsRequest.comment; changeFields( - (Object.keys(format) || []).reduce((acc, field) => { - acc[field] = rightsRequest.rightsRequestForm[field]; - return acc; - }, {}) + (Object.keys(format) || []).reduce((acc, field) => { + acc[field] = rightsRequest.rightsRequestForm[field]; + return acc; + }, {}) ); if (rightsRequest && Object.keys(rightsRequest.rightsRequest).length !== 0) { let authorizations = rightsRequest.rightsRequest; currentAuthorization.value = { - description: "coucou", - name: "je suis un nom", + description: description.value, + name: i18n.t("dataTypeAuthorizations.title", { + label: JSON.parse(localStorage.getItem("authenticatedUser")).login, + }), uuid: null, authorizations: {}, }; @@ -437,6 +414,11 @@ export default { } initialized.value = true; listColumnName.value = getListColumnName(); + delete listColumnName.value["withoutScope"].delete; + delete listColumnName.value["withoutScope"].depot; + delete listColumnName.value["withScope"].delete; + delete listColumnName.value["withScope"].depot; + delete listColumnName.value["withScope"].publication; } catch (error) { services.alertService.toastServerError(error); } @@ -456,7 +438,7 @@ export default { } function updateComment(event) { - description.value = event.comment; + comment.value = event.comment; valid = event.valid; } @@ -471,7 +453,7 @@ export default { } function updateAuthorization(event) { - let current = {...currentAuthorization.value}; + let current = { ...currentAuthorization.value }; current.authorizations = event; currentAuthorization.value = current; } @@ -479,14 +461,14 @@ export default { const buildAuthorization = () => { const authorizationForAll = {}; const authorizationsWithRestriction = {}; - const authorization = {...currentAuthorization.value.authorizations}; + const authorization = { ...currentAuthorization.value.authorizations }; for (const [datatype, auth] of Object.entries(authorization)) { // Ignorer les datatypes sans opérationTypes ou avec seulement 'extraction' s'ils sont dans hasDependencies if ( - !auth.operationTypes || - (JSON.stringify(auth.operationTypes) === '["extraction"]' && - hasDependencies?.value && - hasDependencies.value.includes(datatype)) + !auth.operationTypes || + (JSON.stringify(auth.operationTypes) === '["extraction"]' && + hasDependencies?.value && + hasDependencies.value.includes(datatype)) ) { continue; } else { @@ -499,17 +481,17 @@ export default { // Vérifier si le timeScope est infini const isInfiniteTimeScope = - auth.fromDay !== undefined && - auth.fromDay[0] === -999999999 && - auth.toDay !== undefined && - auth.toDay[0] === 999999999; + auth.fromDay !== undefined && + auth.fromDay[0] === -999999999 && + auth.toDay !== undefined && + auth.toDay[0] === 999999999; // Vérifier si requiredAuthorizations est vide ou égal à [""] const hasNoRequiredAuths = - !auth.requiredAuthorizations || - Object.values(auth.requiredAuthorizations).every( - (arr) => arr.length === 0 || (arr.length === 1 && arr[0] === "") - ); + !auth.requiredAuthorizations || + Object.values(auth.requiredAuthorizations).every( + (arr) => arr.length === 0 || (arr.length === 1 && arr[0] === "") + ); if (isInfiniteTimeScope && hasNoRequiredAuths) { if (!auth.requiredAuthorizations) { @@ -525,19 +507,19 @@ export default { // Ajouter fromDay seulement s'il n'est pas infini if (auth.fromDay && auth?.fromDay[0] !== -999999999) { authorizationsWithRestriction[datatype].timeScope.fromDay = `${ - auth.fromDay[0] + auth.fromDay[0] }-${auth.fromDay[1].toString().padStart(2, "0")}-${auth.fromDay[2] - .toString() - .padStart(2, "0")}`; + .toString() + .padStart(2, "0")}`; } // Ajouter toDay seulement s'il n'est pas infini if (auth.toDay && auth?.toDay?.[0] !== 999999999) { authorizationsWithRestriction[datatype].timeScope.toDay = `${ - auth.toDay[0] + auth.toDay[0] }-${auth.toDay[1].toString().padStart(2, "0")}-${auth.toDay[2] - .toString() - .padStart(2, "0")}`; + .toString() + .padStart(2, "0")}`; } // Si timeScope est vide, le supprimer complètement @@ -547,8 +529,15 @@ export default { } } let usersId; - if (currentUser.value.id !== JSON.parse(localStorage.authenticatedUser).id || currentUser.value[0].id !== JSON.parse(localStorage.authenticatedUser).id){ - usersId = currentUser.value.id ? [currentUser.value.id, JSON.parse(localStorage.authenticatedUser).id] : [currentUser.value[0].id, JSON.parse(localStorage.authenticatedUser).id]; + if ( + (currentUser.value.id && + currentUser.value.id !== JSON.parse(localStorage.authenticatedUser).id) || + (currentUser.value[0] && + currentUser.value[0].id !== JSON.parse(localStorage.authenticatedUser).id) + ) { + usersId = currentUser.value.id + ? [currentUser.value.id, JSON.parse(localStorage.authenticatedUser).id] + : [currentUser.value[0].id, JSON.parse(localStorage.authenticatedUser).id]; } else { usersId = [currentUser.value.id ? currentUser.value.id : currentUser.value[0].id]; } @@ -571,7 +560,7 @@ export default { } try { let authorizationToSend = buildAuthorization(); - if (!(description.value && description.value.length)) { + if (!(comment.value && comment.value.length)) { await new Promise((resolve) => { app.$buefy.dialog.prompt({ message: i18n.t("dataTypeAuthorizations.addComment"), @@ -584,7 +573,7 @@ export default { }, trapFocus: true, onConfirm: (value) => { - description.value = value; + comment.value = value; resolve(); }, onCancel: () => { @@ -598,7 +587,7 @@ export default { fields: fields, rightsRequest: authorizationToSend, setted: isSetted, - comment: description.value, + comment: comment.value, }); if ("new" === props.authorizationId) { services.alertService.toastSuccess(i18n.t("alert.create-request")); @@ -621,36 +610,36 @@ export default { let authorizationsWithRestriction = {}; for (let datatype in authorization.authorizations) { if ( - authorization.authorizations[datatype].requiredAuthorizations && - Object.keys( - authorization.authorizations[datatype].requiredAuthorizations - ).length !== 0 + authorization.authorizations[datatype].requiredAuthorizations && + Object.keys(authorization.authorizations[datatype].requiredAuthorizations).length !== 0 ) { authorizationsWithRestriction[datatype] = { operationTypes: authorization.authorizations[datatype].operationTypes, requiredAuthorizations: authorization.authorizations[datatype].requiredAuthorizations, timeScope: { - fromDay:authorization.authorizations[datatype].fromDay, - toDay: authorization.authorizations[datatype].toDay + fromDay: authorization.authorizations[datatype].fromDay, + toDay: authorization.authorizations[datatype].toDay, }, }; } else { authorizationForAll[datatype] = Object.values( - authorization.authorizations[datatype].operationTypes + authorization.authorizations[datatype].operationTypes ); } } let authorizationToSend = { uuid: null, - name: `request ${props.authorizationId} for user ${currentUser.value.label ? currentUser.value.label : currentUser.value[0].label}`, + name: `request ${props.authorizationId} for user ${ + currentUser.value.label ? currentUser.value.label : currentUser.value[0].label + }`, description: description.value, usersId: [currentUser.value[0].id, JSON.parse(localStorage.authenticatedUser).id], authorizationForAll, authorizationsWithRestriction, }; await services.authorizationService.createAuthorization( - props.applicationName, - authorizationToSend + props.applicationName, + authorizationToSend ); } catch (error) { services.alertService.toastServerError(error); @@ -679,10 +668,10 @@ export default { } else { app.$buefy.toast.open({ message: i18n.t("dataTypeAuthorizations.grantRequestConfirm"), - type: 'is-danger' + type: "is-danger", }); } - } + }, }); currentAuthorization.value.description = description.value; } @@ -692,6 +681,7 @@ export default { subMenuPaths, loadApplications, description, + comment, canCreateApplication, datatypes, application, diff --git a/ui/src/views/common/MenuView.vue b/ui/src/views/common/MenuView.vue index b48056462..80d507525 100644 --- a/ui/src/views/common/MenuView.vue +++ b/ui/src/views/common/MenuView.vue @@ -16,7 +16,7 @@ </b-navbar-item> <!-- TODO ne rendre visible cette section seulement si on a des droits sur +sieurs applications--> <b-navbar-item tag="router-link" :to="{ path: '/applications' }"> - <b-icon icon="toolbox" style="margin-right: 0.25em; margin-bottom: 0.25em"></b-icon> + <b-icon icon="city" style="margin-right: 0.25em; margin-bottom: 0.25em"></b-icon> {{ $t("menu.applications") }} </b-navbar-item> <b-navbar-item -- GitLab From 476229c4418f34aef4335fe231360070d08da16e Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Thu, 31 Oct 2024 18:14:37 +0100 Subject: [PATCH 40/52] Ajout du traitement des colonnes adjacentes --- .../InvalidDatasetContentException.java | 14 +- .../data/DataColumnPatternQualifierValue.java | 27 ++ .../domain/data/RefsLinkedToValue.java | 2 +- .../domain/data/deposit/DataImporter.java | 42 ++- .../deposit/context/DataImporterContext.java | 9 +- .../context/column/AdjacentDescription.java | 2 +- .../data/deposit/context/column/Column.java | 47 ++- .../column/OneValueStaticPatternColumn.java | 75 ++++- .../context/column/PatternColumnFactory.java | 77 +++-- .../builder/DataAndComponentTestDoublon.java | 68 ++-- .../PatternComponentAdjacentsBuilder.java | 6 +- .../rest/model/data/DataRowResult.java | 2 +- .../ApplicationConfigurationServiceTest.java | 17 +- .../inra/oresing/rest/OreSiResourcesTest.java | 11 +- .../configuration/data.result.example.json | 310 +++++++++--------- .../data/configuration/data.result.json | 276 ++++++++-------- ...s_du_phytoplancton-reduit-pour-pattern.csv | 20 +- .../data/validation/broken-fake-app.yaml | 22 ++ 18 files changed, 618 insertions(+), 409 deletions(-) create mode 100644 src/main/java/fr/inra/oresing/domain/data/DataColumnPatternQualifierValue.java diff --git a/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java b/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java index a91136a0c..66a7cb316 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java +++ b/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java @@ -96,13 +96,6 @@ public class InvalidDatasetContentException extends OreSiTechnicalException { if (actualColumns.contains("")) { throw forEmptyHeader(headerLine); } - final ImmutableSet<String> duplicatedHeaders = actualColumns.entrySet().stream() - .filter(column -> column.getCount() > 1) - .map(Multiset.Entry::getElement) - .collect(ImmutableSet.toImmutableSet()); - if (!duplicatedHeaders.isEmpty()) { - throw forDuplicatedHeaders(headerLine, duplicatedHeaders); - } final ImmutableSet<String> actualColumnsAsSet = actualColumns.elementSet(); final Boolean givenColumnIsUnexpected = !(allowUnexpectedColumns || expectedColumns.containsAll(actualColumnsAsSet)); final Boolean mandatoryColumnIsMissing = !actualColumnsAsSet.containsAll(mandatoryColumns); @@ -119,6 +112,13 @@ public class InvalidDatasetContentException extends OreSiTechnicalException { throw forInvalidHeaders(expectedColumns, mandatoryColumns, actualColumnsAsSet, headerLine); } + final ImmutableSet<String> duplicatedHeaders = actualColumns.entrySet().stream() + .filter(column -> column.getCount() > 1) + .map(Multiset.Entry::getElement) + .collect(ImmutableSet.toImmutableSet()); + if (!duplicatedHeaders.isEmpty()) { + throw forDuplicatedHeaders(headerLine, duplicatedHeaders); + } return headersForRow; } diff --git a/src/main/java/fr/inra/oresing/domain/data/DataColumnPatternQualifierValue.java b/src/main/java/fr/inra/oresing/domain/data/DataColumnPatternQualifierValue.java new file mode 100644 index 000000000..8d0fae400 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/data/DataColumnPatternQualifierValue.java @@ -0,0 +1,27 @@ +package fr.inra.oresing.domain.data; + +import fr.inra.oresing.domain.checker.CheckerTarget; + +import java.util.Locale; + +public record DataColumnPatternQualifierValue( + String qualifierComponentKey, + String column +) implements CheckerTarget, SomethingToBeStoredAsJsonInDatabase<String> { + + @Override + public String toJsonForDatabase() { + return column; + } + + @Override + public String getInternationalizedKey(final String key) { + return key + "WithComponent"; + } + + + @Override + public String toHumanReadableString() { + return column; + } +} diff --git a/src/main/java/fr/inra/oresing/domain/data/RefsLinkedToValue.java b/src/main/java/fr/inra/oresing/domain/data/RefsLinkedToValue.java index 0f7990b7d..3ab49e287 100644 --- a/src/main/java/fr/inra/oresing/domain/data/RefsLinkedToValue.java +++ b/src/main/java/fr/inra/oresing/domain/data/RefsLinkedToValue.java @@ -2,5 +2,5 @@ package fr.inra.oresing.domain.data; import java.util.Set; -public record RefsLinkedToValue(Set<java.util.UUID> uuids, fr.inra.oresing.domain.application.configuration.Ltree HierarchicalKey) { +public record RefsLinkedToValue(Set<java.util.UUID> uuids, fr.inra.oresing.domain.application.configuration.Ltree hierarchicalKey) { } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java index d0aa887dd..ef5e8b1e9 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java @@ -46,6 +46,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.IntStream; import java.util.stream.Stream; public class DataImporter { @@ -386,23 +387,38 @@ public class DataImporter { final List<PatternValueForHeader> patternValueForHeaders = new LinkedList<>(); final int lineNumber = Ints.checkedCast(csvRecord.getRecordNumber()); for (int i = 0; i < columns.size(); i++) { - final String cellContent = csvRecord.values().length > i ? csvRecord.values()[i] : ""; - final String header = currentHeader.next(); - if (dataImporterContext.pushValue(referenceDatum, header, cellContent.trim(), refsLinkedTo)) { - patternValueForHeaders.add(new PatternValueForHeader(header, cellContent.trim(), refsLinkedTo)); + String[] values = csvRecord.values(); + final String cellContent = values.length > i ? values[i] : ""; + final String patternComponentName = currentHeader.next(); + if (dataImporterContext.pushValue(referenceDatum, patternComponentName, cellContent.trim(), refsLinkedTo)) { + OneValueStaticPatternColumn expectedPatternColumn1 = dataImporterContext.getPatternColumnFactory().getExpectedPatternColumn(patternComponentName); + List<String> adjacentValues = new LinkedList<>(); + for (int j = 0; j < (expectedPatternColumn1 == null ? 0 : expectedPatternColumn1.getAdjacentColumnsSize()); j++) { + i++; + adjacentValues.add(values[i]); + currentHeader.next(); + } + patternValueForHeaders.add(new PatternValueForHeader(patternComponentName, cellContent.trim(), adjacentValues, refsLinkedTo)); } } if (patternValueForHeaders.isEmpty()) { return Stream.of(new RowWithReferenceDatum(lineNumber, "", referenceDatum, ImmutableMap.copyOf(refsLinkedTo))); } - final AtomicInteger rowId = new AtomicInteger(); - return patternValueForHeaders.stream() - .map(dataImporterContext.getPatternColumnFactory()::toQualifierDatum) - .map(datum -> referenceDatum.with(datum)) - .map(dataDatum -> new RowWithReferenceDatum(lineNumber, - patternValueForHeaders.get(rowId.getAndIncrement()).header(), - dataDatum, - ImmutableMap.copyOf(refsLinkedTo))); + final int rowId = 1; + List<RowWithReferenceDatum> rowWithReferenceData = new LinkedList<>(); + for (PatternValueForHeader patternValueForHeader : patternValueForHeaders) { + DataDatum patternComponentDatum = dataImporterContext.getPatternColumnFactory().toQualifierDatum(patternValueForHeader.header(), patternValueForHeader); + DataDatum dataDatum = referenceDatum.with(patternComponentDatum); + rowWithReferenceData.add( + new RowWithReferenceDatum( + lineNumber, + patternValueForHeader.header(), + dataDatum, + ImmutableMap.copyOf(refsLinkedTo) + ) + ); + } + return rowWithReferenceData.stream(); } /** @@ -618,7 +634,7 @@ public class DataImporter { } - public record PatternValueForHeader(String header, String cellContent, + public record PatternValueForHeader(String header, String cellContent, List<String> adjacentCellContent, Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java index a995f9536..8b74e0116 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/DataImporterContext.java @@ -51,6 +51,10 @@ public class DataImporterContext { private final List<ReferenceScope.NodeDescription> nodesForMenu; + public ImmutableSet<Column> getColumnsWithPatternColumns() { + return columnsWithPatternColumns; + } + @Getter private ImmutableSet<Column> columnsWithPatternColumns; @Getter @@ -278,7 +282,10 @@ public class DataImporterContext { public boolean existsColumn(final DataColumn column, Map<DataColumn, DataColumnValue> constantColumnsValues) { return columnsWithPatternColumns.stream() .map(registeredColumn->registeredColumn.as(column.column())) - .anyMatch(Objects::nonNull); + .anyMatch(Objects::nonNull)|| + constantColumnsValues.keySet().stream() + .map(DataColumn::column) + .anyMatch(c -> c.equals(column.column())); } public void withPatternColumn() { diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/AdjacentDescription.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/AdjacentDescription.java index 98a7e9fd5..1750a9342 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/AdjacentDescription.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/AdjacentDescription.java @@ -3,6 +3,6 @@ package fr.inra.oresing.domain.data.deposit.context.column; import fr.inra.oresing.domain.ComponentPresenceConstraint; import fr.inra.oresing.domain.checker.Multiplicity; -public record AdjacentDescription (String adjacentColumnName, ComponentPresenceConstraint mandatoryForComponentComponent, Multiplicity multiplicityForComponentComponent) { +public record AdjacentDescription (String componentKey, String adjacentColumnName, ComponentPresenceConstraint mandatoryForComponentComponent, Multiplicity multiplicityForComponentComponent) { } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java index cfd1cbe60..f854e50f4 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java @@ -16,8 +16,9 @@ public abstract class Column implements Comparable<Column> { @Getter private final DataColumn referenceColumn; + public Column as(String columnHeader){ - return columnHeader.equals(getExpectedHeader())?this:null; + return columnHeader.equals(getReferenceColumn().column())?this:null; } @Getter @@ -35,6 +36,46 @@ public abstract class Column implements Comparable<Column> { this.headerForColumn = headerForColumn; } + public static final Column staticPatternQualifierComponentDescriptionToColumn(final DataColumn referenceColumn, + String headerForColumn, + String componentQualifierKey, + final ComponentPresenceConstraint presenceConstraint, + final Multiplicity multiplicity, + final DataRepository referenceValueRepository, + final TransformationConfiguration defaultValue) { + Column column = null; + if (multiplicity == Multiplicity.ONE) { + column = new OneValueStaticColumn(referenceColumn, headerForColumn, presenceConstraint, ComputedValueUsage.NOT_COMPUTED) { + @Override + public String getExpectedHeader() { + return Optional.ofNullable(headerForColumn) + .orElseGet(referenceColumn::column); + } + + @Override + public Optional<DataColumnValue> computeValue(final DataDatum referenceDatum) { + throw new UnsupportedOperationException("pas de valeur par défaut pour " + referenceColumn); + } + }; + } else if (multiplicity == Multiplicity.MANY) { + column = new ManyValuesStaticColumn(referenceColumn, headerForColumn, presenceConstraint, ComputedValueUsage.NOT_COMPUTED) { + @Override + public String getExpectedHeader() { + return Optional.ofNullable(headerForColumn) + .orElseGet(referenceColumn::column); + } + + @Override + public Optional<DataColumnValue> computeValue(final DataDatum referenceDatum) { + throw new UnsupportedOperationException("pas de valeur par défaut pour " + referenceColumn); + } + }; + } else { + //TODO throw Multiplicity.getError(multiplicity); + } + return column; + } + public static final Column staticColumnDescriptionToColumn(final DataColumn referenceColumn, String headerForColumn, final ComponentPresenceConstraint presenceConstraint, @@ -76,6 +117,7 @@ public abstract class Column implements Comparable<Column> { public static final Column staticPatternColumnDescriptionToColumn(final DataColumn referenceColumn, String headerForColumn, + String headerInFile, final ComponentPresenceConstraint presenceConstraint, final Multiplicity multiplicity, final DataRepository referenceValueRepository, @@ -86,6 +128,9 @@ public abstract class Column implements Comparable<Column> { column = new OneValueStaticPatternColumn( referenceColumn, headerForColumn, + headerInFile, + multiplicity, + defaultValue, presenceConstraint, ComputedValueUsage.NOT_COMPUTED, qualifierColumns, diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java index e82b1c0a1..2028cd6bc 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java @@ -1,12 +1,30 @@ package fr.inra.oresing.domain.data.deposit.context.column; +import com.google.common.base.Strings; import fr.inra.oresing.domain.ComponentPresenceConstraint; +import fr.inra.oresing.domain.checker.Multiplicity; +import fr.inra.oresing.domain.checker.type.FieldType; import fr.inra.oresing.domain.checker.type.StringType; import fr.inra.oresing.domain.data.*; +import fr.inra.oresing.domain.transformer.transformer.TransformationConfiguration; import java.util.*; public abstract class OneValueStaticPatternColumn extends Column { + + private final Multiplicity multiplicity; + private TransformationConfiguration defaultValue; + + public String getHeaderInFile() { + return headerInFile; + } + + private final String headerInFile; + + public int getAdjacentColumnsSize() { + return adjacentColumns == null ? 0 : adjacentColumns.size(); + } + private final List<Column> qualifierColumns; private final List<Column> adjacentColumns; @@ -17,38 +35,50 @@ public abstract class OneValueStaticPatternColumn extends Column { @Override public Column as(String columnHeader) { - if(super.as(columnHeader) != null){ + if (super.as(columnHeader) != null) { return this; } - if(!columnHeader.contains(COLUMN_IN_COLUMN_SEPARATOR)){ + if (!columnHeader.contains(COLUMN_IN_COLUMN_SEPARATOR)) { return null; } List<String> patternOfColumn = Arrays.stream(columnHeader.split(COLUMN_IN_COLUMN_SEPARATOR)).toList(); - if(!getExpectedHeader().equals(patternOfColumn.get(0))){ + if (!getExpectedHeader().equals(patternOfColumn.get(0))) { return null; } - if(getExpectedHeader().equals(__VALUE__)){ + if (getExpectedHeader().equals(__VALUE__)) { return this; } Optional<Column> matchingQualifierColumn = qualifierColumns.stream() .map(qualifierColumn -> qualifierColumn.as(patternOfColumn.get(1))) .filter(Objects::nonNull) .findFirst(); - if(matchingQualifierColumn.isPresent()){ + if (matchingQualifierColumn.isPresent()) { return matchingQualifierColumn.get(); } Optional<Column> matchingAdjacentColumn = adjacentColumns.stream() - .map(adjacentColumn -> adjacentColumn.as(columnHeader)) + .filter(adjacentColumn -> adjacentColumn.getReferenceColumn().column().equals(patternOfColumn.get(1))) .filter(Objects::nonNull) .findFirst(); - if(matchingAdjacentColumn.isPresent()){ + if (matchingAdjacentColumn.isPresent()) { return matchingAdjacentColumn.get(); } return null; } - public OneValueStaticPatternColumn(final DataColumn referenceColumn, final String headerForColumn, final ComponentPresenceConstraint presenceConstraint, final ComputedValueUsage computedValueUsage, List<Column> qualifierColumns, List<Column> adjacentColumns) { + public OneValueStaticPatternColumn( + final DataColumn referenceColumn, + final String headerForColumn, + final String headerInField, + final Multiplicity multiplicity, + final TransformationConfiguration defaultValue, + final ComponentPresenceConstraint presenceConstraint, + final ComputedValueUsage computedValueUsage, + List<Column> qualifierColumns, + List<Column> adjacentColumns) { super(referenceColumn, headerForColumn, presenceConstraint, computedValueUsage); + this.defaultValue = defaultValue; + this.multiplicity = multiplicity; + this.headerInFile = headerInField; this.qualifierColumns = qualifierColumns; this.adjacentColumns = adjacentColumns; } @@ -63,10 +93,14 @@ public abstract class OneValueStaticPatternColumn extends Column { referenceDatum.put(getReferenceColumn(), referenceColumnValue); } - public DataDatum buildValue(final String cellContent, final DataDatum referenceDatum, final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { + public DataDatum buildValue(final String cellContent, + final DataDatum qualifierComponents, + DataDatum adjacentComponents, + final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { Map<DataColumn, DataColumnValue> columnValues = new HashMap<>(); columnValues.put(new DataColumn(Column.__VALUE__), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(cellContent))); - columnValues.putAll(referenceDatum.values()); + columnValues.putAll(qualifierComponents.values()); + columnValues.putAll(adjacentComponents.values()); final DataColumnValue referenceColumnValue = new DataColumnPatternValue(columnValues); DataDatum datum = new DataDatum(); datum.put(getReferenceColumn(), referenceColumnValue); @@ -82,4 +116,25 @@ public abstract class OneValueStaticPatternColumn extends Column { return "NA"; } } + + public Multiplicity getMultiplicity() { + return this.multiplicity; + } + + public TransformationConfiguration getDefaultValue() { + return this.defaultValue; + } + + public DataDatum buildAdjacentComponents(List<String> adjacentComponentsValues) { + Map<DataColumn, DataColumnValue> columnValues = new HashMap<>(); + for (int i = 0; i < adjacentColumns.size(); i++) { + Column adjacentColumn = adjacentColumns.get(i); + DataColumn dataColumn = adjacentColumn.getReferenceColumn(); + String value = adjacentComponentsValues.get(i); + FieldType fieldValue = Strings.isNullOrEmpty(value)? StringType.getStringTypeFromStringValue(""):StringType.getStringTypeFromStringValue(value); + DataColumnValue dataColumnValue = new DataColumnSingleValue(fieldValue); + columnValues.put(dataColumn, dataColumnValue); + } + return new DataDatum(columnValues); + } } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java index 91cde1aa7..91d8ed982 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java @@ -1,6 +1,7 @@ package fr.inra.oresing.domain.data.deposit.context.column; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import fr.inra.oresing.domain.ComponentPresenceConstraint; @@ -18,6 +19,7 @@ import fr.inra.oresing.domain.transformer.transformer.TransformationConfiguratio import lombok.Getter; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.function.Predicate; import java.util.regex.Matcher; @@ -29,8 +31,17 @@ public class PatternColumnFactory { private final List<PatternDescription> patternComponentDescriptions; private final DataRepository dataRepository; + public OneValueStaticPatternColumn getExpectedPatternColumn(String headerInfile) { + return expectedPatternColumns.stream() + .filter(OneValueStaticPatternColumn.class::isInstance) + .map(OneValueStaticPatternColumn.class::cast) + .filter(column -> column.getHeaderInFile().equals(headerInfile)) + .findFirst() + .orElse(null); + } + @Getter - private ImmutableSet<Column> expectedPatternColumns = ImmutableSet.of(); + private List<Column> expectedPatternColumns = ImmutableList.of(); @Getter private final Map<String, PatternColumn> patternColumns = new HashMap<>(); @@ -48,11 +59,17 @@ public class PatternColumnFactory { PatternDescription.of(patternComponentDescriptions)); } - public DataDatum toQualifierDatum(final DataImporter.PatternValueForHeader patternValueForHeader) { - PatternColumn patternColumn = patternColumns.get(patternValueForHeader.header()).copy(); - + public DataDatum toQualifierDatum(final String patternComponentName, final DataImporter.PatternValueForHeader patternValueForHeader) { + PatternColumn patternColumn = patternColumns.get(patternComponentName).copy(); + DataDatum adjacentComponents = this.getExpectedPatternColumn(patternComponentName) + .buildAdjacentComponents(patternValueForHeader.adjacentCellContent()); final DataDatum qualifierComponents = patternColumn.qualifierComponents(); - DataDatum datum = ((OneValueStaticPatternColumn) patternColumn.column()).buildValue(patternValueForHeader.cellContent(), qualifierComponents, patternValueForHeader.refsLinkedTo()); + DataDatum datum = ((OneValueStaticPatternColumn) patternColumn.column()) + .buildValue( + patternValueForHeader.cellContent(), + qualifierComponents, + adjacentComponents, + patternValueForHeader.refsLinkedTo()); return datum; } @@ -77,31 +94,43 @@ public class PatternColumnFactory { public boolean test(final List<ContextHeader> potentialPatternColumns) { final Function<ContextHeader, PatternDescription.RapportForPatterns> test = (s) -> test(s, patternColumns); + AtomicInteger atomicLong = new AtomicInteger(0); final List<PatternDescription.RapportForPatterns> rapports = potentialPatternColumns.stream() .map(test) + .filter(rapport -> switch (rapport) { + case PatternDescription.MatchingPattern matchingPattern -> { + atomicLong.set(((OneValueStaticPatternColumn) matchingPattern.column()).getAdjacentColumnsSize()); + yield true; + } + case PatternDescription.ExceptionPattern exceptionPattern -> { + yield atomicLong.decrementAndGet() < 0; + } + }) .toList(); - final boolean rapportWithNoErrors = rapports.stream() .collect(Collectors.partitioningBy(PatternDescription.MatchingPattern.class::isInstance)) .get(false) .isEmpty(); if (rapportWithNoErrors) { + expectedPatternColumns = rapports.stream() .collect(Collectors.partitioningBy(PatternDescription.MatchingPattern.class::isInstance)) .get(true).stream() .map(PatternDescription.MatchingPattern.class::cast) .map(PatternDescription.MatchingPattern::column) - .collect(Collectors.collectingAndThen(Collectors.toSet(), ImmutableSet::copyOf)); + .collect(Collectors.collectingAndThen(Collectors.toList(), ImmutableList::copyOf)); } return rapportWithNoErrors; } - record PatternColumn(Column column, DataDatum qualifierComponents, DataDatum adjacentComponents) { + record PatternColumn(Column column, String headerName, DataDatum qualifierComponents, + DataDatum adjacentComponents) { public PatternColumn copy() { return new PatternColumn( column(), + headerName(), new DataDatum(qualifierComponents().values()), new DataDatum(adjacentComponents().values()) ); @@ -130,7 +159,9 @@ public class PatternColumnFactory { ); } - public RapportForPatterns toRapport(final DataRepository dataRepository, final ContextHeader potentialPatternColumn, final Map<String, PatternColumn> patternColumnData) { + public RapportForPatterns toRapport(final DataRepository dataRepository, + final ContextHeader potentialPatternColumn, + final Map<String, PatternColumn> patternColumnData) { final Matcher matcher = pattern().matcher(potentialPatternColumn.columnHeader()); Preconditions.checkArgument(matcher.matches(), "verified before"); if (matches().test(potentialPatternColumn.columnHeader())) { @@ -209,34 +240,36 @@ public class PatternColumnFactory { .map(ComponentDescription::mandatory) .orElse(ComponentPresenceConstraint.MANDATORY); return new AdjacentDescription( + componentComponentKey, matcher.replaceAll(patternNumber.replaceAll("\\{(\\$[0-9])\\}", "$1")), mandatoryForComponentComponent, multiplicityForComponentComponent - ); + ); }) .toList(); - for (int i = potentialPatternColumn.columnIndex(); i < potentialPatternColumn.headersForRow().size(); i++) { + for (int i = potentialPatternColumn.columnIndex() + 1; i < potentialPatternColumn.headersForRow().size(); i++) { String nextColumnName = potentialPatternColumn.headersForRow().get(i); - if(adjacentColumnNames.stream().anyMatch(adjacentDescription -> adjacentDescription.adjacentColumnName().equals(nextColumnName))){ + if (adjacentColumnNames.stream().anyMatch(adjacentDescription -> adjacentDescription.adjacentColumnName().equals(nextColumnName))) { AdjacentDescription resolvedAdjacentDescription = adjacentColumnNames.stream() .filter(adjacentDescription -> adjacentDescription.adjacentColumnName().equals(nextColumnName)) .findFirst() .orElseThrow(IllegalStateException::new); adjacentColumns.add(Column.staticColumnDescriptionToColumn( - new DataColumn(nextColumnName), - nextColumnName, - resolvedAdjacentDescription.mandatoryForComponentComponent(), - resolvedAdjacentDescription.multiplicityForComponentComponent(), - dataRepository, - defaultValue - )); - }else{ + new DataColumn(resolvedAdjacentDescription.componentKey()), + nextColumnName, + resolvedAdjacentDescription.mandatoryForComponentComponent(), + resolvedAdjacentDescription.multiplicityForComponentComponent(), + dataRepository, + defaultValue + )); + } else { break; } } final Column column = Column.staticPatternColumnDescriptionToColumn( new DataColumn(componentKey), headerForReferenceColumn, + potentialPatternColumn.columnHeader(), mandatory, multiplicity, dataRepository, @@ -244,7 +277,7 @@ public class PatternColumnFactory { adjacentColumns, defaultValue ); - patternColumnData.put(potentialPatternColumn.columnHeader(), new PatternColumn(column, qualifierComponents, adjacentComponents)); + patternColumnData.put(potentialPatternColumn.columnHeader(), new PatternColumn(column, potentialPatternColumn.columnHeader(), qualifierComponents, adjacentComponents)); return new MatchingPattern(potentialPatternColumn.columnHeader(), column); } else { return new ExceptionPattern(potentialPatternColumn.columnHeader()); @@ -269,7 +302,7 @@ public class PatternColumnFactory { } public Set<Column> allColumns() { - ImmutableSet.Builder<Column> columns= ImmutableSet.builder(); + ImmutableSet.Builder<Column> columns = ImmutableSet.builder(); columns.add(column()); return columns.build(); } diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java index 7bbcd175a..27f514fa8 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataAndComponentTestDoublon.java @@ -4,7 +4,9 @@ import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import fr.inra.oresing.domain.application.configuration.ConfigurationSchemaNode; +import fr.inra.oresing.domain.data.deposit.context.column.Column; import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; +import org.flywaydb.core.internal.util.CollectionsUtils; import java.util.*; import java.util.function.Predicate; @@ -50,41 +52,28 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis hasErrors = true; return; } - Map<String, List<String>> duplicatedComponentInPatternComponent = duplicatedInPattern.values().stream() - .flatMap(map -> map.entrySet().stream()) - .collect(Collectors.toMap( - Entry::getKey, - entry -> entry.getValue().entrySet().stream() - .filter(entry2 -> entry2.getValue().size() > 1) - .map(Entry::getKey) - .toList() - )); - final List<Entry<String, List<String>>> duplicatedComponentHeaders = headers.values().stream() - .flatMap(map -> map.entrySet().stream()) - .filter(entry -> entry.getValue().size() > 1) - .toList(); - if (!duplicatedComponentHeaders.isEmpty()) { - duplicatedComponentHeaders - .forEach(entry -> rootBuilder.buildError( - ConfigurationException.DUPLICATED_COMPONENT_HEADER, - Map.of( - "header", entry.getKey(), - "duplicatedPathes", entry.getValue() - ), - entry.getValue().getLast() - )); - if (duplicatedComponentInPatternComponent.values().stream().anyMatch(entry -> entry.size() > 1)) { - duplicatedComponentInPatternComponent.entrySet().stream() - .filter(entry -> entry.getValue().size() > 1) - .forEach(entry -> rootBuilder.buildError( + for (Entry<String, Map<String, Map<String, List<String>>>> dataEntry : duplicatedInPattern.entrySet()) { + String dataName = dataEntry.getKey(); + Map<String, Map<String, List<String>>> duplicatedByComponentKey = dataEntry.getValue(); + for (Entry<String, Map<String, List<String>>> componentEntry : duplicatedByComponentKey.entrySet()) { + String componentName = componentEntry.getKey(); + for (Entry<String, List<String>> duplicatedByComponenComponentKeyEntry : componentEntry.getValue().entrySet()) { + String componentComponentKey = duplicatedByComponenComponentKeyEntry.getKey(); + List<String> duplicatedPathes = duplicatedByComponenComponentKeyEntry.getValue(); + if(CollectionsUtils.hasItems(duplicatedPathes) && duplicatedPathes.size()>1) { + List<String> patternsOfComponentComponent = Arrays.stream(componentComponentKey.split(Column.COLUMN_IN_COLUMN_SEPARATOR)).toList(); + rootBuilder.buildError( ConfigurationException.DUPLICATED_COMPONENT_HEADER_IN_PATTERN_COMPONENT, Map.of( - "header", entry.getKey(), - "duplicatedPathes", entry.getValue() + "data",dataName, + "patternComponent", componentName, + "qualifierName", patternsOfComponentComponent.get(1), + "duplicatedPathes", duplicatedPathes ), - entry.getValue().getLast() - )); - hasErrors = true; + duplicatedPathes.getLast() + ); + } + } } } } @@ -106,7 +95,9 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis componentComponentNode.fieldNames().forEachRemaining(qualifierName -> { final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENT_QUALIFIERS, qualifierName); - addPathesForPatternNode(componentComponentNode, dataName, componentName, qualifierName, componentComponentPath); + + String qualifierKey = Column.COLUMN_IN_COLUMN_PATTERN.formatted(componentName, qualifierName); + addPathesForPatternNode(componentComponentNode, dataName, componentName, qualifierKey, componentComponentPath); }); } for (final JsonNode componentComponentNode : dataNodes @@ -117,7 +108,8 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis componentComponentNode.fieldNames().forEachRemaining(adjacentName -> { final String componentComponentPath = NodeSchemaValidator.joinPath(OA_DATA, dataName, componentType, componentName, OA_COMPONENT_ADJACENTS, adjacentName); - addPathesForPatternNode(componentComponentNode, dataName, componentName, adjacentName, componentComponentPath); + String qualifierKey = Column.COLUMN_IN_COLUMN_PATTERN.formatted(componentName, adjacentName); + addPathesForPatternNode(componentComponentNode, dataName, componentName, qualifierKey, componentComponentPath); }); } } @@ -174,10 +166,10 @@ public class DataAndComponentTestDoublon extends HashMap<String, Map<String, Lis } private static void addPatternImportHeader(final JsonNode componentComponentNode, final String headerName, final String path, final Map<String, List<String>> headerForData) { - final boolean noHeader = componentComponentNode.findPath(OA_IMPORT_HEADER).findPath(OA_HEADER_NAME).isMissingNode() || componentComponentNode.findPath(OA_IMPORT_HEADER).findPath(OA_HEADER_NAME).isNull(); - final String importHeaderPath = noHeader ? path : NodeSchemaValidator.joinPath(path, OA_IMPORT_HEADER, OA_HEADER_NAME); - headerForData.computeIfAbsent(headerName, l -> new LinkedList<>()) - .add(importHeaderPath); + final boolean noHeader = componentComponentNode.findPath(OA_IMPORT_HEADER).findPath(OA_HEADER_NAME).isMissingNode() || componentComponentNode.findPath(OA_IMPORT_HEADER).findPath(OA_HEADER_NAME).isNull(); + final String importHeaderPath = noHeader ? path : NodeSchemaValidator.joinPath(path, OA_IMPORT_HEADER, OA_HEADER_NAME); + headerForData.computeIfAbsent(headerName, l -> new LinkedList<>()) + .add(importHeaderPath); } public List<String> listDataKeys() { diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java index bac83de77..a92879b34 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/PatternComponentAdjacentsBuilder.java @@ -45,9 +45,9 @@ public record PatternComponentAdjacentsBuilder(RootBuilder rootBuilder) { label, ConfigurationSchemaNode.OA_TAGS), rootBuilder); - final boolean required = patternComponentNode.findPath(ConfigurationSchemaNode.OA_REQUIRED).asBoolean(false); - final ComponentPresenceConstraint mandatory = RootBuilder.isMandatory(componentNodeValue); - final String importHeaderPattern = patternComponentNode + final boolean required = node.findPath(ConfigurationSchemaNode.OA_REQUIRED).asBoolean(false); + final ComponentPresenceConstraint mandatory = RootBuilder.isMandatory(node); + final String importHeaderPattern = node .findPath(ConfigurationSchemaNode.OA_IMPORT_HEADER_PATTERN) .asText(""); if (Strings.isNullOrEmpty(importHeaderPattern)) { diff --git a/src/main/java/fr/inra/oresing/rest/model/data/DataRowResult.java b/src/main/java/fr/inra/oresing/rest/model/data/DataRowResult.java index 4a8c3420a..07b2a0c7a 100644 --- a/src/main/java/fr/inra/oresing/rest/model/data/DataRowResult.java +++ b/src/main/java/fr/inra/oresing/rest/model/data/DataRowResult.java @@ -32,7 +32,7 @@ public record DataRowResult(String rowId, String naturalKey, String hierarchical .map(referenceEntry -> { String referenceName = referenceEntry.getKey(); Map<Object, Object> naturalKeysDisplay = referenceEntry.getValue().values().stream() - .map(RefsLinkedToValue::HierarchicalKey) + .map(RefsLinkedToValue::hierarchicalKey) .map(hierarchicalKey -> hierarchicalKey.getSql().replaceAll(".*[a-z]K", "")) .map(naturalKey -> { String fr = dataRepositoryWithBuffer.findDisplayByReferenceTypeAndNaturalKeyAndLocale(referenceName, naturalKey, locale); diff --git a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java index bab16d4af..b05c7f796 100644 --- a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java +++ b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java @@ -473,7 +473,7 @@ public class ApplicationConfigurationServiceTest { final ValidationError validationError = errors.get(0); assertEquals(ConfigurationException.MISSING_COMPONENT_FOR_COMPONENT_NAME.getMessage(), validationError.getMessage()); assertEquals("OA_data > pem > OA_validations > reference > OA_components", validationError.getParam("path")); - final List<String> expectedComponents = Arrays.stream(new String[]{"tel_date", "date", "bassin", "espece", "chemin", "tel_experimental_network", "is_float_value", "tel_value", "site_bassin", "tel_experimental_site", "site", "projet", "tel_chemin", "ordre_affichage", "plateforme"}) + final List<String> expectedComponents = Arrays.stream(new String[]{"site_bassin", "date", "tel_experimental_site", "site", "bassin", "projet", "espece", "ordre_affichage", "chemin", "tel_experimental_network", "plateforme", "is_float_value", "tel_value"}) .collect(Collectors.toCollection(LinkedList::new)); final Collection<String> givenComponents = (Collection<String>) validationError.getParam("knownComponents"); Assertions.assertIterableEquals(expectedComponents, givenComponents); @@ -972,7 +972,7 @@ public class ApplicationConfigurationServiceTest { assertEquals(ConfigurationException.UNKNOWN_COMPONENT_FOR_COMPONENT_NAME.getMessage(), validationError.getMessage()); assertEquals("OA_data > pem > OA_validations > reference > OA_components", validationError.getParam(("path"))); assertEquals("sites", validationError.getParam(("unknownComponent"))); - final List<String> expectedComponents = Arrays.stream(new String[]{"tel_date", "date", "bassin", "espece", "chemin", "tel_experimental_network", "is_float_value", "tel_value", "site_bassin", "tel_experimental_site", "site", "projet", "tel_chemin", "ordre_affichage", "plateforme"}) + final List<String> expectedComponents = Arrays.stream(new String[]{"site_bassin", "date", "tel_experimental_site", "site", "bassin", "projet", "espece", "ordre_affichage", "chemin", "tel_experimental_network", "plateforme", "is_float_value", "tel_value"}) .collect(Collectors.toCollection(LinkedList::new)); final Collection<String> givenComponents = (Collection<String>) validationError.getParam("knownComponents"); Assertions.assertIterableEquals(expectedComponents, givenComponents); @@ -1282,20 +1282,23 @@ public class ApplicationConfigurationServiceTest { @Test public void testduplicatedComponentInPatternComponent() { CONFIGURATION_INSTANCE.builder("testduplicatedComponentInPatternComponent") - .withReplace("tel_experimental_site", + .withReplace("swc_qc", "tel_date") .test(errors -> { assertEquals(1, errors.size() ); final ValidationError validationError = errors.get(0); - assertEquals(ConfigurationException.DUPLICATED_COMPONENT_NAME.getMessage(), validationError.getMessage()); + assertEquals(ConfigurationException.DUPLICATED_COMPONENT_HEADER_IN_PATTERN_COMPONENT.getMessage(), validationError.getMessage()); + assertEquals("tel_date", validationError.getParam("qualifierName")); + assertEquals("pem", validationError.getParam("data")); + assertEquals("tel_value", validationError.getParam("patternComponent")); assertIterableEquals( List.of( - "OA_data > pem > OA_constantComponents > tel_date", - "OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date" + "OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date", + "OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date" ), (Iterable<String>) validationError.getParam("duplicatedPathes") ); - assertEquals("OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date", validationError.getParam("path")); + assertEquals("OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date", validationError.getParam("path")); }); } diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index 93b8c36a9..798b6963c 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -2432,6 +2432,12 @@ public class OreSiResourcesTest { response = mockMvc.perform(multipart("/api/v1/applications/pattern/data/{refType}", e.getKey()) .file(refFile) .cookie(authCookie)) + .andDo(result -> { + final int status = result.getResponse().getStatus(); + if (status > 300) { + System.out.println(result.getResolvedException().getMessage()); + } + }) .andExpect(status().isCreated()) .andExpect(jsonPath("$.id", IsNull.notNullValue())) .andReturn().getResponse().getContentAsString(); @@ -2447,7 +2453,10 @@ public class OreSiResourcesTest { .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_resolution", containsInAnyOrder(3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2))) .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_qualifier", containsInAnyOrder(3, 3, 3, 3, 3, 3, 3, 3, 3))) .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_variable", containsInAnyOrder("annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy"))) - //.andExpect(jsonPath("$.referenceTypeForReferencingColumns.tel_S2_variable", Is.is("site"))) //TODO + .andExpect(jsonPath("$..values.tel_S2_value.swc_qc", containsInAnyOrder(1 ,1 ,0 ,2 ,1 ,0 ,0 ,1 ,1))) + .andExpect(jsonPath("$..values.tel_S2_value.swc_sd", containsInAnyOrder(3.9 ,2.5 ,7.2 ,3.2 ,2.1 ,3.4 ,1.2 ,5.2 ,3.9))) + .andExpect(jsonPath("$.rows[*].refsLinkedTo.site['tel_S1_value::tel_S1_variable'].hierarchicalKey.sql", containsInAnyOrder("siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy"))) + .andExpect(jsonPath("$.referenceTypeForReferencingColumns['tel_S1_value::tel_S1_variable']", Is.is("site"))) .andReturn().getResponse().getContentAsString(); } diff --git a/src/test/resources/data/configuration/data.result.example.json b/src/test/resources/data/configuration/data.result.example.json index 3015ac54b..da2d821f9 100644 --- a/src/test/resources/data/configuration/data.result.example.json +++ b/src/test/resources/data/configuration/data.result.example.json @@ -46,8 +46,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_type_zone_etude_tze", "chartDescription" : null, + "referenceCheckerType" : "tr_type_zone_etude_tze", "reference" : true }, "zet_description_en" : { @@ -75,8 +75,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_nom_fr" : { @@ -104,8 +104,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_nom_key" : { @@ -133,8 +133,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_computed_key" : { @@ -169,8 +169,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_zone_etude_zet", "chartDescription" : null, + "referenceCheckerType" : "tr_zone_etude_zet", "reference" : true }, "zet_nom_en" : { @@ -198,8 +198,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_description_fr" : { @@ -227,8 +227,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_chemin_parent" : { @@ -264,8 +264,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_zone_etude_zet", "chartDescription" : null, + "referenceCheckerType" : "tr_zone_etude_zet", "reference" : true } }, @@ -325,8 +325,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tze_nom_fr" : { @@ -354,8 +354,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tze_definition_fr" : { @@ -383,8 +383,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tze_nom_en" : { @@ -412,8 +412,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tze_definition_en" : { @@ -441,8 +441,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -498,8 +498,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "ptx_propriete" : { @@ -532,8 +532,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -584,8 +584,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "pro_nom_fr" : { @@ -613,8 +613,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "pro_definition_fr" : { @@ -642,8 +642,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "pro_nom_en" : { @@ -671,8 +671,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "pro_definition_en" : { @@ -700,8 +700,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -754,8 +754,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tax_propriete_taxon" : { @@ -785,8 +785,8 @@ "referenceColumnToLookForHeader" : "ptx_propriete", "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", - "chartDescription" : null + "chartDescription" : null, + "referenceCheckerType" : "StringChecker" } }, "submission" : null, @@ -810,6 +810,54 @@ } ], "naturalKey" : [ "dat_date" ], "componentDescriptions" : { + "smp::smp_qc" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "smp_qc", + "importHeaderPattern" : "{$1}_qc", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "smp_qc", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "IntegerChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0, + "max" : 2 + }, + "hidden" : false, + "chartDescription" : null, + "referenceCheckerType" : "StringChecker", + "reference" : false + }, + "smp::smp_sd" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "smp_sd", + "importHeaderPattern" : "{$1}_sd", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "smp_sd", + "required" : false, + "mandatory" : "OPTIONAL", + "langRestrictions" : [ ], + "checker" : { + "type" : "FloatChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0.0, + "max" : 500.0 + }, + "hidden" : false, + "chartDescription" : null, + "referenceCheckerType" : "StringChecker", + "reference" : false + }, "dat_date_heure" : { "type" : "ComputedComponent", "componentKey" : "dat_date_heure", @@ -842,31 +890,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, - "reference" : false - }, - "smp_repetition" : { - "type" : "PatternComponentQualifiers", - "componentKey" : "smp_repetition", - "tags" : [ { - "tagDefinition" : "DOMAIN_TAG", - "tagName" : "data" - } ], - "exportHeaderName" : "smp_repetition", - "langRestrictions" : [ ], - "patternNumber" : 2, - "checker" : { - "type" : "IntegerChecker", - "multiplicity" : "ONE", - "required" : false, - "min" : 0, - "max" : 10 - }, - "submissionAuthorizationScope" : null, - "hidden" : false, "referenceCheckerType" : "StringChecker", - "chartDescription" : null, "reference" : false }, "dat_heure" : { @@ -894,45 +919,20 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, - "reference" : false - }, - "swc_repetition" : { - "type" : "PatternComponentQualifiers", - "componentKey" : "swc_repetition", - "tags" : [ { - "tagDefinition" : "DOMAIN_TAG", - "tagName" : "data" - } ], - "exportHeaderName" : "swc_repetition", - "langRestrictions" : [ ], - "patternNumber" : 2, - "checker" : { - "type" : "IntegerChecker", - "multiplicity" : "ONE", - "required" : false, - "min" : 0, - "max" : 10 - }, - "submissionAuthorizationScope" : null, - "hidden" : false, "referenceCheckerType" : "StringChecker", - "chartDescription" : null, "reference" : false }, - "swc_sd" : { - "type" : "PatternComponentAdjacents", - "componentKey" : "swc_sd", - "importHeaderPattern" : "{$1}_sd", + "smp::smp_profondeur" : { + "type" : "PatternComponentQualifiers", + "componentKey" : "smp_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "data" } ], - "exportHeaderName" : "swc_sd", - "required" : false, - "mandatory" : "OPTIONAL", + "exportHeaderName" : "smp_profondeur", "langRestrictions" : [ ], + "patternNumber" : 1, "checker" : { "type" : "FloatChecker", "multiplicity" : "ONE", @@ -940,57 +940,33 @@ "min" : 0.0, "max" : 500.0 }, + "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, - "reference" : false - }, - "swc_qc" : { - "type" : "PatternComponentAdjacents", - "componentKey" : "swc_qc", - "importHeaderPattern" : "{$1}_sd", - "tags" : [ { - "tagDefinition" : "DOMAIN_TAG", - "tagName" : "data" - } ], - "exportHeaderName" : "swc_qc", - "required" : false, - "mandatory" : "OPTIONAL", - "langRestrictions" : [ ], - "checker" : { - "type" : "IntegerChecker", - "multiplicity" : "ONE", - "required" : false, - "min" : 0, - "max" : 2 - }, - "hidden" : false, "referenceCheckerType" : "StringChecker", - "chartDescription" : null, "reference" : false }, - "smp_qc" : { - "type" : "PatternComponentAdjacents", - "componentKey" : "smp_qc", - "importHeaderPattern" : "{$1}_sd", + "smp::smp_repetition" : { + "type" : "PatternComponentQualifiers", + "componentKey" : "smp_repetition", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "data" } ], - "exportHeaderName" : "smp_qc", - "required" : false, - "mandatory" : "OPTIONAL", + "exportHeaderName" : "smp_repetition", "langRestrictions" : [ ], + "patternNumber" : 2, "checker" : { "type" : "IntegerChecker", "multiplicity" : "ONE", "required" : false, "min" : 0, - "max" : 2 + "max" : 10 }, + "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "dat_start_date" : { @@ -1022,44 +998,46 @@ "exportHeaderName" : "dat_start_date", "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, - "smp_sd" : { + "swc::swc_qc" : { "type" : "PatternComponentAdjacents", - "componentKey" : "smp_sd", - "importHeaderPattern" : "{$1}_sd", + "componentKey" : "swc_qc", + "importHeaderPattern" : "{$1}_qc", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "data" } ], - "exportHeaderName" : "smp_sd", + "exportHeaderName" : "swc_qc", "required" : false, "mandatory" : "OPTIONAL", "langRestrictions" : [ ], "checker" : { - "type" : "FloatChecker", + "type" : "IntegerChecker", "multiplicity" : "ONE", "required" : false, - "min" : 0.0, - "max" : 500.0 + "min" : 0, + "max" : 2 }, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, - "swc_profondeur" : { - "type" : "PatternComponentQualifiers", - "componentKey" : "swc_profondeur", + "swc::swc_sd" : { + "type" : "PatternComponentAdjacents", + "componentKey" : "swc_sd", + "importHeaderPattern" : "{$1}_sd", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "data" } ], - "exportHeaderName" : "swc_profondeur", + "exportHeaderName" : "swc_sd", + "required" : false, + "mandatory" : "OPTIONAL", "langRestrictions" : [ ], - "patternNumber" : 1, "checker" : { "type" : "FloatChecker", "multiplicity" : "ONE", @@ -1067,10 +1045,9 @@ "min" : 0.0, "max" : 500.0 }, - "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "dat_type_site" : { @@ -1106,8 +1083,8 @@ "exportHeaderName" : "dat_type_site", "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "dat_end_date" : { @@ -1139,8 +1116,31 @@ "exportHeaderName" : "dat_end_date", "submissionAuthorizationScope" : null, "hidden" : false, + "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "reference" : false + }, + "swc::swc_repetition" : { + "type" : "PatternComponentQualifiers", + "componentKey" : "swc_repetition", + "tags" : [ { + "tagDefinition" : "DOMAIN_TAG", + "tagName" : "data" + } ], + "exportHeaderName" : "swc_repetition", + "langRestrictions" : [ ], + "patternNumber" : 2, + "checker" : { + "type" : "IntegerChecker", + "multiplicity" : "ONE", + "required" : false, + "min" : 0, + "max" : 10 + }, + "submissionAuthorizationScope" : null, + "hidden" : false, "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "smp" : { @@ -1192,8 +1192,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "smp_repetition" : { @@ -1215,8 +1215,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -1241,14 +1241,14 @@ "max" : 500.0 }, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "smp_qc" : { "type" : "PatternComponentAdjacents", "componentKey" : "smp_qc", - "importHeaderPattern" : "{$1}_sd", + "importHeaderPattern" : "{$1}_qc", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "data" @@ -1265,15 +1265,15 @@ "max" : 2 }, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "dat_date" : { @@ -1301,8 +1301,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "dat_site" : { @@ -1327,18 +1327,18 @@ "exportHeaderName" : "dat_site", "submissionAuthorizationScope" : "tr_zone_etude_zet", "hidden" : false, - "referenceCheckerType" : "tr_zone_etude_zet", "chartDescription" : null, + "referenceCheckerType" : "tr_zone_etude_zet", "reference" : true }, - "smp_profondeur" : { + "swc::swc_profondeur" : { "type" : "PatternComponentQualifiers", - "componentKey" : "smp_profondeur", + "componentKey" : "swc_profondeur", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "data" } ], - "exportHeaderName" : "smp_profondeur", + "exportHeaderName" : "swc_profondeur", "langRestrictions" : [ ], "patternNumber" : 1, "checker" : { @@ -1350,8 +1350,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "swc" : { @@ -1403,8 +1403,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "swc_repetition" : { @@ -1426,8 +1426,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -1452,14 +1452,14 @@ "max" : 500.0 }, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "swc_qc" : { "type" : "PatternComponentAdjacents", "componentKey" : "swc_qc", - "importHeaderPattern" : "{$1}_sd", + "importHeaderPattern" : "{$1}_qc", "tags" : [ { "tagDefinition" : "DOMAIN_TAG", "tagName" : "data" @@ -1476,15 +1476,15 @@ "max" : 2 }, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -1689,8 +1689,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_species" : { @@ -1723,8 +1723,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_tool" : { @@ -1761,8 +1761,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_is_iso" : { @@ -1794,8 +1794,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : true, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_definition_fr" : { @@ -1823,8 +1823,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_site" : { @@ -1860,8 +1860,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_zone_etude_zet", "chartDescription" : null, + "referenceCheckerType" : "tr_zone_etude_zet", "reference" : true }, "spe_heure" : { @@ -1897,8 +1897,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_weight" : { @@ -1932,8 +1932,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_definition_en" : { @@ -1961,8 +1961,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_date_heure" : { @@ -1997,8 +1997,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "spe_repetition" : { @@ -2032,8 +2032,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, diff --git a/src/test/resources/data/configuration/data.result.json b/src/test/resources/data/configuration/data.result.json index af524fa46..9c9a89d9e 100644 --- a/src/test/resources/data/configuration/data.result.json +++ b/src/test/resources/data/configuration/data.result.json @@ -35,8 +35,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "esp_definition_en" : { @@ -64,8 +64,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "my_computed_column" : { @@ -91,8 +91,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : true, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "esp_nom" : { @@ -120,8 +120,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "esp_definition_fr" : { @@ -149,8 +149,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -198,8 +198,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -247,8 +247,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_en" : { @@ -276,8 +276,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "definition_en" : { @@ -305,8 +305,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "is_qualitative" : { @@ -334,8 +334,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_fr" : { @@ -363,8 +363,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "definition_fr" : { @@ -392,8 +392,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -441,8 +441,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tze_nom_fr" : { @@ -470,8 +470,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tze_definition_fr" : { @@ -499,8 +499,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tze_nom_en" : { @@ -528,8 +528,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tze_definition_en" : { @@ -557,8 +557,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -606,8 +606,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "theme" : { @@ -635,8 +635,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "projet" : { @@ -672,8 +672,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "projet", "chartDescription" : null, + "referenceCheckerType" : "projet", "reference" : true }, "datatype" : { @@ -701,8 +701,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -816,8 +816,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "datatype" : { @@ -845,8 +845,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "unite" : { @@ -874,8 +874,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -993,8 +993,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "type_de_sites", "chartDescription" : null, + "referenceCheckerType" : "type_de_sites", "reference" : true }, "zet_description_en" : { @@ -1022,8 +1022,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_nom_fr" : { @@ -1051,8 +1051,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_nom_key" : { @@ -1080,8 +1080,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_nom_en" : { @@ -1109,8 +1109,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_description_fr" : { @@ -1138,8 +1138,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "zet_chemin_parent" : { @@ -1175,8 +1175,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "sites", "chartDescription" : null, + "referenceCheckerType" : "sites", "reference" : true } }, @@ -1232,8 +1232,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -1281,8 +1281,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_en" : { @@ -1310,8 +1310,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_fr" : { @@ -1339,8 +1339,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "description_fr" : { @@ -1368,8 +1368,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "description_en" : { @@ -1397,8 +1397,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -1453,8 +1453,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tel_flag" : { @@ -1490,10 +1490,27 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_flag_fla", "chartDescription" : null, + "referenceCheckerType" : "tr_flag_fla", "reference" : true }, + "tel_value::tel_value_variable" : { + "type" : "PatternComponentQualifiers", + "componentKey" : "tel_value_variable", + "tags" : [ { + "tagDefinition" : "NO_TAG", + "tagName" : "no_tag" + } ], + "exportHeaderName" : "tel_value_variable", + "langRestrictions" : [ ], + "patternNumber" : 1, + "checker" : null, + "submissionAuthorizationScope" : null, + "hidden" : false, + "chartDescription" : null, + "referenceCheckerType" : "StringChecker", + "reference" : false + }, "tel_experimental_network" : { "type" : "ConstantComponent", "componentKey" : "tel_experimental_network", @@ -1522,8 +1539,8 @@ "exportHeaderName" : "tel_experimental_network", "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tel_pixel_count" : { @@ -1550,8 +1567,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tel_value" : { @@ -1591,8 +1608,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tel_value_qualifier" : { @@ -1608,8 +1625,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tel_value_resolution" : { @@ -1625,33 +1642,16 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, "patternComponentAdjacents" : { }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, - "reference" : false - }, - "tel_value_qualifier" : { - "type" : "PatternComponentQualifiers", - "componentKey" : "tel_value_qualifier", - "tags" : [ { - "tagDefinition" : "NO_TAG", - "tagName" : "no_tag" - } ], - "exportHeaderName" : "tel_value_qualifier", - "langRestrictions" : [ ], - "patternNumber" : 2, - "checker" : null, - "submissionAuthorizationScope" : null, - "hidden" : false, "referenceCheckerType" : "StringChecker", - "chartDescription" : null, "reference" : false }, "tel_experimental_site" : { @@ -1690,8 +1690,8 @@ "exportHeaderName" : "tel_experimental_site", "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "sites", "chartDescription" : null, + "referenceCheckerType" : "sites", "reference" : true }, "tel_experimental_plot" : { @@ -1726,8 +1726,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "tr_plot_plo", "chartDescription" : null, + "referenceCheckerType" : "tr_plot_plo", "reference" : true }, "tel_pixel_count_20m" : { @@ -1754,11 +1754,11 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : true, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, - "tel_value_resolution" : { + "tel_value::tel_value_resolution" : { "type" : "PatternComponentQualifiers", "componentKey" : "tel_value_resolution", "tags" : [ { @@ -1771,8 +1771,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tel_pixel_count_10m" : { @@ -1799,25 +1799,25 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : true, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, - "tel_value_variable" : { + "tel_value::tel_value_qualifier" : { "type" : "PatternComponentQualifiers", - "componentKey" : "tel_value_variable", + "componentKey" : "tel_value_qualifier", "tags" : [ { "tagDefinition" : "NO_TAG", "tagName" : "no_tag" } ], - "exportHeaderName" : "tel_value_variable", + "exportHeaderName" : "tel_value_qualifier", "langRestrictions" : [ ], - "patternNumber" : 1, + "patternNumber" : 2, "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "tel_variable" : { @@ -1853,8 +1853,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "variables", "chartDescription" : null, + "referenceCheckerType" : "variables", "reference" : true } }, @@ -1944,8 +1944,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_key" : { @@ -1973,8 +1973,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_en" : { @@ -2002,8 +2002,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_fr" : { @@ -2031,8 +2031,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "code_key" : { @@ -2060,8 +2060,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "code_fr" : { @@ -2089,8 +2089,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -2144,8 +2144,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_en" : { @@ -2173,8 +2173,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "definition_en" : { @@ -2202,8 +2202,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_fr" : { @@ -2231,8 +2231,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "colonne_homonyme_entre_referentiels" : { @@ -2260,8 +2260,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "definition_fr" : { @@ -2289,8 +2289,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -2338,8 +2338,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -2387,8 +2387,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_en" : { @@ -2416,8 +2416,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "valeur_en" : { @@ -2445,8 +2445,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_fr" : { @@ -2474,8 +2474,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "valeur_key" : { @@ -2503,8 +2503,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "valeur_fr" : { @@ -2532,8 +2532,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -2580,8 +2580,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_en" : { @@ -2609,8 +2609,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom_fr" : { @@ -2638,8 +2638,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "description_fr" : { @@ -2667,8 +2667,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "description_en" : { @@ -2696,8 +2696,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -2745,8 +2745,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -2816,8 +2816,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "site_bassin" : { @@ -2851,8 +2851,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : true, - "referenceCheckerType" : "sites", "chartDescription" : null, + "referenceCheckerType" : "sites", "reference" : true }, "bassin" : { @@ -2880,8 +2880,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "individusNumber_unit" : { @@ -2917,8 +2917,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "unites", "chartDescription" : null, + "referenceCheckerType" : "unites", "reference" : true }, "projet" : { @@ -2957,8 +2957,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "projet", "chartDescription" : null, + "referenceCheckerType" : "projet", "reference" : true }, "espece" : { @@ -2994,8 +2994,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "especes", "chartDescription" : null, + "referenceCheckerType" : "especes", "reference" : true }, "chemin" : { @@ -3031,8 +3031,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "sites", "chartDescription" : null, + "referenceCheckerType" : "sites", "reference" : true }, "plateforme" : { @@ -3060,8 +3060,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "color_value" : { @@ -3097,8 +3097,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "valeurs_qualitatives", "chartDescription" : null, + "referenceCheckerType" : "valeurs_qualitatives", "reference" : true }, "color_unit" : { @@ -3134,8 +3134,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "unites", "chartDescription" : null, + "referenceCheckerType" : "unites", "reference" : true }, "individusNumbervalue" : { @@ -3163,8 +3163,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -3289,8 +3289,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "definition_en" : { @@ -3318,8 +3318,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "site" : { @@ -3347,8 +3347,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "propriete_en" : { @@ -3376,8 +3376,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "type_associe" : { @@ -3405,8 +3405,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "propriete_fr" : { @@ -3434,8 +3434,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "is_qualitative" : { @@ -3463,8 +3463,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "ordre_affichage" : { @@ -3492,8 +3492,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "propriete_key" : { @@ -3521,8 +3521,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "definition_fr" : { @@ -3550,8 +3550,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "is_float_value" : { @@ -3579,8 +3579,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, @@ -3693,8 +3693,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "taxon", "chartDescription" : null, + "referenceCheckerType" : "taxon", "reference" : true }, "sandre_superieur" : { @@ -3722,8 +3722,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "incertitude" : { @@ -3751,8 +3751,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "notes" : { @@ -3780,8 +3780,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "sandre_taxon" : { @@ -3809,8 +3809,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "annee" : { @@ -3838,8 +3838,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "nom" : { @@ -3867,8 +3867,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "auteur" : { @@ -3896,8 +3896,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "bourrelly" : { @@ -3925,8 +3925,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "sandre" : { @@ -3954,8 +3954,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "reference_description" : { @@ -3983,8 +3983,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "synonyme_ancien" : { @@ -4012,8 +4012,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "references_taxon" : { @@ -4041,8 +4041,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "synonyme_recent" : { @@ -4070,8 +4070,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "theme" : { @@ -4099,8 +4099,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false }, "propriete_taxons" : { @@ -4130,8 +4130,8 @@ "referenceColumnToLookForHeader" : "propriete_key", "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", - "chartDescription" : null + "chartDescription" : null, + "referenceCheckerType" : "StringChecker" }, "niveau_taxon" : { "type" : "BasicComponent", @@ -4158,8 +4158,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "referenceCheckerType" : "StringChecker", "chartDescription" : null, + "referenceCheckerType" : "StringChecker", "reference" : false } }, diff --git a/src/test/resources/data/pattern/taxons_du_phytoplancton-reduit-pour-pattern.csv b/src/test/resources/data/pattern/taxons_du_phytoplancton-reduit-pour-pattern.csv index 4a6521562..af0c68343 100644 --- a/src/test/resources/data/pattern/taxons_du_phytoplancton-reduit-pour-pattern.csv +++ b/src/test/resources/data/pattern/taxons_du_phytoplancton-reduit-pour-pattern.csv @@ -1,10 +1,10 @@ -nom du taxon déterminé;theme;nom du niveau de taxon;nom du taxon superieur;code sandre du taxon;code sandre du taxon supérieur;annecy_S1_4_5.6;annecy_S1_2_1.5;annecy_S2_3_3.2;pt_niveau incertitude de détermination;pt_Auteur de la description;pt_Année de la description;pt_Référence de la description;pt_Références relatives à ce taxon;pt_Synonyme ancien;pt_Synonyme récent;pt_Classe algale sensu Bourrelly;pt_Code Sandre;pt_Code taxa Cemagref;pt_Code INRA;pt_code INRA lettres;pt_Rebecca name;pt_Code Rebecca;pt_Code Omnidia;pt_Unité de comptage du taxon;pt_Erreur sur le biovolume;pt_valeur du biovolume spécifique choisi pour le taxon;pt_Longueur de la cellule;pt_Largeur de la cellule;pt_Epaisseur de la cellule;pt_Forme géométrique de la cellule;pt_Facteur à multiplier à la forme géométrique pour avoir le biovolume de la cellule;pt_Facteur à diviser à la forme géométrique pour avoir la surface de la cellule;pt_Surface de la cellule;pt_Biovolume de la cellule;pt_Nombre de cellule par colonie;pt_Surface cumulée des cellules;pt_biovolume cumulé des cellules;pt_Longueur de la colonie (prends en compte la gelée);pt_Largeur de la colonie (prends en compte la gelée);pt_Epaisseur de la colonie (prends en compte la gelée);pt_Forme géométrique de la colonie;pt_Facteur à multiplier à la forme géométrique pour avoir le biovolume de la colonie (sans prendre en compte la gelée);pt_Facteur à diviser à la forme géométrique pour avoir la surface de la colonie (en prenant en compte la gelée);pt_Surface de la colonie;pt_Biovolume de la colonie;pt_Notes sur les biovolumes;pt_Notes libres;Code Sandre;Synonyme ancien;Synonyme récent;Année de la description;Auteur de la description;Classe algale sensu Bourrelly;Référence de la description;Références relatives à ce taxon;niveau incertitude de détermination;Notes libres -Chroomonas cf coerulea;Phytoplancton;Genre espèce;Chroomonadaceae;;;5.2;3.4;2.1;espèce;;;;;;;Cryptophycées;;;30320.0;;;;;cellule;ok;109.9;7.0;6.0;5.0;trel;1.0;1.0;386.61;109.9;1.0;386.61;109.9;;;;;;;;;JCD;;;;;;;;;;; -Chroomonas sp.;Phytoplancton;Genre espèce;Chroomonadaceae;;;3.9;1.2;2.6;espèce;;;;Kugrens; P. & Clay; B.L. (2002). Cryptomonads. In: Freshwater Algae of North America. ( Eds); pp. 715-755. San Diego: Academic Press.;;;Cryptophycées;;CHMSPX;30310.0;CHM.SPX;Chroomonas;R1375;;cellule;ok;796.4;13.0;13.0;9.0;ell;1.0;1.0;1422.3;795.99;1.0;1422.3;795.99;;;;;;;;;;;;;;;;; -Chroomonadaceae;Phytoplancton;Famille;Pyrenomonadales;;;2.5;5.2;3.4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Pyrenomonadales;Phytoplancton;Ordre;Cryptophyceae;;;7.2;3.9;1.2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Cryptophyceae;Phytoplancton;Classe;Cryptophyta;;;3.2;2.5;5.2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Cryptophyta;Phytoplancton;Embranchement;Cryptista;;;2.1;7.2;3.9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Cryptista;Phytoplancton;Règne;Chromista;;;2.6;3.2;2.5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Chromista;Phytoplancton;Règne;Eukaryota;;;3.4;2.1;7.2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Eukaryota;Phytoplancton;Domaine;;;;1.2;2.6;3.2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +nom du taxon déterminé;theme;nom du niveau de taxon;nom du taxon superieur;code sandre du taxon;code sandre du taxon supérieur;annecy_S1_4_5.6;annecy_sd;annecy_qc;annecy_S1_2_1.5;annecy_sd;annecy_qc;annecy_S2_3_3.2;sd;qc;pt_niveau incertitude de détermination;pt_Auteur de la description;pt_Année de la description;pt_Référence de la description;pt_Références relatives à ce taxon;pt_Synonyme ancien;pt_Synonyme récent;pt_Classe algale sensu Bourrelly;pt_Code Sandre;pt_Code taxa Cemagref;pt_Code INRA;pt_code INRA lettres;pt_Rebecca name;pt_Code Rebecca;pt_Code Omnidia;pt_Unité de comptage du taxon;pt_Erreur sur le biovolume;pt_valeur du biovolume spécifique choisi pour le taxon;pt_Longueur de la cellule;pt_Largeur de la cellule;pt_Epaisseur de la cellule;pt_Forme géométrique de la cellule;pt_Facteur à multiplier à la forme géométrique pour avoir le biovolume de la cellule;pt_Facteur à diviser à la forme géométrique pour avoir la surface de la cellule;pt_Surface de la cellule;pt_Biovolume de la cellule;pt_Nombre de cellule par colonie;pt_Surface cumulée des cellules;pt_biovolume cumulé des cellules;pt_Longueur de la colonie (prends en compte la gelée);pt_Largeur de la colonie (prends en compte la gelée);pt_Epaisseur de la colonie (prends en compte la gelée);pt_Forme géométrique de la colonie;pt_Facteur à multiplier à la forme géométrique pour avoir le biovolume de la colonie (sans prendre en compte la gelée);pt_Facteur à diviser à la forme géométrique pour avoir la surface de la colonie (en prenant en compte la gelée);pt_Surface de la colonie;pt_Biovolume de la colonie;pt_Notes sur les biovolumes;pt_Notes libres;Code Sandre;Synonyme ancien;Synonyme récent;Année de la description;Auteur de la description;Classe algale sensu Bourrelly;Référence de la description;Références relatives à ce taxon;niveau incertitude de détermination;Notes libres +Chroomonas cf coerulea;Phytoplancton;Genre espèce;Chroomonadaceae;;;5.2;3.9;1;3.4;2.6;1;2.1;3.9;1;espèce;;;;;;;Cryptophycées;;;30320.0;;;;;cellule;ok;109.9;7.0;6.0;5.0;trel;1.0;1.0;386.61;109.9;1.0;386.61;109.9;;;;;;;;;JCD;;;;;;;;;;; +Chroomonas sp.;Phytoplancton;Genre espèce;Chroomonadaceae;;;3.9;2.5;1;1.2;3.4;0;2.6;2.5;1;espèce;;;;Kugrens; P. & Clay; B.L. (2002). Cryptomonads. In: Freshwater Algae of North America. ( Eds); pp. 715-755. San Diego: Academic Press.;;;Cryptophycées;;CHMSPX;30310.0;CHM.SPX;Chroomonas;R1375;;cellule;ok;796.4;13.0;13.0;9.0;ell;1.0;1.0;1422.3;795.99;1.0;1422.3;795.99;;;;;;;;;;;;;;;;; +Chroomonadaceae;Phytoplancton;Famille;Pyrenomonadales;;;2.5;7.2;0;5.2;1.2;0;3.4;7.2;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Pyrenomonadales;Phytoplancton;Ordre;Cryptophyceae;;;7.2;3.2;2;3.9;2.5;0;1.2;3.2;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Cryptophyceae;Phytoplancton;Classe;Cryptophyta;;;3.2;2.1;1;2.5;3.9;1;5.2;2.1;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Cryptophyta;Phytoplancton;Embranchement;Cryptista;;;2.1;2.6;1;7.2;2.5;1;3.9;3.4;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Cryptista;Phytoplancton;Règne;Chromista;;;2.6;3.4;0;3.2;7.2;0;2.5;1.2;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Chromista;Phytoplancton;Règne;Eukaryota;;;3.4;1.2;0;2.1;3.2;2;7.2;5.2;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Eukaryota;Phytoplancton;Domaine;;;;1.2;2.5;0;2.6;2.1;1;3.2;3.9;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/src/test/resources/data/validation/broken-fake-app.yaml b/src/test/resources/data/validation/broken-fake-app.yaml index bff5d67e7..42a682fef 100644 --- a/src/test/resources/data/validation/broken-fake-app.yaml +++ b/src/test/resources/data/validation/broken-fake-app.yaml @@ -409,6 +409,28 @@ OA_data: OA_description: fr: "le chemin" en: "The path" + OA_componentAdjacents: + - #optional + swc_sd: #optional + OA_importHeaderPattern: "{$1}_sd" #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: écart_type + en: standard_deviation + OA_required: false #optional + OA_mandatory: false #optional + - #optional + swc_qc: #optional + OA_importHeaderPattern: "{$1}_qc" #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Indic de qualité + en: Quality class + OA_description: #optional + fr: 0 pour une valeur valide ; 2 pour une valeur incorrecte + en: 0 for valid value; 2 for bad value + OA_required: false #optional + OA_mandatory: false #optional OA_submission: OA_strategy: OA_VERSIONING OA_fileName: -- GitLab From c74df0ba63888877fd989d9d944e5ff69f9fc54b Mon Sep 17 00:00:00 2001 From: Philippe Tcherniatinsky <philippe.tcherniatinsky@inra.fr> Date: Thu, 31 Oct 2024 23:49:20 +0100 Subject: [PATCH 41/52] Limitation logs --- src/main/resources/application.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 31a74f0e7..3b654c86f 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -33,10 +33,11 @@ spring.flyway.baseline-on-migrate=true spring.flyway.placeholders.publicRoleId = ${SPRING_FLYWAY_PLACEHOLDERS_PUBLIC-ROLE-ID} # Pour application.properties #spring.flyway.logging=DEBUG -logging.level.org.flywaydb=DEBUG +#logging.level.org.flywaydb=DEBUG #logging.level.org.springframework.jdbc=TRACE logging.level.fr.inra.oresing=DEBUG + spring.servlet.multipart.max-file-size=${SPRING_SERVLET_MULTIPART_MAXFILESIZE} spring.servlet.multipart.maxRequestSize=${SPRING_SERVLET_MULTIPART_MAXREQUESTSIZE} server.servlet.encoding.charset=UTF-8 -- GitLab From ffa46e3a7704633dec0e341c1c7410f8d6747982 Mon Sep 17 00:00:00 2001 From: Philippe Tcherniatinsky <philippe.tcherniatinsky@inra.fr> Date: Thu, 31 Oct 2024 23:50:54 +0100 Subject: [PATCH 42/52] Update application.properties -- GitLab From 9810c69d3ba12d48a3176f0a1aecc1ba7bf2042d Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Mon, 4 Nov 2024 10:00:39 +0100 Subject: [PATCH 43/52] Correction de tests - ajout du test ConfigurationException.DUPLICATED_COMPONENT_HEADER --- .../configuration/builder/DataBuilder.java | 26 +- .../ApplicationConfigurationServiceTest.java | 8 +- .../configuration/data.result.example.json | 118 ++++----- .../data/configuration/data.result.json | 236 +++++++++--------- .../fixtures/applications/errors/errors.json | 2 +- .../ore/monsore/changeMonsore.txt | 34 +-- .../ore/monsore/createMonsore.txt | 42 ++-- .../ore/monsore/validateMonsore.txt | 20 +- 8 files changed, 256 insertions(+), 230 deletions(-) diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java index 0fc48e6aa..87baff8d9 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/DataBuilder.java @@ -12,6 +12,7 @@ import org.apache.commons.collections4.MapUtils; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; public record DataBuilder(RootBuilder rootBuilder) { @@ -98,6 +99,29 @@ public record DataBuilder(RootBuilder rootBuilder) { i18n = rootBuilder.getPatternComponentsBuilder().build(path, componentDescriptionBuilder, dataKey, i18n, jsonNode); i18n = rootBuilder.getConstantComponentsBuilder().build(path, componentDescriptionBuilder, dataKey, i18n, jsonNode, headerLine, firstRowLine); ImmutableMap<String, ComponentDescription> componentDescriptions = componentDescriptionBuilder.build(); + Map<String, List<Map.Entry<String, ComponentDescription>>> duplicatedImportHeader = componentDescriptions.entrySet().stream() + .collect(Collectors.groupingBy( + entry -> entry.getValue().importHeader() + )).entrySet().stream() + .filter(entry -> entry.getValue().size() > 1) + .filter(entry->!(entry.getValue().stream().allMatch(value-> (value.getValue() instanceof PatternComponentQualifiers) || (value.getValue() instanceof PatternComponentAdjacents)))) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + if (MapUtils.isNotEmpty(duplicatedImportHeader)){ + duplicatedImportHeader.entrySet().stream() + .forEach(entry -> { + rootBuilder.buildError(ConfigurationException.DUPLICATED_COMPONENT_HEADER, + Map.of( + "data", dataKey, + "duplicatedHeader", entry.getKey(), + "duplicatedImportHeader", entry.getValue().stream().map(Map.Entry::getKey).toList() + ), + NodeSchemaValidator.joinPath( + ConfigurationSchemaNode.OA_DATA, + dataKey + ) + ); + }); + } final ImmutableMap.Builder<String, ValidationDescription> validationBuilder = new ImmutableMap.Builder<String, ValidationDescription>(); i18n = rootBuilder.getValidationsBuilder().build(path, validationBuilder, dataKey, i18n, jsonNode, componentDescriptions); ImmutableMap<String, ValidationDescription> validations = validationBuilder.build(); @@ -163,7 +187,7 @@ public record DataBuilder(RootBuilder rootBuilder) { return componentValidationByType; } - + private Set<Tag> buildAndTestDomainTags(final String path, final JsonNode jsonNode) { final Set<String> domainTagNames = rootBuilder.getDomainTags().stream() .filter(Tag.DomainTag.class::isInstance) diff --git a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java index b05c7f796..d0d4475a8 100644 --- a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java +++ b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java @@ -1255,10 +1255,12 @@ public class ApplicationConfigurationServiceTest { final ValidationError validationError = errors.get(0); assertEquals(ConfigurationException.DUPLICATED_COMPONENT_HEADER.getMessage(), validationError.getMessage()); assertIterableEquals( - List.of("OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName", "OA_data > sites > OA_basicComponents > zet_chemin_parent"), - (Iterable<String>) validationError.getParam("duplicatedPathes") + List.of("zet_nom_key", "zet_chemin_parent"), + (Iterable<String>) validationError.getParam("duplicatedImportHeader") ); - assertEquals("OA_data > sites > OA_basicComponents > zet_chemin_parent", validationError.getParam("path")); + assertEquals("OA_data > sites", validationError.getParam("path")); + assertEquals("sites", validationError.getParam("data")); + assertEquals("zet_chemin_parent", validationError.getParam("duplicatedHeader")); }); } diff --git a/src/test/resources/data/configuration/data.result.example.json b/src/test/resources/data/configuration/data.result.example.json index da2d821f9..e7b079d30 100644 --- a/src/test/resources/data/configuration/data.result.example.json +++ b/src/test/resources/data/configuration/data.result.example.json @@ -46,8 +46,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "tr_type_zone_etude_tze", + "chartDescription" : null, "reference" : true }, "zet_description_en" : { @@ -75,8 +75,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_nom_fr" : { @@ -104,8 +104,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_nom_key" : { @@ -133,8 +133,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_computed_key" : { @@ -169,8 +169,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "tr_zone_etude_zet", + "chartDescription" : null, "reference" : true }, "zet_nom_en" : { @@ -198,8 +198,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_description_fr" : { @@ -227,8 +227,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_chemin_parent" : { @@ -264,8 +264,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "tr_zone_etude_zet", + "chartDescription" : null, "reference" : true } }, @@ -325,8 +325,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tze_nom_fr" : { @@ -354,8 +354,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tze_definition_fr" : { @@ -383,8 +383,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tze_nom_en" : { @@ -412,8 +412,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tze_definition_en" : { @@ -441,8 +441,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -498,8 +498,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "ptx_propriete" : { @@ -532,8 +532,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -584,8 +584,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "pro_nom_fr" : { @@ -613,8 +613,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "pro_definition_fr" : { @@ -642,8 +642,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "pro_nom_en" : { @@ -671,8 +671,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "pro_definition_en" : { @@ -700,8 +700,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -754,8 +754,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tax_propriete_taxon" : { @@ -785,8 +785,8 @@ "referenceColumnToLookForHeader" : "ptx_propriete", "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, - "referenceCheckerType" : "StringChecker" + "referenceCheckerType" : "StringChecker", + "chartDescription" : null } }, "submission" : null, @@ -830,8 +830,8 @@ "max" : 2 }, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "smp::smp_sd" : { @@ -854,8 +854,8 @@ "max" : 500.0 }, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "dat_date_heure" : { @@ -890,8 +890,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "dat_heure" : { @@ -919,8 +919,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "smp::smp_profondeur" : { @@ -942,8 +942,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "smp::smp_repetition" : { @@ -965,8 +965,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "dat_start_date" : { @@ -998,8 +998,8 @@ "exportHeaderName" : "dat_start_date", "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "swc::swc_qc" : { @@ -1022,8 +1022,8 @@ "max" : 2 }, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "swc::swc_sd" : { @@ -1046,8 +1046,8 @@ "max" : 500.0 }, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "dat_type_site" : { @@ -1083,8 +1083,8 @@ "exportHeaderName" : "dat_type_site", "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "dat_end_date" : { @@ -1116,8 +1116,8 @@ "exportHeaderName" : "dat_end_date", "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "swc::swc_repetition" : { @@ -1139,8 +1139,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "smp" : { @@ -1192,8 +1192,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "smp_repetition" : { @@ -1215,8 +1215,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -1241,8 +1241,8 @@ "max" : 500.0 }, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "smp_qc" : { @@ -1265,15 +1265,15 @@ "max" : 2 }, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "dat_date" : { @@ -1301,8 +1301,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "dat_site" : { @@ -1327,8 +1327,8 @@ "exportHeaderName" : "dat_site", "submissionAuthorizationScope" : "tr_zone_etude_zet", "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "tr_zone_etude_zet", + "chartDescription" : null, "reference" : true }, "swc::swc_profondeur" : { @@ -1350,8 +1350,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "swc" : { @@ -1403,8 +1403,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "swc_repetition" : { @@ -1426,8 +1426,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -1452,8 +1452,8 @@ "max" : 500.0 }, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "swc_qc" : { @@ -1476,15 +1476,15 @@ "max" : 2 }, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -1689,8 +1689,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_species" : { @@ -1723,8 +1723,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_tool" : { @@ -1761,8 +1761,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_is_iso" : { @@ -1794,8 +1794,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : true, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_definition_fr" : { @@ -1823,8 +1823,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_site" : { @@ -1860,8 +1860,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "tr_zone_etude_zet", + "chartDescription" : null, "reference" : true }, "spe_heure" : { @@ -1897,8 +1897,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_weight" : { @@ -1932,8 +1932,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_definition_en" : { @@ -1961,8 +1961,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_date_heure" : { @@ -1997,8 +1997,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "spe_repetition" : { @@ -2032,8 +2032,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, diff --git a/src/test/resources/data/configuration/data.result.json b/src/test/resources/data/configuration/data.result.json index 9c9a89d9e..641966ec6 100644 --- a/src/test/resources/data/configuration/data.result.json +++ b/src/test/resources/data/configuration/data.result.json @@ -35,8 +35,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "esp_definition_en" : { @@ -64,8 +64,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "my_computed_column" : { @@ -91,8 +91,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : true, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "esp_nom" : { @@ -120,8 +120,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "esp_definition_fr" : { @@ -149,8 +149,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -198,8 +198,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -247,8 +247,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_en" : { @@ -276,8 +276,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "definition_en" : { @@ -305,8 +305,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "is_qualitative" : { @@ -334,8 +334,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_fr" : { @@ -363,8 +363,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "definition_fr" : { @@ -392,8 +392,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -441,8 +441,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tze_nom_fr" : { @@ -470,8 +470,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tze_definition_fr" : { @@ -499,8 +499,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tze_nom_en" : { @@ -528,8 +528,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tze_definition_en" : { @@ -557,8 +557,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -606,8 +606,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "theme" : { @@ -635,8 +635,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "projet" : { @@ -672,8 +672,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "projet", + "chartDescription" : null, "reference" : true }, "datatype" : { @@ -701,8 +701,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -816,8 +816,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "datatype" : { @@ -845,8 +845,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "unite" : { @@ -874,8 +874,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -993,8 +993,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "type_de_sites", + "chartDescription" : null, "reference" : true }, "zet_description_en" : { @@ -1022,8 +1022,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_nom_fr" : { @@ -1051,8 +1051,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_nom_key" : { @@ -1080,8 +1080,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_nom_en" : { @@ -1109,8 +1109,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_description_fr" : { @@ -1138,8 +1138,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "zet_chemin_parent" : { @@ -1175,8 +1175,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "sites", + "chartDescription" : null, "reference" : true } }, @@ -1232,8 +1232,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -1281,8 +1281,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_en" : { @@ -1310,8 +1310,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_fr" : { @@ -1339,8 +1339,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "description_fr" : { @@ -1368,8 +1368,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "description_en" : { @@ -1397,8 +1397,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -1453,8 +1453,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_flag" : { @@ -1490,8 +1490,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "tr_flag_fla", + "chartDescription" : null, "reference" : true }, "tel_value::tel_value_variable" : { @@ -1507,8 +1507,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_experimental_network" : { @@ -1539,8 +1539,8 @@ "exportHeaderName" : "tel_experimental_network", "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_pixel_count" : { @@ -1567,8 +1567,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_value" : { @@ -1608,8 +1608,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_value_qualifier" : { @@ -1625,8 +1625,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_value_resolution" : { @@ -1642,16 +1642,16 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, "patternComponentAdjacents" : { }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_experimental_site" : { @@ -1690,8 +1690,8 @@ "exportHeaderName" : "tel_experimental_site", "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "sites", + "chartDescription" : null, "reference" : true }, "tel_experimental_plot" : { @@ -1726,8 +1726,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "tr_plot_plo", + "chartDescription" : null, "reference" : true }, "tel_pixel_count_20m" : { @@ -1754,8 +1754,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : true, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_value::tel_value_resolution" : { @@ -1771,8 +1771,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_pixel_count_10m" : { @@ -1799,8 +1799,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : true, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_value::tel_value_qualifier" : { @@ -1816,8 +1816,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "tel_variable" : { @@ -1853,8 +1853,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "variables", + "chartDescription" : null, "reference" : true } }, @@ -1944,8 +1944,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_key" : { @@ -1973,8 +1973,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_en" : { @@ -2002,8 +2002,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_fr" : { @@ -2031,8 +2031,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "code_key" : { @@ -2060,8 +2060,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "code_fr" : { @@ -2089,8 +2089,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -2144,8 +2144,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_en" : { @@ -2173,8 +2173,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "definition_en" : { @@ -2202,8 +2202,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_fr" : { @@ -2231,8 +2231,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "colonne_homonyme_entre_referentiels" : { @@ -2260,8 +2260,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "definition_fr" : { @@ -2289,8 +2289,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -2338,8 +2338,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -2387,8 +2387,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_en" : { @@ -2416,8 +2416,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "valeur_en" : { @@ -2445,8 +2445,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_fr" : { @@ -2474,8 +2474,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "valeur_key" : { @@ -2503,8 +2503,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "valeur_fr" : { @@ -2532,8 +2532,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -2580,8 +2580,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_en" : { @@ -2609,8 +2609,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom_fr" : { @@ -2638,8 +2638,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "description_fr" : { @@ -2667,8 +2667,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "description_en" : { @@ -2696,8 +2696,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -2745,8 +2745,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -2816,8 +2816,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "site_bassin" : { @@ -2851,8 +2851,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : true, - "chartDescription" : null, "referenceCheckerType" : "sites", + "chartDescription" : null, "reference" : true }, "bassin" : { @@ -2880,8 +2880,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "individusNumber_unit" : { @@ -2917,8 +2917,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "unites", + "chartDescription" : null, "reference" : true }, "projet" : { @@ -2957,8 +2957,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "projet", + "chartDescription" : null, "reference" : true }, "espece" : { @@ -2994,8 +2994,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "especes", + "chartDescription" : null, "reference" : true }, "chemin" : { @@ -3031,8 +3031,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "sites", + "chartDescription" : null, "reference" : true }, "plateforme" : { @@ -3060,8 +3060,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "color_value" : { @@ -3097,8 +3097,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "valeurs_qualitatives", + "chartDescription" : null, "reference" : true }, "color_unit" : { @@ -3134,8 +3134,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "unites", + "chartDescription" : null, "reference" : true }, "individusNumbervalue" : { @@ -3163,8 +3163,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -3289,8 +3289,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "definition_en" : { @@ -3318,8 +3318,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "site" : { @@ -3347,8 +3347,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "propriete_en" : { @@ -3376,8 +3376,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "type_associe" : { @@ -3405,8 +3405,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "propriete_fr" : { @@ -3434,8 +3434,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "is_qualitative" : { @@ -3463,8 +3463,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "ordre_affichage" : { @@ -3492,8 +3492,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "propriete_key" : { @@ -3521,8 +3521,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "definition_fr" : { @@ -3550,8 +3550,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "is_float_value" : { @@ -3579,8 +3579,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, @@ -3693,8 +3693,8 @@ }, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "taxon", + "chartDescription" : null, "reference" : true }, "sandre_superieur" : { @@ -3722,8 +3722,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "incertitude" : { @@ -3751,8 +3751,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "notes" : { @@ -3780,8 +3780,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "sandre_taxon" : { @@ -3809,8 +3809,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "annee" : { @@ -3838,8 +3838,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "nom" : { @@ -3867,8 +3867,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "auteur" : { @@ -3896,8 +3896,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "bourrelly" : { @@ -3925,8 +3925,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "sandre" : { @@ -3954,8 +3954,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "reference_description" : { @@ -3983,8 +3983,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "synonyme_ancien" : { @@ -4012,8 +4012,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "references_taxon" : { @@ -4041,8 +4041,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "synonyme_recent" : { @@ -4070,8 +4070,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "theme" : { @@ -4099,8 +4099,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false }, "propriete_taxons" : { @@ -4130,8 +4130,8 @@ "referenceColumnToLookForHeader" : "propriete_key", "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, - "referenceCheckerType" : "StringChecker" + "referenceCheckerType" : "StringChecker", + "chartDescription" : null }, "niveau_taxon" : { "type" : "BasicComponent", @@ -4158,8 +4158,8 @@ "checker" : null, "submissionAuthorizationScope" : null, "hidden" : false, - "chartDescription" : null, "referenceCheckerType" : "StringChecker", + "chartDescription" : null, "reference" : false } }, diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index 93ae50866..2c519d659 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2024-10-29T13:46:01.989693044","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2024-10-29T13:47:26.205585232","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2024-10-29T13:46:36.934378759","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2024-10-29T13:45:49.778155986","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2024-10-29T13:45:51.874913372","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:45:41.494864714","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:45:41.495807943","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-29T13:47:09.713493337","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-10-29T13:47:34.457377127","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:45:47.692259631","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:45:47.692702109","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"submissionReference":"projet","componentReference":"proj","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2024-10-29T13:47:57.260211429","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:48:05.405915452","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:46:49.186774993","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_application","OA_version","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2024-10-29T13:46:40.898719903","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2024-10-29T13:45:57.85507036","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:40.606772332","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","knownAuthorizationScope":["site_bassin","projet"],"unknownAuthorizationScope":"site_bassine"}},"time":"2024-10-29T13:47:38.590422215","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:46:44.893805115","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2024-10-29T13:45:43.586393097","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2024-10-29T13:46:57.560918004","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2024-10-29T13:46:34.905458443","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2024-10-29T13:46:20.824422679","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:46:59.604658803","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:48:07.468892413","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2024-10-29T13:46:22.76452003","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2024-10-29T13:45:53.848082721","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:46:38.941734607","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:46:38.942650782","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:46:38.942935108","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.876411405","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.876836267","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:47:50.876997432","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.877190064","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:47:50.87724604","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.877400615","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-10-29T13:47:50.877427378","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-10-29T13:47:50.877743393","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2024-10-29T13:46:32.907717627","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2024-10-29T13:46:28.806147142","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","knownAuthorizationScope":["site_bassin","proj"],"unknownAuthorizationScope":"projet"}},"time":"2024-10-29T13:46:28.806312992","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-29T13:46:55.495662801","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","componentName":"tel_date"}},"time":"2024-10-29T13:47:13.813874031","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:46:51.329891415","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-29T13:46:08.526101001","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:22.104428447","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-10-29T13:46:16.747863321","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-10-29T13:46:04.282713463","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-10-29T13:47:24.184548129","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2024-10-29T13:46:18.776772069","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2024-10-29T13:45:55.848803004","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:48:01.35256307","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:48:01.353377253","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2024-10-29T13:48:01.353601954","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:46.64643635","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2024-10-29T13:46:12.570329685","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-10-29T13:47:52.970509364","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:47:32.503125164","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.503265859","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.50405595","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.504319217","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.504557113","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.505078398","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:32.505209409","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:17.825103611","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2024-10-29T13:47:19.896194076","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2024-10-29T13:46:26.809406995","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2024-10-29T13:46:10.543259101","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2024-10-29T13:47:36.505990947","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2024-10-29T13:47:15.775769772","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:46:46.99060846","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:45:45.597771596","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:05.703899735","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-10-29T13:46:24.773960157","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2024-10-29T13:45:59.905056638","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-10-29T13:47:11.761873074","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2024-10-29T13:46:30.860754783","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2024-10-29T13:46:42.883231807","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedPathes":["OA_data > sites > OA_basicComponents > zet_nom_key > OA_importHeader > OA_headerName","OA_data > sites > OA_basicComponents > zet_chemin_parent"],"header":"zet_chemin_parent","path":"OA_data > sites > OA_basicComponents > zet_chemin_parent"}},"time":"2024-10-29T13:47:28.369291331","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","bez","dz","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","ga","wae","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","mi","lrc","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","sah","mer","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2024-10-29T13:47:30.459117752","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-10-29T13:47:44.641545074","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2024-10-29T13:47:42.578354706","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2024-10-29T13:47:07.700798503","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2024-10-29T13:47:55.167155954","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2024-10-29T13:48:03.290262962","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-29T13:47:03.663379387","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:47:01.653352376","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-10-29T13:46:53.473755642","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["tel_date","date","bassin","espece","chemin","tel_experimental_network","is_float_value","tel_value","site_bassin","tel_experimental_site","site","projet","tel_chemin","ordre_affichage","plateforme"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-10-29T13:47:59.350168155","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:47:48.738366665","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-10-29T13:47:48.738708505","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:48.738837166","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:47:48.739507672","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:47:48.740001143","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:48.740524392","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-10-29T13:47:48.741045904","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:47:48.741761584","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2024-10-29T13:47:48.741940339","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:47:48.742354691","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-10-29T13:47:48.743007664","type":"REACTIVE_ERROR"}]} \ No newline at end of file +{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2024-11-04T13:39:08.887345717","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2024-11-04T13:40:32.155851118","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2024-11-04T13:39:43.033780017","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2024-11-04T13:38:56.874889503","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2024-11-04T13:38:58.893998373","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:38:48.42768023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:38:48.428626997","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-11-04T13:40:15.854527582","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-11-04T13:40:40.16438621","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:38:54.876008552","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:38:54.876842326","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"componentReference":"proj","submissionReference":"projet","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2024-11-04T13:41:02.900950674","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:41:10.93687479","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:39:55.433513947","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_version","OA_application","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2024-11-04T13:39:47.003635795","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2024-11-04T13:39:04.90503551","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:46.458378268","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2024-11-04T13:40:44.292359728","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-04T13:39:51.048409591","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2024-11-04T13:38:50.596339995","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2024-11-04T13:40:03.701972242","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2024-11-04T13:39:41.035193532","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2024-11-04T13:39:27.081518145","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-04T13:40:05.758733196","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-04T13:41:12.987092698","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2024-11-04T13:39:29.101830761","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2024-11-04T13:39:01.011937237","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-04T13:39:45.030095793","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-04T13:39:45.031033476","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-04T13:39:45.031296341","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.671039646","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.671424897","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-04T13:40:56.671503147","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.6716448","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-04T13:40:56.671688901","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.672002773","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-04T13:40:56.67203038","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.672348449","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2024-11-04T13:39:39.026989173","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2024-11-04T13:39:35.022880736","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2024-11-04T13:39:35.023068274","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-11-04T13:40:01.642213655","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeaderInPatternComponent","params":{"duplicatedPathes":["OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date","qualifierName":"tel_date","data":"pem","patternComponent":"tel_value"}},"time":"2024-11-04T13:40:19.934647092","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-04T13:39:57.520592738","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-11-04T13:39:14.948237393","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:27.994208246","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-11-04T13:39:22.985619501","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-11-04T13:39:10.890966679","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:40:30.103658216","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2024-11-04T13:39:25.072426458","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2024-11-04T13:39:02.928399164","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2024-11-04T13:41:06.865515205","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2024-11-04T13:41:06.866387653","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2024-11-04T13:41:06.866618001","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:52.740255762","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2024-11-04T13:39:18.960498188","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-04T13:40:58.687336707","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-04T13:40:38.206152038","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.206244936","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.20678367","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.207058873","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.207284842","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.207657842","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.20780627","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:23.949072755","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2024-11-04T13:40:25.939582544","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2024-11-04T13:39:33.029539642","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2024-11-04T13:39:16.917571387","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2024-11-04T13:40:42.234795173","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2024-11-04T13:40:21.906215861","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:39:53.185135587","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:38:52.790235001","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:11.826114529","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-11-04T13:39:31.087523873","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2024-11-04T13:39:06.913589623","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-04T13:40:17.902959447","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2024-11-04T13:39:37.124017341","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2024-11-04T13:39:49.020326136","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedImportHeader":["zet_nom_key","zet_chemin_parent"],"path":"OA_data > sites","duplicatedHeader":"zet_chemin_parent","data":"sites"}},"time":"2024-11-04T13:40:34.166329916","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:36.201046308","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-11-04T13:40:50.629932392","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2024-11-04T13:40:48.652332886","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2024-11-04T13:40:13.869703287","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2024-11-04T13:41:00.832353086","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2024-11-04T13:41:08.8714711","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-11-04T13:40:09.861415762","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-04T13:40:07.821603809","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-11-04T13:39:59.551286082","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-04T13:41:04.871890714","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-04T13:40:54.719290436","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-04T13:40:54.719548158","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:54.71979529","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-04T13:40:54.720374868","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2024-11-04T13:40:54.721191465","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:54.72145951","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:54.721682661","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2024-11-04T13:40:54.722203673","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2024-11-04T13:40:54.722319328","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-04T13:40:54.722553135","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-04T13:40:54.723092216","type":"REACTIVE_ERROR"}]} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt index 4648ef4fa..1b5afc15f 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt @@ -1,17 +1,17 @@ -{"result":0.0,"time":[2024,10,29,13,43,18,173227799],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,175384321],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,29,13,43,18,175442871],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,175503652],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,29,13,43,18,175527003],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,29,13,43,18,177765693],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,29,13,43,18,177839732],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,29,13,43,18,177854502],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,43,18,295552912],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,29,13,43,18,295634495],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,29,13,43,18,295645747],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,326667000],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,326723554],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,326768060],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,373767935],"type":"REACTIVE_INFO"} -{"result":"d489389e-a500-463b-b27e-70dcf0b45e3f","time":[2024,10,29,13,43,18,401478990],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,29,13,43,18,401539397],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,4,13,36,49,580625663],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,582213934],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,11,4,13,36,49,582259977],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,582333902],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,11,4,13,36,49,582347222],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,11,4,13,36,49,583490076],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,11,4,13,36,49,583522428],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,11,4,13,36,49,583532393],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,11,4,13,36,49,629424407],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,11,4,13,36,49,629493594],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,4,13,36,49,629501974],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,649536165],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,649597964],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,649625998],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,703403080],"type":"REACTIVE_INFO"} +{"result":"fc422a5c-34a2-4197-89ed-079bdf9aecca","time":[2024,11,4,13,36,49,732589527],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,11,4,13,36,49,732652436],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt index 704e28d01..53ed085df 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt @@ -1,21 +1,21 @@ -{"result":0.0,"time":[2024,10,29,13,43,17,502085162],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,504178938],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,10,29,13,43,17,504415788],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,504482122],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,10,29,13,43,17,504507428],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,10,29,13,43,17,507325322],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,10,29,13,43,17,507382085],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,10,29,13,43,17,507395858],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,43,17,677449970],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,29,13,43,17,677525344],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,29,13,43,17,677539746],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,732781716],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,732865969],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,733205771],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,66264096],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,66337181],"type":"REACTIVE_INFO"} -{"result":0.5,"time":[2024,10,29,13,43,18,66569775],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,18,66592607],"type":"REACTIVE_INFO"} -{"result":"d489389e-a500-463b-b27e-70dcf0b45e3f","time":[2024,10,29,13,43,18,66634204],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,29,13,43,18,66756130],"type":"REACTIVE_PROGRESS"} -{"result":1.0,"time":[2024,10,29,13,43,18,66769772],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,4,13,36,49,88307640],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,90321889],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,11,4,13,36,49,90550164],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,90635306],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,11,4,13,36,49,90671962],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,11,4,13,36,49,95090891],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,11,4,13,36,49,95152597],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,11,4,13,36,49,95162563],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,11,4,13,36,49,150677491],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,11,4,13,36,49,150758474],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,4,13,36,49,150772507],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,176090402],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,176154758],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,176414457],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,471582449],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,471669604],"type":"REACTIVE_INFO"} +{"result":0.5,"time":[2024,11,4,13,36,49,472091565],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,472145594],"type":"REACTIVE_INFO"} +{"result":"fc422a5c-34a2-4197-89ed-079bdf9aecca","time":[2024,11,4,13,36,49,472161859],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,11,4,13,36,49,472352229],"type":"REACTIVE_PROGRESS"} +{"result":1.0,"time":[2024,11,4,13,36,49,472382518],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index c90f9ff59..fa23c8da4 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,10 +1,10 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,10,29,13,43,15,671919939],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,10,29,13,43,15,677418996],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,10,29,13,43,15,677831563],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2024,10,29,13,43,15,679029727],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,10,29,13,43,16,199432624],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,10,29,13,43,16,199962254],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,10,29,13,43,16,200354100],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,10,29,13,43,17,363567203],"type":"REACTIVE_INFO"} -{"result":{"id":"1dd09d76-4240-49f4-9dd8-3ecebce4aba9","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,10,29,13,43,17,364380890],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,10,29,13,43,17,364656626],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,11,4,13,36,47,968195374],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,11,4,13,36,47,971133606],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,11,4,13,36,47,971459239],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2024,11,4,13,36,47,972205288],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,11,4,13,36,48,248865300],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,11,4,13,36,48,249345250],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,4,13,36,48,249831090],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,48,953406537],"type":"REACTIVE_INFO"} +{"result":{"id":"8d725bf6-e455-42ba-899a-5a04af3a2cf0","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,11,4,13,36,48,954465444],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,11,4,13,36,48,954878218],"type":"REACTIVE_PROGRESS"} -- GitLab From c7ff48370460de0f8572cccfa9d990b29d5c9808 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Mon, 4 Nov 2024 16:48:32 +0100 Subject: [PATCH 44/52] save philippe (il saoule celui la) --- ui/src/model/User.js | 27 ++++++++++- ui/src/services/rest/AuthorizationService.js | 15 ++++-- .../views/application/ApplicationInfoView.vue | 1 - ...tionsManagementForApplicationUsersView.vue | 46 +++++++++---------- 4 files changed, 58 insertions(+), 31 deletions(-) diff --git a/ui/src/model/User.js b/ui/src/model/User.js index 24ce1bfa5..3555e97cb 100644 --- a/ui/src/model/User.js +++ b/ui/src/model/User.js @@ -6,8 +6,10 @@ export class User { null, null, null, - null, - null, + false, + false, + false, + false, null, null, null, @@ -20,6 +22,8 @@ export class User { state = Object.keys(User.states)[0]; authorizedForApplicationCreation; openAdomAdmin; + userManager; + applicationManager; authorizations; chartes; password; @@ -34,6 +38,8 @@ export class User { email = "", state = "", authorizedForApplicationCreation = false, + userManager = false, + applicationManager = false, openAdomAdmin = false, authorizations = [], chartes = {}, @@ -48,6 +54,8 @@ export class User { this.state = User.states[state] ? state : Object.keys(User.states)[0]; this.creationDate = creationDate; this.updateDate = updateDate; + this.userManager = userManager; + this.applicationManager = applicationManager; this.authorizedForApplicationCreation = authorizedForApplicationCreation; this.openAdomAdmin = openAdomAdmin; this.authorizations = authorizations; @@ -66,6 +74,8 @@ export class User { user.password, user.email, user.state, + user.applicationManager, + user.userManager, user.authorizedForApplicationCreation, user.openAdomAdmin, user.authorizations, @@ -87,4 +97,17 @@ export class User { (this.authorizations || []).find((a) => applicationName && a.match(applicationName)) ); } + isApplicationManager(applicationName) { + return ( + this.applicationManager || + (this.authorizations || []).find((a) => applicationName && a.match(applicationName)) + ); + } + isUserManager(applicationName) { + return ( + this.applicationManager || + this.userManager || + (this.authorizations || []).find((a) => applicationName && a.match(applicationName)) + ); + } } diff --git a/ui/src/services/rest/AuthorizationService.js b/ui/src/services/rest/AuthorizationService.js index 7c1ea57a1..f48437384 100644 --- a/ui/src/services/rest/AuthorizationService.js +++ b/ui/src/services/rest/AuthorizationService.js @@ -63,20 +63,27 @@ export class AuthorizationService extends Fetcher { ); } - async createAuthorizedRole(roleName, userIdOrLogin, applicationPattern) { + async createAuthorizedRole(roleName, userIdOrLogin, applicationPattern, applicationNameOrId) { let urlSearchParams = new URLSearchParams(); urlSearchParams.append("userIdOrLogin", userIdOrLogin); - urlSearchParams.append("applicationPattern", applicationPattern); + if (applicationPattern) { + urlSearchParams.append("applicationPattern", applicationPattern); + } + if (applicationNameOrId) { + urlSearchParams.append("applicationNameOrId", applicationNameOrId); + } return this.put(`authorization/${roleName}?${urlSearchParams.toString()}`); } - async revokeAuthorizedRole(roleName, userIdOrLogin, applicationPattern) { + async revokeAuthorizedRole(roleName, userIdOrLogin, applicationPattern, applicationNameOrId) { let urlSearchParams = new URLSearchParams(); urlSearchParams.append("userIdOrLogin", userIdOrLogin); if (applicationPattern) { urlSearchParams.append("applicationPattern", applicationPattern); } - + if (applicationNameOrId) { + urlSearchParams.append("applicationNameOrId", applicationNameOrId); + } return this.delete(`authorization/${roleName}?${urlSearchParams.toString()}`); } diff --git a/ui/src/views/application/ApplicationInfoView.vue b/ui/src/views/application/ApplicationInfoView.vue index 5b189be4b..ba62e981b 100644 --- a/ui/src/views/application/ApplicationInfoView.vue +++ b/ui/src/views/application/ApplicationInfoView.vue @@ -397,7 +397,6 @@ export default { {{ $t("dataTypeAuthorizations.request") }} </b-button> <b-button - disabled outlined icon-left="toolbox" type="is-primary" diff --git a/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue b/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue index 0dc21b4d6..adfd898e4 100644 --- a/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue +++ b/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue @@ -65,7 +65,6 @@ <template> <b-checkbox v-model="props.row.applicationManager" - :disabled="!currentUser.applicationManager" @input="selectManagementApplication($event, props.row, 'applicationManager')" /> </template> @@ -80,7 +79,6 @@ <template> <b-checkbox v-model="props.row.userManager" - :disabled="!currentUser.userManager" @input="selectManagementApplication($event, props.row, 'userManager')" /> </template> @@ -132,7 +130,7 @@ export default { ); const { reactiveObject: changes, doChangeObject: changeChanges } = useObject({ applicationManager: { add: [], remove: [] }, - usersManager: { add: [], remove: [] }, + userManager: { add: [], remove: [] }, }); let totalRows = -1; let currentPage = 1; @@ -162,7 +160,7 @@ export default { isLoading.value = true; changeChanges({ applicationManager: { add: [], remove: [] }, - usersManager: { add: [], remove: [] }, + userManager: { add: [], remove: [] }, }); if (Object.keys(listUsersAuth.value).length === 0) { changeListUsersAuth(await services.authorizationService.getAuthorizations()); @@ -188,39 +186,39 @@ export default { if (changes.applicationManager.add.length !== 0) { changes.applicationManager.add.forEach((userId) => { localeListUsersAuth.filter((user) => user.id === userId)[0].applicationManager = true; - services.authorizationService.createAuthorizedRole("applicationManager", userId); + services.authorizationService.createAuthorizedRole("applicationManager", userId, null, props.applicationName); }); } else if (changes.applicationManager.remove.length !== 0) { changes.applicationManager.remove.forEach((userId) => { localeListUsersAuth.filter((user) => user.id === userId)[0].applicationManager = false; - services.authorizationService.revokeAuthorizedRole("applicationManager", userId); + services.authorizationService.revokeAuthorizedRole("applicationManager", userId, null, props.applicationName); }); } - if (changes.usersManager.add.length !== 0) { - changes.usersManager.add.forEach((userId) => { - localeListUsersAuth.filter((user) => user.id === userId)[0].usersManager = true; - services.authorizationService.createAuthorizedRole("usersManager", userId); + if (changes.userManager.add.length !== 0) { + changes.userManager.add.forEach((userId) => { + localeListUsersAuth.filter((user) => user.id === userId)[0].userManager = true; + services.authorizationService.createAuthorizedRole("userManager", userId, null, props.applicationName); }); - } else if (changes.usersManager.remove.length !== 0) { - changes.usersManager.remove.forEach((userId) => { - localeListUsersAuth.filter((user) => user.id === userId)[0].usersManager = false; - services.authorizationService.revokeAuthorizedRole("usersManager", userId); + } else if (changes.userManager.remove.length !== 0) { + changes.userManager.remove.forEach((userId) => { + localeListUsersAuth.filter((user) => user.id === userId)[0].userManager = false; + services.authorizationService.revokeAuthorizedRole("userManager", userId, null, props.applicationName); }); } } function selectManagementApplication(value, user, type) { - if (value && type === "usersManager") { - if (changes.usersManager.remove.find((v) => v === user.id)) { - changes.usersManager.remove = changes.usersManager.remove.filter((v) => v === v.id); - } else if (!changes.usersManager.add.find((v) => v === user.id)) { - changes.usersManager.add.push(user.id); + if (value && type === "userManager") { + if (changes.userManager.remove.find((v) => v === user.id)) { + changes.userManager.remove = changes.userManager.remove.filter((v) => v === v.id); + } else if (!changes.userManager.add.find((v) => v === user.id)) { + changes.userManager.add.push(user.id); } - } else if (!value && type === "usersManager") { - if (changes.usersManager.add.find((v) => v === user.id)) { - changes.usersManager.add = changes.usersManager.add.filter((v) => v === v.id); - } else if (!changes.usersManager.remove.find((v) => v === user.id)) { - changes.usersManager.remove.push(user.id); + } else if (!value && type === "userManager") { + if (changes.userManager.add.find((v) => v === user.id)) { + changes.userManager.add = changes.userManager.add.filter((v) => v === v.id); + } else if (!changes.userManager.remove.find((v) => v === user.id)) { + changes.userManager.remove.push(user.id); } } if (value && type === "applicationManager") { -- GitLab From cd28e4aa8e0c10b00e71537ecb34d2b41f3e0cc7 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Mon, 4 Nov 2024 16:55:53 +0100 Subject: [PATCH 45/52] =?UTF-8?q?r=C3=A9paration=20test=20.contains(roleFo?= =?UTF-8?q?rUser.role())?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../privilegeassessor/role/ApplicationAdminUser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationAdminUser.java b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationAdminUser.java index edf330743..7a1dfb009 100644 --- a/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationAdminUser.java +++ b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationAdminUser.java @@ -27,7 +27,7 @@ public record ApplicationAdminUser(Application application) implements Applicat } OreSiRightOnApplicationRole userManager = OreSiRightOnApplicationRole.userAdminOn(application()); OreSiRightOnApplicationRole applicationManager = OreSiRightOnApplicationRole.adminOn(application()); - if(!Map.of(applicationManager.getAsSqlRole(), userManager.getAsSqlRole()).containsKey(roleForUser.role())){ + if(!List.of(applicationManager.getAsSqlRole(), userManager.getAsSqlRole()).toString().contains(roleForUser.role())){ throw new IllegalRoleToBeGranted(roleForUser.role()); } return true; -- GitLab From b6a6436e8349ce4e44a87b9de84177b2c997df43 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Tue, 5 Nov 2024 10:37:14 +0100 Subject: [PATCH 46/52] =?UTF-8?q?Sauvegarde=20des=20infos=20de=20d=C3=A9l?= =?UTF-8?q?=C3=A9gation=20de=20droit=20des=20gestions=20de=20l'application?= =?UTF-8?q?=20et=20de=20la=20gestion=20des=20utilisateurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/AuthenticationService.java | 56 +++++++++++++++++++ .../oresing/rest/AuthorizationResources.java | 3 +- .../oresing/rest/AuthorizationService.java | 32 ++++++++++- 3 files changed, 88 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java b/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java index 48738e15d..5ad0d7bef 100644 --- a/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java +++ b/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java @@ -345,6 +345,62 @@ public class AuthenticationService { return userRepository.findById(userId); } + @Transactional + public OreSiUser addUserRightApplicationManager(final UUID userId, Application application) { + resetRole(); + OreSiUser oreSiUser = getOreSiUser(userId); + final OreSiUserRole roleToModify = getUserRole(userId); + final OreSiRoleToBeGranted roleToAdd = (OreSiRoleToBeGranted) OreSiRole.applicationManagerOf(application); + db.addUserInRole(roleToModify, roleToAdd); + String expression = getCollectAuthorizationForUser(oreSiUser); + SqlPolicy sqlPolicy = new SqlPolicy( + String.join("_", OreSiRole.applicationManagerOf(application).getAsSqlRole(), userId.toString()), + OreSiSqlSchema.application(), + SqlPolicy.PermissiveOrRestrictive.RESTRICTIVE, + List.of(SqlPolicy.Statement.ALL), + new OreSiRole() { + @Override + public String getAsSqlRole() { + return userId.toString(); + } + }, + expression, + null + ); + db.createPolicy(sqlPolicy); + setRoleForClient(); + resetRole(); + return userRepository.findById(userId); + } + + @Transactional + public OreSiUser addUserRightUserManager(final UUID userId, Application application) { + resetRole(); + OreSiUser oreSiUser = getOreSiUser(userId); + final OreSiUserRole roleToModify = getUserRole(userId); + final OreSiRoleToBeGranted roleToAdd = (OreSiRoleToBeGranted) OreSiRole.userManagerOf(application); + db.addUserInRole(roleToModify, roleToAdd); + String expression = getCollectAuthorizationForUser(oreSiUser); + SqlPolicy sqlPolicy = new SqlPolicy( + String.join("_", OreSiRole.userManagerOf(application).getAsSqlRole(), userId.toString()), + OreSiSqlSchema.application(), + SqlPolicy.PermissiveOrRestrictive.RESTRICTIVE, + List.of(SqlPolicy.Statement.ALL), + new OreSiRole() { + @Override + public String getAsSqlRole() { + return userId.toString(); + } + }, + expression, + null + ); + db.createPolicy(sqlPolicy); + setRoleForClient(); + resetRole(); + return userRepository.findById(userId); + } + @Transactional public void removeUser(final UUID userId) { final OreSiUser oreSiUser = getOreSiUser(userId); diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java b/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java index e9e181b99..9e4913347 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java @@ -418,13 +418,14 @@ public class AuthorizationResources { user.getAuthorizations().add(applicationPattern); userRepository.update(user); } + user = authorizationService.addSystemRoleUser(roleForUser); } else { Application application = applicationService.getApplication(applicationNameOrId); authorizationService.getPrivilegeAssessorForApplication(PrivilegeApplicationDomain.APPLICATION_MANAGER, application) .forManageAdministrator() .canManagerRightOfUserForRole(user, roleForUser); + user = authorizationService.addApplicationRoleUser(roleForUser, application); } - user = authorizationService.addRoleUser(roleForUser); return ResponseEntity.ok(user); } diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationService.java b/src/main/java/fr/inra/oresing/rest/AuthorizationService.java index aa334652d..d187d740a 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationService.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationService.java @@ -18,6 +18,7 @@ import fr.inra.oresing.domain.data.menu.ReferenceScope; import fr.inra.oresing.domain.exceptions.SiOreIllegalArgumentException; import fr.inra.oresing.domain.exceptions.application.NoSuchApplicationException; import fr.inra.oresing.domain.exceptions.authentication.authentication.*; +import fr.inra.oresing.domain.exceptions.role.role.BadApplicationRoleException; import fr.inra.oresing.domain.exceptions.role.role.BadRoleException; import fr.inra.oresing.domain.repository.authorization.OperationType; import fr.inra.oresing.domain.repository.authorization.role.CurrentUserRoles; @@ -793,14 +794,25 @@ public class AuthorizationService implements fr.inra.oresing.domain.services.aut } @Transactional - public OreSiUserResult addRoleUser(final OreSiRoleForUser roleForUser) { + public OreSiUserResult addSystemRoleUser(final OreSiRoleForUser roleForUser) { authenticationService.setRoleAdmin(); if (OreSiRole.openAdomAdmin().getAsSqlRole().equals(roleForUser.role())) { return addAdminRoleUser(roleForUser); } else if (OreSiRole.applicationCreator().getAsSqlRole().equals(roleForUser.role())) { return addApplicationCreatorRoleUser(roleForUser); } - throw new BadRoleException("cantSetRole", roleForUser.role()); + throw new BadRoleException("cantSetSystemRole", roleForUser.role()); + } + + @Transactional + public OreSiUserResult addApplicationRoleUser(final OreSiRoleForUser roleForUser, Application application) { + authenticationService.setRoleAdmin(); + if (OreSiRole.applicationManagerOf(application).getAsSqlRole().toString().contains(roleForUser.role())) { + return addApplicationManagerRoleUser(roleForUser, application); + } else if (OreSiRole.userManagerOf(application).getAsSqlRole().toString().contains(roleForUser.role())) { + return addUserManagerRoleUser(roleForUser, application); + } + throw new BadApplicationRoleException("cantSetApplicationRole", roleForUser.role(), application); } private OreSiUserResult addApplicationCreatorRoleUser(final OreSiRoleForUser oreSiUserRoleApplicationCreator) { @@ -812,6 +824,22 @@ public class AuthorizationService implements fr.inra.oresing.domain.services.aut throw new NotopenAdomAdminException(); } + private OreSiUserResult addApplicationManagerRoleUser(final OreSiRoleForUser oreSiUserRoleApplicationManager, Application application) { + if (authenticationService.hasRole(OreSiRole.applicationManagerOf(application))) { + OreSiUser user = authenticationService.addUserRightApplicationManager(UUID.fromString(oreSiUserRoleApplicationManager.userId()), application); + return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleApplicationManager.userId())); + } + throw new NotopenAdomAdminException(); + } + + private OreSiUserResult addUserManagerRoleUser(final OreSiRoleForUser oreSiUserRoleUserManager, Application application) { + if (authenticationService.hasRole(OreSiRole.applicationManagerOf(application))) { + OreSiUser user = authenticationService.addUserRightUserManager(UUID.fromString(oreSiUserRoleUserManager.userId()), application); + return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleUserManager.userId())); + } + throw new NotopenAdomAdminException(); + } + private OreSiUserResult addAdminRoleUser(final OreSiRoleForUser oreSiRoleForUserAdmin) { final boolean canAddsupeadmin = false; if (authenticationService.hasRole(OreSiRole.openAdomAdmin())) { -- GitLab From bedd8b6e8b1643632a6236ea781386c434c04434 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Tue, 5 Nov 2024 10:39:37 +0100 Subject: [PATCH 47/52] =?UTF-8?q?cr=C3=A9ation=20erreurs=20de=20role=20pou?= =?UTF-8?q?r=20une=20application?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../role/BadApplicationRoleException.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/main/java/fr/inra/oresing/domain/exceptions/role/role/BadApplicationRoleException.java diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/role/role/BadApplicationRoleException.java b/src/main/java/fr/inra/oresing/domain/exceptions/role/role/BadApplicationRoleException.java new file mode 100644 index 000000000..e76586840 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/exceptions/role/role/BadApplicationRoleException.java @@ -0,0 +1,20 @@ +package fr.inra.oresing.domain.exceptions.role.role; + +import fr.inra.oresing.domain.application.Application; + +public class BadApplicationRoleException extends RuntimeException { + final String role; + final Application application; + + public BadApplicationRoleException(final String message, final String role, final Throwable cause, Application application) { + super(message, cause); + this.role = role; + this.application = application; + } + + public BadApplicationRoleException(final String message, final String role, Application application) { + super(message); + this.role = role; + this.application = application; + } +} -- GitLab From 07a93e49008fcb6c52dc42653979adf2100d8465 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Wed, 6 Nov 2024 16:44:48 +0100 Subject: [PATCH 48/52] add + remove role for application with front --- .../persistence/AuthenticationFailure.java | 15 +- .../persistence/AuthenticationService.java | 161 +++++++++++++++--- .../oresing/rest/AuthenticationResources.java | 12 +- .../oresing/rest/AuthorizationResources.java | 18 +- .../oresing/rest/AuthorizationService.java | 28 ++- .../model/authorization/LoginAdminResult.java | 17 ++ .../authorization/LoginApplicationResult.java | 17 ++ .../rest/model/authorization/LoginResult.java | 11 -- .../AuthenticationServiceTest.java | 13 +- ui/src/model/User.js | 56 ++++-- ui/src/services/rest/AuthorizationService.js | 8 +- ui/src/services/rest/LoginService.js | 2 +- ...onsManagementForApplicationCreatorView.vue | 4 +- ...tionsManagementForApplicationUsersView.vue | 34 +++- .../DataTypeAuthorizationInfoView.vue | 2 +- .../DataTypeAuthorizationsView.vue | 9 +- ui/src/views/users/UserView.vue | 2 +- 17 files changed, 310 insertions(+), 99 deletions(-) create mode 100644 src/main/java/fr/inra/oresing/rest/model/authorization/LoginAdminResult.java create mode 100644 src/main/java/fr/inra/oresing/rest/model/authorization/LoginApplicationResult.java delete mode 100644 src/main/java/fr/inra/oresing/rest/model/authorization/LoginResult.java diff --git a/src/main/java/fr/inra/oresing/persistence/AuthenticationFailure.java b/src/main/java/fr/inra/oresing/persistence/AuthenticationFailure.java index ab83809f5..e00bee5a5 100644 --- a/src/main/java/fr/inra/oresing/persistence/AuthenticationFailure.java +++ b/src/main/java/fr/inra/oresing/persistence/AuthenticationFailure.java @@ -3,13 +3,12 @@ package fr.inra.oresing.persistence; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import fr.inra.oresing.OreSiException; import fr.inra.oresing.domain.OreSiUser; -import fr.inra.oresing.rest.model.authorization.LoginResult; +import fr.inra.oresing.rest.model.authorization.LoginAdminResult; import lombok.Getter; import java.util.Map; import java.util.Optional; import java.util.UUID; -import java.util.stream.Collectors; @Getter @JsonIgnoreProperties({"suppressed", "stackTrace", "cause"}) @@ -32,8 +31,8 @@ public class AuthenticationFailure extends OreSiException { private final Map params; - private static Map getParams(final LoginResult loginResult) { - return Optional.ofNullable(loginResult) + private static Map getParams(final LoginAdminResult loginAdminResult) { + return Optional.ofNullable(loginAdminResult) .map(lr -> Map.of( "login", Optional.ofNullable(lr.login()).orElse(""), "email", Optional.ofNullable(lr.email()).orElse(""), @@ -59,13 +58,13 @@ public class AuthenticationFailure extends OreSiException { .orElseGet(Map::of); } - public AuthenticationFailure(final String message, final LoginResult loginResult) { + public AuthenticationFailure(final String message, final LoginAdminResult loginAdminResult) { super(message); - params = getParams(loginResult); + params = getParams(loginAdminResult); } - public AuthenticationFailure(final String message, final LoginResult loginResult, final Throwable cause) { + public AuthenticationFailure(final String message, final LoginAdminResult loginAdminResult, final Throwable cause) { super(message, cause); - params = getParams(loginResult); + params = getParams(loginAdminResult); } } diff --git a/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java b/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java index 5ad0d7bef..56aea1376 100644 --- a/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java +++ b/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java @@ -11,7 +11,8 @@ import fr.inra.oresing.rest.CreateUserRequest; import fr.inra.oresing.rest.CreateUserResult; import fr.inra.oresing.rest.OreSiApiRequestContext; import fr.inra.oresing.domain.exceptions.authentication.authentication.NotopenAdomAdminException; -import fr.inra.oresing.rest.model.authorization.LoginResult; +import fr.inra.oresing.rest.model.authorization.LoginAdminResult; +import fr.inra.oresing.rest.model.authorization.LoginApplicationResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -24,6 +25,7 @@ import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.util.*; +import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -105,37 +107,37 @@ public class AuthenticationService { * @throws InvalidKeySpecException */ @Transactional - public LoginResult login(final String login, final String password) throws AuthenticationFailure, NoSuchAlgorithmException, InvalidKeySpecException, JsonProcessingException { - LoginResult loginResult = checkLoginPassword(login, password); - return switch (loginResult.state()) { - case "active" -> loginResult; + public LoginAdminResult login(final String login, final String password) throws AuthenticationFailure, NoSuchAlgorithmException, InvalidKeySpecException, JsonProcessingException { + LoginAdminResult loginAdminResult = checkLoginPassword(login, password); + return switch (loginAdminResult.state()) { + case "active" -> loginAdminResult; case "idle" -> { sendValidationKey(userRepository.findByLogin(login)); - throw new AuthenticationFailure(AuthenticationFailure.INACTIVE_ACCOUNT, loginResult); + throw new AuthenticationFailure(AuthenticationFailure.INACTIVE_ACCOUNT, loginAdminResult); } case "pending" -> { sendValidationKey(userRepository.findByLogin(login)); - throw new AuthenticationFailure(AuthenticationFailure.PENDING_ACCOUNT, loginResult); + throw new AuthenticationFailure(AuthenticationFailure.PENDING_ACCOUNT, loginAdminResult); } - default -> throw new AuthenticationFailure(AuthenticationFailure.CLOSED_ACCOUNT, loginResult); + default -> throw new AuthenticationFailure(AuthenticationFailure.CLOSED_ACCOUNT, loginAdminResult); }; } - private LoginResult checkLoginPassword(final String login, final String password) throws AuthenticationFailure { + private LoginAdminResult checkLoginPassword(final String login, final String password) throws AuthenticationFailure { final Predicate<OreSiUser> checkPassword = user -> BCrypt.verifyer() .verify(password.toCharArray(), user.getPassword().toCharArray()) .verified; - LoginResult loginResult = userRepository.findByLogin(login) + LoginAdminResult loginAdminResult = userRepository.findByLogin(login) .filter(checkPassword) .map(this::toLoginResult) - .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_LOGIN_PASSWORD, (LoginResult) null)); - return loginResult; + .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_LOGIN_PASSWORD, (LoginAdminResult) null)); + return loginAdminResult; } public OreSiUser sendEmailValidation(final String loginOrEmail, final String password) throws AuthenticationFailure, NoSuchAlgorithmException, InvalidKeySpecException { OreSiUser oreSiUser = userRepository.findByLoginOrEmail(loginOrEmail) - .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_LOGIN_OR_EMAIL_PASSWORD, (LoginResult) null)); + .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_LOGIN_OR_EMAIL_PASSWORD, (LoginAdminResult) null)); String verificationKey = generateVerificationKey(oreSiUser); emailService.sendEmailValidation(oreSiUser.getLogin(), oreSiUser.getEmail(), verificationKey, EmailService.MESSAGES.NEW_EMAIL); return oreSiUser; @@ -177,12 +179,12 @@ public class AuthenticationService { return userRepository.findById(oreSiUser1.getId()); } - private LoginResult toLoginResult(final OreSiUser oreSiUser) { + private LoginAdminResult toLoginResult(final OreSiUser oreSiUser) { final OreSiUserRole userRole = getUserRole(oreSiUser); db.setRole(userRole); final boolean authorizedForApplicationCreation = db.hasRole(OreSiRole.applicationCreator()); final boolean isopenAdomAdmin = db.hasRole(OreSiRole.openAdomAdmin()); - return new LoginResult( + return new LoginAdminResult( oreSiUser.getId(), oreSiUser.getLogin(), oreSiUser.getEmail(), @@ -312,6 +314,62 @@ public class AuthenticationService { return userRepository.findById(userId); } + @Transactional + public OreSiUser deleteUserRightApplicationManager(final UUID userId, Application application) { + resetRole(); + OreSiUser oreSiUser = getOreSiUser(userId); + final OreSiUserRole roleToModify = getUserRole(userId); + final OreSiRoleToBeGranted roleToAdd = (OreSiRoleToBeGranted) OreSiRole.applicationManagerOf(application); + db.removeUserInRole(roleToModify, roleToAdd); + String expression = getCollectAuthorizationForUser(oreSiUser); + SqlPolicy sqlPolicy = new SqlPolicy( + String.join("_", OreSiRole.applicationManagerOf(application).getAsSqlRole(), userId.toString()), + OreSiSqlSchema.application(), + SqlPolicy.PermissiveOrRestrictive.RESTRICTIVE, + List.of(SqlPolicy.Statement.ALL), + new OreSiRole() { + @Override + public String getAsSqlRole() { + return userId.toString(); + } + }, + expression, + null + ); + db.dropPolicy(sqlPolicy); + setRoleForClient(); + resetRole(); + return userRepository.findById(userId); + } + + @Transactional + public OreSiUser deleteUserRightUserManager(final UUID userId, Application application) { + resetRole(); + OreSiUser oreSiUser = getOreSiUser(userId); + final OreSiUserRole roleToModify = getUserRole(userId); + final OreSiRoleToBeGranted roleToAdd = (OreSiRoleToBeGranted) OreSiRole.userManagerOf(application); + db.removeUserInRole(roleToModify, roleToAdd); + String expression = getCollectAuthorizationForUser(oreSiUser); + SqlPolicy sqlPolicy = new SqlPolicy( + String.join("_", OreSiRole.userManagerOf(application).getAsSqlRole(), userId.toString()), + OreSiSqlSchema.application(), + SqlPolicy.PermissiveOrRestrictive.RESTRICTIVE, + List.of(SqlPolicy.Statement.ALL), + new OreSiRole() { + @Override + public String getAsSqlRole() { + return userId.toString(); + } + }, + expression, + null + ); + db.dropPolicy(sqlPolicy); + setRoleForClient(); + resetRole(); + return userRepository.findById(userId); + } + @Transactional public OreSiUser addUserRightCreateApplication(final UUID userId, final String applicationPattern) { resetRole(); @@ -443,11 +501,58 @@ public class AuthenticationService { return OreSiUserRole.forUser(user); } - public List<LoginResult> getAuthorizations() { + public List<LoginApplicationResult> getApplicationAuthorizations(Application application) { + Function<Map<String, Timestamp>, Timestamp> getCharteTimestamp = chartes->chartes.get(application.getId().toString()); + if (hasRole(OreSiRole.applicationManagerOf(application))) { + return userRepository.findAll().stream() + .filter(oreSiUser -> OreSiUser.OreSiUserStates.active == oreSiUser.getAccountstate()) + .map(oreSiUser -> { + Optional<Timestamp> timestampOpt = Optional.ofNullable(oreSiUser.getChartes()) + .map(getCharteTimestamp); + return new LoginApplicationResult( + application.getName(), + oreSiUser.getId(), + oreSiUser.getLogin(), + oreSiUser.getEmail(), + oreSiUser.getAccountstate().name(), + hasRole(oreSiUser.getId(), OreSiRole.applicationManagerOf(application)), + hasRole(oreSiUser.getId(), OreSiRole.userManagerOf(application)), + oreSiUser.getAuthorizations(), + timestampOpt.map(timestamp -> timestamp.after(Timestamp.from(Instant.now()))).orElse(false), + timestampOpt.isPresent() + ); + }) + .collect(Collectors.toList()); + } else if (hasRole(OreSiRole.userManagerOf(application))) { + return userRepository.findAll().stream() + .filter(oreSiUser -> OreSiUser.OreSiUserStates.active == oreSiUser.getAccountstate()) + .map(oreSiUser -> { + Optional<Timestamp> timestampOpt = Optional.ofNullable(oreSiUser.getChartes()) + .map(getCharteTimestamp); + return new LoginApplicationResult( + application.getName(), + oreSiUser.getId(), + oreSiUser.getLogin(), + oreSiUser.getEmail(), + oreSiUser.getAccountstate().name(), + null, + hasRole(oreSiUser.getId(), OreSiRole.userManagerOf(application)), + oreSiUser.getAuthorizations(), + timestampOpt.map(timestamp -> timestamp.after(Timestamp.from(Instant.now()))).orElse(false), + timestampOpt.isPresent() + ); + }) + .collect(Collectors.toList()); + } else { + throw new NotopenAdomAdminException(); + } + } + + public List<LoginAdminResult> getAdminAuthorizations() { if (hasRole(OreSiRole.openAdomAdmin())) { return userRepository.findAll().stream() .filter(oreSiUser -> OreSiUser.OreSiUserStates.active == oreSiUser.getAccountstate()) - .map(oreSiUser -> new LoginResult( + .map(oreSiUser -> new LoginAdminResult( oreSiUser.getId(), oreSiUser.getLogin(), oreSiUser.getEmail(), @@ -461,7 +566,7 @@ public class AuthenticationService { } else if (hasRole(OreSiRole.applicationCreator())) { return userRepository.findAll().stream() .filter(oreSiUser -> OreSiUser.OreSiUserStates.active == oreSiUser.getAccountstate()) - .map(oreSiUser -> new LoginResult( + .map(oreSiUser -> new LoginAdminResult( oreSiUser.getId(), oreSiUser.getLogin(), oreSiUser.getEmail(), @@ -489,20 +594,20 @@ public class AuthenticationService { final String verificationKey = createUserRequest.getVerificationKey(); final String charte = createUserRequest.getCharte(); if (!Strings.isNullOrEmpty(login) && !Strings.isNullOrEmpty(password)) { - final LoginResult loginResult = checkLoginPassword(login, password); - final OreSiUser user = userRepository.findById(loginResult.id()); + final LoginAdminResult loginAdminResult = checkLoginPassword(login, password); + final OreSiUser user = userRepository.findById(loginAdminResult.id()); if (Strings.isNullOrEmpty(verificationKey)) { return updateAccount(user, createUserRequest); - } else if (OreSiUser.OreSiUserStates.active == OreSiUser.OreSiUserStates.valueOf(loginResult.state())) { + } else if (OreSiUser.OreSiUserStates.active == OreSiUser.OreSiUserStates.valueOf(loginAdminResult.state())) { return updateAccount(user, createUserRequest); } else { - return activeAccount(loginResult, verificationKey); + return activeAccount(loginAdminResult, verificationKey); } } else if (!Strings.isNullOrEmpty(login) && !Strings.isNullOrEmpty(email)) { final Optional<OreSiUser> loginResult = userRepository.findByLoginAndEmail(login, email); loginResult.orElseThrow(() -> new AuthenticationFailure( AuthenticationFailure.INVALID_ACCOUNT, - new LoginResult(null, + new LoginAdminResult(null, login, email, "", @@ -543,12 +648,12 @@ public class AuthenticationService { private OreSiUser updatePasswordLost(final Optional<OreSiUser> loginResult, final CreateUserRequest createUserRequest) throws AuthenticationFailure, NoSuchAlgorithmException, InvalidKeySpecException, JsonProcessingException { final OreSiUser oreSiUser = loginResult - .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_LOGIN_PASSWORD, (LoginResult) null)); + .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_LOGIN_PASSWORD, (LoginAdminResult) null)); validateValidationKey(oreSiUser, createUserRequest.getVerificationKey()); Optional.ofNullable(createUserRequest.getNewPassword()) .filter(password -> !Strings.isNullOrEmpty(password)) .filter(password -> password.equals(createUserRequest.getNewPasswordConfirm())) - .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_PASSWORDS, (LoginResult) null)); + .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_PASSWORDS, (LoginAdminResult) null)); final String bcrypted = BCrypt.withDefaults().hashToString(bcryptCost, createUserRequest.getNewPassword().toCharArray()); oreSiUser.setPassword(bcrypted); setRoleAdmin(); @@ -567,7 +672,7 @@ public class AuthenticationService { Optional.of(createUserRequest.getNewPassword()) .filter(password -> !Strings.isNullOrEmpty(password)) .filter(password -> password.equals(createUserRequest.getNewPasswordConfirm())) - .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_PASSWORDS, (LoginResult) null)); + .orElseThrow(() -> new AuthenticationFailure(AuthenticationFailure.BAD_PASSWORDS, (LoginAdminResult) null)); final String bcrypted = BCrypt.withDefaults().hashToString(bcryptCost, createUserRequest.getNewPassword().toCharArray()); user.setPassword(bcrypted); } @@ -584,8 +689,8 @@ public class AuthenticationService { return updateUser; } - private OreSiUser activeAccount(final LoginResult loginResult, final String verificationKey) throws AuthenticationFailure, NoSuchAlgorithmException, InvalidKeySpecException, JsonProcessingException { - OreSiUser user = userRepository.findById(loginResult.id()); + private OreSiUser activeAccount(final LoginAdminResult loginAdminResult, final String verificationKey) throws AuthenticationFailure, NoSuchAlgorithmException, InvalidKeySpecException, JsonProcessingException { + OreSiUser user = userRepository.findById(loginAdminResult.id()); user = validateValidationKey(user, verificationKey); return user; } diff --git a/src/main/java/fr/inra/oresing/rest/AuthenticationResources.java b/src/main/java/fr/inra/oresing/rest/AuthenticationResources.java index 2d5d480c6..f700defa2 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthenticationResources.java +++ b/src/main/java/fr/inra/oresing/rest/AuthenticationResources.java @@ -6,7 +6,7 @@ import fr.inra.oresing.domain.OreSiUser; import fr.inra.oresing.persistence.AuthenticationFailure; import fr.inra.oresing.persistence.AuthenticationService; import fr.inra.oresing.domain.repository.authorization.role.OreSiUserRole; -import fr.inra.oresing.rest.model.authorization.LoginResult; +import fr.inra.oresing.rest.model.authorization.LoginAdminResult; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.i18n.LocaleContextHolder; @@ -37,14 +37,14 @@ public class AuthenticationResources { private OreSiApiRequestContext request; @PostMapping(value = "/login", produces = MediaType.APPLICATION_JSON_VALUE) - public LoginResult login(final HttpServletResponse response, @RequestParam("login") final String login, @RequestParam("password") final String password) throws Throwable { - final LoginResult loginResult = authenticationService.login(login, password); + public LoginAdminResult login(final HttpServletResponse response, @RequestParam("login") final String login, @RequestParam("password") final String password) throws Throwable { + final LoginAdminResult loginAdminResult = authenticationService.login(login, password); // l'authentification a fonctionné, on change dans le context - final OreSiUserRole userRole = authenticationService.getUserRole(loginResult.id()); - final OreSiUserRequestClient requestClient = OreSiUserRequestClient.of(loginResult.id(), userRole); + final OreSiUserRole userRole = authenticationService.getUserRole(loginAdminResult.id()); + final OreSiUserRequestClient requestClient = OreSiUserRequestClient.of(loginAdminResult.id(), userRole); authHelper.refreshCookie(response, requestClient); request.setRequestClient(requestClient); - return loginResult; + return loginAdminResult; } @DeleteMapping("/logout") diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java b/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java index 9e4913347..035ce85fd 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java @@ -62,9 +62,15 @@ public class AuthorizationResources { @Autowired private OreSiRepository repo; - @GetMapping(value = "/authorization", produces = MediaType.APPLICATION_JSON_VALUE) - public List<LoginResult> getAuthorizations() { - return authenticationService.getAuthorizations(); + @GetMapping(value = "/authorizationForAdmin", produces = MediaType.APPLICATION_JSON_VALUE) + public List<LoginAdminResult> getAdminAuthorizationsForOpenAdom() { + return authenticationService.getAdminAuthorizations(); + } + + @GetMapping(value = "/{nameOrId}/authorizationAdminForApplication", produces = MediaType.APPLICATION_JSON_VALUE) + public List<LoginApplicationResult> getAdminAuthorizationsForApplication(@PathVariable("nameOrId") final String applicationNameOrId) { + Application application = authorizationService.getApplication(applicationNameOrId); + return authenticationService.getApplicationAuthorizations(application); } @Operation( @@ -286,7 +292,7 @@ public class AuthorizationResources { } @GetMapping(value = "/applications/{nameOrId}/authorization", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity<GetAuthorizationResults> getAuthorizations(@PathVariable("nameOrId") final String applicationNameOrId) { + public ResponseEntity<GetAuthorizationResults> getAdminAuthorizationsForOpenAdom(@PathVariable("nameOrId") final String applicationNameOrId) { AuthorizationsResult authorizationsForUser = getAuthorizationsForUser(applicationNameOrId, request.getRequestUserId().toString()); final ImmutableSet<GetAuthorizationResult> getAuthorizationResults = authorizationService.getAuthorizations(applicationNameOrId, authorizationsForUser); GetAuthorizationResults getAuthorizationResultsWithOwnRights1 = new GetAuthorizationResults(getAuthorizationResults, authorizationsForUser); @@ -478,14 +484,14 @@ public class AuthorizationResources { user.getAuthorizations().remove(applicationPattern); userRepository.update(user); } + user = authorizationService.deleteSystemRoleUser(roleForUser); } else { Application application = applicationService.getApplication(applicationNameOrId); authorizationService.getPrivilegeAssessorForApplication(PrivilegeApplicationDomain.APPLICATION_MANAGER, application) .forManageAdministrator() .canManagerRightOfUserForRole(user, roleForUser); + user = authorizationService.deleteApplicationRoleUser(roleForUser, application); } - - user = authorizationService.deleteRoleUser(roleForUser); return ResponseEntity.ok(user); } diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationService.java b/src/main/java/fr/inra/oresing/rest/AuthorizationService.java index d187d740a..672d249d8 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationService.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationService.java @@ -745,7 +745,7 @@ public class AuthorizationService implements fr.inra.oresing.domain.services.aut } @Transactional - public OreSiUserResult deleteRoleUser(final OreSiRoleForUser roleForUser) { + public OreSiUserResult deleteSystemRoleUser(final OreSiRoleForUser roleForUser) { authenticationService.setRoleAdmin(); if (OreSiRole.openAdomAdmin().getAsSqlRole().equals(roleForUser.role())) { return deleteAdminRoleUser(roleForUser); @@ -754,6 +754,16 @@ public class AuthorizationService implements fr.inra.oresing.domain.services.aut } throw new BadRoleException("cantDeleteRole", roleForUser.role()); } + @Transactional + public OreSiUserResult deleteApplicationRoleUser(final OreSiRoleForUser roleForUser, Application application) { + authenticationService.setRoleAdmin(); + if (OreSiRole.applicationManagerOf(application).getAsSqlRole().toString().contains(roleForUser.role())) { + return deleteApplicationManagerRoleUser(roleForUser, application); + } else if (OreSiRole.userManagerOf(application).getAsSqlRole().toString().contains(roleForUser.role())) { + return deleteUserManagerRoleUser(roleForUser, application); + } + throw new BadApplicationRoleException("cantDeleteApplicationRole", roleForUser.role(), application); + } private OreSiUserResult deleteApplicationCreatorRoleUser(final OreSiRoleForUser oreSiUserRoleApplicationCreator) { final boolean canAddApplicationCreatorRole = canAddApplicationCreatorRole(oreSiUserRoleApplicationCreator); @@ -784,6 +794,22 @@ public class AuthorizationService implements fr.inra.oresing.domain.services.aut return canAddApplicationCreatorRole; } + private OreSiUserResult deleteApplicationManagerRoleUser(final OreSiRoleForUser oreSiRoleForApplicationManager, Application application) { + if (authenticationService.hasRole(OreSiRole.applicationManagerOf(application))) { + final OreSiUser user = authenticationService.deleteUserRightApplicationManager(UUID.fromString(oreSiRoleForApplicationManager.userId()), application); + return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiRoleForApplicationManager.userId())); + } + throw new NotopenAdomAdminException(); + } + + private OreSiUserResult deleteUserManagerRoleUser(final OreSiRoleForUser oreSiUserRoleUserManager, Application application) { + if (authenticationService.hasRole(OreSiRole.applicationManagerOf(application))) { + OreSiUser user = authenticationService.deleteUserRightUserManager(UUID.fromString(oreSiUserRoleUserManager.userId()), application); + return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleUserManager.userId())); + } + throw new NotopenAdomAdminException(); + } + private OreSiUserResult deleteAdminRoleUser(final OreSiRoleForUser oreSiRoleForUserAdmin) { final boolean canAddsupeadmin = false; if (authenticationService.hasRole(OreSiRole.openAdomAdmin())) { diff --git a/src/main/java/fr/inra/oresing/rest/model/authorization/LoginAdminResult.java b/src/main/java/fr/inra/oresing/rest/model/authorization/LoginAdminResult.java new file mode 100644 index 000000000..d0274c2f1 --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/model/authorization/LoginAdminResult.java @@ -0,0 +1,17 @@ +package fr.inra.oresing.rest.model.authorization; + +import java.sql.Timestamp; +import java.util.List; +import java.util.Map; +import java.util.UUID; + + +public record LoginAdminResult(UUID id, + String login, + String email, + String state, + boolean authorizedForApplicationCreation, + boolean openAdomAdmin, + List<String> authorizations, + Map<String, Timestamp> chartes) { +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/model/authorization/LoginApplicationResult.java b/src/main/java/fr/inra/oresing/rest/model/authorization/LoginApplicationResult.java new file mode 100644 index 000000000..d58761d71 --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/model/authorization/LoginApplicationResult.java @@ -0,0 +1,17 @@ +package fr.inra.oresing.rest.model.authorization; + +import java.util.List; +import java.util.UUID; + + +public record LoginApplicationResult(String applicationName, + UUID id, + String login, + String email, + String state, + Boolean applicationManager, + boolean userManager, + List<String> authorizations, + boolean isValidCharte, + boolean isApplicationUser) { +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/rest/model/authorization/LoginResult.java b/src/main/java/fr/inra/oresing/rest/model/authorization/LoginResult.java deleted file mode 100644 index 35a3061fc..000000000 --- a/src/main/java/fr/inra/oresing/rest/model/authorization/LoginResult.java +++ /dev/null @@ -1,11 +0,0 @@ -package fr.inra.oresing.rest.model.authorization; - -import java.sql.Timestamp; -import java.util.List; -import java.util.Map; -import java.util.UUID; - - -public record LoginResult(UUID id, String login, String email, String state, boolean authorizedForApplicationCreation, - boolean openAdomAdmin, List<String> authorizations, Map<String, Timestamp> chartes) { -} \ No newline at end of file diff --git a/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java b/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java index fcd4d4c66..bd0ce3bb1 100644 --- a/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java +++ b/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java @@ -6,7 +6,7 @@ import fr.inra.oresing.TestDatabaseConfig; import fr.inra.oresing.domain.repository.authorization.role.OreSiRole; import fr.inra.oresing.domain.repository.authorization.role.OreSiUserRole; import fr.inra.oresing.rest.AuthHelper; -import fr.inra.oresing.rest.model.authorization.LoginResult; +import fr.inra.oresing.rest.model.authorization.LoginAdminResult; import org.hamcrest.Matchers; import static org.junit.jupiter.api.Assertions.*; @@ -30,7 +30,6 @@ import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.servlet.MockMvc; import org.springframework.transaction.annotation.Transactional; @@ -106,8 +105,8 @@ public class AuthenticationServiceTest { .andExpect(jsonPath("$.accountState", Matchers.is("active"))) .andReturn().getResponse().getContentAsString(); final String id = JsonPath.parse(user).read("$.userId", String.class); - LoginResult loginResult = authenticationService.login(login, password); - assertEquals(login, loginResult.login()); + LoginAdminResult loginAdminResult = authenticationService.login(login, password); + assertEquals(login, loginAdminResult.login()); final OreSiUserRole userRole = authenticationService.getUserRole(UUID.fromString(id)); user = mockMvc.perform(put("/api/v1/users") @@ -146,13 +145,13 @@ public class AuthenticationServiceTest { .andReturn().getResponse().getContentAsString(); //on se log avec le nouveau password - loginResult = authenticationService.login(login, "newpassword"); - assertEquals(login, loginResult.login()); + loginAdminResult = authenticationService.login(login, "newpassword"); + assertEquals(login, loginAdminResult.login()); authenticationService.setRole(userRole); authenticationService.resetRole(); - authenticationService.removeUser(loginResult.id()); + authenticationService.removeUser(loginAdminResult.id()); } private String getValidationKey(final ArgumentCaptor<SimpleMailMessage> messageArgumentCaptor, diff --git a/ui/src/model/User.js b/ui/src/model/User.js index 3555e97cb..a147106c1 100644 --- a/ui/src/model/User.js +++ b/ui/src/model/User.js @@ -1,20 +1,21 @@ export class User { static states = { idle: false, active: true, pending: false, closed: false }; static INSTANCE = new User( - null, - null, - null, - null, - null, - false, - false, + "", + "", + "", + "", + "", false, false, null, null, null, null, - navigator.language.slice(0, 2) || "fr" + navigator.language.slice(0, 2) || "fr", + "", + false, + false ); id = ""; login = ""; @@ -22,14 +23,15 @@ export class User { state = Object.keys(User.states)[0]; authorizedForApplicationCreation; openAdomAdmin; - userManager; - applicationManager; authorizations; chartes; password; creationDate = new Date(); updateDate = new Date(); lang = navigator.language.slice(0, 2) || "fr"; + applicationName = ""; + applicationManager = false; + userManager = false; constructor( id = "", @@ -38,14 +40,15 @@ export class User { email = "", state = "", authorizedForApplicationCreation = false, - userManager = false, - applicationManager = false, openAdomAdmin = false, authorizations = [], chartes = {}, creationDate = new Date(), updateDate = new Date(), - lang + lang, + applicationName, + applicationManager, + userManager ) { this.id = id; this.login = login; @@ -54,8 +57,6 @@ export class User { this.state = User.states[state] ? state : Object.keys(User.states)[0]; this.creationDate = creationDate; this.updateDate = updateDate; - this.userManager = userManager; - this.applicationManager = applicationManager; this.authorizedForApplicationCreation = authorizedForApplicationCreation; this.openAdomAdmin = openAdomAdmin; this.authorizations = authorizations; @@ -63,6 +64,10 @@ export class User { if (lang) { this.lang = lang; } + if(applicationName) { + this.applicationManager = applicationManager; + this.userManager = userManager; + } } reset() { User.INSTANCE = new User(); @@ -74,8 +79,6 @@ export class User { user.password, user.email, user.state, - user.applicationManager, - user.userManager, user.authorizedForApplicationCreation, user.openAdomAdmin, user.authorizations, @@ -85,6 +88,25 @@ export class User { user.lang ); } + changeForApplication(user, applicationName) { + User.INSTANCE = new User( + user.id, + user.login, + user.password, + user.email, + user.state, + user.authorizedForApplicationCreation, + user.openAdomAdmin, + user.authorizations, + user.chartes, + user.creationDate, + user.updateDate, + user.lang, + applicationName, + user.applicationManager, + user.userManager, + ); + } isCharteSigned(application) { return ( (application && this.isApplicationCreator(application.name)) || diff --git a/ui/src/services/rest/AuthorizationService.js b/ui/src/services/rest/AuthorizationService.js index f48437384..451321773 100644 --- a/ui/src/services/rest/AuthorizationService.js +++ b/ui/src/services/rest/AuthorizationService.js @@ -7,10 +7,14 @@ export class AuthorizationService extends Fetcher { super(); } - async getAuthorizations(applicationName, authorizationId) { + async getAdminAuthorizationsForOpenAdom(applicationName, authorizationId) { return applicationName ? this.get(`applications/${applicationName}/authorization/${authorizationId}`) - : this.get("authorization"); + : this.get("authorizationForAdmin"); + } + + async getAdminAuthorizationsForApplication(applicationName) { + return this.get(`${applicationName}/authorizationAdminForApplication`); } async getDataAuthorizations(applicationName) { diff --git a/ui/src/services/rest/LoginService.js b/ui/src/services/rest/LoginService.js index 505856f2e..c475eee91 100644 --- a/ui/src/services/rest/LoginService.js +++ b/ui/src/services/rest/LoginService.js @@ -14,7 +14,7 @@ export class LoginService extends Fetcher { getAuthenticatedUser() { if (!this.#useUser.reactiveObject.login) { - const user = JSON.parse(localStorage.getItem(LOCAL_STORAGE_AUTHENTICATED_USER)); + const user = JSON.parse(localStorage.authenticatedUser); if (!user) { if (router.currentRoute.path !== "/login") { router.push("/login"); diff --git a/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue b/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue index 5315c1d30..3b0d54ac8 100644 --- a/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue +++ b/ui/src/views/authorizations/AuthorizationsManagementForApplicationCreatorView.vue @@ -167,7 +167,9 @@ export default { applications: {}, }); if (Object.keys(listUsersAuth.value).length === 0) { - changeListUsersAuth(await services.authorizationService.getAuthorizations()); + changeListUsersAuth( + await services.authorizationService.getAdminAuthorizationsForOpenAdom() + ); } isLoading.value = false; } diff --git a/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue b/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue index adfd898e4..3fba7408d 100644 --- a/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue +++ b/ui/src/views/authorizations/AuthorizationsManagementForApplicationUsersView.vue @@ -163,7 +163,11 @@ export default { userManager: { add: [], remove: [] }, }); if (Object.keys(listUsersAuth.value).length === 0) { - changeListUsersAuth(await services.authorizationService.getAuthorizations()); + changeListUsersAuth( + await services.authorizationService.getAdminAuthorizationsForApplication( + props.applicationName + ) + ); } changeApplication( await services.applicationService.getApplication(props.applicationName, [ @@ -186,23 +190,43 @@ export default { if (changes.applicationManager.add.length !== 0) { changes.applicationManager.add.forEach((userId) => { localeListUsersAuth.filter((user) => user.id === userId)[0].applicationManager = true; - services.authorizationService.createAuthorizedRole("applicationManager", userId, null, props.applicationName); + services.authorizationService.createAuthorizedRole( + "applicationManager", + userId, + null, + props.applicationName + ); }); } else if (changes.applicationManager.remove.length !== 0) { changes.applicationManager.remove.forEach((userId) => { localeListUsersAuth.filter((user) => user.id === userId)[0].applicationManager = false; - services.authorizationService.revokeAuthorizedRole("applicationManager", userId, null, props.applicationName); + services.authorizationService.revokeAuthorizedRole( + "applicationManager", + userId, + null, + props.applicationName + ); }); } if (changes.userManager.add.length !== 0) { changes.userManager.add.forEach((userId) => { localeListUsersAuth.filter((user) => user.id === userId)[0].userManager = true; - services.authorizationService.createAuthorizedRole("userManager", userId, null, props.applicationName); + services.authorizationService.createAuthorizedRole( + "userManager", + userId, + null, + props.applicationName + ); }); } else if (changes.userManager.remove.length !== 0) { changes.userManager.remove.forEach((userId) => { localeListUsersAuth.filter((user) => user.id === userId)[0].userManager = false; - services.authorizationService.revokeAuthorizedRole("userManager", userId, null, props.applicationName); + services.authorizationService.revokeAuthorizedRole( + "userManager", + userId, + null, + props.applicationName + ); }); } } diff --git a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue index 4945f5c13..48cf59710 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue @@ -436,7 +436,7 @@ export default { }, {}); if (props.authorizationId !== "new") { services.authorizationService - .getAuthorizations(props.applicationName, props.authorizationId) + .getAdminAuthorizationsForOpenAdom(props.applicationName, props.authorizationId) .then((authorization) => { currentAuthorization.value = authorization; initialized.value = true; diff --git a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue index dc5499a66..fe4ee2b80 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue @@ -870,10 +870,11 @@ export default { isLoadingModal.value = true; let currentAuthorization; try { - currentAuthorization = await services.authorizationService.getAuthorizations( - props.applicationName, - id - ); + currentAuthorization = + await services.authorizationService.getAdminAuthorizationsForOpenAdom( + props.applicationName, + id + ); changeCurrentAuthorizationInModal(currentAuthorization); } finally { isLoadingModal.value = false; diff --git a/ui/src/views/users/UserView.vue b/ui/src/views/users/UserView.vue index 80a2ab707..e5b2c3a73 100644 --- a/ui/src/views/users/UserView.vue +++ b/ui/src/views/users/UserView.vue @@ -91,7 +91,7 @@ export default { changeTabToSignIn(); currentUser.email = event.email; currentUser.state = event.accountState; - services.loginService.setAuthenticateduser(event); + services.loginService.setAuthenticatedUser(event); init(event); services.alertService.toastSuccess(i18n.t("alert.user-email-updated")); } -- GitLab From 02b1d023c8b8aee642013dac2374604809749e04 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 7 Nov 2024 10:27:53 +0100 Subject: [PATCH 49/52] mise en place des authorizations dans l'interface de la page d'accueil d'une application --- .../views/application/ApplicationInfoView.vue | 44 ++++++++++++------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/ui/src/views/application/ApplicationInfoView.vue b/ui/src/views/application/ApplicationInfoView.vue index ba62e981b..b5362cd39 100644 --- a/ui/src/views/application/ApplicationInfoView.vue +++ b/ui/src/views/application/ApplicationInfoView.vue @@ -68,7 +68,12 @@ export default { ); const authenticatedUser = services.loginService.getAuthenticatedUser(); const canCreateApplication = authenticatedUser.isApplicationCreator(application); - const currentUser = JSON.parse(localStorage.getItem("authenticatedUser")); + const { refBoolean: canManagerApplication, doChangeBoolean: changeCanManagerApplication } = + useBoolean(false); + const { refBoolean: canManagerUser, doChangeBoolean: changeCanManagerUser } = useBoolean(false); + const { reactiveObject: currentUser, doChangeObject: changeCurrentUser } = useObject( + JSON.parse(localStorage.getItem("authenticatedUser")) + ); const { shallowRefArray: subMenuPaths, doChangeArray: changeSubMenuPaths } = useArray(); const { createApplication, @@ -99,7 +104,6 @@ export default { () => app.$router.push(`/applications`) ), ]); - console.log(currentUser); }); async function init() { @@ -119,6 +123,16 @@ export default { application ), }); + let users = await services.authorizationService.getAdminAuthorizationsForApplication( + props.applicationName + ); + changeCurrentUser( + users.filter( + (user) => user.id === JSON.parse(localStorage.getItem("authenticatedUser")).id + )[0] + ); + changeCanManagerApplication(currentUser.applicationManager); + changeCanManagerUser(currentUser.userManager); loadApplications(["DATATYPE", "REFERENCETYPE", "CONFIGURATION", "ADDITIONALFILE"]); for (let i = 0; i < applications.value.length; i++) { if (applications.value[i].name === application.name) { @@ -161,6 +175,8 @@ export default { canCreateApplication, showCharte, isCardModalActive, + canManagerUser, + canManagerApplication, url, }; }, @@ -227,7 +243,7 @@ export default { <span class="comment">{{ application.comment }}</span> </p> </div> - <div v-if="canCreateApplication"> + <div v-if="canCreateApplication || canManagerApplication || canManagerUser"> <div class="buttonPanel columns" style="display: contents"> <b-tabs class="buttonRubriquePanel"> <b-tab-item @@ -295,6 +311,7 @@ export default { </div> <div class="buttonWarper"> <b-button + v-if="canCreateApplication || canManagerApplication" icon-left="file" @click="showAdditionalFilesManagementRights(application.name)" > @@ -302,13 +319,16 @@ export default { </b-button> </div> </b-tab-item> - <b-tab-item aria-description="application"> + <b-tab-item + v-if="canCreateApplication || canManagerApplication" + aria-description="application" + > <template #header> <span class="rubriqueTitle">{{ $t("applications.functions.application-manage") }}</span> </template> - <div v-if="canCreateApplication" class="buttonWarper columns"> + <div class="buttonWarper columns"> <b-button class="column" icon-left="download" @@ -318,6 +338,7 @@ export default { {{ $t("referencesManagement.download") }} </b-button> <b-button + v-if="canCreateApplication && canManagerApplication" class="column" icon-left="pen-square" outlined @@ -379,16 +400,7 @@ export default { $t("applications.functions.right-requests-manage") }}</span> </template> - <span v-if="!canCreateApplication" class="buttonWarper"> - <b-button - icon-left="users-cog" - type="is-primary" - @click="showRequestRights(application.name)" - > - {{ $t("dataTypeAuthorizations.showRequests") }} - </b-button> - </span> - <div v-else class="buttonWarper"> + <div class="buttonWarper"> <b-button icon-left="users-cog" type="is-primary" @@ -397,8 +409,8 @@ export default { {{ $t("dataTypeAuthorizations.request") }} </b-button> <b-button - outlined icon-left="toolbox" + outlined type="is-primary" @click="authorizationsManagementForApplicationUsers(application.name)" > -- GitLab From 7a6f51723a3e580f64677833dd4d1b7103af4f69 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 7 Nov 2024 10:29:37 +0100 Subject: [PATCH 50/52] ajout section userManager et applicationManager dans user --- ui/src/model/User.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/src/model/User.js b/ui/src/model/User.js index a147106c1..6c96adb8d 100644 --- a/ui/src/model/User.js +++ b/ui/src/model/User.js @@ -64,7 +64,7 @@ export class User { if (lang) { this.lang = lang; } - if(applicationName) { + if (applicationName) { this.applicationManager = applicationManager; this.userManager = userManager; } @@ -104,7 +104,7 @@ export class User { user.lang, applicationName, user.applicationManager, - user.userManager, + user.userManager ); } isCharteSigned(application) { -- GitLab From af91abfb7432a5d6620b645ac2e5282b867cbbb0 Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Wed, 6 Nov 2024 18:07:13 +0100 Subject: [PATCH 51/52] Export du fichier csv (dans le zip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - internationalization des colonnes - internationalization des valeurs manque suppression des colonnes d'internationalisation A verifier ou à faire tests sur nouvelles sections A internationaliser erreurs dans nouvelles sections --- .../configuration/Configuration.java | 2 + .../StandardDataDescription.java | 9 + .../domain/data/deposit/DataImporter.java | 2 - .../data/deposit/context/column/Column.java | 2 + .../deposit/context/column/DynamicColumn.java | 2 +- .../column/OneValueStaticPatternColumn.java | 14 +- .../context/column/PatternColumnFactory.java | 1 + .../data/read/query/ComponentOrderBy.java | 78 +---- .../read/query/ComponentOrderByForExport.java | 103 +++++++ .../read/query/ComponentPatternOrderBy.java | 31 ++ .../read/query/DynamicComponentOrderBy.java | 31 ++ .../repository/data/DataRepository.java | 3 +- .../oresing/persistence/DataRepository.java | 7 +- .../fr/inra/oresing/persistence/DataRow.java | 67 ++++- .../fr/inra/oresing/persistence/DataRows.java | 21 ++ .../data/DataRequestBuilder.java | 48 +--- .../requestBuilder/data/DeleteRequest.java | 2 +- .../requestBuilder/data/SelectRequest.java | 29 +- .../fr/inra/oresing/rest/OreSiResources.java | 3 +- .../fr/inra/oresing/rest/OreSiService.java | 1 + .../inra/oresing/rest/data/DataService.java | 5 +- .../{ => data/extraction}/DataCsvBuilder.java | 67 ++--- .../data/extraction/DataCsvHeaderWriter.java | 153 ++++++++++ .../data/extraction/DataCsvRowBuilder.java | 44 +++ .../rest/model/data/DataRowResult.java | 48 ++-- .../data/query/DownloadDatasetQuery.java | 26 -- src/main/resources/application.properties | 4 + .../inra/oresing/rest/OreSiResourcesTest.java | 89 +++--- src/test/resources/data/pattern/pattern.yaml | 270 ++++++++++++++---- ...s_du_phytoplancton-reduit-pour-pattern.csv | 20 +- .../fixtures/applications/errors/errors.json | 2 +- .../ore/monsore/changeMonsore.txt | 34 +-- .../ore/monsore/createMonsore.txt | 42 +-- .../ore/monsore/validateMonsore.txt | 20 +- 34 files changed, 875 insertions(+), 405 deletions(-) create mode 100644 src/main/java/fr/inra/oresing/domain/data/read/query/ComponentOrderByForExport.java create mode 100644 src/main/java/fr/inra/oresing/domain/data/read/query/ComponentPatternOrderBy.java create mode 100644 src/main/java/fr/inra/oresing/domain/data/read/query/DynamicComponentOrderBy.java create mode 100644 src/main/java/fr/inra/oresing/persistence/DataRows.java rename src/main/java/fr/inra/oresing/rest/{ => data/extraction}/DataCsvBuilder.java (78%) create mode 100644 src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvHeaderWriter.java create mode 100644 src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvRowBuilder.java diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java b/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java index 611a85422..6d3bd1ffc 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java @@ -167,6 +167,8 @@ public record Configuration(Version version, Set<Tag> tags, }; Set<ComponentDescription> componentDescriptions = dataDescription.componentDescriptions().values().stream() .filter(Predicate.not(ComponentDescription::isHidden)) + .filter(Predicate.not(PatternComponentAdjacents.class::isInstance)) + .filter(Predicate.not(PatternComponentQualifiers.class::isInstance)) .collect(Collectors.toSet()); boolean haveNoDefinedOrder = componentDescriptions.stream() .allMatch(Predicate.not(ComponentDescription::hasOrderTag)); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/StandardDataDescription.java b/src/main/java/fr/inra/oresing/domain/application/configuration/StandardDataDescription.java index 2caa34b95..a612b71ec 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/StandardDataDescription.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/StandardDataDescription.java @@ -153,6 +153,15 @@ public record StandardDataDescription( .orElseGet(ComponentTextType::new); } + public ComponentType getTypeForPatternComponentKeyAndComponentKey(String patternComponentKey, String componentName) { + return Optional.ofNullable(componentDescriptions().get(patternComponentKey)) + .map(PatternComponent.class::cast) + .map(patternComponent->patternComponent.patternComponentAdjacents().get(componentName)) + .map(ComponentDescription::checker) + .map(this::toSqlType) + .orElseGet(ComponentTextType::new); + } + private ComponentType toSqlType(CheckerDescription checkerDescription) { return switch (checkerDescription) { case BooleanChecker ignored -> new ComponentBooleanType(); diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java index ef5e8b1e9..7c91477cf 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java @@ -42,11 +42,9 @@ import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; -import java.util.stream.IntStream; import java.util.stream.Stream; public class DataImporter { diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java index f854e50f4..b8bc7d111 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/Column.java @@ -13,6 +13,8 @@ public abstract class Column implements Comparable<Column> { public static final String COLUMN_IN_COLUMN_SEPARATOR = "::"; public static final String COLUMN_IN_COLUMN_PATTERN = "%s::%s"; public static final String __VALUE__ = "__VALUE__"; + public static final String __COLUMN_NAME__ = "__COLUMN_NAME__"; + public static final String __ORIGINAL_COLUMN_NAME__ = "__ORIGINAL_COLUMN_NAME__"; @Getter private final DataColumn referenceColumn; diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/DynamicColumn.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/DynamicColumn.java index 33c9ee4a3..e06b0623c 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/DynamicColumn.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/DynamicColumn.java @@ -40,7 +40,7 @@ public abstract class DynamicColumn extends Column { referenceDatum.put(getReferenceColumn(), newReferenceColumnIndexedValue); refsLinkedTo .computeIfAbsent(refsLinkedToEntryToAdd.getKey(), k -> new HashMap<>()) - .put(getReferenceColumn().column(), refsLinkedToEntryToAdd.getValue()); + .put(Column.COLUMN_IN_COLUMN_PATTERN.formatted(getReferenceColumn().column(), refsLinkedToEntryToAdd.getValue().hierarchicalKey()), refsLinkedToEntryToAdd.getValue()); } @Override diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java index 2028cd6bc..ed6311760 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/OneValueStaticPatternColumn.java @@ -93,12 +93,16 @@ public abstract class OneValueStaticPatternColumn extends Column { referenceDatum.put(getReferenceColumn(), referenceColumnValue); } - public DataDatum buildValue(final String cellContent, - final DataDatum qualifierComponents, - DataDatum adjacentComponents, - final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { + public DataDatum buildValue( + final String headerName, + final String cellContent, + final DataDatum qualifierComponents, + DataDatum adjacentComponents, + final Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo) { Map<DataColumn, DataColumnValue> columnValues = new HashMap<>(); columnValues.put(new DataColumn(Column.__VALUE__), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(cellContent))); + columnValues.put(new DataColumn(Column.__COLUMN_NAME__), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(headerName))); + columnValues.put(new DataColumn(Column.__ORIGINAL_COLUMN_NAME__), new DataColumnSingleValue(StringType.getStringTypeFromStringValue(headerInFile))); columnValues.putAll(qualifierComponents.values()); columnValues.putAll(adjacentComponents.values()); final DataColumnValue referenceColumnValue = new DataColumnPatternValue(columnValues); @@ -131,7 +135,7 @@ public abstract class OneValueStaticPatternColumn extends Column { Column adjacentColumn = adjacentColumns.get(i); DataColumn dataColumn = adjacentColumn.getReferenceColumn(); String value = adjacentComponentsValues.get(i); - FieldType fieldValue = Strings.isNullOrEmpty(value)? StringType.getStringTypeFromStringValue(""):StringType.getStringTypeFromStringValue(value); + FieldType fieldValue = Strings.isNullOrEmpty(value) ? StringType.getStringTypeFromStringValue("") : StringType.getStringTypeFromStringValue(value); DataColumnValue dataColumnValue = new DataColumnSingleValue(fieldValue); columnValues.put(dataColumn, dataColumnValue); } diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java index 91d8ed982..6d240d068 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/context/column/PatternColumnFactory.java @@ -66,6 +66,7 @@ public class PatternColumnFactory { final DataDatum qualifierComponents = patternColumn.qualifierComponents(); DataDatum datum = ((OneValueStaticPatternColumn) patternColumn.column()) .buildValue( + patternColumn.column.getExpectedHeader(), patternValueForHeader.cellContent(), qualifierComponents, adjacentComponents, diff --git a/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentOrderBy.java b/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentOrderBy.java index f5c832e73..ddf730703 100644 --- a/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentOrderBy.java +++ b/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentOrderBy.java @@ -14,15 +14,17 @@ import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Comparator; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Stream; import static fr.inra.oresing.domain.exceptions.data.data.BadDownloadDatasetQuery.MISSING_COMPONENT_KEY_FOR_SEARCH; public record ComponentOrderBy(String componentKey, DataRepository.Order order, - ComponentType sqlType) { + ComponentType sqlType) implements ComponentOrderByForExport { public ComponentOrderBy(final String componentKey, final DataRepository.Order order, final ComponentType sqlType) { if (componentKey == null) { @@ -34,74 +36,16 @@ public record ComponentOrderBy(String componentKey, DataRepository.Order order, } - public String toValue(String language, DataRepositoryWithBuffer dataRepository, Map<String, FieldType> dataRowValues, StandardDataDescription dataDescription) { + public Stream<String> toValue( + String language, + DataRepositoryWithBuffer dataRepository, + Map<String, FieldType> dataRowValues, + StandardDataDescription dataDescription + ) { String componentKey = componentKey(); FieldType fieldType = dataRowValues.get(componentKey); final String value = fieldType.toString(); - return switch (sqlType()) { - case null -> ""; - case ComponentDateType componentDateType -> { - Matcher matcher = Pattern.compile(DateType.PATTERN_DATE_REGEXP_FIND_DATE).matcher(((StringType) fieldType).getValue()); - if (matcher.matches()) { - yield DateTimeFormatter.ofPattern(componentDateType.format()).format(LocalDateTime.parse(matcher.group(1))); - } - yield ""; - } - case ComponentReferenceType componentReferenceType -> { - yield Optional.ofNullable(dataDescription) - .map(StandardDataDescription::componentDescriptions) - .map(components -> components.get(componentKey())) - .map(ComponentDescription::checker) - .filter(ReferenceChecker.class::isInstance) - .map(ReferenceChecker.class::cast) - .map(ReferenceChecker::refType) - .map(referencetype -> Optional.of(dataRepository) - .map(repository -> repository.findDisplayByReferenceType(referencetype)) - .map(map -> map.get(value)) - .map(map -> map.get(language)) - .orElse(null) - ) - .orElse(value); - } - default -> value; - }; - } - - public static Comparator<ComponentOrderBy> getComparator(StandardDataDescription dataDescription) { - return new Comparator<ComponentOrderBy>() { - @Override - public int compare(ComponentOrderBy componentOrderBy1, ComponentOrderBy componentOrderBy2) { - return switch (componentOrderBy1) { - case ComponentOrderBy ignored -> { - yield switch (componentOrderBy2) { - case null -> -1; - case ComponentOrderBy ignored1 -> { - Integer component1Order = getComponentOrder(componentOrderBy1, dataDescription); - Integer component2Order = getComponentOrder(componentOrderBy2, dataDescription); - if (component1Order.equals(component2Order)) { - yield componentOrderBy1.componentKey().compareTo(componentOrderBy2.componentKey()); - } - yield component1Order.compareTo(component2Order); - } - }; - } - case null -> 1; - }; - } - }; - } - - private static int getComponentOrder(ComponentOrderBy componentOrderBy, StandardDataDescription dataDescription) { - return Optional.of(componentOrderBy) - .map(ComponentOrderBy::componentKey) - .map(dataDescription.componentDescriptions()::get) - .map(ComponentDescription::tags) - .map(tags -> tags.stream() - .filter(Tag.OrderTag.class::isInstance) - .map(Tag.OrderTag.class::cast) - .map(Tag.OrderTag::tagOrder) - .findFirst() - .orElse(9999)) - .orElse(9999); + String valueString = valueToString(language, dataRepository, dataDescription, fieldType); + return Stream.of(valueString); } } diff --git a/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentOrderByForExport.java b/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentOrderByForExport.java new file mode 100644 index 000000000..208893292 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentOrderByForExport.java @@ -0,0 +1,103 @@ +package fr.inra.oresing.domain.data.read.query; + +import fr.inra.oresing.domain.application.configuration.ComponentDescription; +import fr.inra.oresing.domain.application.configuration.StandardDataDescription; +import fr.inra.oresing.domain.application.configuration.Tag; +import fr.inra.oresing.domain.application.configuration.checker.ReferenceChecker; +import fr.inra.oresing.domain.checker.type.DateType; +import fr.inra.oresing.domain.checker.type.FieldType; +import fr.inra.oresing.domain.checker.type.MapType; +import fr.inra.oresing.domain.checker.type.StringType; +import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Comparator; +import java.util.Map; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Stream; + +public sealed interface ComponentOrderByForExport permits ComponentOrderBy, ComponentPatternOrderBy, DynamicComponentOrderBy { + Stream<String> toValue(String language, DataRepositoryWithBuffer dataRepository, Map<String, FieldType> dataRowValues, StandardDataDescription dataDescription); + + String componentKey(); + ComponentType sqlType (); + + default String valueToString( + String language, + DataRepositoryWithBuffer dataRepository, + StandardDataDescription dataDescription, + FieldType fieldType) { + if(fieldType instanceof MapType mapType){ + return "pas trouvé"; + } + return switch (sqlType()) { + case null -> ""; + case ComponentDateType componentDateType -> { + Matcher matcher = Pattern.compile(DateType.PATTERN_DATE_REGEXP_FIND_DATE).matcher(fieldType.getValue().toString()); + if (matcher.matches()) { + yield DateTimeFormatter.ofPattern(componentDateType.format()).format(LocalDateTime.parse(matcher.group(1))); + } + yield ""; + } + case ComponentReferenceType componentReferenceType -> { + yield Optional.ofNullable(dataDescription) + .map(StandardDataDescription::componentDescriptions) + .map(components -> components.get(componentKey())) + .map(ComponentDescription::checker) + .filter(ReferenceChecker.class::isInstance) + .map(ReferenceChecker.class::cast) + .map(ReferenceChecker::refType) + .map(referencetype -> Optional.of(dataRepository) + .map(repository -> repository.findDisplayByReferenceType(referencetype)) + .map(map -> map.get(fieldType.toString())) + .map(map -> map.get(language)) + .orElse(null) + ) + .orElse(fieldType.toString()); + } + default -> fieldType.toString(); + }; + } + + + public static Comparator<ComponentOrderByForExport> getComparator(StandardDataDescription dataDescription) { + return new Comparator<ComponentOrderByForExport>() { + @Override + public int compare(ComponentOrderByForExport componentOrderBy1, ComponentOrderByForExport componentOrderBy2) { + return switch (componentOrderBy1) { + case null -> 1; + default -> { + yield switch (componentOrderBy2) { + case null -> -1; + default -> { + Integer component1Order = getComponentOrder(componentOrderBy1, dataDescription); + Integer component2Order = getComponentOrder(componentOrderBy2, dataDescription); + if (component1Order.equals(component2Order)) { + yield componentOrderBy1.componentKey().compareTo(componentOrderBy2.componentKey()); + } + yield component1Order.compareTo(component2Order); + } + }; + } + }; + } + }; + } + + private static int getComponentOrder(ComponentOrderByForExport componentOrderBy, StandardDataDescription dataDescription) { + return Optional.of(componentOrderBy) + .map(ComponentOrderByForExport::componentKey) + .map(dataDescription.componentDescriptions()::get) + .map(ComponentDescription::tags) + .map(tags -> tags.stream() + .filter(Tag.OrderTag.class::isInstance) + .map(Tag.OrderTag.class::cast) + .map(Tag.OrderTag::tagOrder) + .findFirst() + .orElse(9999)) + .orElse(9999); + } +} diff --git a/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentPatternOrderBy.java b/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentPatternOrderBy.java new file mode 100644 index 000000000..4184edb74 --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentPatternOrderBy.java @@ -0,0 +1,31 @@ +package fr.inra.oresing.domain.data.read.query; + +import fr.inra.oresing.domain.application.configuration.StandardDataDescription; +import fr.inra.oresing.domain.checker.type.*; +import fr.inra.oresing.domain.data.deposit.context.column.Column; +import fr.inra.oresing.persistence.DataRepository; +import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Stream; + +public record ComponentPatternOrderBy(String componentKey, String qualifierKey, DataRepository.Order order, + ComponentType sqlType, + List<ComponentOrderBy> qualifiersColumns) implements ComponentOrderByForExport { + @Override + public Stream<String> toValue(String language, DataRepositoryWithBuffer dataRepository, Map<String, FieldType> dataRowValues, StandardDataDescription dataDescription) { + String componentKey = componentKey(); + FieldType fieldType = dataRowValues.get(componentKey); + Optional<MapType> valueOpt = ((ListType) fieldType).getValue().stream().filter(mapType -> qualifierKey().equals(((MapType) mapType).getValue().get(Column.__ORIGINAL_COLUMN_NAME__).toString())).findFirst(); + if (valueOpt.isEmpty()) { + return Stream.empty(); + } + List<String> values = new ArrayList<>(); + values.add(valueToString(language, dataRepository, dataDescription, (FieldType) valueOpt.get().getValue().get(Column.__VALUE__))); + qualifiersColumns().stream().map(qualifier -> qualifier.valueToString(language, dataRepository, dataDescription, (FieldType) valueOpt.get().getValue().get(qualifier.componentKey()))).forEach(values::add); + return values.stream(); + } +} diff --git a/src/main/java/fr/inra/oresing/domain/data/read/query/DynamicComponentOrderBy.java b/src/main/java/fr/inra/oresing/domain/data/read/query/DynamicComponentOrderBy.java new file mode 100644 index 000000000..beb3bcc1f --- /dev/null +++ b/src/main/java/fr/inra/oresing/domain/data/read/query/DynamicComponentOrderBy.java @@ -0,0 +1,31 @@ +package fr.inra.oresing.domain.data.read.query; + +import fr.inra.oresing.domain.application.configuration.StandardDataDescription; +import fr.inra.oresing.domain.checker.type.FieldType; +import fr.inra.oresing.domain.checker.type.ListType; +import fr.inra.oresing.domain.checker.type.MapType; +import fr.inra.oresing.domain.checker.type.StringType; +import fr.inra.oresing.domain.data.deposit.context.column.Column; +import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Stream; + +public record DynamicComponentOrderBy(String componentKey, Map<String, ComponentOrderBy> dynamicColumns) implements ComponentOrderByForExport { + @Override + public Stream<String> toValue(String language, DataRepositoryWithBuffer dataRepository, Map<String, FieldType> dataRowValues, StandardDataDescription dataDescription) { + String componentKey = componentKey(); + Map<String, StringType> values = (Map<String, StringType>) dataRowValues.get(componentKey).getValue(); + return dynamicColumns().keySet().stream() + .map(values::get) + .map(FieldType::toString); + + } + @Override + public ComponentType sqlType() { + return new ComponentTextType(); + } +} diff --git a/src/main/java/fr/inra/oresing/domain/repository/data/DataRepository.java b/src/main/java/fr/inra/oresing/domain/repository/data/DataRepository.java index d4259500e..7e1aeea38 100644 --- a/src/main/java/fr/inra/oresing/domain/repository/data/DataRepository.java +++ b/src/main/java/fr/inra/oresing/domain/repository/data/DataRepository.java @@ -6,6 +6,7 @@ import fr.inra.oresing.domain.application.configuration.SubmissionType; import fr.inra.oresing.domain.data.DataValue; import fr.inra.oresing.domain.data.menu.MenuType; import fr.inra.oresing.domain.data.menu.ReferenceScope; +import fr.inra.oresing.persistence.DataRows; import fr.inra.oresing.persistence.data.read.bundle.FileContent; import fr.inra.oresing.domain.data.read.query.DownloadDatasetQuery; import fr.inra.oresing.persistence.DataRow; @@ -34,7 +35,7 @@ public interface DataRepository { Map<String, String> findHierarchicalKeysByKeyForReferenceTypes(List<String> referenceType); - Flux<DataRow> findAllByDataTypeFlux(DownloadDatasetQuery downloadDatasetQuery); + Flux<DataRows> findAllByDataTypeFlux(DownloadDatasetQuery downloadDatasetQuery); List<ReferenceScope.NodeDescription> getNodesForMenu(MenuType menuType); diff --git a/src/main/java/fr/inra/oresing/persistence/DataRepository.java b/src/main/java/fr/inra/oresing/persistence/DataRepository.java index 630293670..d91173a71 100644 --- a/src/main/java/fr/inra/oresing/persistence/DataRepository.java +++ b/src/main/java/fr/inra/oresing/persistence/DataRepository.java @@ -469,11 +469,12 @@ public class DataRepository extends JsonTableInApplicationSchemaRepositoryTempla return result; } - public Flux<DataRow> findAllByDataTypeFlux(final DownloadDatasetQuery downloadDatasetQuery) { + public Flux<DataRows> findAllByDataTypeFlux(final DownloadDatasetQuery downloadDatasetQuery) { final Stream result; final SqlRequest sqlRequest = DataRequestBuilder.buildSelectRequest(downloadDatasetQuery); - result = getNamedParameterJdbcTemplate().queryForStream(sqlRequest.sql(), sqlRequest.parameterSource(), getJsonRowMapper()); - return Flux.<DataRow>fromStream(result); + result = getNamedParameterJdbcTemplate().queryForStream(sqlRequest.sql(), sqlRequest.parameterSource(), new JsonRowMapper<DataRows>()); + + return Flux.<DataRows>fromStream(result.toList().stream());//Flux.<DataRows>fromStream(result.toList().stream()); } @Override diff --git a/src/main/java/fr/inra/oresing/persistence/DataRow.java b/src/main/java/fr/inra/oresing/persistence/DataRow.java index a198178b0..ae148fb96 100644 --- a/src/main/java/fr/inra/oresing/persistence/DataRow.java +++ b/src/main/java/fr/inra/oresing/persistence/DataRow.java @@ -1,22 +1,79 @@ package fr.inra.oresing.persistence; import fr.inra.oresing.domain.application.configuration.Ltree; +import fr.inra.oresing.domain.application.configuration.PatternComponent; +import fr.inra.oresing.domain.application.configuration.StandardDataDescription; import fr.inra.oresing.domain.checker.type.FieldType; +import fr.inra.oresing.domain.checker.type.ListType; +import fr.inra.oresing.domain.checker.type.MapType; import fr.inra.oresing.domain.data.RefsLinkedToValue; +import fr.inra.oresing.domain.data.deposit.context.column.Column; import lombok.Value; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; +import java.util.stream.Collectors; @Value public class DataRow { - String rowId; - String patternColumnName; + List<String> rowId; + List<String> patternColumnName; Ltree naturalKey; Ltree hierarchicalKey; Map<String, FieldType> values; Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo; Long totalRows = -1L; Long rowNumber = -1L; + + public static DataRow of(Optional<StandardDataDescription> application, DataRows dataRows) { + List<String> patternComponentKeys = application + .map(StandardDataDescription::componentDescriptions) + .stream().flatMap(descriptions -> descriptions.entrySet().stream() + .filter(component -> component.getValue() instanceof PatternComponent) + .map(Map.Entry::getKey) + ).toList(); + Map<String, FieldType> values = new HashMap<>(); + values.putAll(dataRows.getValues().getFirst()); + Map<String, ListType> listTypeMap = patternComponentKeys.stream() + .map(componentKey -> { + + ListType<MapType> listTypes = new ListType<>(new MapType(Map.<String, FieldType>of())); + dataRows.getValues().stream() + .filter(value -> value.containsKey(componentKey)) + .map(value -> value.get(componentKey)) + .map(MapType.class::cast) + .forEach(listTypes::add); + return new AbstractMap.SimpleEntry<String, ListType>(componentKey, listTypes); + } + ) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + values.putAll(listTypeMap); + Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo = new HashMap<>(); + for (int i = 0; i < dataRows.getPatternColumnName().size(); i++) { + String patternColumnName = dataRows.getPatternColumnName().get(i); + Map<String, Map<String, RefsLinkedToValue>> refsLinkedto = dataRows.getRefsLinkedTo().get(i); + for (Map.Entry<String, Map<String, RefsLinkedToValue>> refsLinkedtoEntryByReference : refsLinkedto.entrySet()) { + String reference = refsLinkedtoEntryByReference.getKey(); + Map<String, RefsLinkedToValue> refsLinkedtoByComponent = refsLinkedTo.computeIfAbsent(reference, k -> new HashMap<>()); + for (Map.Entry<String, RefsLinkedToValue> refsLinkedtoEntryByComponent : refsLinkedtoEntryByReference.getValue().entrySet()) { + String componentKey = refsLinkedtoEntryByComponent.getKey(); + if (componentKey.contains(Column.COLUMN_IN_COLUMN_SEPARATOR)) { + refsLinkedtoByComponent.remove(componentKey); + componentKey = Column.COLUMN_IN_COLUMN_PATTERN.formatted(componentKey, patternColumnName); + } + refsLinkedtoByComponent + .put(componentKey, refsLinkedtoEntryByComponent.getValue()); + + } + } + } + ; + return new DataRow( + dataRows.getRowId(), + dataRows.getPatternColumnName(), + dataRows.getNaturalKey(), + dataRows.getHierarchicalKey(), + values, + refsLinkedTo + ); + } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/DataRows.java b/src/main/java/fr/inra/oresing/persistence/DataRows.java new file mode 100644 index 000000000..02020d3f9 --- /dev/null +++ b/src/main/java/fr/inra/oresing/persistence/DataRows.java @@ -0,0 +1,21 @@ +package fr.inra.oresing.persistence; + +import fr.inra.oresing.domain.application.configuration.Ltree; +import fr.inra.oresing.domain.checker.type.FieldType; +import fr.inra.oresing.domain.data.RefsLinkedToValue; +import lombok.Value; + +import java.util.List; +import java.util.Map; + +@Value +public class DataRows { + List<String> rowId; + List<String> patternColumnName; + Ltree naturalKey; + Ltree hierarchicalKey; + List<Map<String, FieldType>> values; + List<Map<String, Map<String, RefsLinkedToValue>>> refsLinkedTo; + Long totalRows = -1L; + Long rowNumber = -1L; +} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/DataRequestBuilder.java b/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/DataRequestBuilder.java index 212a1461a..f80945a3e 100644 --- a/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/DataRequestBuilder.java +++ b/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/DataRequestBuilder.java @@ -285,7 +285,7 @@ public class DataRequestBuilder { case DownloadDatasetQueryByNaturalKey downloadDatasetQueryByNaturalKey -> { paramSource.addValue("naturalKeys", downloadDatasetQueryByNaturalKey.naturalOrHierarchicalKey()); final String filter = """ - naturalKey IN (:naturalKeys) or hierarchicalKey IN (:naturalKeys) + rs.naturalKey IN (:naturalKeys) or hierarchicalKey IN (:naturalKeys) """; yield buildDeleteDatasetQuery( downloadDatasetQueryByNaturalKey, @@ -296,23 +296,13 @@ public class DataRequestBuilder { paramSource.addValue("rowids", downloadDatasetQueryByRowId.rowIds().stream() .map(DataRowIds::id).toList()); final String filter = """ - id::uuid IN (:rowids) + rs.id::uuid IN (:rowids) """; yield buildDeleteDatasetQuery( downloadDatasetQueryByRowId, new SelectRequestWhereInSelect(() -> filter) ); } - /*case final DownloadDatasetQuerySimpleSearch downloadDatasetQuerySimpleSearch -> { - yield buildDeleteDatasetQuery( - downloadDatasetQuerySimpleSearch, - new SelectRequestWhereInSelect(() -> - buildFilter( - downloadDatasetQuerySimpleSearch.authorizationDescriptions() - ) - ) - ); - }*/ case DownloadDatasetQueryOnlyMetadata downloadDatasetQueryOnlyMetadata -> throw new IllegalArgumentException("no request with onlyMetadata"); }; @@ -339,7 +329,7 @@ public class DataRequestBuilder { .map(Ltree::getSql) .toList()); final String filter = """ - \snaturalKey::text IN (:naturalKeys) or hierarchicalKey::text IN (:naturalKeys) + \srs.naturalKey::text IN (:naturalKeys) or rs.hierarchicalKey::text IN (:naturalKeys) """; yield buildDownloadDatasetQuery( downloadDatasetQueryByNaturalKey, @@ -350,22 +340,13 @@ public class DataRequestBuilder { paramSource.addValue("rowids", downloadDatasetQueryByRowId.rowIds().stream() .map(DataRowIds::id).toList()); final String filter = """ - \s(id::uuid IN (:rowids)) + \s(rs.id::uuid IN (:rowids)) """; yield buildDownloadDatasetQuery( downloadDatasetQueryByRowId, new SelectRequestWhereInSelect(() -> filter) ); } - /*case final DownloadDatasetQuerySimpleSearch downloadDatasetQuerySimpleSearch -> { - yield buildDownloadDatasetQuery( - downloadDatasetQuerySimpleSearch, - new SelectRequestWhereInSelect(() -> - new DownloadDatasetQuerySimpleSearchQueryBuilder(downloadDatasetQuerySimpleSearch) - .sql() - ) - ); - }*/ case DownloadDatasetQueryOnlyMetadata downloadDatasetQueryOnlyMetadata -> throw new IllegalArgumentException("no request with onlyMetadata"); }; } @@ -422,28 +403,9 @@ public class DataRequestBuilder { return downloadDatasetQueryAdvancedSearch.componentFilters().stream() .map(DataRequestBuilder::filter) .filter(f -> !Strings.isNullOrEmpty(f)) - .map("refvalues @@ 'exists(%1$s)'"::formatted) + .map("rs.refvalues @@ 'exists(%1$s)'"::formatted) .collect(Collectors.joining(" ) AND \n( ", "( ", " )\n")); } - /*private String buildFilter(final Set<AuthorizationDescription> authorizationDescriptions) { - final String sqlStart = "\"authorization\" @> "; - final String sqlEnd = ":: %s.\"authorization\"[]".formatted(schema.getSqlIdentifier()); - String sql = authorizationDescriptions.stream() - .map(authorizationdescription -> authorizationdescription.toAuthorization(downloadDatasetQuery.application(), schema)) - .filter(authorizations -> !authorizations.isEmpty()) - .map(authorizations -> { - final String authorizationsSql = authorizations.stream() - .map(authorization -> authorization.toSQL(downloadDatasetQuery.application().getConfiguration().requiredAuthorizationsAttributes())) - .map(expression -> String.format(expression, schema.getSqlIdentifier())) - .collect(Collectors.joining(",", "ARRAY[\n\t\t\t\t", "\n\t\t\t]")); - return new StringBuilder(sqlStart) - .append(authorizationsSql) - .append(sqlEnd); - }) - .collect(Collectors.joining(") \n\t\tOR\n\t\t\t(", "\n\t\t\t(", ")")); - return " (%s)".formatted(sql); - }*/ - } diff --git a/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/DeleteRequest.java b/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/DeleteRequest.java index 10db4c523..0ca159edc 100644 --- a/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/DeleteRequest.java +++ b/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/DeleteRequest.java @@ -30,7 +30,7 @@ record DeleteRequest( ) { static final String TEMPLATE = """ DELETE - FROM %1$s.referencevalue del + FROM %1$s.referencevalue rs WHERE (('"'||referencetype||'"')::jsonb) @@ 'exists($ ? (@ == "%2$s"))' %3$s diff --git a/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/SelectRequest.java b/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/SelectRequest.java index a61f456ff..925b1370d 100644 --- a/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/SelectRequest.java +++ b/src/main/java/fr/inra/oresing/persistence/requestBuilder/data/SelectRequest.java @@ -41,21 +41,24 @@ record SelectRequest( ) { static final String TEMPLATE = """ SELECT - 'fr.inra.oresing.persistence.DataRow' AS "@class", - jsonb_build_object( - 'rowNumber', row_number() over (), - 'totalRows', count(*) over (), - 'rowId', id, - 'naturalKey', naturalkey, - 'hierarchicalKey', hierarchicalkey, - 'patternColumnName', patterncolumnname, - 'values', refvalues %1$s, - 'refsLinkedTo', refsLinkedTo %2$s - ) AS "json" - FROM %3$s.referencevalue + 'fr.inra.oresing.persistence.DataRows' AS "@class", + jsonb_build_object( + 'rowNumber', row_number() over (), + 'totalRows', count(*) over (), + 'rowId', array_agg(rv.id), + 'naturalKey', rs.naturalkey, + 'hierarchicalKey', rs.hierarchicalkey, + 'patternColumnName', array_agg(rv.patterncolumnname), + 'values', array_agg(rv.refvalues) , + 'refsLinkedTo', array_agg(rv.refsLinkedTo) + ) AS "json" + FROM %3$s.referencevalue rs + JOIN %3$s.referencevalue rv USING (naturalkey, patterncolumnname) WHERE - (('"'||referencetype||'"')::jsonb) @@ 'exists($ ? (@ == "%4$s"))' + (('"'||rs.referencetype||'"')::jsonb) @@ 'exists($ ? (@ == "%4$s"))' %5$s + + GROUP BY rv.naturalkey, rs.naturalkey, rs.hierarchicalkey """; public String build() { diff --git a/src/main/java/fr/inra/oresing/rest/OreSiResources.java b/src/main/java/fr/inra/oresing/rest/OreSiResources.java index 23cd0d014..9aa4727e6 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiResources.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiResources.java @@ -788,7 +788,7 @@ public class OreSiResources { """) }, name = "downloadDatasetQuery", - description = "An objetc for reduce, filter and order result" + description = "An object for reduce, filter and order result" ) @RequestParam(value = "downloadDatasetQuery", required = false) final String params, @RequestParam(defaultValue = "false") boolean onlyMetadata) { @@ -829,6 +829,7 @@ public class OreSiResources { final Map<String, Map<String, LineCheckerResult>> checkedFormatcomponents = service.getCheckedFormatComponents(nameOrId, dataName); Set<String> listOfDataIds = list.stream() .map(DataRow::getRowId) + .flatMap(List::stream) .collect(Collectors.toSet()); final Map<Ltree, List<DataValue>> requiredreferencesValues = service.getReferenceDisplaysById(applicationService.getApplication(nameOrId), listOfDataIds); Map<String, LineCheckerResult> lineCheckers = checkedFormatcomponents.get(ReferenceType.class.getSimpleName()); diff --git a/src/main/java/fr/inra/oresing/rest/OreSiService.java b/src/main/java/fr/inra/oresing/rest/OreSiService.java index 6d971d2ac..393e5919a 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiService.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiService.java @@ -38,6 +38,7 @@ import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; import fr.inra.oresing.persistence.flyway.MigrateService; import fr.inra.oresing.rest.application.ApplicationService; import fr.inra.oresing.rest.data.DataService; +import fr.inra.oresing.rest.data.extraction.DataCsvBuilder; import fr.inra.oresing.rest.filesenderclient.*; import fr.inra.oresing.rest.model.additionalfiles.AdditionalBinaryFileResult; import fr.inra.oresing.rest.model.additionalfiles.CreateAdditionalFileRequest; diff --git a/src/main/java/fr/inra/oresing/rest/data/DataService.java b/src/main/java/fr/inra/oresing/rest/data/DataService.java index dad9fad0b..7a4e9ba72 100644 --- a/src/main/java/fr/inra/oresing/rest/data/DataService.java +++ b/src/main/java/fr/inra/oresing/rest/data/DataService.java @@ -36,7 +36,7 @@ import fr.inra.oresing.domain.groovy.StringGroovyExpression; import fr.inra.oresing.domain.groovy.StringSetGroovyExpression; import fr.inra.oresing.domain.transformer.transformer.TransformationConfiguration; import fr.inra.oresing.persistence.*; -import fr.inra.oresing.rest.DataCsvBuilder; +import fr.inra.oresing.rest.data.extraction.DataCsvBuilder; import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; import fr.inra.oresing.rest.HierarchicalReferenceAsTree; import fr.inra.oresing.rest.application.ApplicationService; @@ -495,7 +495,8 @@ public class DataService { return Flux.empty(); } dataRepository = getDataRepository(downloadDatasetQuery); - return dataRepository.findAllByDataTypeFlux(downloadDatasetQuery); + return dataRepository.findAllByDataTypeFlux(downloadDatasetQuery) + .map(dataRows -> DataRow.of(downloadDatasetQuery.application().findData(downloadDatasetQuery.dataName()), dataRows)); } private DataRepository getDataRepository(DownloadDatasetQuery downloadDatasetQuery) { diff --git a/src/main/java/fr/inra/oresing/rest/DataCsvBuilder.java b/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvBuilder.java similarity index 78% rename from src/main/java/fr/inra/oresing/rest/DataCsvBuilder.java rename to src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvBuilder.java index 4408878f4..319a97a9f 100644 --- a/src/main/java/fr/inra/oresing/rest/DataCsvBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvBuilder.java @@ -1,9 +1,12 @@ -package fr.inra.oresing.rest; +package fr.inra.oresing.rest.data.extraction; import com.google.common.collect.ImmutableSet; import com.opencsv.CSVWriter; import fr.inra.oresing.domain.application.configuration.*; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationComponent; import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationData; +import fr.inra.oresing.domain.application.configuration.internationalization.InternationalizationTitle; +import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; import fr.inra.oresing.domain.checker.type.*; import fr.inra.oresing.domain.data.UUIDsfromData; import fr.inra.oresing.domain.data.deposit.context.DataImporterContext; @@ -26,6 +29,7 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.Stream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -60,28 +64,6 @@ public class DataCsvBuilder { } } - public static List<String> getCsvRow(String language, - DataRepositoryWithBuffer dataRepository, - StandardDataDescription dataDescription, - Map<String, FieldType> dataRowValues, - List<ComponentOrderBy> columns) { - try { - - // final Map<String, FieldType> record = dataRow.getValues(); - Function<ComponentOrderBy, String> toValue = componentOrderBy -> componentOrderBy.toValue(language, dataRepository, dataRowValues, dataDescription); - List<String> rowAsRecord = columns - .stream() - .map(toValue) - .toList(); - - return rowAsRecord; - // return dataRow.getValues().values().stream().map(FieldType::toString).toList(); - } catch (Exception e) { - log.info(e.getMessage()); - throw e; - } - } - private static DataRow addRefsLinkedTo(DataRow dataRow, UUIDsfromData uuidsfromData) { dataRow.getRefsLinkedTo().entrySet() .stream().forEach(uuidsfromData::addRefsLinkedTo); @@ -193,31 +175,28 @@ public class DataCsvBuilder { downloadDatasetQuery.dataName(), downloadDatasetQuery.getLanguage(), elementsToBeSortedInFirst); - LinkedList<String> columns = internationalizedSortedColumns.values().stream() - .map(internationalizedSortedColumn -> internationalizedSortedColumn.header()) - .collect(Collectors.toCollection(LinkedList::new)); try { - // Écrire l'en-tête - writer.writeNext(columns.toArray(new String[]{})); - - Comparator<ComponentOrderBy> comparator = ComponentOrderBy.getComparator(dataDescription); - List<ComponentOrderBy> orderedColumns = internationalizedSortedColumns.values().stream() - .map(internationalizedSortedColumn -> new ComponentOrderBy( - internationalizedSortedColumn.header(), - DataRepository.Order.ASC, - dataDescription.getTypeForComponentKey(internationalizedSortedColumn.componentDescription().componentKey()) - )) - .collect(Collectors.toCollection(LinkedList::new)); + Function<String, String> getInternationalizedHeader = componentName -> Optional.ofNullable( + downloadDatasetQuery.application() + .getConfiguration().i18n()) + .map(Internationalizations::getData) + .map(data->data.get(downloadDatasetQuery.dataName())) + .map(InternationalizationData::getComponents) + .map(components->components.get(componentName)) + .map(InternationalizationComponent::getExportHeader) + .map(InternationalizationTitle::getTitle) + .map(title->title.get(Locale.of(downloadDatasetQuery.getLanguage())) + ).orElse(componentName); + Comparator<ComponentOrderByForExport> comparator = ComponentOrderByForExport.getComparator(dataDescription); + DataCsvHeaderWriter dataCsvHeaderWriter = new DataCsvHeaderWriter(writer, comparator, getInternationalizedHeader, dataRepositoryWithBuffer, dataDescription, internationalizedSortedColumns); + DataCsvRowBuilder dataCsvRowBuilder = new DataCsvRowBuilder(language, dataRepositoryWithBuffer, dataDescription); datas + .map(dataCsvHeaderWriter::writeHeader) .map(dataRow -> addRefsLinkedTo(dataRow, uuiDsfromData)) - .map(dataRow -> getCsvRow(language, dataRepositoryWithBuffer, dataDescription, dataRow.getValues(), orderedColumns)) - .doOnNext(rowAsRecord -> { + .map(dataRow -> dataCsvRowBuilder.getCsvRow(dataRow.getValues(), dataCsvHeaderWriter.orderedColumns())) + .doOnNext(csvRow -> { try { -/* - log.info(" line {} : {}", String.valueOf(counter.incrementAndGet()), rowAsRecord); -*/ - writer.writeNext(rowAsRecord.toArray(new String[0])); - //log.info(" line {} est ecrite", String.valueOf(counter.get())); + writer.writeNext(csvRow.toArray(new String[0])); } catch (Exception e) { log.error("Error writing CSV row", e); } diff --git a/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvHeaderWriter.java b/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvHeaderWriter.java new file mode 100644 index 000000000..53ed3a802 --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvHeaderWriter.java @@ -0,0 +1,153 @@ +package fr.inra.oresing.rest.data.extraction; + +import com.opencsv.CSVWriter; +import fr.inra.oresing.domain.application.configuration.*; +import fr.inra.oresing.domain.checker.type.ListType; +import fr.inra.oresing.domain.checker.type.MapType; +import fr.inra.oresing.domain.data.DataColumn; +import fr.inra.oresing.domain.data.DataColumnValue; +import fr.inra.oresing.domain.data.DataValue; +import fr.inra.oresing.domain.data.deposit.context.column.Column; +import fr.inra.oresing.domain.data.read.query.*; +import fr.inra.oresing.persistence.DataRepository; +import fr.inra.oresing.persistence.DataRow; +import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public record DataCsvHeaderWriter( + CSVWriter writer, + Comparator<ComponentOrderByForExport> comparator, + Function<String, String> getInternationalizedHeader, + DataRepositoryWithBuffer dataRepositoryWithBuffer, + List<ComponentOrderByForExport> orderedColumns, + StandardDataDescription dataDescription, + Map<String, Configuration.InternationalizedSortedColumn> internationalizedSortedColumns) { + public DataCsvHeaderWriter(CSVWriter writer, Comparator<ComponentOrderByForExport> comparator, Function<String, String> getInternationalizedHeader, DataRepositoryWithBuffer dataRepositoryWithBuffer, StandardDataDescription dataDescription, Map<String, Configuration.InternationalizedSortedColumn> internationalizedSortedColumns) { + this(writer, comparator, getInternationalizedHeader, dataRepositoryWithBuffer, new ArrayList<>(), dataDescription, internationalizedSortedColumns); + } + + protected DataRow writeHeader(DataRow dataRow) { + if (CollectionUtils.isNotEmpty(orderedColumns())) { + return dataRow; + } + List<ComponentOrderByForExport> orderedColumns = buildInternationalizedColumns(dataRow); + orderedColumns().addAll(orderedColumns); + List<String> columns = buildHeaderNames(orderedColumns); + // Écrire l'en-tête + writer().writeNext(columns.toArray(new String[]{})); + return dataRow; + } + + private List<String> buildHeaderNames(List<ComponentOrderByForExport> orderedColumns) { + return orderedColumns.stream() + .flatMap(columnName -> switch (columnName) { + case ComponentOrderBy componentOrderBy -> + Stream.of(internationalizedSortedColumns.get(componentOrderBy.componentKey())) + .map(Configuration.InternationalizedSortedColumn::componentDescription) + .map(ComponentDescription::importHeader); + case ComponentPatternOrderBy componentPatternOrderBy -> + headerForPatternComponent(componentPatternOrderBy); + case DynamicComponentOrderBy dynamicComponentOrderBy -> + dynamicComponentOrderBy.dynamicColumns().values().stream() + .map(this::internationalizeColumnName); + }) + .toList(); + } + private String internationalizeColumnName(ComponentOrderBy qualifierColumn){ + return getInternationalizedHeader().apply(qualifierColumn.componentKey()); + } + + private Stream<String> headerForPatternComponent(ComponentPatternOrderBy componentPatternOrderBy) { + List<String> internationalizedPatternColumns = new LinkedList<>(); + internationalizedPatternColumns.add(componentPatternOrderBy.qualifierKey()); + componentPatternOrderBy.qualifiersColumns().stream() + .map(this::internationalizeColumnName) + .forEach(internationalizedPatternColumns::add); + return internationalizedPatternColumns.stream(); + } + + private LinkedList<ComponentOrderByForExport> buildInternationalizedColumns(DataRow dataRow) { + return internationalizedSortedColumns().values().stream() + .flatMap(internationalizedSortedColumn -> switch (internationalizedSortedColumn.componentDescription()) { + case DynamicComponent dynamicComponent -> columnsForDynamicComponent(dynamicComponent); + case PatternComponent patternComponent -> + columnsForPatternComponent(internationalizedSortedColumn, patternComponent, dataRow); + default -> columnsForDefaultComponent(internationalizedSortedColumn); + }) + .sorted(comparator()) + .collect(Collectors.toCollection(LinkedList::new)); + } + + private Stream<ComponentOrderBy> columnsForDefaultComponent(Configuration.InternationalizedSortedColumn internationalizedSortedColumn) { + return Stream.of(new ComponentOrderBy( + internationalizedSortedColumn.header(), + DataRepository.Order.ASC, + dataDescription().getTypeForComponentKey(internationalizedSortedColumn.componentDescription().componentKey()) + ) + ); + } + + private Stream<ComponentPatternOrderBy> columnsForPatternComponent( + Configuration.InternationalizedSortedColumn internationalizedSortedColumn, + PatternComponent patternComponent, + DataRow dataRow) { + ListType<MapType> fieldType = (ListType<MapType>) dataRow.getValues().get(patternComponent.componentKey()); + return fieldType.getValue().stream() + .map(MapType.class::cast) + .map(MapType::getValue) + .map(map -> map.get(Column.__ORIGINAL_COLUMN_NAME__)) + .map(Object::toString) + .map(columnName -> { + List<ComponentOrderBy> qualifierColumns = new LinkedList<>(); + patternComponent.patternComponentAdjacents().entrySet() + .stream() + .forEach(qualifiersEntry -> qualifierColumns.add( + new ComponentOrderBy( + qualifiersEntry.getValue().exportHeaderName(), + DataRepository.Order.ASC, + dataDescription().getTypeForPatternComponentKeyAndComponentKey(patternComponent.componentKey(), qualifiersEntry.getValue().componentKey()) + ) + )); + return new ComponentPatternOrderBy( + patternComponent.componentKey(), + columnName, + DataRepository.Order.ASC, + dataDescription().getTypeForComponentKey(internationalizedSortedColumn.componentDescription().componentKey()), + qualifierColumns.stream().sorted(comparator()).toList() + ); + }); + } + + private Stream<DynamicComponentOrderBy> columnsForDynamicComponent(DynamicComponent dynamicComponent) { + String componentKey = dynamicComponent.componentKey(); + String referenceName = dynamicComponent.reference(); + String referenceColumnToLookForHeader = dynamicComponent.referenceColumnToLookForHeader(); + ComponentType typeForComponentKey = dataDescription().getTypeForComponentKey(componentKey); + Map<String, ComponentOrderBy> dynamicColumns = dataRepositoryWithBuffer().repository().findAllByReferenceTypeStream(referenceName) + .sorted((dataValue1, dataValue2)->((DataValue) dataValue1).getNaturalKey().getSql().compareTo(((DataValue) dataValue2).getNaturalKey().getSql())) + .collect(Collectors.toMap( + dataValue -> ((DataValue) dataValue).getNaturalKey().getSql(), + dataValue -> new ComponentOrderBy( + ( + (DataColumnValue) ((DataValue) dataValue) + .getRefValues() + .get(new DataColumn(referenceColumnToLookForHeader)) + ) + .getValuesToCheck().toString(), + DataRepository.Order.ASC, + typeForComponentKey + ), + (v1, v2) -> v1, + LinkedHashMap::new + )); + return Stream.of(new DynamicComponentOrderBy( + componentKey, + dynamicColumns + )); + } +} diff --git a/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvRowBuilder.java b/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvRowBuilder.java new file mode 100644 index 000000000..ab082c9e3 --- /dev/null +++ b/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvRowBuilder.java @@ -0,0 +1,44 @@ +package fr.inra.oresing.rest.data.extraction; + +import com.opencsv.CSVWriter; +import fr.inra.oresing.domain.application.configuration.Configuration; +import fr.inra.oresing.domain.application.configuration.DynamicComponent; +import fr.inra.oresing.domain.application.configuration.PatternComponent; +import fr.inra.oresing.domain.application.configuration.StandardDataDescription; +import fr.inra.oresing.domain.checker.type.FieldType; +import fr.inra.oresing.domain.checker.type.ListType; +import fr.inra.oresing.domain.checker.type.MapType; +import fr.inra.oresing.domain.data.DataColumn; +import fr.inra.oresing.domain.data.DataColumnValue; +import fr.inra.oresing.domain.data.DataValue; +import fr.inra.oresing.domain.data.deposit.context.column.Column; +import fr.inra.oresing.domain.data.read.query.*; +import fr.inra.oresing.persistence.DataRepository; +import fr.inra.oresing.persistence.DataRow; +import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public record DataCsvRowBuilder(String language, DataRepositoryWithBuffer dataRepositoryWithBuffer, StandardDataDescription dataDescription) { + public List<String> getCsvRow(Map<String, FieldType> dataRowValues, + List<ComponentOrderByForExport> columns) { + try { + Function<ComponentOrderByForExport, Stream<String>> toValue = componentOrderBy -> componentOrderBy.toValue(language(), dataRepositoryWithBuffer(), dataRowValues, dataDescription()); + List<String> rowAsRecord = columns + .stream() + .flatMap(toValue) + .toList(); + + return rowAsRecord; + } catch (Exception e) { + throw e; + } + } +} diff --git a/src/main/java/fr/inra/oresing/rest/model/data/DataRowResult.java b/src/main/java/fr/inra/oresing/rest/model/data/DataRowResult.java index 07b2a0c7a..fe7ca36b1 100644 --- a/src/main/java/fr/inra/oresing/rest/model/data/DataRowResult.java +++ b/src/main/java/fr/inra/oresing/rest/model/data/DataRowResult.java @@ -11,7 +11,7 @@ import java.util.*; import java.util.stream.Collectors; -public record DataRowResult(String rowId, String naturalKey, String hierarchicalKey, Map<String, Object> values, +public record DataRowResult(List<String> rowId, String naturalKey, String hierarchicalKey, Map<String, Object> values, Map<String, Map<String, RefsLinkedToValue>> refsLinkedTo, Long totalRows, Long rowNumber, Map<Object, Object> displaysForRow) { @@ -20,30 +20,30 @@ public record DataRowResult(String rowId, String naturalKey, String hierarchical public static DataRowResult of (DataRow dataRow, String locale, DataRepositoryWithBuffer dataRepositoryWithBuffer){ final Map<String, Object> rows = new HashMap<>(); for (final Map.Entry<String, FieldType> componentEntry : dataRow.getValues().entrySet()) { - final String component = componentEntry.getKey(); - rows - .put(component, Optional.ofNullable(componentEntry) - .map(Map.Entry::getValue) - .map(FieldType::toJsonForFrontend) - .orElse(NullType.INSTANCE)); - } + final String component = componentEntry.getKey(); + rows + .put(component, Optional.ofNullable(componentEntry) + .map(Map.Entry::getValue) + .map(FieldType::toJsonForFrontend) + .orElse(NullType.INSTANCE)); + } Map<Object, Object> displaysForRow = dataRow.getRefsLinkedTo().entrySet() - .stream() - .map(referenceEntry -> { - String referenceName = referenceEntry.getKey(); - Map<Object, Object> naturalKeysDisplay = referenceEntry.getValue().values().stream() - .map(RefsLinkedToValue::hierarchicalKey) - .map(hierarchicalKey -> hierarchicalKey.getSql().replaceAll(".*[a-z]K", "")) - .map(naturalKey -> { - String fr = dataRepositoryWithBuffer.findDisplayByReferenceTypeAndNaturalKeyAndLocale(referenceName, naturalKey, locale); - fr = fr != null ? fr : dataRepositoryWithBuffer.findDisplayByReferenceTypeAndNaturalKeyAndLocale(referenceName, naturalKey, DEFAULT); - fr = fr != null ? fr : naturalKey; - return new DefaultMapEntry(naturalKey, fr); - }) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (existing, replacement) -> existing)); - return new DefaultMapEntry(referenceName, naturalKeysDisplay); - }) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (existing, replacement) -> existing)); + .stream() + .map(referenceEntry -> { + String referenceName = referenceEntry.getKey(); + Map<Object, Object> naturalKeysDisplay = referenceEntry.getValue().values().stream() + .map(RefsLinkedToValue::hierarchicalKey) + .map(hierarchicalKey -> hierarchicalKey.getSql().replaceAll(".*[a-z]K", "")) + .map(naturalKey -> { + String fr = dataRepositoryWithBuffer.findDisplayByReferenceTypeAndNaturalKeyAndLocale(referenceName, naturalKey, locale); + fr = fr != null ? fr : dataRepositoryWithBuffer.findDisplayByReferenceTypeAndNaturalKeyAndLocale(referenceName, naturalKey, DEFAULT); + fr = fr != null ? fr : naturalKey; + return new DefaultMapEntry(naturalKey, fr); + }) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (existing, replacement) -> existing)); + return new DefaultMapEntry(referenceName, naturalKeysDisplay); + }) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (existing, replacement) -> existing)); return new DataRowResult(dataRow.getRowId(), dataRow.getNaturalKey().getSql(), dataRow.getHierarchicalKey().getSql(), rows, dataRow.getRefsLinkedTo(), dataRow.getTotalRows(), dataRow.getRowNumber(), displaysForRow); } } diff --git a/src/main/java/fr/inra/oresing/rest/model/data/query/DownloadDatasetQuery.java b/src/main/java/fr/inra/oresing/rest/model/data/query/DownloadDatasetQuery.java index 8e9d0973e..34d1c8b57 100644 --- a/src/main/java/fr/inra/oresing/rest/model/data/query/DownloadDatasetQuery.java +++ b/src/main/java/fr/inra/oresing/rest/model/data/query/DownloadDatasetQuery.java @@ -121,32 +121,6 @@ public class DownloadDatasetQuery { .collect(Collectors.toSet()) ); } - /*if (CollectionUtils.isNotEmpty(downloadDatasetQuery.authorizationDescriptions)) { - return new DownloadDatasetQuerySimpleSearch( - downloadDatasetQuery.getApplication(), - downloadDatasetQuery.dataType, - new OutPut( - Optional.ofNullable(downloadDatasetQuery.getLocale()) - .map(Locale::of) - .orElse(Locale.FRENCH), - downloadDatasetQuery.getOffset(), - downloadDatasetQuery.getLimit() - ), - downloadDatasetQuery.componentSelects, - - Optional.ofNullable(downloadDatasetQuery.componentOrderBy) - .map(componentOrderBy -> componentOrderBy.stream() - .map(componentOrderBy1 -> ComponentOrderBy.build( - componentOrderBy1, - downloadDatasetQuery.getApplication().findData(downloadDatasetQuery.getDataType()).orElse(null) - )) - .collect(Collectors.toSet()) - ).orElse(null), - downloadDatasetQuery.authorizationDescriptions.stream() - .map(AuthorizationDescription::build) - .collect(Collectors.toSet()) - ); - }*/ if (CollectionUtils.isNotEmpty(downloadDatasetQuery.componentFilters)) { return new DownloadDatasetQueryAdvancedSearch( downloadDatasetQuery.getApplication(), diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3b654c86f..83cb084ad 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -27,6 +27,10 @@ filesender.baseurl=${FILE_SENDER_BASE_URL} filesender.username=${FILE_SENDER_USER_NAME} filesender.apikey=${FILE_SENDER_API_KEY} +management.endpoint.health.enabled = ${MANAGEMENT_ENDPOINT_HEALTH_ENABLED} +management.endpoints.web.exposure.include= ${MANAGEMENT_ENDPOINT_WEB_EXPOSURE_INCLUDE}health + + spring.flyway.locations=classpath:migration/main spring.flyway.enabled=true spring.flyway.baseline-on-migrate=true diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index 798b6963c..b2cad88ef 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -377,7 +377,7 @@ public class OreSiResourcesTest { .cookie(monsoreCookie)) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) - .andExpect(jsonPath("$.totalRows", is(9))) + //.andExpect(jsonPath("$.totalRows", is(9))) .andReturn().getResponse().getContentAsString(); mockMvc.perform( @@ -392,20 +392,20 @@ public class OreSiResourcesTest { .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_OCTET_STREAM)) .andExpect(result -> { final List<String> expected = """ - "zet_chemin_parent";"zet_nom_key";"tze_type_nom";"zet_description_en";"zet_description_fr";"zet_nom_en";"zet_nom_fr" - "";"nivelle";"bassin_versant";"Watershed Nivelle";"Bassin versant de Nivelle";"Nivelle";"Nivelle" - "";"oir";"bassin_versant";"Oir catchment";"Bassin versant d'Oir";"Oir";"Oir" - "";"scarff";"bassin_versant";"Watershed Scarff";"Bassin versant de Scarff";"Scarff";"Scarff" - "nivelle";"p1";"plateforme";"";"";"P1";"P1" - "oir";"p1";"plateforme";"";"";"P1";"P1" - "oir__p1";"a";"plateforme";"";"";"A";"A" - "oir__p1";"b";"plateforme";"";"";"B";"B" - "oir";"p2";"plateforme";"";"";"P2";"P2" - "scarff";"p1";"plateforme";"";"";"P1";"P1\"""" + "tze_type_nom";"zet_chemin_parent";"zet_description_en";"zet_description_fr";"zet_nom_en";"zet_nom_fr";"zet_nom_key" + "bassin_versant";"";"Watershed Nivelle";"Bassin versant de Nivelle";"Nivelle";"Nivelle";"nivelle" + "plateforme";"nivelle";"";"";"P1";"P1";"p1" + "bassin_versant";"";"Oir catchment";"Bassin versant d'Oir";"Oir";"Oir";"oir" + "plateforme";"oir";"";"";"P1";"P1";"p1" + "plateforme";"oir__p1";"";"";"A";"A";"a" + "plateforme";"oir__p1";"";"";"B";"B";"b" + "plateforme";"oir";"";"";"P2";"P2";"p2" + "bassin_versant";"";"Watershed Scarff";"Bassin versant de Scarff";"Scarff";"Scarff";"scarff" + "plateforme";"scarff";"";"";"P1";"P1";"p1\"""" .lines().collect(Collectors.toCollection(LinkedList::new)); final List<String> actual = new String(result.getResponse().getContentAsByteArray()) .lines().collect(Collectors.toCollection(LinkedList::new)); - Assertions.assertEquals(expected, actual, "Bas site.csv "); + Assertions.assertEquals(expected, actual, "Bad site.csv "); }); } resource = getClass().getResource(Fixtures.getPemDataResourceName()); @@ -1186,7 +1186,7 @@ public class OreSiResourcesTest { System.out.println(hierarchicalKeys); CollectionUtils.isEqualCollection(hierarchicalKeys, List.of("type_de_sitesKbassin_versant", "type_de_sitesKplateforme")); - read1 = JsonPath.parse(contentAsString).read("$.rows[*].rowId", String[].class); + read1 = JsonPath.parse(contentAsString).read("$.rows[*].rowId[*]", String[].class); ids.addAll(Arrays.asList(read1)); Assertions.assertEquals(2, read1.length); }); @@ -1212,7 +1212,7 @@ public class OreSiResourcesTest { mockMvc.perform(get("/api/v1/applications/monsore/data/{dataName}/json", "type_de_sites") .param("downloadDatasetQuery", SELECT_ROW_BY_ID.formatted(ids.get(1))) .cookie(withRigthsCookie)) - .andExpect(jsonPath("$.rows[0].rowId", equalTo(ids.get(1)))); + .andExpect(jsonPath("$.rows[0].rowId[0]", equalTo(ids.get(1)))); mockMvc.perform(get("/api/v1/applications/monsore/data/{dataName}/json", "type_de_sites") .param("downloadDatasetQuery", SELECT_ROW_BY_NATURAL_KEY.formatted(hierarchicalKeys.get(1))) @@ -1607,7 +1607,7 @@ public class OreSiResourcesTest { response = mockMvc.perform(get("/api/v1/applications/monsore/data/pem/json") .cookie(authCookie)) .andExpect(status().is2xxSuccessful()) - .andExpect(jsonPath("$.totalRows").value(34)) + //.andExpect(jsonPath("$.totalRows").value(34)) .andExpect(jsonPath("$.rows[*]", hasSize(34))) .andExpect(jsonPath("$.rows[*].values[? (@.chemin == 'oir__p1' && @.projet == 'projet_manche')]", hasSize(34))) .andReturn().getResponse().getContentAsString(); @@ -1699,7 +1699,7 @@ public class OreSiResourcesTest { //TODO Vérifier si la présence de scarff est normale .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='scarff__p1' && @.projet == 'projet_manche')].chemin", hasSize(34))) .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='oir__p1')].chemin", hasSize(0))) - .andExpect(jsonPath("$.totalRows").value(136)) + .andExpect(jsonPath("$.rows.length()").value(136)) .andExpect(jsonPath("$.rows[*]", hasSize(136))) .andReturn().getResponse().getContentAsString(); @@ -1710,32 +1710,9 @@ public class OreSiResourcesTest { .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='nivelle__p1' && @.projet == 'projet_manche')].chemin", hasSize(34))) .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='scarff__p1' && @.projet == 'projet_manche')].chemin", hasSize(34))) .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='oir__p1')].chemin", hasSize(0))) - .andExpect(jsonPath("$.totalRows").value(136)) + .andExpect(jsonPath("$.rows.length()").value(136)) .andExpect(jsonPath("$.rows[*]", hasSize(136))) .andReturn().getResponse().getContentAsString(); - final String filter = """ - { - "limit": 15, - "authorizationDescriptions": [ - { - "timeScope" : { - "from": "1984-01-01", - "to": "1984-01-02" - }, - "requiredAuthorizations": { - "sites": "type_de_sitesKplateforme.sitesKscarff" - } - } - ] - }"""; - - mockMvc.perform(get("/api/v1/applications/monsore/data/pem/json") - .param("downloadDatasetQuery", filter) - .cookie(authCookie)) - .andExpect(status().is2xxSuccessful()) - .andExpect(jsonPath("$.rows.length()", is(15))) - .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='scarff__p1' && @.projet == 'projet_manche')]", hasSize(15))) - .andExpect(jsonPath("$.rows[*].values[?(@.date=='date:1984-01-01T00:00:00:dd/MM/yyyy' && @.projet == 'projet_manche')]", hasSize(7))); response = mockMvc.perform(get("/api/v1/applications/monsore/data/pem/json") .cookie(authCookie)) @@ -1744,7 +1721,7 @@ public class OreSiResourcesTest { .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='scarff__p1')].chemin", hasSize(68))) .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='nivelle__p1')].chemin", hasSize(68))) .andExpect(jsonPath("$.rows[*].values[?(@.chemin=='oir__p1')].chemin", hasSize(0))) - .andExpect(jsonPath("$.totalRows").value(136)) + .andExpect(jsonPath("$.rows.length()").value(136)) .andExpect(jsonPath("$.rows[*]", hasSize(136))) .andExpect(jsonPath("$.rows[*].values[? (@.site.chemin == 'oir__p1')][? (@.projet.value == 'projet_manche')]", hasSize(0))) .andReturn().getResponse().getContentAsString(); @@ -2449,16 +2426,30 @@ public class OreSiResourcesTest { mockMvc.perform(get("/api/v1/applications/pattern/data/{refType}/json", "taxon") .cookie(authCookie)) .andExpect(status().is2xxSuccessful()) - .andExpect(jsonPath("$..values.tel_S2_value.__VALUE__", containsInAnyOrder("7.2", "3.4", "2.1", "2.6", "2.5", "5.2", "3.9", "3.2", "1.2"))) - .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_resolution", containsInAnyOrder(3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2))) - .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_qualifier", containsInAnyOrder(3, 3, 3, 3, 3, 3, 3, 3, 3))) - .andExpect(jsonPath("$..values.tel_S2_value.tel_S2_variable", containsInAnyOrder("annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy"))) - .andExpect(jsonPath("$..values.tel_S2_value.swc_qc", containsInAnyOrder(1 ,1 ,0 ,2 ,1 ,0 ,0 ,1 ,1))) - .andExpect(jsonPath("$..values.tel_S2_value.swc_sd", containsInAnyOrder(3.9 ,2.5 ,7.2 ,3.2 ,2.1 ,3.4 ,1.2 ,5.2 ,3.9))) - .andExpect(jsonPath("$.rows[*].refsLinkedTo.site['tel_S1_value::tel_S1_variable'].hierarchicalKey.sql", containsInAnyOrder("siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy" ,"siteKannecy"))) - .andExpect(jsonPath("$.referenceTypeForReferencingColumns['tel_S1_value::tel_S1_variable']", Is.is("site"))) + .andExpect(jsonPath("$..values.tel_S2_value[*].__VALUE__", containsInAnyOrder("7.2", "3.4", "2.1", "2.6", "2.5", "5.2", "3.9", "3.2", "1.2"))) + .andExpect(jsonPath("$..values.tel_S2_value[*].tel_S2_resolution", containsInAnyOrder(3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2))) + .andExpect(jsonPath("$..values.tel_S2_value[*].tel_S2_qualifier", containsInAnyOrder(3, 3, 3, 3, 3, 3, 3, 3, 3))) + .andExpect(jsonPath("$..values.tel_S2_value[*].tel_S2_variable", containsInAnyOrder("annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy", "annecy"))) + .andExpect(jsonPath("$..values.tel_S2_value[*].swc_qc", containsInAnyOrder(1 ,1 ,0 ,2 ,1 ,0 ,0 ,1 ,1))) + .andExpect(jsonPath("$..values.tel_S2_value[*].swc_sd", containsInAnyOrder(3.9 ,2.5 ,7.2 ,3.2 ,2.1 ,3.4 ,1.2 ,5.2 ,3.9))) + .andExpect(jsonPath(".rows[*].refsLinkedTo.site['tel_S2_value::tel_S2_variable::annecy_S2_3_3.2'].hierarchicalKey.sql", containsInAnyOrder("siteKannecy", "siteKannecy", "siteKannecy", "siteKannecy", "siteKannecy", "siteKannecy", "siteKannecy", "siteKannecy", "siteKannecy"))) + .andExpect(jsonPath("$.referenceTypeForReferencingColumns['tel_S2_value::tel_S2_variable']", Is.is("site"))) .andReturn().getResponse().getContentAsString(); + } + { + mockMvc.perform(asyncDispatch(mockMvc.perform(get("/api/v1/applications/pattern/data/taxon/zip") + .accept(MediaType.APPLICATION_OCTET_STREAM_VALUE) + .cookie(authCookie)) + .andExpect(status().is2xxSuccessful()) + .andExpect(request().asyncStarted()) + .andReturn() + )) + + + .andExpect(testZip(List.of("taxon.csv", "references/proprietes_taxon.csv", "references/site.csv") + )); + } // Ajout de taxon { diff --git a/src/test/resources/data/pattern/pattern.yaml b/src/test/resources/data/pattern/pattern.yaml index 0a270e583..873c9231a 100644 --- a/src/test/resources/data/pattern/pattern.yaml +++ b/src/test/resources/data/pattern/pattern.yaml @@ -1,6 +1,6 @@ OA_version: 2.0.1 -OA_tags: #optional - data: #optional +OA_tags: #optional + data: #optional fr: données en: data OA_application: @@ -8,10 +8,10 @@ OA_application: OA_i18n: OA_title: fr: Récursivité - en: Recusivity + en: Recursivity OA_description: fr: Récursivité - en: Recusivity + en: Recursivity OA_comment: Fichier de test de l'application pattern OA_name: pattern OA_version: 3.0.1 @@ -24,6 +24,7 @@ OA_data: reference: OA_i18n: fr: les reference + en: the references OA_components: [site] OA_required: false OA_checker: @@ -35,12 +36,14 @@ OA_data: floats: OA_i18n: fr: les décimaux + en: the decimals OA_components: [ isFloatValue ] OA_checker: OA_name: OA_float integer: OA_i18n: fr: les entiers + en: the integers OA_components: [ ordre_affichage ] OA_checker: OA_name: OA_integer @@ -62,29 +65,69 @@ OA_data: OA_basicComponents: date: OA_importHeader: Date + OA_exportHeader: + OA_title: + fr: Date + en: Date OA_required: true OA_checker: OA_name: OA_date OA_params: OA_pattern: dd/MM/yyyy propriete_key: - OA_importHeader: nom de la propriété_key + OA_importHeader: nom de la propriété_key + OA_exportHeader: + OA_title: + fr: nom de la propriété_key + en: property key name propriete_fr: OA_importHeader: nom de la propriété_fr + OA_exportHeader: + OA_title: + fr: nom de la propriété_fr + en: property name (French) propriete_en: OA_importHeader: nom de la propriété_en + OA_exportHeader: + OA_title: + fr: nom de la propriété_en + en: property name (English) definition_fr: OA_importHeader: définition_fr + OA_exportHeader: + OA_title: + fr: définition_fr + en: definition (French) definition_en: OA_importHeader: définition_en + OA_exportHeader: + OA_title: + fr: définition_en + en: definition (English) isFloatValue: OA_importHeader: isFloatValue + OA_exportHeader: + OA_title: + fr: isFloatValue + en: isFloatValue isQualitative: OA_importHeader: isQualitative + OA_exportHeader: + OA_title: + fr: isQualitative + en: isQualitative type_associe: OA_importHeader: type associé + OA_exportHeader: + OA_title: + fr: type associé + en: associated type ordre_affichage: OA_importHeader: ordre d'affichage + OA_exportHeader: + OA_title: + fr: ordre d'affichage + en: display order site: site: OA_i18n: @@ -105,20 +148,52 @@ OA_data: OA_basicComponents: type_site: OA_importHeader: nom du type de site + OA_exportHeader: + OA_title: + fr: nom du type de site + en: site type name site_key: - OA_importHeader: nom du site_key + OA_importHeader: nom du site_key + OA_exportHeader: + OA_title: + fr: nom du site_key + en: site key name site_fr: - OA_importHeader: nom du site_fr + OA_importHeader: nom du site_fr + OA_exportHeader: + OA_title: + fr: nom du site_fr + en: site name (French) site_en: - OA_importHeader: nom du site_en + OA_importHeader: nom du site_en + OA_exportHeader: + OA_title: + fr: nom du site_en + en: site name (English) description_fr: OA_importHeader: description du site_fr + OA_exportHeader: + OA_title: + fr: description du site_fr + en: site description (French) description_en: OA_importHeader: description du site_en + OA_exportHeader: + OA_title: + fr: description du site_en + en: site description (English) sandre_eau: - OA_importHeader: code sandre du Plan d'eau + OA_importHeader: code sandre du Plan d'eau + OA_exportHeader: + OA_title: + fr: code sandre du Plan d'eau + en: Sandre code for Water Body sandre: OA_importHeader: code sandre de la Masse d'eau plan d'eau + OA_exportHeader: + OA_title: + fr: code sandre de la Masse d'eau plan d'eau + en: Sandre code for Water Body Mass taxon: OA_i18n: OA_title: @@ -140,46 +215,124 @@ OA_data: OA_required: true OA_i18n: fr: "nom du taxon déterminé" + en: "determined taxon name" OA_checker: OA_name: OA_string OA_components: [ nom ] OA_basicComponents: nom: OA_importHeader: nom du taxon déterminé + OA_exportHeader: + OA_title: + fr: nom du taxon déterminé + en: determined taxon name + OA_tags: [__ORDER_1__] theme: + OA_tags: [__ORDER_2__] niveau_taxon: OA_importHeader: nom du niveau de taxon + OA_exportHeader: + OA_title: + fr: nom du niveau de taxon + en: taxon level name + OA_tags: [__ORDER_3__] taxon_superieur: OA_importHeader: nom du taxon superieur + OA_exportHeader: + OA_title: + fr: nom du taxon superieur + en: higher taxon name + OA_tags: [__ORDER_4__] sandre_taxon: OA_importHeader: code sandre du taxon + OA_exportHeader: + OA_title: + fr: code sandre du taxon + en: Sandre code for taxon + OA_tags: [__ORDER_5__] sandre_superieur: OA_importHeader: code sandre du taxon supérieur + OA_exportHeader: + OA_title: + fr: code sandre du taxon supérieur + en: Sandre code for higher taxon + OA_tags: [__ORDER_6__] incertitude: OA_importHeader: niveau incertitude de détermination + OA_exportHeader: + OA_title: + fr: niveau incertitude de détermination + en: determination uncertainty level + OA_tags: [__ORDER_7__] auteur: OA_importHeader: Auteur de la description + OA_exportHeader: + OA_title: + fr: Auteur de la description + en: Description author + OA_tags: [__ORDER_8__] annee: OA_importHeader: Année de la description + OA_exportHeader: + OA_title: + fr: Année de la description + en: Description year + OA_tags: [__ORDER_9__] reference_description: OA_importHeader: Référence de la description + OA_exportHeader: + OA_title: + fr: Référence de la description + en: Description reference + OA_tags: [__ORDER_10__] references_taxon: OA_importHeader: Références relatives à ce taxon + OA_exportHeader: + OA_title: + fr: Références relatives à ce taxon + en: References related to this taxon + OA_tags: [__ORDER_11__] synonyme_ancien: OA_importHeader: Synonyme ancien + OA_exportHeader: + OA_title: + fr: Synonyme ancien + en: Old synonym + OA_tags: [__ORDER_12__] synonyme_recent: OA_importHeader: Synonyme récent + OA_exportHeader: + OA_title: + fr: Synonyme récent + en: Recent synonym + OA_tags: [__ORDER_13__] bourrelly: OA_importHeader: Classe algale sensu Bourrelly + OA_exportHeader: + OA_title: + fr: Classe algale sensu Bourrelly + en: Algal class sensu Bourrelly + OA_tags: [__ORDER_14__] sandre: OA_importHeader: Code Sandre + OA_exportHeader: + OA_title: + fr: Code Sandre + en: Sandre Code + OA_tags: [__ORDER_15__] notes: - OA_importHeader: Notes libres + OA_importHeader: Notes libres + OA_exportHeader: + OA_title: + fr: Notes libres + en: Free notes + OA_tags: [__ORDER_16__] OA_dynamicComponents: proprietesDeTaxon: + OA_tags: [__ORDER_17__] OA_exportHeader: OA_title: - fr: Proprétés de Taxons + fr: Propriétés de Taxons en: Properties of Taxa OA_description: fr: Proprétés de Taxons @@ -216,12 +369,12 @@ OA_data: - tel_S1_qualifier: #$2 OA_tags: [__ORDER_2__] OA_exportHeader: - OA_title: - fr: "qualificatif fr" - en: "qualifier en" - OA_description: - fr: "qualificatif fr" - en: "qualifier en" + OA_title: + fr: "qualificatif fr" + en: "qualifier en" + OA_description: + fr: "qualificatif fr" + en: "qualifier en" OA_checker: OA_name: OA_integer - tel_S1_resolution: #$3 @@ -235,45 +388,44 @@ OA_data: en: "resolution en" OA_checker: OA_name: OA_float - - OA_componentAdjacents: #optional - - #optional - swc_sd: #optional - OA_importHeaderPattern: "{$1}_sd" #optional - OA_exportHeader: #mandatory - OA_title: #optional - fr: écart_type - en: standard_deviation - OA_required: false #optional - OA_mandatory: false #optional - OA_tags: #optional - - data #optional - OA_checker: #mandatory - OA_name: OA_float #mandatory - OA_params: #optional - OA_max: 500.0 #optional - OA_min: 0.0 #optional - OA_multiplicity: ONE #optional - - #optional - swc_qc: #optional - OA_importHeaderPattern: "{$1}_qc" #optional - OA_exportHeader: #mandatory - OA_title: #optional - fr: Indic de qualité + OA_componentAdjacents: #optional + - #optional + swc_sd: #optional + OA_importHeaderPattern: "{$1}_sd" #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: écart type + en: standard deviation + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_float #mandatory + OA_params: #optional + OA_max: 500.0 #optional + OA_min: 0.0 #optional + OA_multiplicity: ONE #optional + - #optional + swc_qc: #optional + OA_importHeaderPattern: "{$1}_qc" #optional + OA_exportHeader: #mandatory + OA_title: #optional + fr: Indice de qualité en: Quality class - OA_description: #optional - fr: 0 pour une valeur valide ; 2 pour une valeur incorrecte - en: 0 for valid value; 2 for bad value - OA_required: false #optional - OA_mandatory: false #optional - OA_tags: #optional - - data #optional - OA_checker: #mandatory - OA_name: OA_integer #mandatory - OA_params: #optional - OA_max: 2 #optional - OA_min: 0 #optional - OA_multiplicity: ONE #optional + OA_description: #optional + fr: 0 pour une valeur valide ; 2 pour une valeur incorrecte + en: 0 for valid value; 2 for invalid value + OA_required: false #optional + OA_mandatory: false #optional + OA_tags: #optional + - data #optional + OA_checker: #mandatory + OA_name: OA_integer #mandatory + OA_params: #optional + OA_max: 2 #optional + OA_min: 0 #optional + OA_multiplicity: ONE #optional tel_S2_value: OA_patternForComponents: "(.*)_S2_(.*)_(.*)" OA_required: false @@ -328,8 +480,8 @@ OA_data: OA_importHeaderPattern: "sd" #optional OA_exportHeader: #mandatory OA_title: #optional - fr: écart_type - en: standard_deviation + fr: écart type + en: standard deviation OA_required: false #optional OA_mandatory: false #optional OA_tags: #optional @@ -345,7 +497,7 @@ OA_data: OA_importHeaderPattern: "qc" #optional OA_exportHeader: #mandatory OA_title: #optional - fr: Indic de qualité + fr: Indice de qualité en: Quality class OA_description: #optional fr: 0 pour une valeur valide ; 2 pour une valeur incorrecte @@ -392,7 +544,7 @@ OA_data: OA_checker: OA_name: OA_reference OA_params: - OA_reference: + OA_reference: OA_name: site sitePlateforme: OA_importHeader: Plateforme du site diff --git a/src/test/resources/data/pattern/taxons_du_phytoplancton-reduit-pour-pattern.csv b/src/test/resources/data/pattern/taxons_du_phytoplancton-reduit-pour-pattern.csv index af0c68343..e29fc6021 100644 --- a/src/test/resources/data/pattern/taxons_du_phytoplancton-reduit-pour-pattern.csv +++ b/src/test/resources/data/pattern/taxons_du_phytoplancton-reduit-pour-pattern.csv @@ -1,10 +1,10 @@ -nom du taxon déterminé;theme;nom du niveau de taxon;nom du taxon superieur;code sandre du taxon;code sandre du taxon supérieur;annecy_S1_4_5.6;annecy_sd;annecy_qc;annecy_S1_2_1.5;annecy_sd;annecy_qc;annecy_S2_3_3.2;sd;qc;pt_niveau incertitude de détermination;pt_Auteur de la description;pt_Année de la description;pt_Référence de la description;pt_Références relatives à ce taxon;pt_Synonyme ancien;pt_Synonyme récent;pt_Classe algale sensu Bourrelly;pt_Code Sandre;pt_Code taxa Cemagref;pt_Code INRA;pt_code INRA lettres;pt_Rebecca name;pt_Code Rebecca;pt_Code Omnidia;pt_Unité de comptage du taxon;pt_Erreur sur le biovolume;pt_valeur du biovolume spécifique choisi pour le taxon;pt_Longueur de la cellule;pt_Largeur de la cellule;pt_Epaisseur de la cellule;pt_Forme géométrique de la cellule;pt_Facteur à multiplier à la forme géométrique pour avoir le biovolume de la cellule;pt_Facteur à diviser à la forme géométrique pour avoir la surface de la cellule;pt_Surface de la cellule;pt_Biovolume de la cellule;pt_Nombre de cellule par colonie;pt_Surface cumulée des cellules;pt_biovolume cumulé des cellules;pt_Longueur de la colonie (prends en compte la gelée);pt_Largeur de la colonie (prends en compte la gelée);pt_Epaisseur de la colonie (prends en compte la gelée);pt_Forme géométrique de la colonie;pt_Facteur à multiplier à la forme géométrique pour avoir le biovolume de la colonie (sans prendre en compte la gelée);pt_Facteur à diviser à la forme géométrique pour avoir la surface de la colonie (en prenant en compte la gelée);pt_Surface de la colonie;pt_Biovolume de la colonie;pt_Notes sur les biovolumes;pt_Notes libres;Code Sandre;Synonyme ancien;Synonyme récent;Année de la description;Auteur de la description;Classe algale sensu Bourrelly;Référence de la description;Références relatives à ce taxon;niveau incertitude de détermination;Notes libres -Chroomonas cf coerulea;Phytoplancton;Genre espèce;Chroomonadaceae;;;5.2;3.9;1;3.4;2.6;1;2.1;3.9;1;espèce;;;;;;;Cryptophycées;;;30320.0;;;;;cellule;ok;109.9;7.0;6.0;5.0;trel;1.0;1.0;386.61;109.9;1.0;386.61;109.9;;;;;;;;;JCD;;;;;;;;;;; -Chroomonas sp.;Phytoplancton;Genre espèce;Chroomonadaceae;;;3.9;2.5;1;1.2;3.4;0;2.6;2.5;1;espèce;;;;Kugrens; P. & Clay; B.L. (2002). Cryptomonads. In: Freshwater Algae of North America. ( Eds); pp. 715-755. San Diego: Academic Press.;;;Cryptophycées;;CHMSPX;30310.0;CHM.SPX;Chroomonas;R1375;;cellule;ok;796.4;13.0;13.0;9.0;ell;1.0;1.0;1422.3;795.99;1.0;1422.3;795.99;;;;;;;;;;;;;;;;; -Chroomonadaceae;Phytoplancton;Famille;Pyrenomonadales;;;2.5;7.2;0;5.2;1.2;0;3.4;7.2;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Pyrenomonadales;Phytoplancton;Ordre;Cryptophyceae;;;7.2;3.2;2;3.9;2.5;0;1.2;3.2;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Cryptophyceae;Phytoplancton;Classe;Cryptophyta;;;3.2;2.1;1;2.5;3.9;1;5.2;2.1;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Cryptophyta;Phytoplancton;Embranchement;Cryptista;;;2.1;2.6;1;7.2;2.5;1;3.9;3.4;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Cryptista;Phytoplancton;Règne;Chromista;;;2.6;3.4;0;3.2;7.2;0;2.5;1.2;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Chromista;Phytoplancton;Règne;Eukaryota;;;3.4;1.2;0;2.1;3.2;2;7.2;5.2;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Eukaryota;Phytoplancton;Domaine;;;;1.2;2.5;0;2.6;2.1;1;3.2;3.9;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +nom du taxon déterminé;theme;nom du niveau de taxon;nom du taxon superieur;code sandre du taxon;code sandre du taxon supérieur;annecy_S1_4_5.6;annecy_sd;annecy_qc;aiguebelette_S1_4_5.6;aiguebelette_sd;aiguebelette_qc;annecy_S1_2_1.5;annecy_sd;annecy_qc;annecy_S2_3_3.2;sd;qc;pt_niveau incertitude de détermination;pt_Auteur de la description;pt_Année de la description;pt_Référence de la description;pt_Références relatives à ce taxon;pt_Synonyme ancien;pt_Synonyme récent;pt_Classe algale sensu Bourrelly;pt_Code Sandre;pt_Code taxa Cemagref;pt_Code INRA;pt_code INRA lettres;pt_Rebecca name;pt_Code Rebecca;pt_Code Omnidia;pt_Unité de comptage du taxon;pt_Erreur sur le biovolume;pt_valeur du biovolume spécifique choisi pour le taxon;pt_Longueur de la cellule;pt_Largeur de la cellule;pt_Epaisseur de la cellule;pt_Forme géométrique de la cellule;pt_Facteur à multiplier à la forme géométrique pour avoir le biovolume de la cellule;pt_Facteur à diviser à la forme géométrique pour avoir la surface de la cellule;pt_Surface de la cellule;pt_Biovolume de la cellule;pt_Nombre de cellule par colonie;pt_Surface cumulée des cellules;pt_biovolume cumulé des cellules;pt_Longueur de la colonie (prends en compte la gelée);pt_Largeur de la colonie (prends en compte la gelée);pt_Epaisseur de la colonie (prends en compte la gelée);pt_Forme géométrique de la colonie;pt_Facteur à multiplier à la forme géométrique pour avoir le biovolume de la colonie (sans prendre en compte la gelée);pt_Facteur à diviser à la forme géométrique pour avoir la surface de la colonie (en prenant en compte la gelée);pt_Surface de la colonie;pt_Biovolume de la colonie;pt_Notes sur les biovolumes;pt_Notes libres;Code Sandre;Synonyme ancien;Synonyme récent;Année de la description;Auteur de la description;Classe algale sensu Bourrelly;Référence de la description;Références relatives à ce taxon;niveau incertitude de détermination;Notes libres +Chroomonas cf coerulea;Phytoplancton;Genre espèce;Chroomonadaceae;;;5.2;3.9;1;2.1;2.6;1;3.4;2.6;1;2.1;3.9;1;espèce;;;;;;;Cryptophycées;;;30320.0;;;;;cellule;ok;109.9;7.0;6.0;5.0;trel;1.0;1.0;386.61;109.9;1.0;386.61;109.9;;;;;;;;;JCD;;;;;;;;;;; +Chroomonas sp.;Phytoplancton;Genre espèce;Chroomonadaceae;;;3.9;2.5;1;2.6;3.4;0;1.2;3.4;0;2.6;2.5;1;espèce;;;;Kugrens; P. & Clay; B.L. (2002). Cryptomonads. In: Freshwater Algae of North America. ( Eds); pp. 715-755. San Diego: Academic Press.;;;Cryptophycées;;CHMSPX;30310.0;CHM.SPX;Chroomonas;R1375;;cellule;ok;796.4;13.0;13.0;9.0;ell;1.0;1.0;1422.3;795.99;1.0;1422.3;795.99;;;;;;;;;;;;;;;;; +Chroomonadaceae;Phytoplancton;Famille;Pyrenomonadales;;;2.5;7.2;0;3.4;1.2;0;5.2;1.2;0;3.4;7.2;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Pyrenomonadales;Phytoplancton;Ordre;Cryptophyceae;;;7.2;3.2;2;1.2;2.5;0;3.9;2.5;0;1.2;3.2;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Cryptophyceae;Phytoplancton;Classe;Cryptophyta;;;3.2;2.1;1;3.2;2.1;1;2.5;3.9;1;5.2;2.1;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Cryptophyta;Phytoplancton;Embranchement;Cryptista;;;2.1;2.6;1;3.4;2.6;1;7.2;2.5;1;3.9;3.4;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Cryptista;Phytoplancton;Règne;Chromista;;;2.6;3.4;0;1.2;3.4;0;3.2;7.2;0;2.5;1.2;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Chromista;Phytoplancton;Règne;Eukaryota;;;3.4;1.2;0;5.2;1.2;0;2.1;3.2;2;7.2;5.2;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Eukaryota;Phytoplancton;Domaine;;;;1.2;2.5;0;3.9;2.5;0;2.6;2.1;1;3.2;3.9;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index 2c519d659..54bd19b46 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2024-11-04T13:39:08.887345717","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2024-11-04T13:40:32.155851118","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2024-11-04T13:39:43.033780017","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2024-11-04T13:38:56.874889503","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2024-11-04T13:38:58.893998373","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:38:48.42768023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:38:48.428626997","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-11-04T13:40:15.854527582","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-11-04T13:40:40.16438621","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:38:54.876008552","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:38:54.876842326","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"componentReference":"proj","submissionReference":"projet","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2024-11-04T13:41:02.900950674","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:41:10.93687479","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:39:55.433513947","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_version","OA_application","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2024-11-04T13:39:47.003635795","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2024-11-04T13:39:04.90503551","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:46.458378268","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2024-11-04T13:40:44.292359728","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-04T13:39:51.048409591","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2024-11-04T13:38:50.596339995","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2024-11-04T13:40:03.701972242","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2024-11-04T13:39:41.035193532","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2024-11-04T13:39:27.081518145","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-04T13:40:05.758733196","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-04T13:41:12.987092698","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2024-11-04T13:39:29.101830761","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2024-11-04T13:39:01.011937237","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-04T13:39:45.030095793","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-04T13:39:45.031033476","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-04T13:39:45.031296341","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.671039646","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.671424897","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-04T13:40:56.671503147","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.6716448","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-04T13:40:56.671688901","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.672002773","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-04T13:40:56.67203038","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-04T13:40:56.672348449","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2024-11-04T13:39:39.026989173","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2024-11-04T13:39:35.022880736","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2024-11-04T13:39:35.023068274","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-11-04T13:40:01.642213655","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeaderInPatternComponent","params":{"duplicatedPathes":["OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date","qualifierName":"tel_date","data":"pem","patternComponent":"tel_value"}},"time":"2024-11-04T13:40:19.934647092","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-04T13:39:57.520592738","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-11-04T13:39:14.948237393","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:27.994208246","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-11-04T13:39:22.985619501","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-11-04T13:39:10.890966679","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-04T13:40:30.103658216","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2024-11-04T13:39:25.072426458","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2024-11-04T13:39:02.928399164","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2024-11-04T13:41:06.865515205","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2024-11-04T13:41:06.866387653","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2024-11-04T13:41:06.866618001","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:52.740255762","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2024-11-04T13:39:18.960498188","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-04T13:40:58.687336707","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-04T13:40:38.206152038","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.206244936","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.20678367","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.207058873","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.207284842","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.207657842","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:38.20780627","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:23.949072755","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2024-11-04T13:40:25.939582544","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2024-11-04T13:39:33.029539642","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2024-11-04T13:39:16.917571387","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2024-11-04T13:40:42.234795173","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2024-11-04T13:40:21.906215861","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:39:53.185135587","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:38:52.790235001","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:11.826114529","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-11-04T13:39:31.087523873","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2024-11-04T13:39:06.913589623","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-04T13:40:17.902959447","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2024-11-04T13:39:37.124017341","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2024-11-04T13:39:49.020326136","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedImportHeader":["zet_nom_key","zet_chemin_parent"],"path":"OA_data > sites","duplicatedHeader":"zet_chemin_parent","data":"sites"}},"time":"2024-11-04T13:40:34.166329916","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","bs","xog","sd","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","agq","hr","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-04T13:40:36.201046308","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-11-04T13:40:50.629932392","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2024-11-04T13:40:48.652332886","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2024-11-04T13:40:13.869703287","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2024-11-04T13:41:00.832353086","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2024-11-04T13:41:08.8714711","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-11-04T13:40:09.861415762","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-04T13:40:07.821603809","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-11-04T13:39:59.551286082","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-04T13:41:04.871890714","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-04T13:40:54.719290436","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-04T13:40:54.719548158","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:54.71979529","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-04T13:40:54.720374868","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2024-11-04T13:40:54.721191465","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:54.72145951","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-11-04T13:40:54.721682661","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2024-11-04T13:40:54.722203673","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2024-11-04T13:40:54.722319328","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-04T13:40:54.722553135","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-04T13:40:54.723092216","type":"REACTIVE_ERROR"}]} \ No newline at end of file +{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2024-11-06T18:08:33.637142519","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2024-11-06T18:09:57.654958224","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2024-11-06T18:09:08.474914848","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2024-11-06T18:08:21.616721925","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2024-11-06T18:08:23.626591397","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-06T18:08:13.233566978","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-06T18:08:13.234450781","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-11-06T18:09:41.486914289","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2024-11-06T18:10:05.710623859","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-06T18:08:19.619355763","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-06T18:08:19.619911904","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"submissionReference":"projet","componentReference":"proj","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2024-11-06T18:10:28.509553611","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:10:36.689199388","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:09:20.766765997","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_version","OA_application","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2024-11-06T18:09:12.523354644","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2024-11-06T18:08:29.645336794","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:10:11.937499927","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2024-11-06T18:10:09.836508166","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-06T18:09:16.542313859","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2024-11-06T18:08:15.360190474","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2024-11-06T18:09:29.061807617","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2024-11-06T18:09:06.372271557","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2024-11-06T18:08:51.971492243","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-06T18:09:31.165641023","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-06T18:10:38.811097455","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2024-11-06T18:08:54.080026638","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2024-11-06T18:08:25.647601272","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-06T18:09:10.457457162","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-06T18:09:10.458332964","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-06T18:09:10.458605113","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-06T18:10:22.311555244","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-06T18:10:22.312117544","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-06T18:10:22.312274589","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-06T18:10:22.312480447","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-06T18:10:22.312533246","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-06T18:10:22.312805011","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2024-11-06T18:10:22.312861927","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2024-11-06T18:10:22.313201946","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2024-11-06T18:09:04.328876792","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2024-11-06T18:09:00.288494887","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2024-11-06T18:09:00.288638165","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-11-06T18:09:26.916425435","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeaderInPatternComponent","params":{"duplicatedPathes":["OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date","qualifierName":"tel_date","data":"pem","patternComponent":"tel_value"}},"time":"2024-11-06T18:09:45.558564141","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-06T18:09:22.940953046","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-11-06T18:08:40.017067911","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:09:53.587984685","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2024-11-06T18:08:47.967973344","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2024-11-06T18:08:35.671862869","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2024-11-06T18:09:55.610511271","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2024-11-06T18:08:49.977109577","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2024-11-06T18:08:27.659802229","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2024-11-06T18:10:32.6076094","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2024-11-06T18:10:32.608562591","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2024-11-06T18:10:32.60883743","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:10:18.241242125","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2024-11-06T18:08:43.9989769","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2024-11-06T18:10:24.407377754","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-06T18:10:03.755344362","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:03.75546077","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:03.756146704","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:03.756407923","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:03.756645896","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:03.757095258","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:03.757222462","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:09:49.618337594","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2024-11-06T18:09:51.578037277","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2024-11-06T18:08:58.211893096","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2024-11-06T18:08:42.009375819","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2024-11-06T18:10:07.818402205","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2024-11-06T18:09:47.542557439","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:09:18.655598103","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:08:17.439105716","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:09:37.190254234","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2024-11-06T18:08:56.129989028","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2024-11-06T18:08:31.615327036","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__DATA__","__ORDER_([0-9]*)__"]}},"time":"2024-11-06T18:09:43.597043612","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2024-11-06T18:09:02.334621185","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2024-11-06T18:09:14.556118274","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedImportHeader":["zet_nom_key","zet_chemin_parent"],"path":"OA_data > sites","duplicatedHeader":"zet_chemin_parent","data":"sites"}},"time":"2024-11-06T18:09:59.685972071","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","be","ru","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","sd","xog","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","su","ce","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","dyo","to","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","bez","uk","ur","dje","haw","ee","uz","tzm","el","en","nnh","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","jgo","fy","lkt","wo","zgh","ga","wae","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","agq","hr","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","ki","mas","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","pa","dua","ksb","ewo","pl","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2024-11-06T18:10:01.761947511","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2024-11-06T18:10:16.282895803","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2024-11-06T18:10:14.224944224","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2024-11-06T18:09:39.341190655","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2024-11-06T18:10:26.499433248","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2024-11-06T18:10:34.629635489","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-11-06T18:09:35.203098578","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-06T18:09:33.230278092","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2024-11-06T18:09:24.905244377","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2024-11-06T18:10:30.574126949","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-06T18:10:20.319614878","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2024-11-06T18:10:20.319951083","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:20.320175992","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-06T18:10:20.320714819","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2024-11-06T18:10:20.321493488","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:20.321729848","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2024-11-06T18:10:20.322028147","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2024-11-06T18:10:20.322518659","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2024-11-06T18:10:20.3226492","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-06T18:10:20.322953795","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2024-11-06T18:10:20.323388498","type":"REACTIVE_ERROR"}]} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt index 1b5afc15f..1b96d198b 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt @@ -1,17 +1,17 @@ -{"result":0.0,"time":[2024,11,4,13,36,49,580625663],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,582213934],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,11,4,13,36,49,582259977],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,582333902],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,11,4,13,36,49,582347222],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,11,4,13,36,49,583490076],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,11,4,13,36,49,583522428],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,11,4,13,36,49,583532393],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,11,4,13,36,49,629424407],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,11,4,13,36,49,629493594],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,11,4,13,36,49,629501974],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,649536165],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,649597964],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,649625998],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,703403080],"type":"REACTIVE_INFO"} -{"result":"fc422a5c-34a2-4197-89ed-079bdf9aecca","time":[2024,11,4,13,36,49,732589527],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,11,4,13,36,49,732652436],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,7,14,56,26,970820849],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,972516543],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,11,7,14,56,26,972600321],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,972685073],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,11,7,14,56,26,972754062],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,11,7,14,56,26,974140277],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2024,11,7,14,56,26,974176527],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,11,7,14,56,26,974192442],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,11,7,14,56,27,37949678],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,11,7,14,56,27,38040162],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,7,14,56,27,38056650],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,27,60789618],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,27,60843658],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,27,60864614],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,27,103920417],"type":"REACTIVE_INFO"} +{"result":"4de95349-4f8e-4709-b1a9-6e2709651807","time":[2024,11,7,14,56,27,123639820],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,11,7,14,56,27,123718081],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt index 53ed085df..0e72acab0 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt @@ -1,21 +1,21 @@ -{"result":0.0,"time":[2024,11,4,13,36,49,88307640],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,90321889],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2024,11,4,13,36,49,90550164],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,90635306],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,11,4,13,36,49,90671962],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,11,4,13,36,49,95090891],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,11,4,13,36,49,95152597],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2024,11,4,13,36,49,95162563],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,11,4,13,36,49,150677491],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,11,4,13,36,49,150758474],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,11,4,13,36,49,150772507],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,176090402],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,176154758],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,176414457],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,471582449],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,471669604],"type":"REACTIVE_INFO"} -{"result":0.5,"time":[2024,11,4,13,36,49,472091565],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,49,472145594],"type":"REACTIVE_INFO"} -{"result":"fc422a5c-34a2-4197-89ed-079bdf9aecca","time":[2024,11,4,13,36,49,472161859],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,11,4,13,36,49,472352229],"type":"REACTIVE_PROGRESS"} -{"result":1.0,"time":[2024,11,4,13,36,49,472382518],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,7,14,56,26,446497097],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,448655319],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2024,11,7,14,56,26,448974238],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,449064526],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2024,11,7,14,56,26,449109681],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2024,11,7,14,56,26,452109886],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2024,11,7,14,56,26,452178398],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2024,11,7,14,56,26,452196563],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2024,11,7,14,56,26,548412885],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,11,7,14,56,26,548487418],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,7,14,56,26,548505481],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,599453699],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,599588525],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,600089977],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,877257801],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,877327536],"type":"REACTIVE_INFO"} +{"result":0.5,"time":[2024,11,7,14,56,26,877543079],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,877589952],"type":"REACTIVE_INFO"} +{"result":"4de95349-4f8e-4709-b1a9-6e2709651807","time":[2024,11,7,14,56,26,877609681],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,11,7,14,56,26,877774703],"type":"REACTIVE_PROGRESS"} +{"result":1.0,"time":[2024,11,7,14,56,26,877818225],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index fa23c8da4..5eea6eabd 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,10 +1,10 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,11,4,13,36,47,968195374],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,11,4,13,36,47,971133606],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,11,4,13,36,47,971459239],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2024,11,4,13,36,47,972205288],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,11,4,13,36,48,248865300],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2024,11,4,13,36,48,249345250],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2024,11,4,13,36,48,249831090],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,4,13,36,48,953406537],"type":"REACTIVE_INFO"} -{"result":{"id":"8d725bf6-e455-42ba-899a-5a04af3a2cf0","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,11,4,13,36,48,954465444],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2024,11,4,13,36,48,954878218],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2024,11,7,14,56,25,233464329],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2024,11,7,14,56,25,236735825],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2024,11,7,14,56,25,237015507],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2024,11,7,14,56,25,237648063],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2024,11,7,14,56,25,490868869],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2024,11,7,14,56,25,491338983],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2024,11,7,14,56,25,491691284],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2024,11,7,14,56,26,314638123],"type":"REACTIVE_INFO"} +{"result":{"id":"801f43db-9d71-43aa-83ba-17140860be96","creationDate":null,"updateDate":null,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"unit","fr":"unité"},"data":{"en":"data","fr":"données"},"test":{"en":"test","fr":"test"},"context":{"en":"context","fr":"contexte"},"temporal":{"en":"temporality","fr":"temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"\";","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2024,11,7,14,56,26,315637815],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2024,11,7,14,56,26,316060307],"type":"REACTIVE_PROGRESS"} -- GitLab From a9429b89008a26f032cc632ae4f03ae79d4beb99 Mon Sep 17 00:00:00 2001 From: philippe tcheriatinsky <philippe.tcherniatinsky@inrae.fr> Date: Thu, 7 Nov 2024 15:02:22 +0100 Subject: [PATCH 52/52] Ajout de actuator --- .env-default | 2 ++ pom.xml | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.env-default b/.env-default index 1c44e3d1e..7aab9c706 100644 --- a/.env-default +++ b/.env-default @@ -15,6 +15,8 @@ SPRING_SERVLET_MULTIPART_MAXREQUESTSIZE=100MB SPRING_SERVLET_ENCODING_CHARSET=UTF-8 SPRING_SERVLET_ENCODING_FORCE=true +MANAGEMENT_ENDPOINT_HEALTH_ENABLED=true +MANAGEMENT_ENDPOINT_WEB_EXPOSURE_INCLUDE=health FILE_SENDER_BASE_URL=https://filesender.renater.fr/rest.php FILE_SENDER_USER_NAME=mail@user.fr diff --git a/pom.xml b/pom.xml index 0a76419b7..e16c24393 100644 --- a/pom.xml +++ b/pom.xml @@ -80,9 +80,9 @@ <vue.version>2.6.14</vue.version> <testcontainer.postgresql.version>1.20.1</testcontainer.postgresql.version> <groovy.version-jsr223>3.0.22</groovy.version-jsr223> -<!-- - <flyway.version>10.16.0</flyway.version> ---> + <!-- + <flyway.version>10.16.0</flyway.version> + --> <!--Database infos --> @@ -109,6 +109,10 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> -- GitLab