From 778c9a91e935c1c2bbb9682b11329e93ed7fac46 Mon Sep 17 00:00:00 2001 From: "antonio.diraffaele" Date: Thu, 10 Feb 2022 18:37:11 +0100 Subject: [PATCH] GestionePianificazioneFerie, ConfigurazionePianificazioneFerie, plugin-version --- GF/.project | 48 + GF/.settings/org.eclipse.jdt.core.prefs | 359 + GF/.settings/org.eclipse.m2e.core.prefs | 4 + GF/.voilaProject | 0 GF/gestioneferie-libs/.classpath | 26 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + GF/gestioneferie-libs/.project | 47 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 16 + .../.settings/org.eclipse.m2e.core.prefs | 4 + GF/gestioneferie-libs/.voilaProject | 0 .../gestioneferie-libs-core/.classpath | 33 + .../gestioneferie-libs-core/.project | 54 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../gestioneferie-libs-core/.voilaProject | 0 .../gestioneferie-libs-core/pom.xml | 48 + .../gestioneferie/libs/entity/BaseEntity.java | 19 + .../libs/exception/BaseExceptionHandler.java | 91 + .../libs/repository/BaseRepository.java | 12 + .../libs/request/BaseRequest.java | 44 + .../libs/response/BaseResponse.java | 37 + .../response/BaseResponseEntityWrapper.java | 64 + .../libs/service/BaseEntityService.java | 12 + .../libs/utilities/Auditable.java | 70 + .../libs/utilities/CacheConfig.java | 23 + .../libs/utilities/Constants.java | 10 + .../libs/utilities/JasperReportsCache.java | 31 + .../libs/utilities/MessageSourceSettings.java | 20 + .../libs/utilities/MessageUtil.java | 80 + .../libs/utilities/SpringFoxConfig.java | 51 + .../src/main/resources/application.yml | 7 + .../src/main/resources/i18n/res.properties | 1 + .../src/main/resources/i18n/res_en.properties | 1 + .../src/main/resources/i18n/res_it.properties | 1 + .../gestioneferie-libs-impl/.classpath | 33 + .../gestioneferie-libs-impl/.project | 54 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../gestioneferie-libs-impl/.voilaProject | 0 .../gestioneferie-libs-impl/pom.xml | 43 + .../libs/service/BaseServiceImpl.java | 78 + .../src/main/resources/application.yml | 3 + .../gestioneferie-libs-web/.classpath | 34 + .../gestioneferie-libs-web/.project | 54 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../gestioneferie-libs-web/.voilaProject | 0 .../gestioneferie-libs-web/pom.xml | 50 + .../libs/assembler/BaseModelAssembler.java | 55 + .../libs/controller/BaseController.java | 30 + .../libs/converter/BeanConverter.java | 17 + .../gestioneferie/libs/dto/BaseDto.java | 11 + .../libs/filter/LogMdcFilter.java | 39 + .../libs/security/JPAAuditConfig.java | 32 + .../security/KeycloakRealmRoleConverter.java | 25 + .../ResourceServerSecurityConfig.java | 68 + .../src/main/resources/application.yml | 3 + GF/gestioneferie-libs/pom.xml | 26 + .../.classpath | 6 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + GF/gestioneferie-ms-configurazionepf/.project | 74 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 359 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.voilaProject | 0 .../Dockerfile | 10 + .../.classpath | 30 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../.project | 71 + .../org.eclipse.core.resources.prefs | 3 + .../.settings/org.eclipse.jdt.core.prefs | 366 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.voilaProject | 0 .../mvnw | 310 + .../mvnw.cmd | 182 + .../pom.xml | 32 + .../criteria/DconfigPaPfUoHCriteria.java | 198 + .../criteria/DconfigPaPianiFerieCriteria.java | 187 + .../criteria/DpercAutPianFerieHCriteria.java | 191 + .../criteria/DpercAutPianFeriePkCriteria.java | 91 + .../criteria/DregolePianiFerieHCriteria.java | 278 + .../criteria/DregolePianiFeriePkCriteria.java | 155 + .../entity/DconfigPaPfUoH.java | 414 + .../entity/DconfigPaPianiFerie.java | 397 + .../entity/DpercAutPianFerieH.java | 468 + .../entity/DpercAutPianFeriePk.java | 258 + .../entity/DregolePianiFerieH.java | 510 + .../entity/DregolePianiFeriePk.java | 334 + .../repository/DconfigPaPfUoHRepository.java | 33 + .../DconfigPaPianiFerieRepository.java | 21 + .../DpercAutPianFerieHRepository.java | 38 + .../DpercAutPianFeriePkRepository.java | 21 + .../DregolePianiFerieHRepository.java | 33 + .../DregolePianiFeriePkRepository.java | 21 + .../service/DconfigPaPfUoHService.java | 20 + .../service/DconfigPaPianiFerieService.java | 15 + .../service/DpercAutPianFerieHService.java | 48 + .../service/DpercAutPianFeriePkService.java | 15 + .../service/DregolePianiFerieHService.java | 21 + .../service/DregolePianiFeriePkService.java | 15 + .../.classpath | 35 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../.project | 71 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 366 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.voilaProject | 0 .../mvnw | 310 + .../mvnw.cmd | 182 + .../pom.xml | 32 + .../service/DconfigPaPfUoHServiceImpl.java | 293 + .../DconfigPaPianiFerieServiceImpl.java | 294 + .../DpercAutPianFerieHServiceImpl.java | 351 + .../DpercAutPianFeriePkServiceImpl.java | 261 + .../DregolePianiFerieHServiceImpl.java | 313 + .../DregolePianiFeriePkServiceImpl.java | 277 + .../src/main/resources/ciao.txt | 1 + .../.classpath | 27 + .../.project | 92 + .../org.eclipse.core.resources.prefs | 2 + .../.voilaProject | 0 .../META-INF/MANIFEST.MF | 13 + .../pom.xml | 24 + .../configurazionepf/model/Main.java | 415 + .../configurazionepf/model/MainFE.java | 415 + .../configurazionepf/model/MainGenerator.java | 184 + .../model/MainGeneratorFE.java | 183 + .../configurazionepf/model/main.mtl | 84 + .../configurazionepf/model/mainFE.mtl | 22 + .../resources/model/configurazionepf_model.di | 2 + .../model/configurazionepf_model.notation | 15971 ++++++++++++++ .../model/configurazionepf_model.uml | 328 + .../src/main/resources/model/main_model.di | 2 + .../main/resources/model/main_model.notation | 2678 +++ .../src/main/resources/model/main_model.uml | 105 + .../properties/voila2-default.properties | 16 + .../main/resources/voila2.log4j.properties | 30 + .../.classpath | 36 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../.project | 71 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 366 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.voilaProject | 0 .../mvnw | 310 + .../mvnw.cmd | 182 + .../pom.xml | 114 + .../GestioneferieMsConfigurazionepf.java | 14 + ...oneferieMsConfigurazionepfInterceptor.java | 35 + ...ioneferieMsConfigurazionepfProperties.java | 10 + .../advices/GlobalExceptionHandler.java | 10 + .../DconfigPaPfUoHModelAssembler.java | 59 + .../DconfigPaPianiFerieModelAssembler.java | 65 + .../DpercAutPianFerieHModelAssembler.java | 66 + .../DpercAutPianFeriePkModelAssembler.java | 59 + .../DregolePianiFerieHModelAssembler.java | 59 + .../DregolePianiFeriePkModelAssembler.java | 59 + .../config/CustomSpringLiquibase.java | 40 + ...GestioneferieMsConfigurazionepfConfig.java | 18 + .../config/LiquibaseConfigurationBean.java | 46 + .../configurazionepf/config/MapperConfig.java | 43 + .../controller/DconfigPaPfUoHController.java | 188 + .../DconfigPaPianiFerieController.java | 232 + .../DpercAutPianFerieHController.java | 208 + .../DpercAutPianFeriePkController.java | 205 + .../DregolePianiFerieHController.java | 190 + .../DregolePianiFeriePkController.java | 205 + .../dto/DconfigPaPfUoHDto.java | 53 + .../dto/DconfigPaPfUoHWriteDto.java | 48 + .../dto/DconfigPaPianiFerieDto.java | 49 + .../dto/DconfigPaPianiFerieWriteDto.java | 54 + .../dto/DpercAutPianFerieHDto.java | 56 + .../dto/DpercAutPianFerieHWriteDto.java | 47 + .../dto/DpercAutPianFeriePkDto.java | 37 + .../dto/DpercAutPianFeriePkWriteDto.java | 40 + .../dto/DregolePianiFerieHDto.java | 63 + .../dto/DregolePianiFerieHWriteDto.java | 58 + .../dto/DregolePianiFeriePkDto.java | 45 + .../dto/DregolePianiFeriePkWriteDto.java | 48 + .../configurazionepf/security/Permission.java | 70 + .../src/main/resources/.h2.server.properties | 4 + .../application-integration-test.yaml | 7 + .../src/main/resources/application.yml | 63 + .../resources/applicationResources.properties | 332 + .../applicationResources_en.properties | 332 + .../applicationResources_it.properties | 332 + .../db/liquibase/changeset/initDataDb.xml | 16 + .../db/liquibase/sql/initDbScript.sql | 9 + .../main/resources/db/liquibase/update.xml | 10 + .../src/main/resources/logback-spring.xml | 53 + .../reports/DetailDconfigPaPfUoH.jrxml | 196 + .../reports/DetailDconfigPaPianiFerie.jrxml | 214 + .../reports/DetailDpercAutPianFerieH.jrxml | 195 + .../reports/DetailDpercAutPianFeriePk.jrxml | 127 + .../reports/DetailDregolePianiFerieH.jrxml | 256 + .../reports/DetailDregolePianiFeriePk.jrxml | 175 + ...DconfigPaPfUoHForDconfigPaPianiFerie.jrxml | 160 + ...cAutPianFerieHForDconfigPaPianiFerie.jrxml | 165 + ...cAutPianFerieHForDpercAutPianFeriePk.jrxml | 165 + ...olePianiFerieHForDregolePianiFeriePk.jrxml | 210 + .../main/resources/reports/images/mice.png | Bin 0 -> 17703 bytes .../resources/reports/templates/default.jrtx | 30 + GF/gestioneferie-ms-configurazionepf/mvnw | 310 + GF/gestioneferie-ms-configurazionepf/mvnw.cmd | 182 + GF/gestioneferie-ms-configurazionepf/pom.xml | 50 + .../s_start.sh | 1 + .../sql/permissions.sql | 170 + .../.classpath | 6 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../.project | 74 + .../.settings/org.eclipse.jdt.core.prefs | 359 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.voilaProject | 0 .../Dockerfile | 10 + .../.classpath | 30 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../.project | 42 + .../.settings/org.eclipse.jdt.core.prefs | 359 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.voilaProject | 0 .../mvnw | 310 + .../mvnw.cmd | 182 + .../pom.xml | 32 + .../criteria/DammtiPianiFerieCriteria.java | 224 + .../DesitiRichAdesionePfCriteria.java | 192 + .../criteria/DmotivazioniAlertPfCriteria.java | 155 + .../criteria/DperiodiAmmtoPfCriteria.java | 38 + .../criteria/DpianiFerieCriteria.java | 375 + .../criteria/DpianificFerieAmmtoCriteria.java | 208 + .../criteria/DrichAdesionePfCriteria.java | 208 + .../DrichPianifFerieAmmtoCriteria.java | 208 + .../DrichiesteApprovazPfCriteria.java | 208 + .../criteria/DsollecitiPfCriteria.java | 199 + .../criteria/DstatiAdesionePfCriteria.java | 155 + .../criteria/DstatiPianificFerieCriteria.java | 155 + .../criteria/DstatiPianoFerieCriteria.java | 155 + .../DstatiRichAdesionePfCriteria.java | 155 + .../criteria/DstatiRichApprovPfCriteria.java | 155 + .../DstatiRichiestaPfAmmtoCriteria.java | 155 + .../entity/DammtiPianiFerie.java | 535 + .../entity/DammtiPianiFerieKey.java | 62 + .../entity/DesitiRichAdesionePf.java | 576 + .../entity/DesitiRichAdesionePfKey.java | 62 + .../entity/DmotivazioniAlertPf.java | 363 + .../entity/DmotivazioniAlertPfKey.java | 62 + .../entity/DperiodiAmmtoPf.java | 445 + .../entity/DperiodiAmmtoPfKey.java | 65 + .../entity/DpianiFerie.java | 701 + .../entity/DpianificFerieAmmto.java | 569 + .../entity/DpianificFerieAmmtoKey.java | 62 + .../entity/DrichAdesionePf.java | 568 + .../entity/DrichAdesionePfKey.java | 62 + .../entity/DrichPianifFerieAmmto.java | 536 + .../entity/DrichPianifFerieAmmtoKey.java | 62 + .../entity/DrichiesteApprovazPf.java | 536 + .../entity/DrichiesteApprovazPfKey.java | 62 + .../entity/DsollecitiPf.java | 466 + .../entity/DsollecitiPfKey.java | 62 + .../entity/DstatiAdesionePf.java | 363 + .../entity/DstatiAdesionePfKey.java | 62 + .../entity/DstatiPianificFerie.java | 363 + .../entity/DstatiPianificFerieKey.java | 62 + .../entity/DstatiPianoFerie.java | 363 + .../entity/DstatiPianoFerieKey.java | 62 + .../entity/DstatiRichAdesionePf.java | 363 + .../entity/DstatiRichAdesionePfKey.java | 62 + .../entity/DstatiRichApprovPf.java | 363 + .../entity/DstatiRichApprovPfKey.java | 62 + .../entity/DstatiRichiestaPfAmmto.java | 364 + .../entity/DstatiRichiestaPfAmmtoKey.java | 62 + .../DammtiPianiFerieRepository.java | 40 + .../DesitiRichAdesionePfRepository.java | 42 + .../DmotivazioniAlertPfRepository.java | 22 + .../repository/DperiodiAmmtoPfRepository.java | 35 + .../repository/DpianiFerieRepository.java | 34 + .../DpianificFerieAmmtoRepository.java | 42 + .../repository/DrichAdesionePfRepository.java | 40 + .../DrichPianifFerieAmmtoRepository.java | 46 + .../DrichiesteApprovazPfRepository.java | 40 + .../repository/DsollecitiPfRepository.java | 35 + .../DstatiAdesionePfRepository.java | 22 + .../DstatiPianificFerieRepository.java | 22 + .../DstatiPianoFerieRepository.java | 22 + .../DstatiRichAdesionePfRepository.java | 22 + .../DstatiRichApprovPfRepository.java | 22 + .../DstatiRichiestaPfAmmtoRepository.java | 23 + .../service/DammtiPianiFerieService.java | 49 + .../service/DesitiRichAdesionePfService.java | 51 + .../service/DmotivazioniAlertPfService.java | 17 + .../service/DperiodiAmmtoPfService.java | 23 + .../service/DpianiFerieService.java | 21 + .../service/DpianificFerieAmmtoService.java | 52 + .../service/DrichAdesionePfService.java | 49 + .../service/DrichPianifFerieAmmtoService.java | 52 + .../service/DrichiesteApprovazPfService.java | 48 + .../service/DsollecitiPfService.java | 22 + .../service/DstatiAdesionePfService.java | 17 + .../service/DstatiPianificFerieService.java | 17 + .../service/DstatiPianoFerieService.java | 17 + .../service/DstatiRichAdesionePfService.java | 17 + .../service/DstatiRichApprovPfService.java | 17 + .../DstatiRichiestaPfAmmtoService.java | 17 + .../.classpath | 36 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../.project | 42 + .../.settings/org.eclipse.jdt.core.prefs | 359 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.voilaProject | 0 .../mvnw | 310 + .../mvnw.cmd | 182 + .../pom.xml | 32 + .../service/DammtiPianiFerieServiceImpl.java | 361 + .../DesitiRichAdesionePfServiceImpl.java | 365 + .../DmotivazioniAlertPfServiceImpl.java | 282 + .../service/DperiodiAmmtoPfServiceImpl.java | 271 + .../service/DpianiFerieServiceImpl.java | 362 + .../DpianificFerieAmmtoServiceImpl.java | 386 + .../service/DrichAdesionePfServiceImpl.java | 378 + .../DrichPianifFerieAmmtoServiceImpl.java | 374 + .../DrichiesteApprovazPfServiceImpl.java | 356 + .../service/DsollecitiPfServiceImpl.java | 300 + .../service/DstatiAdesionePfServiceImpl.java | 283 + .../DstatiPianificFerieServiceImpl.java | 283 + .../service/DstatiPianoFerieServiceImpl.java | 282 + .../DstatiRichAdesionePfServiceImpl.java | 282 + .../DstatiRichApprovPfServiceImpl.java | 283 + .../DstatiRichiestaPfAmmtoServiceImpl.java | 285 + .../src/main/resources/ciao.txt | 1 + .../.classpath | 27 + .../.project | 92 + .../.voilaProject | 0 .../META-INF/MANIFEST.MF | 13 + .../pom.xml | 24 + .../pianificazioneferie/model/Main.java | 415 + .../pianificazioneferie/model/MainFE.java | 415 + .../model/MainGenerator.java | 184 + .../model/MainGeneratorFE.java | 183 + .../pianificazioneferie/model/main.mtl | 84 + .../pianificazioneferie/model/mainFE.mtl | 22 + .../src/main/resources/model/main_model.di | 2 + .../main/resources/model/main_model.notation | 2678 +++ .../src/main/resources/model/main_model.uml | 105 + .../model/pianificazioneferie_model.di | 2 + .../model/pianificazioneferie_model.notation | 17372 ++++++++++++++++ .../model/pianificazioneferie_model.uml | 946 + .../properties/voila2-default.properties | 16 + .../main/resources/voila2.log4j.properties | 30 + .../.classpath | 37 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../.project | 42 + .../.settings/org.eclipse.jdt.core.prefs | 359 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.voilaProject | 0 .../mvnw | 310 + .../mvnw.cmd | 182 + .../pom.xml | 114 + .../GestioneferieMsPianificazioneferie.java | 14 + ...ferieMsPianificazioneferieInterceptor.java | 35 + ...eferieMsPianificazioneferieProperties.java | 10 + .../advices/GlobalExceptionHandler.java | 10 + .../DammtiPianiFerieModelAssembler.java | 66 + .../DesitiRichAdesionePfModelAssembler.java | 75 + .../DmotivazioniAlertPfModelAssembler.java | 59 + .../DperiodiAmmtoPfModelAssembler.java | 59 + .../assembler/DpianiFerieModelAssembler.java | 77 + .../DpianificFerieAmmtoModelAssembler.java | 81 + .../DrichAdesionePfModelAssembler.java | 80 + .../DrichPianifFerieAmmtoModelAssembler.java | 67 + .../DrichiesteApprovazPfModelAssembler.java | 66 + .../assembler/DsollecitiPfModelAssembler.java | 57 + .../DstatiAdesionePfModelAssembler.java | 58 + .../DstatiPianificFerieModelAssembler.java | 59 + .../DstatiPianoFerieModelAssembler.java | 59 + .../DstatiRichAdesionePfModelAssembler.java | 60 + .../DstatiRichApprovPfModelAssembler.java | 59 + .../DstatiRichiestaPfAmmtoModelAssembler.java | 60 + .../config/CustomSpringLiquibase.java | 40 + ...tioneferieMsPianificazioneferieConfig.java | 19 + .../config/LiquibaseConfigurationBean.java | 46 + .../config/MapperConfig.java | 83 + .../DammtiPianiFerieController.java | 207 + .../DesitiRichAdesionePfController.java | 242 + .../DmotivazioniAlertPfController.java | 205 + .../controller/DperiodiAmmtoPfController.java | 190 + .../controller/DpianiFerieController.java | 267 + .../DpianificFerieAmmtoController.java | 271 + .../controller/DrichAdesionePfController.java | 262 + .../DrichPianifFerieAmmtoController.java | 213 + .../DrichiesteApprovazPfController.java | 210 + .../controller/DsollecitiPfController.java | 188 + .../DstatiAdesionePfController.java | 202 + .../DstatiPianificFerieController.java | 205 + .../DstatiPianoFerieController.java | 201 + .../DstatiRichAdesionePfController.java | 205 + .../DstatiRichApprovPfController.java | 204 + .../DstatiRichiestaPfAmmtoController.java | 207 + .../dto/DammtiPianiFerieDto.java | 62 + .../dto/DammtiPianiFerieKeyDto.java | 20 + .../dto/DammtiPianiFerieWriteDto.java | 54 + .../dto/DesitiRichAdesionePfDto.java | 59 + .../dto/DesitiRichAdesionePfKeyDto.java | 22 + .../dto/DesitiRichAdesionePfWriteDto.java | 55 + .../dto/DmotivazioniAlertPfDto.java | 48 + .../dto/DmotivazioniAlertPfKeyDto.java | 22 + .../dto/DmotivazioniAlertPfWriteDto.java | 51 + .../dto/DperiodiAmmtoPfDto.java | 32 + .../dto/DperiodiAmmtoPfKeyDto.java | 16 + .../dto/DperiodiAmmtoPfWriteDto.java | 28 + .../dto/DpianiFerieDto.java | 76 + .../dto/DpianiFerieWriteDto.java | 79 + .../dto/DpianificFerieAmmtoDto.java | 61 + .../dto/DpianificFerieAmmtoKeyDto.java | 22 + .../dto/DpianificFerieAmmtoWriteDto.java | 59 + .../dto/DrichAdesionePfDto.java | 62 + .../dto/DrichAdesionePfKeyDto.java | 22 + .../dto/DrichAdesionePfWriteDto.java | 59 + .../dto/DrichPianifFerieAmmtoDto.java | 59 + .../dto/DrichPianifFerieAmmtoKeyDto.java | 20 + .../dto/DrichPianifFerieAmmtoWriteDto.java | 52 + .../dto/DrichiesteApprovazPfDto.java | 60 + .../dto/DrichiesteApprovazPfKeyDto.java | 20 + .../dto/DrichiesteApprovazPfWriteDto.java | 52 + .../dto/DsollecitiPfDto.java | 55 + .../dto/DsollecitiPfKeyDto.java | 20 + .../dto/DsollecitiPfWriteDto.java | 51 + .../dto/DstatiAdesionePfDto.java | 48 + .../dto/DstatiAdesionePfKeyDto.java | 22 + .../dto/DstatiAdesionePfWriteDto.java | 51 + .../dto/DstatiPianificFerieDto.java | 48 + .../dto/DstatiPianificFerieKeyDto.java | 22 + .../dto/DstatiPianificFerieWriteDto.java | 51 + .../dto/DstatiPianoFerieDto.java | 48 + .../dto/DstatiPianoFerieKeyDto.java | 22 + .../dto/DstatiPianoFerieWriteDto.java | 51 + .../dto/DstatiRichAdesionePfDto.java | 48 + .../dto/DstatiRichAdesionePfKeyDto.java | 22 + .../dto/DstatiRichAdesionePfWriteDto.java | 51 + .../dto/DstatiRichApprovPfDto.java | 48 + .../dto/DstatiRichApprovPfKeyDto.java | 22 + .../dto/DstatiRichApprovPfWriteDto.java | 51 + .../dto/DstatiRichiestaPfAmmtoDto.java | 48 + .../dto/DstatiRichiestaPfAmmtoKeyDto.java | 22 + .../dto/DstatiRichiestaPfAmmtoWriteDto.java | 51 + .../security/Permission.java | 182 + .../src/main/resources/.h2.server.properties | 4 + .../application-integration-test.yaml | 7 + .../src/main/resources/application.yml | 63 + .../resources/applicationResources.properties | 828 + .../applicationResources_en.properties | 828 + .../applicationResources_it.properties | 828 + .../db/liquibase/changeset/initDataDb.xml | 16 + .../db/liquibase/sql/initDbScript.sql | 9 + .../main/resources/db/liquibase/update.xml | 10 + .../src/main/resources/logback-spring.xml | 53 + .../reports/DetailDammtiPianiFerie.jrxml | 219 + .../reports/DetailDesitiRichAdesionePf.jrxml | 207 + .../reports/DetailDmotivazioniAlertPf.jrxml | 175 + .../reports/DetailDperiodiAmmtoPf.jrxml | 78 + .../resources/reports/DetailDpianiFerie.jrxml | 370 + .../reports/DetailDpianificFerieAmmto.jrxml | 234 + .../reports/DetailDrichAdesionePf.jrxml | 234 + .../reports/DetailDrichPianifFerieAmmto.jrxml | 207 + .../reports/DetailDrichiesteApprovazPf.jrxml | 207 + .../reports/DetailDsollecitiPf.jrxml | 196 + .../reports/DetailDstatiAdesionePf.jrxml | 175 + .../reports/DetailDstatiPianificFerie.jrxml | 175 + .../reports/DetailDstatiPianoFerie.jrxml | 175 + .../reports/DetailDstatiRichAdesionePf.jrxml | 175 + .../reports/DetailDstatiRichApprovPf.jrxml | 175 + .../DetailDstatiRichiestaPfAmmto.jrxml | 175 + ...mmtiPianiFerieForDmotivazioniAlertPf.jrxml | 185 + .../ListDammtiPianiFerieForDpianiFerie.jrxml | 185 + ...sitiRichAdesionePfForDrichAdesionePf.jrxml | 165 + ...itiRichAdesionePfForDstatiAdesionePf.jrxml | 165 + ...periodiAmmtoPfForDpianificFerieAmmto.jrxml | 63 + .../ListDpianiFerieForDstatiPianoFerie.jrxml | 270 + ...ficFerieAmmtoForDesitiRichAdesionePf.jrxml | 175 + ...ificFerieAmmtoForDstatiPianificFerie.jrxml | 175 + .../ListDrichAdesionePfForDpianiFerie.jrxml | 175 + ...ichAdesionePfForDstatiRichAdesionePf.jrxml | 175 + ...anifFerieAmmtoForDpianificFerieAmmto.jrxml | 175 + ...fFerieAmmtoForDstatiRichiestaPfAmmto.jrxml | 175 + ...stDrichiesteApprovazPfForDpianiFerie.jrxml | 175 + ...iesteApprovazPfForDstatiRichApprovPf.jrxml | 175 + .../ListDsollecitiPfForDrichAdesionePf.jrxml | 160 + .../main/resources/reports/images/mice.png | Bin 0 -> 17703 bytes .../resources/reports/templates/default.jrtx | 30 + GF/gestioneferie-ms-pianificazioneferie/mvnw | 310 + .../mvnw.cmd | 182 + .../pom.xml | 50 + .../s_start.sh | 1 + .../sql/permissions.sql | 440 + GF/pom.xml | 123 + plugin-version/.gitignore | 5 + plugin-version/.merge_file_a08080 | 8778 ++++++++ plugin-version/.merge_file_a13816 | 8778 ++++++++ plugin-version/.merge_file_a15312 | 7524 +++++++ plugin-version/.merge_file_a22264 | 8778 ++++++++ plugin-version/.project | 11 + .../.settings/ts.eclipse.ide.core.prefs | 2 + plugin-version/README - Sviluppatori.md | 42 + plugin-version/README.md | 31 + plugin-version/Schema.jpg | Bin 0 -> 69359 bytes plugin-version/esclusioni_import.png | Bin 0 -> 225273 bytes .../.classpath | 15 + .../.do_not_generate | 2 + .../.gitignore | 1 + .../it.mice.voila2.acceleogenerator/.project | 50 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 16 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/ts.eclipse.ide.core.prefs | 2 + .../META-INF/MANIFEST.MF | 51 + .../it.mice.voila2.acceleogenerator/README.md | 33 + .../build.properties | 4 + .../icons/sample.png | Bin 0 -> 332 bytes .../icons/sample@2x.png | Bin 0 -> 526 bytes .../libs/ant-1.7.1.jar | Bin 0 -> 1323005 bytes .../libs/ant-launcher-1.7.1.jar | Bin 0 -> 12143 bytes .../libs/antlr-2.7.7.jar | Bin 0 -> 445288 bytes .../libs/jalopy-1.5-RC3P1.jar | Bin 0 -> 960276 bytes .../plugin.xml | 4 + .../resources/FrontEndFolder/.browserslistrc | 17 + .../resources/FrontEndFolder/.editorconfig | 16 + .../resources/FrontEndFolder/.gitignore | 49 + .../resources/FrontEndFolder/.voilaProject | 0 .../resources/FrontEndFolder/README.md | 31 + .../resources/FrontEndFolder/angular.json | 143 + .../FrontEndFolder/e2e/protractor.conf.js | 37 + .../FrontEndFolder/e2e/src/app.e2e-spec.ts | 23 + .../FrontEndFolder/e2e/src/app.po.ts | 11 + .../FrontEndFolder/e2e/tsconfig.json | 13 + .../resources/FrontEndFolder/karma.conf.js | 44 + .../resources/FrontEndFolder/package.json | 55 + .../resources/FrontEndFolder/server.xml | 37 + .../src/app/app-routing.module.ts | 20 + .../FrontEndFolder/src/app/app.component.scss | 0 .../FrontEndFolder/src/app/app.component.ts | 28 + .../FrontEndFolder/src/app/app.module.ts | 48 + .../src/app/auth/auth-routing-module.ts | 28 + .../src/app/auth/auth.component.scss | 25 + .../src/app/auth/auth.component.ts | 14 + .../src/app/auth/auth.module.ts | 35 + .../src/app/auth/login/login.component.html | 28 + .../src/app/auth/login/login.component.scss | 0 .../src/app/auth/login/login.component.ts | 38 + .../src/app/auth/login/login.service.ts | 16 + .../src/app/auth/signup/signup.component.html | 49 + .../src/app/auth/signup/signup.component.scss | 0 .../app/auth/signup/signup.component.spec.ts | 25 + .../src/app/auth/signup/signup.component.ts | 43 + .../app/layout/footer/footer.component.html | 11 + .../app/layout/footer/footer.component.scss | 0 .../src/app/layout/footer/footer.component.ts | 10 + .../app/layout/header/header.component.html | 38 + .../app/layout/header/header.component.scss | 23 + .../src/app/layout/header/header.component.ts | 85 + .../src/app/layout/header/header.constant.ts | 8 + .../src/app/layout/layout.component.html | 23 + .../src/app/layout/layout.component.scss | 0 .../src/app/layout/layout.component.spec.ts | 25 + .../src/app/layout/layout.component.ts | 13 + .../src/app/layout/layout.module.ts | 44 + .../sidebar-left/sidebar-left.component.html | 3 + .../sidebar-left/sidebar-left.component.scss | 3 + .../sidebar-left.component.spec.ts | 25 + .../sidebar-right.component.html | 13 + .../sidebar-right.component.scss | 12 + .../sidebar-right.component.spec.ts | 25 + .../sidebar-right/sidebar-right.component.ts | 30 + .../client-gender/client-age.component.html | 4 + .../client-gender/client-age.component.scss | 0 .../client-gender/client-age.component.ts | 47 + .../src/app/pages/homepage/homepage-menu.ts | 9 + .../pages/homepage/homepage.component.html | 86 + .../pages/homepage/homepage.component.scss | 66 + .../pages/homepage/homepage.component.spec.ts | 25 + .../app/pages/homepage/homepage.component.ts | 101 + .../list-last-sales.component.html | 30 + .../list-last-sales.component.scss | 0 .../list-last-sales.component.ts | 61 + .../order-chart/order-chart.component.html | 9 + .../order-chart/order-chart.component.scss | 29 + .../order-chart/order-chart.component.ts | 381 + .../sales-overview.component.html | 38 + .../sales-overview.component.scss | 0 .../sales-overview.component.spec.ts | 25 + .../sales-overview.component.ts | 251 + .../src/app/pages/pages.component.scss | 0 .../src/app/pages/pages.component.ts | 12 + .../src/app/pages/pages.module.ts | 42 + .../src/app/shared/base/base-api.service.ts | 48 + .../src/app/shared/base/base-tab.component.ts | 16 + .../src/app/shared/base/base.component.ts | 12 + .../src/app/shared/base/base.enum.ts | 0 .../src/app/shared/base/base.helper.ts | 63 + .../src/app/shared/base/base.interface.ts | 6 + .../src/app/shared/base/base.model.ts | 3 + .../src/app/shared/base/base.service.ts | 0 .../shared/interceptor/error.interceptor.ts | 32 + .../src/app/theme/black-theme.scss | 10 + .../src/app/theme/blue-theme.scss | 11 + .../src/app/theme/italiaPA-theme.scss | 11 + .../src/app/theme/theme-map.scss | 190 + .../FrontEndFolder/src/app/theme/theme.scss | 11 + .../dialog/confirm-dialog.service.ts | 21 + .../confirm-dialog.component.html | 16 + .../confirm-dialog.component.scss | 12 + .../confirm-dialog.component.ts | 23 + .../app/utilities/enum/page-status.enum.ts | 10 + .../src/app/utilities/function/helper.ts | 12 + .../app/utilities/pipe/utility-pipe.module.ts | 18 + .../src/app/utilities/pipe/utility-pipe.ts | 36 + .../app/utilities/services/buttons.service.ts | 13 + .../app/utilities/services/locale.service.ts | 57 + .../utilities/services/overlays.service.ts | 32 + .../app/utilities/services/route.service.ts | 31 + .../app/utilities/services/toastr.service.ts | 63 + .../FrontEndFolder/src/assets/.gitkeep | 0 .../FrontEndFolder/src/assets/i18n/en.json | 5 + .../FrontEndFolder/src/assets/i18n/it.json | 5 + .../src/assets/logo-mice-black.png | Bin 0 -> 41709 bytes .../src/environments/environment.prod.ts | 3 + .../src/environments/environment.ts | 19 + .../resources/FrontEndFolder/src/favicon.ico | Bin 0 -> 948 bytes .../resources/FrontEndFolder/src/main.ts | 15 + .../resources/FrontEndFolder/src/polyfills.ts | 65 + .../resources/FrontEndFolder/src/styles.scss | 17 + .../resources/FrontEndFolder/src/test.ts | 25 + .../FrontEndFolder/tsconfig.app.json | 15 + .../resources/FrontEndFolder/tsconfig.json | 31 + .../FrontEndFolder/tsconfig.spec.json | 18 + .../resources/FrontEndFolder/tslint.json | 152 + .../resources/applicationFile/application.yml | 0 .../applicationFile/libsCore/application.yml | 7 + .../libsCore/i18n/res.properties | 1 + .../libsCore/i18n/res_en.properties | 1 + .../libsCore/i18n/res_it.properties | 1 + .../libsWeb-Impl/application.yml | 3 + .../resources/dummyFolder/ciao.txt | 1 + .../resources/gateway/.gitignore | 33 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../gateway/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../resources/gateway/.voilaProject | 0 .../resources/gateway/mvnw | 310 + .../resources/gateway/mvnw.cmd | 182 + .../spring-configuration-metadata.json | 9 + .../src/main/resources/logback-spring.xml | 53 + .../README_prometheus_grafana.md | 67 + .../resources/grafana-prometheus/grafana.png | Bin 0 -> 340274 bytes .../resources/grafana-prometheus/grafana2.png | Bin 0 -> 72159 bytes .../grafana-prometheus/grafanaDropDown.png | Bin 0 -> 25123 bytes .../grafana-prometheus/grafanaVariables.png | Bin 0 -> 21190 bytes .../grafana-prometheus/grafanasetting.png | Bin 0 -> 71829 bytes .../grafana-prometheus/prometheus.png | Bin 0 -> 75443 bytes .../resources/grafana-prometheus/url.png | Bin 0 -> 33584 bytes .../BaseExceptionHandler.java | 91 + .../libsCore/libsCoreRequest/BaseRequest.java | 44 + .../BaseResponseEntityWrapper.java | 64 + .../libsCoreUtil/MessageSourceSettings.java | 20 + .../libsCore/libsCoreUtil/MessageUtil.java | 80 + .../libsWebBeanConverter/BeanConverter.java | 17 + .../libsWeb/libsWebFilter/LogMdcFilter.java | 39 + .../mainGeneratorTemplate/mainGenerator.mtl | 194 + .../resources/meta-src-main-pom/pom.xml | 25 + .../model/MainGeneratorFE.java | 183 + .../@BASE_PACKAGE_AS_FOLDER@/model/main.mtl | 84 + .../@BASE_PACKAGE_AS_FOLDER@/model/mainFE.mtl | 22 + .../main/resources/voila2.log4j.properties | 30 + .../main/resources/model/@MS_NAME@_model.di | 2 + .../resources/model/@MS_NAME@_model.notation | 170 + .../main/resources/model/@MS_NAME@_model.uml | 65 + .../src/main/resources/model/main_model.di | 2 + .../main/resources/model/main_model.notation | 3110 +++ .../src/main/resources/model/main_model.uml | 105 + .../main/resources/model/@MS_NAME@_model.di | 2 + .../resources/model/@MS_NAME@_model.notation | 9 + .../main/resources/model/@MS_NAME@_model.uml | 19 + .../src/main/resources/model/main_model.di | 2 + .../main/resources/model/main_model.notation | 3110 +++ .../src/main/resources/model/main_model.uml | 105 + .../main/resources/model/@MS_NAME@_model.di | 2 + .../resources/model/@MS_NAME@_model.notation | 17176 +++++++++++++++ .../main/resources/model/@MS_NAME@_model.uml | 202 + .../src/main/resources/model/main_model.di | 2 + .../main/resources/model/main_model.notation | 2678 +++ .../src/main/resources/model/main_model.uml | 105 + .../main/resources/model/@MS_NAME@_model.di | 2 + .../resources/model/@MS_NAME@_model.notation | 453 + .../main/resources/model/@MS_NAME@_model.uml | 178 + .../src/main/resources/model/main_model.di | 2 + .../main/resources/model/main_model.notation | 2678 +++ .../src/main/resources/model/main_model.uml | 106 + .../main/resources/model/@MS_NAME@_model.di | 2 + .../resources/model/@MS_NAME@_model.notation | 878 + .../main/resources/model/@MS_NAME@_model.uml | 286 + .../src/main/resources/model/main_model.di | 2 + .../main/resources/model/main_model.notation | 2678 +++ .../src/main/resources/model/main_model.uml | 106 + .../application-integration-test.yaml | 7 + .../db/liquibase/changeset/initDataDb.xml | 16 + .../msWebResources/db/liquibase/update.xml | 10 + .../msWebResources/logback-spring.xml | 53 + .../projectFile/BE-fileProj/.project | 19 + .../.settings/org.eclipse.jdt.core.prefs | 359 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../projectFile/BE-fileProj/.voilaProject | 0 .../projectFile/MS-fileProj/.classpath | 6 + .../projectFile/MS-fileProj/.project | 63 + .../projectFile/MS-fileProj/.voilaProject | 0 .../projectFile/MS-model-fileProj/.classpath | 27 + .../projectFile/MS-model-fileProj/.project | 63 + .../MS-model-fileProj/.voilaProject | 0 .../projectFile/projectForLibs/.classpath | 26 + .../.mvn/wrapper/MavenWrapperDownloader.java | 117 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + .../projectFile/projectForLibs/.project | 18 + .../.settings/org.eclipse.jdt.core.prefs | 16 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../projectFile/projectForLibs/.voilaProject | 0 .../projectFile/projectForLibsCore/.classpath | 34 + .../projectFile/projectForLibsCore/.project | 25 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../projectForLibsCore/.voilaProject | 0 .../projectFile/projectForLibsImpl/.classpath | 33 + .../projectFile/projectForLibsImpl/.project | 25 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../projectForLibsImpl/.voilaProject | 0 .../projectFile/projectForLibsWeb/.classpath | 34 + .../projectFile/projectForLibsWeb/.project | 25 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../projectForLibsWeb/.voilaProject | 0 .../projectFile/root-fileProj/.project | 33 + .../projectFile/voilaProjForFE/.project | 20 + .../projectFile/voilaProjForFE/.voilaProject | 0 .../voilaProjForSandBox/.voilaProject | 0 .../.settings/org.eclipse.jdt.core.prefs | 359 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 16 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 359 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../resources/utilities/SpringFoxConfig.java | 51 + .../voila2/acceleogenerator/Activator.java | 66 + .../voila2/acceleogenerator/core/Main.java | 415 + .../acceleogenerator/core/VoilaFileWalks.java | 39 + .../acceleogenerator/core/angular/.gitignore | 1 + .../core/angular/app/appComponentHtml.mtl | 52 + .../core/angular/app/appComponentTs.mtl | 84 + .../core/angular/app/appModule.mtl | 117 + .../core/angular/app/appRoutingModule.mtl | 71 + .../entity/component/allEntityModule.mtl | 29 + .../baseComponent/baseComponentCss.mtl | 9 + .../baseComponent/baseComponentHtml.mtl | 8 + .../baseComponent/baseComponentModuleTs.mtl | 24 + .../baseComponentRoutingModuleTs.mtl | 23 + .../baseComponent/baseComponentSpecTs.mtl | 8 + .../baseComponent/baseComponentTs.mtl | 297 + .../baseEntityComponentHtml.mtl | 10 + .../baseEntityComponentTs.mtl | 67 + .../component/detail/detailComponentCss.mtl | 10 + .../component/detail/detailComponentHtml.mtl | 120 + .../detail/detailComponentSpecTs.mtl | 7 + .../component/detail/detailComponentTs.mtl | 388 + .../component/detail/detailModuleTs.mtl | 51 + .../detail/detailRoutingModuleTs.mtl | 22 + .../angular/entity/component/entityModule.mtl | 24 + .../angular/entity/component/entityRoute.mtl | 97 + .../component/list/listComponentCss.mtl | 14 + .../component/list/listComponentHtml.mtl | 114 + .../component/list/listComponentSpecTs.mtl | 7 + .../entity/component/list/listComponentTs.mtl | 139 + .../entity/component/list/listModuleTs.mtl | 39 + .../component/list/listRoutingModuleTs.mtl | 21 + .../listsearch/listAndSearchComponentCss.mtl | 12 + .../listsearch/listAndSearchComponentHtml.mtl | 26 + .../listAndSearchComponentSpecTs.mtl | 7 + .../listsearch/listAndSearchComponentTs.mtl | 113 + .../listsearch/listAndSearchModuleTs.mtl | 25 + .../listAndSearchRoutingModuleTs.mtl | 22 + .../component/search/searchComponentCss.mtl | 9 + .../component/search/searchComponentHtml.mtl | 85 + .../search/searchComponentSpecTs.mtl | 7 + .../component/search/searchComponentTs.mtl | 180 + .../entity/component/search/searchForm.mtl | 56 + .../component/search/searchModuleTs.mtl | 35 + .../search/searchRoutingModuleTs.mtl | 22 + .../component/tabs/tabsComponentCss.mtl | 10 + .../component/tabs/tabsComponentHtml.mtl | 139 + .../component/tabs/tabsComponentSpecTs.mtl | 7 + .../entity/component/tabs/tabsComponentTs.mtl | 157 + .../entity/component/tabs/tabsModuleTs.mtl | 38 + .../component/tabs/tabsRoutingModuleTs.mtl | 22 + .../entity/criteria/entityCriteria.mtl | 36 + .../core/angular/entity/model/baseEntity.mtl | 20 + .../core/angular/entity/model/entity.mtl | 86 + .../core/angular/entity/model/form.mtl | 36 + .../angular/entity/service/baseService.mtl | 61 + .../angular/entity/service/entityService.mtl | 179 + .../core/eclipse/classpath.mtl | 157 + .../acceleogenerator/core/eclipse/main.mtl | 14 + .../acceleogenerator/core/eclipse/project.mtl | 182 + .../voila2/acceleogenerator/core/main.mtl | 8 + .../base/baseAttachmentController.mtl | 107 + .../core/microservice/base/baseClasses.mtl | 30 + .../core/microservice/base/baseController.mtl | 56 + .../core/microservice/base/baseDTO.mtl | 21 + .../core/microservice/base/baseEntity.mtl | 43 + .../microservice/base/baseEntityService.mtl | 35 + .../base/baseEntityServiceImpl.mtl | 28 + .../base/baseEntityServiceMongo.mtl | 31 + .../core/microservice/base/baseGeneration.mtl | 20 + .../microservice/base/baseModelAssembler.mtl | 52 + .../core/microservice/base/baseRepository.mtl | 34 + .../microservice/base/baseRepositoryMongo.mtl | 33 + .../core/microservice/base/baseResponse.mtl | 39 + .../microservice/base/baseServiceImpl.mtl | 83 + .../core/microservice/docker/buildNdeploy.mtl | 12 + .../microservice/docker/dockerCompose.mtl | 187 + .../docker/dockerComposePrometheusGrafana.mtl | 41 + .../core/microservice/docker/dockerFile.mtl | 38 + .../core/microservice/docker/dockerFileFe.mtl | 38 + .../microservice/docker/dockerFileMysql.mtl | 18 + .../microservice/docker/dockerGeneration.mtl | 25 + .../microservice/docker/dockerPrometheus.mtl | 24 + .../core/microservice/docker/dockerPull.mtl | 206 + .../core/microservice/docker/dockerPush.mtl | 46 + .../core/microservice/docker/grafanaIni.mtl | 8 + .../core/microservice/gateway/gateway.mtl | 262 + .../microservice/keycloak/initKeycloakSQL.mtl | 3797 ++++ .../libs/baseResponseEntityWrapper.mtl | 58 + .../core/microservice/main.mtl | 371 + .../mainGenerator/mainGenerator.mtl | 194 + .../core/microservice/manifestMF.mtl | 27 + .../core/microservice/pom/pom.mtl | 115 + .../microservice/properties/properties.mtl | 31 + .../microservice/security/jpaAuditConfig.mtl | 41 + .../security/keycloakRealmRoleConverter.mtl | 24 + .../security/resourceServerSecurityConfig.mtl | 76 + .../core/springboot/applicationProperties.mtl | 135 + .../datasource/.h2.server.properties | 4 + .../core/springboot/gitignore.mtl | 47 + .../core/springboot/log4j2Properties.mtl | 107 + .../acceleogenerator/core/springboot/main.mtl | 14 + .../mvn/wrapper/MavenWrapperDownloader.java | 117 + .../springboot/mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../mvn/wrapper/maven-wrapper.properties | 2 + .../core/springboot/mvnScript/mvnw | 310 + .../core/springboot/mvnScript/mvnw.cmd | 182 + .../security/accessDeniedHandlerBean.mtl | 49 + .../springboot/security/authController.mtl | 55 + .../core/springboot/security/authService.mtl | 27 + .../springboot/security/authServiceImpl.mtl | 116 + .../security/authenticationEntryPointBean.mtl | 61 + .../security/authenticationFilterBean.mtl | 200 + .../security/authenticationProviderBean.mtl | 32 + .../customMethodSecurityExpressionHandler.mtl | 52 + .../customMethodSecurityExpressionRoot.mtl | 105 + .../security/customPermissionEvaluator.mtl | 36 + .../security/initSecurityScriptSQL.mtl | 109 + .../security/initSecurityScriptXML.mtl | 24 + .../security/methodSecurityConfig.mtl | 32 + .../security/passwordEncoderBean.mtl | 24 + .../security/securityGeneration.mtl | 14 + .../core/springboot/security/securityMain.mtl | 48 + .../security/securityUserDetailRepository.mtl | 23 + .../securityUserDetailServiceImpl.mtl | 49 + .../security/userNotFoundException.mtl | 32 + .../security/webSecurityConfigurer.mtl | 76 + .../core/springboot/settings.mtl | 84 + .../core/springboot/updateLiquibase.mtl | 29 + .../springboot/utilities/SpringFoxConfig.java | 51 + .../core/springboot/webConfig.mtl | 51 + .../model/domain/domain_model.di | 2 + .../model/domain/domain_model.notation | 1268 ++ .../model/domain/domain_model.uml | 176 + .../acceleogenerator/model/gcertimodel.di | 2 + .../model/gcertimodel.notation | 1321 ++ .../acceleogenerator/model/gcertimodel.uml | 589 + .../model/helloWorld-model.di | 2 + .../model/helloWorld-model.notation | 164 + .../model/helloWorld-model.uml | 76 + .../acceleogenerator/model/mail-model.di | 2 + .../model/mail-model.notation | 2 + .../acceleogenerator/model/mail-model.uml | 16 + .../model/masterdetailfilter.di | 2 + .../model/masterdetailfilter.notation | 482 + .../model/masterdetailfilter.uml | 150 + .../model/orchestratore_model.di | 2 + .../model/orchestratore_model.notation | 7837 +++++++ .../model/orchestratore_model.uml | 2175 ++ .../model/profile/VNprofile.profile.di | 2 + .../model/profile/VNprofile.profile.notation | 548 + .../model/profile/VNprofile.profile.uml | 3938 ++++ .../model/profile/model.profile.di | 2 + .../model/profile/model.profile.notation | 1178 ++ .../model/profile/model.profile.uml | 9136 ++++++++ .../model/reuse/attachment_model.di | 2 + .../model/reuse/attachment_model.notation | 158 + .../model/reuse/attachment_model.uml | 61 + .../model/reuse/feature_model.di | 2 + .../model/reuse/feature_model.notation | 420 + .../model/reuse/feature_model.uml | 126 + .../model/reuse/mail_model.di | 2 + .../model/reuse/mail_model.notation | 368 + .../model/reuse/mail_model.uml | 153 + .../model/reuse/security_model.di | 2 + .../model/reuse/security_model.notation | 450 + .../model/reuse/security_model.uml | 100 + .../model/samplemasterdetail.di | 2 + .../model/samplemasterdetail.notation | 594 + .../model/samplemasterdetail.uml | 180 + .../voila2/acceleogenerator/reports/cache.mtl | 45 + .../acceleogenerator/reports/folderUtils.mtl | 27 + .../acceleogenerator/reports/images/mice.png | Bin 0 -> 17703 bytes .../reports/javaservice/ReportUtils.java | 74 + .../acceleogenerator/reports/listReport.mtl | 194 + .../voila2/acceleogenerator/reports/main.mtl | 33 + .../acceleogenerator/reports/reportUtils.mtl | 195 + .../acceleogenerator/reports/reports.mtl | 170 + .../acceleogenerator/reports/subReports.mtl | 196 + .../reports/templates/default.jrtx | 30 + .../tasks/.gitignore | 1 + .../tasks/mainTarget.xml | 19 + .../.classpath | 7 + .../.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 18 + .../README.md | 3 + .../build.properties | 13 + .../icon.ico | Bin 0 -> 2462 bytes .../plugin.xml | 12 + .../properties/model.ctx | 374 + .../properties/ui/MemberEnd.xwt | 2 + .../properties/ui/MultipleAttribute.xwt | 24 + .../properties/ui/MultipleBinding.xwt | 9 + .../properties/ui/MultipleDomainType.xwt | 9 + .../properties/ui/MultipleEntity.xwt | 9 + .../properties/ui/MultipleExternalEntity.xwt | 9 + .../ui/MultipleManyToOneRelation.xwt | 17 + .../properties/ui/MultipleNamedElement.xwt | 9 + .../ui/MultipleOneToOneRelation.xwt | 17 + .../properties/ui/MultipleOperation.xwt | 9 + .../properties/ui/MultipleParameter.xwt | 9 + .../properties/ui/MultiplePattern.xwt | 9 + .../ui/MultiplePersistentEntity.xwt | 22 + .../properties/ui/MultipleRelation.xwt | 24 + .../properties/ui/MultipleService.xwt | 9 + .../properties/ui/MultipleSubjectArea.xwt | 8 + .../properties/ui/MultipleTransformation.xwt | 17 + .../properties/ui/MultipleTransientEntity.xwt | 8 + .../properties/ui/SingleAttribute.xwt | 40 + .../properties/ui/SingleBinding.xwt | 26 + .../properties/ui/SingleComponent.xwt | 25 + .../properties/ui/SingleDomainType.xwt | 21 + .../properties/ui/SingleEntity.xwt | 29 + .../properties/ui/SingleExternalEntity.xwt | 30 + .../properties/ui/SingleManyToOneRelation.xwt | 36 + .../properties/ui/SingleModel.xwt | 17 + .../properties/ui/SingleNamedElement.xwt | 16 + .../properties/ui/SingleOneToOneRelation.xwt | 31 + .../properties/ui/SingleOperation.xwt | 21 + .../properties/ui/SingleParameter.xwt | 21 + .../properties/ui/SinglePattern.xwt | 9 + .../properties/ui/SinglePersistentEntity.xwt | 43 + .../properties/ui/SingleRelation.xwt | 37 + .../properties/ui/SingleService.xwt | 28 + .../properties/ui/SingleSubjectArea.xwt | 35 + .../properties/ui/SingleTransformation.xwt | 24 + .../properties/ui/SingleTransientEntity.xwt | 26 + .../properties/umlref/UML.ctx | 5320 +++++ .../properties/umlref/ui/AsyncMessage.xwt | 14 + .../properties/umlref/ui/MemberEnd.xwt | 19 + .../properties/umlref/ui/Metaclass.xwt | 12 + .../umlref/ui/MultipleAbstraction.xwt | 14 + .../umlref/ui/MultipleAcceptCallAction.xwt | 23 + .../umlref/ui/MultipleAcceptEventAction.xwt | 23 + .../properties/umlref/ui/MultipleAction.xwt | 22 + .../MultipleActionExecutionSpecification.xwt | 15 + .../umlref/ui/MultipleActionInputPin.xwt | 30 + .../properties/umlref/ui/MultipleActivity.xwt | 27 + .../umlref/ui/MultipleActivityEdge.xwt | 21 + .../umlref/ui/MultipleActivityFinalNode.xwt | 21 + .../umlref/ui/MultipleActivityNode.xwt | 21 + .../ui/MultipleActivityParameterNode.xwt | 25 + .../umlref/ui/MultipleActivityPartition.xwt | 24 + .../properties/umlref/ui/MultipleActor.xwt | 22 + ...ultipleAddStructuralFeatureValueAction.xwt | 23 + .../ui/MultipleAddVariableValueAction.xwt | 24 + .../umlref/ui/MultipleAnyReceiveEvent.xwt | 15 + .../properties/umlref/ui/MultipleArtifact.xwt | 22 + .../umlref/ui/MultipleAssociation.xwt | 23 + .../umlref/ui/MultipleAssociationClass.xwt | 25 + .../properties/umlref/ui/MultipleBehavior.xwt | 24 + ...MultipleBehaviorExecutionSpecification.xwt | 14 + .../umlref/ui/MultipleBehavioralFeature.xwt | 26 + .../ui/MultipleBehavioredClassifier.xwt | 23 + .../ui/MultipleBroadcastSignalAction.xwt | 22 + .../umlref/ui/MultipleCallAction.xwt | 24 + .../umlref/ui/MultipleCallBehaviorAction.xwt | 24 + .../umlref/ui/MultipleCallEvent.xwt | 15 + .../umlref/ui/MultipleCallOperationAction.xwt | 24 + .../umlref/ui/MultipleCentralBufferNode.xwt | 25 + .../umlref/ui/MultipleChangeEvent.xwt | 14 + .../properties/umlref/ui/MultipleClass.xwt | 23 + .../umlref/ui/MultipleClassifier.xwt | 23 + .../MultipleClassifierTemplateParameter.xwt | 16 + .../ui/MultipleClearAssociationAction.xwt | 22 + .../MultipleClearStructuralFeatureAction.xwt | 22 + .../umlref/ui/MultipleClearVariableAction.xwt | 22 + .../umlref/ui/MultipleCollaboration.xwt | 22 + .../umlref/ui/MultipleCollaborationUse.xwt | 14 + .../umlref/ui/MultipleCombinedFragment.xwt | 16 + .../umlref/ui/MultipleCommunicationPath.xwt | 24 + .../umlref/ui/MultipleComponent.xwt | 26 + .../ui/MultipleComponentRealization.xwt | 14 + .../umlref/ui/MultipleConditionalNode.xwt | 28 + .../umlref/ui/MultipleConnectableElement.xwt | 14 + .../ui/MultipleConnectionPointReference.xwt | 15 + .../umlref/ui/MultipleConnector.xwt | 23 + .../umlref/ui/MultipleConnectorEnd.xwt | 17 + .../ui/MultipleConsiderIgnoreFragment.xwt | 16 + .../umlref/ui/MultipleConstraint.xwt | 14 + .../umlref/ui/MultipleContinuation.xwt | 20 + .../umlref/ui/MultipleControlFlow.xwt | 22 + .../umlref/ui/MultipleControlNode.xwt | 22 + .../umlref/ui/MultipleCreateLinkAction.xwt | 21 + .../ui/MultipleCreateLinkObjectAction.xwt | 22 + .../umlref/ui/MultipleCreateObjectAction.xwt | 22 + .../umlref/ui/MultipleCreationEvent.xwt | 15 + .../umlref/ui/MultipleDataStoreNode.xwt | 24 + .../properties/umlref/ui/MultipleDataType.xwt | 23 + .../umlref/ui/MultipleDecisionNode.xwt | 22 + .../umlref/ui/MultipleDependency.xwt | 15 + .../umlref/ui/MultipleDeployedArtifact.xwt | 14 + .../umlref/ui/MultipleDeployment.xwt | 14 + .../ui/MultipleDeploymentSpecification.xwt | 22 + .../umlref/ui/MultipleDeploymentTarget.xwt | 14 + .../umlref/ui/MultipleDestroyLinkAction.xwt | 21 + .../umlref/ui/MultipleDestroyObjectAction.xwt | 26 + ...ipleDestructionOccurrenceSpecification.xwt | 9 + .../properties/umlref/ui/MultipleDevice.xwt | 24 + .../properties/umlref/ui/MultipleDuration.xwt | 15 + .../umlref/ui/MultipleDurationConstraint.xwt | 21 + .../umlref/ui/MultipleDurationInterval.xwt | 22 + .../umlref/ui/MultipleDurationObservation.xwt | 21 + .../properties/umlref/ui/MultipleElement.xwt | 8 + .../umlref/ui/MultipleElementImport.xwt | 15 + .../ui/MultipleEncapsulatedClassifier.xwt | 22 + .../umlref/ui/MultipleEnumeration.xwt | 23 + .../umlref/ui/MultipleEnumerationLiteral.xwt | 15 + .../properties/umlref/ui/MultipleEvent.xwt | 14 + .../umlref/ui/MultipleExecutableNode.xwt | 22 + .../ui/MultipleExecutionEnvironment.xwt | 23 + ...ltipleExecutionOccurrenceSpecification.xwt | 15 + .../ui/MultipleExecutionSpecification.xwt | 14 + .../umlref/ui/MultipleExpansionNode.xwt | 24 + .../umlref/ui/MultipleExpansionRegion.xwt | 24 + .../umlref/ui/MultipleExpression.xwt | 15 + .../properties/umlref/ui/MultipleExtend.xwt | 14 + .../umlref/ui/MultipleExtension.xwt | 15 + .../umlref/ui/MultipleExtensionEnd.xwt | 32 + .../umlref/ui/MultipleExtensionPoint.xwt | 22 + .../properties/umlref/ui/MultipleFeature.xwt | 22 + .../umlref/ui/MultipleFinalNode.xwt | 22 + .../umlref/ui/MultipleFinalState.xwt | 22 + .../umlref/ui/MultipleFlowFinalNode.xwt | 22 + .../properties/umlref/ui/MultipleForkNode.xwt | 22 + .../umlref/ui/MultipleFunctionBehavior.xwt | 24 + .../properties/umlref/ui/MultipleGate.xwt | 14 + .../umlref/ui/MultipleGeneralOrdering.xwt | 15 + .../umlref/ui/MultipleGeneralization.xwt | 15 + .../umlref/ui/MultipleGeneralizationSet.xwt | 23 + .../properties/umlref/ui/MultipleInclude.xwt | 15 + .../umlref/ui/MultipleInformationFlow.xwt | 14 + .../umlref/ui/MultipleInformationItem.xwt | 22 + .../umlref/ui/MultipleInitialNode.xwt | 21 + .../properties/umlref/ui/MultipleInputPin.xwt | 32 + .../ui/MultipleInstanceSpecification.xwt | 14 + .../umlref/ui/MultipleInstanceValue.xwt | 15 + .../umlref/ui/MultipleInteraction.xwt | 24 + .../ui/MultipleInteractionConstraint.xwt | 14 + .../umlref/ui/MultipleInteractionFragment.xwt | 15 + .../umlref/ui/MultipleInteractionOperand.xwt | 14 + .../umlref/ui/MultipleInteractionUse.xwt | 15 + .../umlref/ui/MultipleInterface.xwt | 22 + .../ui/MultipleInterfaceRealization.xwt | 15 + .../properties/umlref/ui/MultipleInterval.xwt | 23 + .../umlref/ui/MultipleIntervalConstraint.xwt | 14 + .../umlref/ui/MultipleInvocationAction.xwt | 21 + .../properties/umlref/ui/MultipleJoinNode.xwt | 23 + .../properties/umlref/ui/MultipleLifeline.xwt | 14 + .../umlref/ui/MultipleLinkAction.xwt | 21 + .../umlref/ui/MultipleLinkEndCreationData.xwt | 15 + .../ui/MultipleLinkEndDestructionData.xwt | 16 + .../umlref/ui/MultipleLiteralBoolean.xwt | 15 + .../umlref/ui/MultipleLiteralInteger.xwt | 14 + .../umlref/ui/MultipleLiteralNull.xwt | 8 + .../ui/MultipleLiteralSpecification.xwt | 14 + .../umlref/ui/MultipleLiteralString.xwt | 15 + .../ui/MultipleLiteralUnlimitedNatural.xwt | 15 + .../properties/umlref/ui/MultipleLoopNode.xwt | 25 + .../umlref/ui/MultipleManifestation.xwt | 14 + .../umlref/ui/MultipleMergeNode.xwt | 21 + .../properties/umlref/ui/MultipleMessage.xwt | 15 + .../umlref/ui/MultipleMessageEnd.xwt | 14 + .../umlref/ui/MultipleMessageEvent.xwt | 14 + ...MultipleMessageOccurrenceSpecification.xwt | 14 + .../properties/umlref/ui/MultipleModel.xwt | 15 + .../umlref/ui/MultipleMultiplicityElement.xwt | 18 + .../umlref/ui/MultipleNamedElement.xwt | 15 + .../umlref/ui/MultipleNamespace.xwt | 14 + .../properties/umlref/ui/MultipleNode.xwt | 24 + .../umlref/ui/MultipleObjectFlow.xwt | 25 + .../umlref/ui/MultipleObjectNode.xwt | 27 + .../umlref/ui/MultipleObservation.xwt | 15 + .../ui/MultipleOccurrenceSpecification.xwt | 14 + .../umlref/ui/MultipleOpaqueAction.xwt | 22 + .../umlref/ui/MultipleOpaqueBehavior.xwt | 25 + .../umlref/ui/MultipleOpaqueExpression.xwt | 15 + .../umlref/ui/MultipleOperation.xwt | 26 + .../umlref/ui/MultipleOutputPin.xwt | 31 + .../properties/umlref/ui/MultiplePackage.xwt | 15 + .../umlref/ui/MultiplePackageImport.xwt | 15 + .../umlref/ui/MultiplePackageMerge.xwt | 11 + .../umlref/ui/MultiplePackageableElement.xwt | 14 + .../umlref/ui/MultipleParameter.xwt | 28 + .../umlref/ui/MultipleParameterSet.xwt | 15 + .../umlref/ui/MultiplePartDecomposition.xwt | 14 + .../properties/umlref/ui/MultiplePin.xwt | 32 + .../properties/umlref/ui/MultiplePort.xwt | 37 + .../umlref/ui/MultiplePrimitiveType.xwt | 23 + .../properties/umlref/ui/MultipleProfile.xwt | 8 + .../umlref/ui/MultipleProfileApplication.xwt | 16 + .../properties/umlref/ui/MultipleProperty.xwt | 34 + .../ui/MultipleProtocolStateMachine.xwt | 25 + .../umlref/ui/MultipleProtocolTransition.xwt | 22 + .../umlref/ui/MultiplePseudostate.xwt | 15 + .../ui/MultipleRaiseExceptionAction.xwt | 21 + .../umlref/ui/MultipleReadExtentAction.xwt | 21 + .../MultipleReadIsClassifiedObjectAction.xwt | 23 + .../umlref/ui/MultipleReadLinkAction.xwt | 21 + .../ui/MultipleReadLinkObjectEndAction.xwt | 22 + ...ltipleReadLinkObjectEndQualifierAction.xwt | 22 + .../umlref/ui/MultipleReadSelfAction.xwt | 21 + .../MultipleReadStructuralFeatureAction.xwt | 22 + .../umlref/ui/MultipleReadVariableAction.xwt | 21 + .../umlref/ui/MultipleRealLiteral.xwt | 11 + .../umlref/ui/MultipleRealization.xwt | 14 + .../umlref/ui/MultipleReception.xwt | 25 + .../ui/MultipleReclassifyObjectAction.xwt | 23 + .../umlref/ui/MultipleRedefinableElement.xwt | 22 + .../MultipleRedefinableTemplateSignature.xwt | 22 + .../umlref/ui/MultipleReduceAction.xwt | 23 + .../properties/umlref/ui/MultipleRegion.xwt | 22 + ...ipleRemoveStructuralFeatureValueAction.xwt | 24 + .../ui/MultipleRemoveVariableValueAction.xwt | 23 + .../umlref/ui/MultipleReplyAction.xwt | 21 + .../umlref/ui/MultipleSendObjectAction.xwt | 22 + .../umlref/ui/MultipleSendSignalAction.xwt | 22 + .../umlref/ui/MultipleSequenceNode.xwt | 23 + .../properties/umlref/ui/MultipleSignal.xwt | 22 + .../umlref/ui/MultipleSignalEvent.xwt | 15 + .../MultipleStartClassifierBehaviorAction.xwt | 22 + .../ui/MultipleStartObjectBehaviorAction.xwt | 24 + .../properties/umlref/ui/MultipleState.xwt | 21 + .../umlref/ui/MultipleStateInvariant.xwt | 14 + .../umlref/ui/MultipleStateMachine.xwt | 24 + .../umlref/ui/MultipleStereotype.xwt | 14 + .../umlref/ui/MultipleStringExpression.xwt | 14 + .../umlref/ui/MultipleStructuralFeature.xwt | 29 + .../ui/MultipleStructuralFeatureAction.xwt | 21 + .../ui/MultipleStructuredActivityNode.xwt | 23 + .../ui/MultipleStructuredClassifier.xwt | 23 + .../umlref/ui/MultipleSubstitution.xwt | 15 + .../umlref/ui/MultipleTestIdentityAction.xwt | 21 + .../umlref/ui/MultipleTimeConstraint.xwt | 22 + .../umlref/ui/MultipleTimeEvent.xwt | 21 + .../umlref/ui/MultipleTimeExpression.xwt | 14 + .../umlref/ui/MultipleTimeInterval.xwt | 14 + .../umlref/ui/MultipleTimeObservation.xwt | 22 + .../umlref/ui/MultipleTransition.xwt | 23 + .../properties/umlref/ui/MultipleTrigger.xwt | 15 + .../properties/umlref/ui/MultipleType.xwt | 15 + .../umlref/ui/MultipleTypedElement.xwt | 17 + .../umlref/ui/MultipleUnmarshallAction.xwt | 21 + .../properties/umlref/ui/MultipleUsage.xwt | 15 + .../properties/umlref/ui/MultipleUseCase.xwt | 22 + .../properties/umlref/ui/MultipleValuePin.xwt | 29 + .../umlref/ui/MultipleValueSpecification.xwt | 14 + .../ui/MultipleValueSpecificationAction.xwt | 22 + .../properties/umlref/ui/MultipleVariable.xwt | 24 + .../umlref/ui/MultipleVariableAction.xwt | 22 + .../properties/umlref/ui/MultipleVertex.xwt | 15 + .../umlref/ui/MultipleWriteLinkAction.xwt | 22 + .../MultipleWriteStructuralFeatureAction.xwt | 22 + .../umlref/ui/MultipleWriteVariableAction.xwt | 22 + .../umlref/ui/ProfileDefinitions.xwt | 11 + .../properties/umlref/ui/ReplyMessage.xwt | 14 + .../umlref/ui/SingleAbstraction.xwt | 27 + .../umlref/ui/SingleAcceptCallAction.xwt | 50 + .../umlref/ui/SingleAcceptEventAction.xwt | 43 + .../properties/umlref/ui/SingleAction.xwt | 36 + .../ui/SingleActionExecutionSpecification.xwt | 32 + .../umlref/ui/SingleActionInputPin.xwt | 54 + .../properties/umlref/ui/SingleActivity.xwt | 49 + .../umlref/ui/SingleActivityEdge.xwt | 37 + .../umlref/ui/SingleActivityFinalNode.xwt | 27 + .../umlref/ui/SingleActivityNode.xwt | 28 + .../umlref/ui/SingleActivityParameterNode.xwt | 50 + .../umlref/ui/SingleActivityPartition.xwt | 36 + .../properties/umlref/ui/SingleActor.xwt | 35 + .../SingleAddStructuralFeatureValueAction.xwt | 53 + .../ui/SingleAddVariableValueAction.xwt | 50 + .../umlref/ui/SingleAnyReceiveEvent.xwt | 21 + .../properties/umlref/ui/SingleArtifact.xwt | 41 + .../umlref/ui/SingleAssociation.xwt | 18 + .../umlref/ui/SingleAssociationClass.xwt | 38 + .../umlref/ui/SingleAsyncMessage.xwt | 8 + .../properties/umlref/ui/SingleBehavior.xwt | 43 + .../SingleBehaviorExecutionSpecification.xwt | 32 + .../umlref/ui/SingleBehavioralFeature.xwt | 40 + .../umlref/ui/SingleBehavioredClassifier.xwt | 34 + .../umlref/ui/SingleBroadcastSignalAction.xwt | 47 + .../properties/umlref/ui/SingleCallAction.xwt | 49 + .../umlref/ui/SingleCallBehaviorAction.xwt | 50 + .../properties/umlref/ui/SingleCallEvent.xwt | 28 + .../umlref/ui/SingleCallOperationAction.xwt | 53 + .../umlref/ui/SingleCentralBufferNode.xwt | 47 + .../umlref/ui/SingleChangeEvent.xwt | 28 + .../properties/umlref/ui/SingleClass.xwt | 38 + .../properties/umlref/ui/SingleClassifier.xwt | 35 + .../ui/SingleClassifierTemplateParameter.xwt | 28 + .../properties/umlref/ui/SingleClause.xwt | 27 + .../ui/SingleClearAssociationAction.xwt | 45 + .../ui/SingleClearStructuralFeatureAction.xwt | 47 + .../umlref/ui/SingleClearVariableAction.xwt | 44 + .../umlref/ui/SingleCollaboration.xwt | 38 + .../umlref/ui/SingleCollaborationUse.xwt | 34 + .../umlref/ui/SingleCombinedFragment.xwt | 23 + .../properties/umlref/ui/SingleComment.xwt | 13 + .../umlref/ui/SingleCommunicationPath.xwt | 41 + .../properties/umlref/ui/SingleComponent.xwt | 40 + .../umlref/ui/SingleComponentRealization.xwt | 28 + .../umlref/ui/SingleConditionalNode.xwt | 47 + .../umlref/ui/SingleConnectableElement.xwt | 28 + ...gleConnectableElementTemplateParameter.xwt | 22 + .../ui/SingleConnectionPointReference.xwt | 20 + .../properties/umlref/ui/SingleConnector.xwt | 35 + .../umlref/ui/SingleConnectorEnd.xwt | 24 + .../ui/SingleConsiderIgnoreFragment.xwt | 22 + .../properties/umlref/ui/SingleConstraint.xwt | 39 + .../umlref/ui/SingleContinuation.xwt | 27 + .../umlref/ui/SingleControlFlow.xwt | 36 + .../umlref/ui/SingleControlNode.xwt | 27 + .../umlref/ui/SingleCreateLinkAction.xwt | 40 + .../ui/SingleCreateLinkObjectAction.xwt | 47 + .../umlref/ui/SingleCreateObjectAction.xwt | 46 + .../umlref/ui/SingleCreationEvent.xwt | 21 + .../umlref/ui/SingleDataStoreNode.xwt | 48 + .../properties/umlref/ui/SingleDataType.xwt | 37 + .../umlref/ui/SingleDatatypeInstance.xwt | 10 + .../umlref/ui/SingleDecisionNode.xwt | 28 + .../properties/umlref/ui/SingleDependency.xwt | 21 + .../umlref/ui/SingleDeployedArtifact.xwt | 21 + .../properties/umlref/ui/SingleDeployment.xwt | 27 + .../ui/SingleDeploymentSpecification.xwt | 45 + .../umlref/ui/SingleDeploymentTarget.xwt | 20 + .../umlref/ui/SingleDestroyLinkAction.xwt | 40 + .../umlref/ui/SingleDestroyObjectAction.xwt | 47 + ...ngleDestructionOccurrenceSpecification.xwt | 8 + .../properties/umlref/ui/SingleDevice.xwt | 36 + .../properties/umlref/ui/SingleDuration.xwt | 36 + .../umlref/ui/SingleDurationConstraint.xwt | 44 + .../umlref/ui/SingleDurationInterval.xwt | 30 + .../umlref/ui/SingleDurationObservation.xwt | 35 + .../properties/umlref/ui/SingleElement.xwt | 18 + .../ui/SingleElementAppliedComments.xwt | 11 + .../umlref/ui/SingleElementImport.xwt | 21 + .../umlref/ui/SingleElementOwnedComments.xwt | 11 + .../ui/SingleEncapsulatedClassifier.xwt | 35 + .../umlref/ui/SingleEnumeration.xwt | 36 + .../umlref/ui/SingleEnumerationLiteral.xwt | 28 + .../properties/umlref/ui/SingleEvent.xwt | 21 + .../umlref/ui/SingleExceptionHandler.xwt | 24 + .../umlref/ui/SingleExecutableNode.xwt | 28 + .../umlref/ui/SingleExecutionEnvironment.xwt | 35 + ...SingleExecutionOccurrenceSpecification.xwt | 28 + .../ui/SingleExecutionSpecification.xwt | 30 + .../umlref/ui/SingleExpansionNode.xwt | 52 + .../umlref/ui/SingleExpansionRegion.xwt | 43 + .../properties/umlref/ui/SingleExpression.xwt | 35 + .../properties/umlref/ui/SingleExtend.xwt | 21 + .../properties/umlref/ui/SingleExtension.xwt | 16 + .../umlref/ui/SingleExtensionEnd.xwt | 55 + .../umlref/ui/SingleExtensionPoint.xwt | 28 + .../properties/umlref/ui/SingleFeature.xwt | 28 + .../properties/umlref/ui/SingleFinalNode.xwt | 27 + .../properties/umlref/ui/SingleFinalState.xwt | 45 + .../umlref/ui/SingleFlowFinalNode.xwt | 28 + .../properties/umlref/ui/SingleForkNode.xwt | 27 + .../umlref/ui/SingleFunctionBehavior.xwt | 46 + .../properties/umlref/ui/SingleGate.xwt | 21 + .../umlref/ui/SingleGeneralOrdering.xwt | 20 + .../umlref/ui/SingleGeneralization.xwt | 16 + .../umlref/ui/SingleGeneralizationSet.xwt | 37 + .../properties/umlref/ui/SingleImage.xwt | 18 + .../properties/umlref/ui/SingleInclude.xwt | 21 + .../umlref/ui/SingleInformationFlow.xwt | 36 + .../umlref/ui/SingleInformationItem.xwt | 37 + .../umlref/ui/SingleInitialNode.xwt | 28 + .../properties/umlref/ui/SingleInputPin.xwt | 54 + .../umlref/ui/SingleInstanceSpecification.xwt | 27 + .../umlref/ui/SingleInstanceValue.xwt | 30 + .../umlref/ui/SingleInteraction.xwt | 43 + .../umlref/ui/SingleInteractionConstraint.xwt | 40 + .../umlref/ui/SingleInteractionFragment.xwt | 21 + .../umlref/ui/SingleInteractionOperand.xwt | 34 + .../umlref/ui/SingleInteractionUse.xwt | 18 + .../properties/umlref/ui/SingleInterface.xwt | 43 + .../umlref/ui/SingleInterfaceRealization.xwt | 28 + .../ui/SingleInterruptibleActivityRegion.xwt | 15 + .../properties/umlref/ui/SingleInterval.xwt | 29 + .../umlref/ui/SingleIntervalConstraint.xwt | 37 + .../umlref/ui/SingleInvocationAction.xwt | 46 + .../properties/umlref/ui/SingleJoinNode.xwt | 36 + .../properties/umlref/ui/SingleLifeline.xwt | 31 + .../properties/umlref/ui/SingleLinkAction.xwt | 40 + .../umlref/ui/SingleLinkEndCreationData.xwt | 31 + .../umlref/ui/SingleLinkEndData.xwt | 22 + .../ui/SingleLinkEndDestructionData.xwt | 32 + .../umlref/ui/SingleLiteralBoolean.xwt | 16 + .../umlref/ui/SingleLiteralInteger.xwt | 16 + .../umlref/ui/SingleLiteralNull.xwt | 15 + .../umlref/ui/SingleLiteralSpecification.xwt | 28 + .../umlref/ui/SingleLiteralString.xwt | 16 + .../ui/SingleLiteralUnlimitedNatural.xwt | 17 + .../properties/umlref/ui/SingleLoopNode.xwt | 55 + .../umlref/ui/SingleManifestation.xwt | 29 + .../properties/umlref/ui/SingleMergeNode.xwt | 28 + .../properties/umlref/ui/SingleMessage.xwt | 27 + .../properties/umlref/ui/SingleMessageEnd.xwt | 21 + .../umlref/ui/SingleMessageEvent.xwt | 21 + .../SingleMessageOccurrenceSpecification.xwt | 21 + .../properties/umlref/ui/SingleModel.xwt | 27 + .../umlref/ui/SingleMultiplicityElement.xwt | 23 + .../umlref/ui/SingleNamedElement.xwt | 20 + .../properties/umlref/ui/SingleNamespace.xwt | 21 + .../properties/umlref/ui/SingleNode.xwt | 35 + .../properties/umlref/ui/SingleObjectFlow.xwt | 39 + .../properties/umlref/ui/SingleObjectNode.xwt | 48 + .../umlref/ui/SingleObservation.xwt | 21 + .../ui/SingleOccurrenceSpecification.xwt | 21 + .../umlref/ui/SingleOpaqueAction.xwt | 30 + .../umlref/ui/SingleOpaqueBehavior.xwt | 46 + .../umlref/ui/SingleOpaqueExpression.xwt | 37 + .../properties/umlref/ui/SingleOperation.xwt | 50 + .../ui/SingleOperationTemplateParameter.xwt | 21 + .../properties/umlref/ui/SingleOutputPin.xwt | 54 + .../properties/umlref/ui/SinglePackage.xwt | 27 + .../umlref/ui/SinglePackageImport.xwt | 14 + .../umlref/ui/SinglePackageMerge.xwt | 11 + .../umlref/ui/SinglePackageProfile.xwt | 11 + .../umlref/ui/SinglePackageableElement.xwt | 21 + .../properties/umlref/ui/SingleParameter.xwt | 43 + .../umlref/ui/SingleParameterSet.xwt | 30 + .../umlref/ui/SinglePartDecomposition.xwt | 20 + .../properties/umlref/ui/SinglePin.xwt | 54 + .../properties/umlref/ui/SinglePort.xwt | 60 + .../umlref/ui/SinglePrimitiveType.xwt | 34 + .../properties/umlref/ui/SingleProfile.xwt | 15 + .../umlref/ui/SingleProfileApplication.xwt | 16 + .../umlref/ui/SingleProfileDefinition.xwt | 33 + .../properties/umlref/ui/SingleProperty.xwt | 42 + .../umlref/ui/SingleProtocolStateMachine.xwt | 44 + .../umlref/ui/SingleProtocolTransition.xwt | 46 + .../umlref/ui/SinglePseudostate.xwt | 22 + .../umlref/ui/SingleQualifierValue.xwt | 17 + .../umlref/ui/SingleRaiseExceptionAction.xwt | 44 + .../umlref/ui/SingleReadExtentAction.xwt | 45 + .../ui/SingleReadIsClassifiedObjectAction.xwt | 49 + .../umlref/ui/SingleReadLinkAction.xwt | 47 + .../ui/SingleReadLinkObjectEndAction.xwt | 48 + ...SingleReadLinkObjectEndQualifierAction.xwt | 48 + .../umlref/ui/SingleReadSelfAction.xwt | 44 + .../ui/SingleReadStructuralFeatureAction.xwt | 48 + .../umlref/ui/SingleReadVariableAction.xwt | 46 + .../umlref/ui/SingleRealLiteral.xwt | 11 + .../umlref/ui/SingleRealization.xwt | 28 + .../properties/umlref/ui/SingleReception.xwt | 46 + .../ui/SingleReclassifyObjectAction.xwt | 50 + .../umlref/ui/SingleRedefinableElement.xwt | 27 + .../ui/SingleRedefinableTemplateSignature.xwt | 35 + .../umlref/ui/SingleReduceAction.xwt | 49 + .../properties/umlref/ui/SingleRegion.xwt | 27 + ...ngleRemoveStructuralFeatureValueAction.xwt | 53 + .../ui/SingleRemoveVariableValueAction.xwt | 50 + .../umlref/ui/SingleReplyAction.xwt | 47 + .../umlref/ui/SingleReplyMessage.xwt | 9 + .../umlref/ui/SingleSendObjectAction.xwt | 48 + .../umlref/ui/SingleSendSignalAction.xwt | 49 + .../umlref/ui/SingleSequenceNode.xwt | 40 + .../properties/umlref/ui/SingleSignal.xwt | 36 + .../umlref/ui/SingleSignalEvent.xwt | 27 + .../properties/umlref/ui/SingleSlot.xwt | 21 + .../SingleStartClassifierBehaviorAction.xwt | 43 + .../ui/SingleStartObjectBehaviorAction.xwt | 51 + .../properties/umlref/ui/SingleState.xwt | 46 + .../umlref/ui/SingleStateInvariant.xwt | 28 + .../umlref/ui/SingleStateMachine.xwt | 43 + .../properties/umlref/ui/SingleStereotype.xwt | 27 + .../umlref/ui/SingleStringExpression.xwt | 36 + .../umlref/ui/SingleStructuralFeature.xwt | 42 + .../ui/SingleStructuralFeatureAction.xwt | 45 + .../ui/SingleStructuredActivityNode.xwt | 38 + .../umlref/ui/SingleStructuredClassifier.xwt | 35 + .../umlref/ui/SingleSubstitution.xwt | 28 + .../umlref/ui/SingleSyncMessage.xwt | 8 + .../umlref/ui/SingleTemplateBinding.xwt | 11 + .../umlref/ui/SingleTemplateParameter.xwt | 21 + .../SingleTemplateParameterSubstitution.xwt | 15 + .../umlref/ui/SingleTestIdentityAction.xwt | 47 + .../umlref/ui/SingleTimeConstraint.xwt | 43 + .../properties/umlref/ui/SingleTimeEvent.xwt | 32 + .../umlref/ui/SingleTimeExpression.xwt | 37 + .../umlref/ui/SingleTimeInterval.xwt | 30 + .../umlref/ui/SingleTimeObservation.xwt | 35 + .../properties/umlref/ui/SingleTransition.xwt | 42 + .../properties/umlref/ui/SingleTrigger.xwt | 19 + .../properties/umlref/ui/SingleType.xwt | 21 + .../umlref/ui/SingleTypedElement.xwt | 29 + .../umlref/ui/SingleUnmarshallAction.xwt | 48 + .../properties/umlref/ui/SingleUsage.xwt | 20 + .../properties/umlref/ui/SingleUseCase.xwt | 35 + .../properties/umlref/ui/SingleValuePin.xwt | 54 + .../umlref/ui/SingleValueSpecification.xwt | 27 + .../ui/SingleValueSpecificationAction.xwt | 46 + .../properties/umlref/ui/SingleVariable.xwt | 39 + .../umlref/ui/SingleVariableAction.xwt | 43 + .../properties/umlref/ui/SingleVertex.xwt | 21 + .../umlref/ui/SingleWriteLinkAction.xwt | 40 + .../ui/SingleWriteStructuralFeatureAction.xwt | 49 + .../umlref/ui/SingleWriteVariableAction.xwt | 45 + .../properties/umlref/ui/SyncMessage.xwt | 14 + .../properties/umlref/uml.querySet | 16 + .../architecture/properties/Activator.java | 51 + .../internal/ContextConfigurator.java | 76 + .../helpers/VoilaAssociationHelper.java | 49 + .../it.mice.voila2.architecture/.classpath | 10 + .../it.mice.voila2.architecture/.project | 28 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 10 + .../META-INF/MANIFEST.MF | 33 + .../it.mice.voila2.architecture/README.md | 3 + .../build.properties | 13 + .../it.mice.voila2.architecture/icon.ico | Bin 0 -> 2462 bytes .../palette/palette.paletteconfiguration | 227 + ...alette_Semantic.elementtypesconfigurations | 138 + .../palette_UI.elementtypesconfigurations | 224 + .../palette/style/voila.css | 72 + .../it.mice.voila2.architecture/plugin.xml | 32 + .../it.mice.voila2.architecture/src/.persist | 0 .../voila2.architecture | 45 + .../.classpath | 7 + .../.gitignore | 3 + .../.project | 35 + .../.settings/org.eclipse.jdt.core.prefs | 12 + .../META-INF/MANIFEST.MF | 14 + .../build.properties | 7 + .../help/styles/stacks/image.png | Bin 0 -> 149020 bytes .../styles/stacks/spring.ios.android.html | 4 + .../stacks/spring.ios.android/complete.html | 3 + .../stacks/spring.ios.android/demostart.html | 3 + .../stacks/spring.ios.android/image.png | Bin 0 -> 21562 bytes .../plugin.properties | 6 + .../plugin.xml | 30 + .../resources/model/@PROJECT_ID@_model.di | 2 + .../model/@PROJECT_ID@_model.notation | 16825 +++++++++++++++ .../resources/model/@PROJECT_ID@_model.uml | 196 + .../demosogei/@PROJECT_ID@_model.uml | 2 + .../resources/demosogei/model.di | 2 + .../resources/demosogei/model.notation | 3127 +++ .../resources/demosogei/model.uml | 881 + .../resources/demosogei/reuse_model.uml | 2 + .../demosogei/src/workflow/workflow.oaw | 100 + .../demostart/@PROJECT_ID@_model.uml | 2 + .../resources/demostart/model.di | 2 + .../resources/demostart/model.notation | 3703 ++++ .../resources/demostart/model.uml | 870 + .../demostart/src/workflow/workflow.oaw | 100 + .../resources/root/.classpath | 6 + .../resources/root/.gitignore | 27 + .../resources/root/.project | 33 + .../org.eclipse.core.resources.prefs | 2 + .../root/.settings/org.eclipse.jdt.core.prefs | 359 + .../root/.settings/org.eclipse.jdt.ui.prefs | 3 + .../root/.settings/org.eclipse.m2e.core.prefs | 4 + .../root/.settings/ts.eclipse.ide.core.prefs | 2 + .../resources/root/README.md | 40 + .../resources/root/angularRun.png | Bin 0 -> 43294 bytes .../resources/root/angularrun.cmd | 25 + .../resources/root/build.properties | 4 + .../resources/root/buildRun.png | Bin 0 -> 48790 bytes .../resources/root/buildRun2.png | Bin 0 -> 48178 bytes .../resources/root/buildandrun.cmd | 25 + .../resources/root/buildandrun.sh | 14 + .../modules/@PROJECT_ID@-model/.classpath | 34 + .../root/modules/@PROJECT_ID@-model/.project | 62 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 12 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../org.eclipse.wst.common.component | 6 + ....eclipse.wst.common.project.facet.core.xml | 5 + .../org.eclipse.wst.validation.prefs | 2 + .../modules/@PROJECT_ID@-model/.voilaIgnore | 0 .../@PROJECT_ID@-model/META-INF/MANIFEST.MF | 8 + .../root/modules/@PROJECT_ID@-model/pom.xml | 25 + .../@BASE_PACKAGE_AS_FOLDER@/model/Main.java | 415 + .../model/Main.java.lost | 2090 ++ .../model/MainGenerator.java | 192 + .../@BASE_PACKAGE_AS_FOLDER@/model/main.mtl | 47 + .../resources/model/domain/domain_model.di | 2 + .../model/domain/domain_model.notation | 1104 + .../resources/model/domain/domain_model.uml | 151 + .../model/profile/Voila2Profile.profile.di | 2 + .../profile/Voila2Profile.profile.notation | 1140 + .../model/profile/Voila2Profile.profile.uml | 7197 +++++++ .../resources/model/reuse/attachment_model.di | 2 + .../model/reuse/attachment_model.notation | 170 + .../model/reuse/attachment_model.uml | 65 + .../main/resources/model/reuse/mail_model.di | 2 + .../resources/model/reuse/mail_model.notation | 453 + .../main/resources/model/reuse/mail_model.uml | 178 + .../main/resources/model/reuse/main_model.di | 2 + .../resources/model/reuse/main_model.notation | 2678 +++ .../main/resources/model/reuse/main_model.uml | 125 + .../resources/model/reuse/security_model.di | 2 + .../model/reuse/security_model.notation | 456 + .../resources/model/reuse/security_model.uml | 114 + .../main/resources/voila2.log4j.properties | 30 + .../resources/root/pom.xml | 58 + .../mobile/plugin/WorkflowComplete.java | 322 + .../mobile/plugin/workflowComplete.mtl | 54 + .../src/resources/voila.log4j.properties | 31 + .../it.mice.voila2.feature.core/.project | 17 + .../build.properties | 1 + .../it.mice.voila2.feature.core/feature.xml | 75 + .../.project | 17 + .../build.properties | 1 + .../feature.xml | 26 + .../it.mice.voila2.feature.mobile/.project | 17 + .../build.properties | 1 + .../it.mice.voila2.feature.mobile/feature.xml | 26 + .../it.mice.voila2.feature.mongo/.project | 17 + .../build.properties | 1 + .../it.mice.voila2.feature.mongo/feature.xml | 27 + .../.classpath | 7 + .../.project | 34 + .../.settings/org.eclipse.jdt.core.prefs | 12 + .../META-INF/MANIFEST.MF | 14 + .../build.properties | 7 + .../help/styles/stacks/image.png | Bin 0 -> 149020 bytes .../stacks/microservice.gateway.spa.html | 4 + .../MicroserviceApplicationSchema.jpg | Bin 0 -> 25209 bytes .../complete.html | 7 + .../MicroserviceApplicationSchema.jpg | Bin 0 -> 41481 bytes .../microservice.gateway.spa/complete.html | 7 + .../stacks/spring.ios.android/complete.html | 3 + .../stacks/spring.ios.android/demostart.html | 3 + .../stacks/spring.ios.android/image.png | Bin 0 -> 21562 bytes .../plugin.properties | 6 + .../plugin.xml | 46 + .../@BASE_PACKAGE_AS_FOLDER@/model/Main.java | 415 + .../model/Main.java.lost | 11704 +++++++++++ .../model/MainGenerator.java | 192 + .../@BASE_PACKAGE_AS_FOLDER@/model/main.mtl | 39 + .../resources/model/@PROJECT_ID@_model.di | 2 + .../model/@PROJECT_ID@_model.notation | 584 + .../resources/model/@PROJECT_ID@_model.uml | 61 + .../demosogei/@PROJECT_ID@_model.uml | 2 + .../resources/demosogei/model.di | 2 + .../resources/demosogei/model.notation | 3127 +++ .../resources/demosogei/model.uml | 881 + .../resources/demosogei/reuse_model.uml | 2 + .../demosogei/src/workflow/workflow.oaw | 100 + .../demostart/@PROJECT_ID@_model.uml | 2 + .../resources/demostart/model.di | 2 + .../resources/demostart/model.notation | 3703 ++++ .../resources/demostart/model.uml | 870 + .../demostart/src/workflow/workflow.oaw | 100 + .../@BASE_PACKAGE_AS_FOLDER@/model/Main.java | 415 + .../model/Main.java.lost | 11704 +++++++++++ .../model/MainGenerator.java | 192 + .../@BASE_PACKAGE_AS_FOLDER@/model/main.mtl | 35 + .../resources/model/@PROJECT_ID@_model.di | 2 + .../model/@PROJECT_ID@_model.notation | 384 + .../resources/model/@PROJECT_ID@_model.uml | 46 + .../@BASE_PACKAGE_AS_FOLDER@/model/Main.java | 415 + .../model/Main.java.lost | 11704 +++++++++++ .../model/MainGenerator.java | 192 + .../@BASE_PACKAGE_AS_FOLDER@/model/main.mtl | 24 + .../resources/model/@PROJECT_ID@_model.di | 2 + .../model/@PROJECT_ID@_model.notation | 384 + .../resources/model/@PROJECT_ID@_model.uml | 46 + .../resources/root/.classpath | 6 + .../resources/root/.gitignore | 27 + .../resources/root/.project | 33 + .../org.eclipse.core.resources.prefs | 2 + .../root/.settings/org.eclipse.jdt.core.prefs | 359 + .../root/.settings/org.eclipse.jdt.ui.prefs | 3 + .../root/.settings/org.eclipse.m2e.core.prefs | 4 + .../root/.settings/ts.eclipse.ide.core.prefs | 2 + .../resources/root/README.md | 74 + .../resources/root/angularRun.png | Bin 0 -> 43294 bytes .../resources/root/angularrun.cmd | 25 + .../resources/root/build.properties | 4 + .../resources/root/buildRun.png | Bin 0 -> 48790 bytes .../resources/root/buildRun2.png | Bin 0 -> 48178 bytes .../resources/root/buildandrun.cmd | 25 + .../resources/root/buildandrun.sh | 14 + .../modules/@PROJECT_ID@-model/.classpath | 34 + .../root/modules/@PROJECT_ID@-model/.project | 62 + .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 12 + .../org.eclipse.wst.common.component | 6 + ....eclipse.wst.common.project.facet.core.xml | 5 + .../org.eclipse.wst.validation.prefs | 2 + .../modules/@PROJECT_ID@-model/.voilaIgnore | 0 .../@PROJECT_ID@-model/META-INF/MANIFEST.MF | 11 + .../root/modules/@PROJECT_ID@-model/pom.xml | 25 + .../resources/model/domain/domain_model.di | 2 + .../model/domain/domain_model.notation | 1603 ++ .../resources/model/domain/domain_model.uml | 168 + .../model/profile/Voila2Profile.profile.di | 2 + .../profile/Voila2Profile.profile.notation | 1299 ++ .../model/profile/Voila2Profile.profile.uml | 10710 ++++++++++ .../main/resources/voila2.log4j.properties | 30 + .../resources/root/pom.xml | 40 + .../solution/NoSqlMicroservices.java | 331 + .../solution/WorkflowComplete.java | 322 + .../solution/noSqlMicroservices.mtl | 56 + .../solution/workflowComplete.mtl | 64 + .../src/resources/voila.log4j.properties | 31 + .../it.mice.voila2.plugin/.classpath | 8 + plugin-version/it.mice.voila2.plugin/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 36 + .../it.mice.voila2.plugin/build.properties | 4 + .../it.mice.voila2.plugin/icons/sample.png | Bin 0 -> 332 bytes .../it.mice.voila2.plugin/icons/sample@2x.png | Bin 0 -> 526 bytes .../it.mice.voila2.plugin/plugin.xml | 56 + .../src/it/mice/voila2/plugin/Activator.java | 44 + .../handlers/VoilaGenerationHandler.java | 121 + .../plugin/transformer/BasicTransformer.java | 1109 + .../plugin/transformer/StaticResources.java | 29 + .../it/mice/voila2/plugin/utils/Utility.java | 128 + .../it.mice.voila2.profile/.classpath | 6 + .../it.mice.voila2.profile/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 13 + .../Voila2Profile.profile.di | 2 + .../Voila2Profile.profile.notation | 1299 ++ .../Voila2Profile.profile.uml | 10710 ++++++++++ .../it.mice.voila2.profile/build.properties | 6 + .../it.mice.voila2.profile/plugin.xml | 19 + .../it.mice.voila2.profile/src/.persist | 0 plugin-version/it.mice.voila2.site/.project | 17 + plugin-version/it.mice.voila2.site/site.xml | 11 + .../it.mice.voila2.sync.plugin/.classpath | 7 + .../it.mice.voila2.sync.plugin/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 36 + .../build.properties | 5 + .../icons/full/obj/fldr_obj.gif | Bin 0 -> 216 bytes .../icons/full/obj/mod_obj.gif | Bin 0 -> 582 bytes .../icons/full/obj/moe_obj.gif | Bin 0 -> 354 bytes .../icons/full/obj/prj_obj.gif | Bin 0 -> 956 bytes .../icons/full/obj/root_obj.gif | Bin 0 -> 617 bytes .../icons/full/wizards/fsicon_wiz.gif | Bin 0 -> 173 bytes .../icons/full/wizards/synced.gif | Bin 0 -> 160 bytes .../icons/full/wizban/newconnect_wizban.png | Bin 0 -> 4889 bytes .../icons/sample.gif | Bin 0 -> 983 bytes .../it.mice.voila2.sync.plugin/plugin.xml | 90 + .../it/mice/voila2/sync/plugin/Activator.java | 102 + .../team/examples/filesystem/CRCUtils.java | 67 + .../filesystem/FileModificationValidator.java | 88 + .../filesystem/FileSystemOperations.java | 593 + .../filesystem/FileSystemProvider.java | 352 + .../filesystem/FileSystemProviderType.java | 29 + .../team/examples/filesystem/Policy.java | 100 + .../team/examples/filesystem/StreamUtil.java | 111 + .../history/FileSystemFileRevision.java | 74 + .../filesystem/history/FileSystemHistory.java | 65 + .../history/FileSystemHistoryProvider.java | 24 + .../examples/filesystem/messages.properties | 41 + .../subscriber/FileSystemMergeContext.java | 217 + .../subscriber/FileSystemRemoteTree.java | 59 + .../subscriber/FileSystemResourceVariant.java | 157 + .../subscriber/FileSystemSubscriber.java | 265 + .../subscriber/FileSystemSyncInfo.java | 147 + .../FileSystemThreeWaySynchronizer.java | 40 + .../ui/CompoundResourceTraversal.java | 293 + .../filesystem/ui/ConfigurationWizard.java | 99 + .../filesystem/ui/DisconnectAction.java | 53 + .../filesystem/ui/FileSystemAction.java | 90 + .../filesystem/ui/FileSystemHistoryPage.java | 236 + .../ui/FileSystemHistoryPageSource.java | 27 + .../filesystem/ui/FileSystemMainPage.java | 312 + .../filesystem/ui/FileSystemOperation.java | 157 + .../ui/FileSystemPropertiesPage.java | 77 + .../ui/FileSystemRevisionEditorInput.java | 101 + .../ui/FileSystemSynchronizeParticipant.java | 217 + .../ui/FileSystemTableProvider.java | 254 + .../filesystem/ui/FixRecordsAction.java | 49 + .../filesystem/ui/FixRecordsOperation.java | 52 + .../examples/filesystem/ui/GetAction.java | 52 + .../examples/filesystem/ui/GetOperation.java | 96 + .../filesystem/ui/ModelPutAction.java | 81 + .../ui/OpenFileSystemRevisionAction.java | 153 + .../filesystem/ui/ProjectSetSerializer.java | 125 + .../examples/filesystem/ui/PutAction.java | 51 + .../examples/filesystem/ui/PutOperation.java | 98 + .../examples/filesystem/ui/ReplaceAction.java | 25 + .../filesystem/ui/ShowHistoryAction.java | 56 + .../filesystem/ui/SynchronizeAction.java | 54 + .../filesystem/ui/SynchronizeWizard.java | 68 + .../localhistory/LocalHistoryParticipant.java | 88 + .../localhistory/LocalHistorySubscriber.java | 83 + .../localhistory/LocalHistorySyncInfo.java | 31 + .../LocalHistorySynchronizeWizard.java | 63 + .../localhistory/LocalHistoryVariant.java | 52 + .../LocalHistoryVariantComparator.java | 29 + .../localhistory/RevertAllOperation.java | 62 + .../team/examples/model/ModelContainer.java | 45 + .../team/examples/model/ModelFile.java | 27 + .../team/examples/model/ModelFolder.java | 21 + .../team/examples/model/ModelNature.java | 53 + .../team/examples/model/ModelObject.java | 69 + .../model/ModelObjectDefinitionFile.java | 185 + .../model/ModelObjectElementFile.java | 46 + .../team/examples/model/ModelProject.java | 44 + .../team/examples/model/ModelResource.java | 89 + .../team/examples/model/ModelWorkspace.java | 33 + .../model/mapping/ExampleModelProvider.java | 103 + .../model/mapping/ModResourceMapping.java | 110 + .../ModelContainerResourceMapping.java | 55 + .../examples/model/mapping/ModelMerger.java | 302 + .../model/mapping/ModelResourceMapping.java | 59 + .../model/mapping/MoeResourceMapping.java | 50 + .../examples/model/ui/AdapterFactory.java | 65 + .../ui/ModelNavigatorActionProvider.java | 193 + .../ui/ModelNavigatorContentProvider.java | 341 + .../model/ui/ModelNavigatorLabelProvider.java | 68 + .../model/ui/ModelWorkbenchAdapter.java | 104 + .../model/ui/NewModelProjectWizard.java | 132 + .../model/ui/mapping/CompareAdapter.java | 145 + .../ui/mapping/ModelMergeActionHandler.java | 123 + .../ui/mapping/ModelSyncActionProvider.java | 37 + .../ui/mapping/ModelSyncContentProvider.java | 420 + .../ui/mapping/ModelSyncLabelProvider.java | 131 + .../org/eclipse/team/examples/test/test1.java | 14 + .../it.mice.voila2.wizard.plugin/.classpath | 7 + .../it.mice.voila2.wizard.plugin/.project | 35 + .../META-INF/MANIFEST.MF | 27 + .../build.properties | 9 + .../help/wizard/styles/microService.html | 22 + .../MicroserviceApplicationSchema.jpg | Bin 0 -> 41481 bytes .../microservice_gateway_spa.html | 7 + .../wizard/styles/onlineTransactional.html | 39 + .../enterpriseWebApplication.gif | Bin 0 -> 22137 bytes .../enterpriseWebApplication.html | 21 + .../lightWeightWebApplication.gif | Bin 0 -> 18576 bytes .../lightWeightWebApplication.html | 20 + .../styles/onlineTransactional/mobile.gif | Bin 0 -> 22137 bytes .../styles/onlineTransactional/mobile.html | 21 + .../onlineTransactional/portalApplication.gif | Bin 0 -> 23685 bytes .../portalApplication.html | 18 + .../help/wizard/styles/soa.html | 26 + .../help/wizard/styles/traditionalBatch.html | 28 + .../icons/archetype.gif | Bin 0 -> 596 bytes .../icons/pattern.gif | Bin 0 -> 594 bytes .../icons/sample.gif | Bin 0 -> 983 bytes .../icons/stack.gif | Bin 0 -> 124 bytes .../icons/stack2.gif | Bin 0 -> 338 bytes .../icons/style.gif | Bin 0 -> 167 bytes .../icons/wizard.gif | Bin 0 -> 2689 bytes .../it.mice.voila2.wizard.plugin/plugin.xml | 138 + .../schema/computingStyle.exsd | 133 + .../schema/implementationPattern.exsd | 140 + .../schema/sampleArchetype.exsd | 184 + .../schema/technologyStack.exsd | 137 + .../src/dummy.uml | 6 + .../voila/wizard/plugin/ActivatorPlugin.java | 27 + .../voila/wizard/plugin/NewProjectWizard.java | 319 + .../plugin/NewProjectWizardStackPage.java | 368 + .../plugin/NewProjectWizardStylesPage.java | 266 + .../it/mice/voila/wizard/plugin/Policy.java | 100 + .../wizard/plugin/WizardAcceleoGenerator.java | 143 + .../voila/wizard/plugin/messages.properties | 27 + .../.classpath | 11 + .../.project | 50 + .../.settings/org.eclipse.jdt.core.prefs | 9 + .../META-INF/MANIFEST.MF | 24 + .../build.properties | 4 + .../voila2/cartridge/angular/Activator.java | 67 + .../angular/templates/angularJson.mtl | 137 + .../templates/assets/i18n/i18nEnJson.mtl | 127 + .../templates/assets/i18n/i18nItJson.mtl | 124 + .../cartridge/angular/templates/config.mtl | 15 + .../angular/templates/configMenu.mtl | 70 + .../detail/detailEntityComponentHtml.mtl | 182 + .../detail/detailEntityComponentScss.mtl | 27 + .../detail/detailEntityComponentTs.mtl | 311 + .../tabChildEntityComponentHtml.mtl | 181 + .../tabChildEntityComponentScss.mtl | 30 + .../tabChildEntityComponentTs.mtl | 166 + .../detail/tabs/tabsEntityComponentHtml.mtl | 43 + .../detail/tabs/tabsEntityComponentScss.mtl | 26 + .../detail/tabs/tabsEntityComponentTs.mtl | 83 + .../dialogListEntityComponentHtml.mtl | 61 + .../dialogListEntityComponentScss.mtl | 33 + .../dialogListEntityComponentTs.mtl | 88 + .../angular/templates/entityApiServiceTs.mtl | 83 + .../angular/templates/entityConstantTs.mtl | 56 + .../angular/templates/entityCriteriaTs.mtl | 58 + .../angular/templates/entityFormTs.mtl | 83 + .../templates/entityGroupApiServiceTs.mtl | 74 + .../angular/templates/entityInterfaceTs.mtl | 98 + .../angular/templates/entityModelTs.mtl | 123 + .../angular/templates/entityModuleTs.mtl | 103 + .../templates/entityRoutingModuleTs.mtl | 87 + .../cartridge/angular/templates/i18nEN.mtl | 91 + .../cartridge/angular/templates/i18nIT.mtl | 96 + .../cartridge/angular/templates/indexHtml.mtl | 41 + .../list/listEntityComponentHtml.mtl | 122 + .../list/listEntityComponentScss.mtl | 26 + .../list/listEntityComponentSpecTs.mtl | 46 + .../templates/list/listEntityComponentTs.mtl | 97 + .../angular/templates/mainAngularMS.mtl | 100 + .../templates/mapperConfigGeneralTs.mtl | 27 + .../angular/templates/mapperConfigTs.mtl | 39 + .../angular/templates/microserviceMenuTs.mtl | 82 + .../templates/microserviceModuleTs.mtl | 44 + .../templates/microserviceRoutingModuleTs.mtl | 58 + .../angular/templates/pagesRouting.mtl | 41 + .../search/searchEntityComponentHtml.mtl | 106 + .../search/searchEntityComponentScss.mtl | 26 + .../search/searchEntityComponentTs.mtl | 232 + .../templates/security/privilegeEnumTs.mtl | 41 + .../templates/security/privilegesTs.mtl | 32 + .../angular/templates/securityConfigTs.mtl | 46 + .../templates/sidebar-left-component.mtl | 59 + .../angular/templates/translateConfigTs.mtl | 34 + .../.classpath | 15 + .../.project | 50 + .../.settings/org.eclipse.jdt.core.prefs | 9 + .../META-INF/MANIFEST.MF | 26 + .../build.properties | 3 + .../libs/ant-1.7.1.jar | Bin 0 -> 1323005 bytes .../libs/ant-launcher-1.7.1.jar | Bin 0 -> 12143 bytes .../libs/antlr-2.7.7.jar | Bin 0 -> 445288 bytes .../libs/jalopy-1.5-RC3P1.jar | Bin 0 -> 960276 bytes .../plugin.xml | 4 + .../voila2/cartridge/library/Activator.java | 66 + .../cartridge/library/angular/entityUtils.mtl | 307 + .../cartridge/library/angular/folderUtils.mtl | 62 + .../library/angular/generalUtils.mtl | 91 + .../library/common/associationUtils.mtl | 111 + .../cartridge/library/common/entityUtils.mtl | 12 + .../cartridge/library/common/idUtils.mtl | 124 + .../cartridge/library/common/utilities.mtl | 22 + .../AbstractTypeReplacementStrategy.java | 36 + .../library/formatters/Beautifier.java | 35 + .../library/formatters/BeautifierContext.java | 144 + .../library/formatters/CharacterSequence.java | 225 + .../DefaultTypeReplacementStrategy.java | 38 + .../ImportBeautifierJalopyConstants.java | 46 + .../library/formatters/JavaBeautifier.java | 208 + .../formatters/JavaImportBeautifierImpl.java | 489 + .../library/formatters/PrettierFormatter.java | 120 + .../SimpleXmlFormatterPostProcessor.java | 48 + .../library/formatters/TypeContext.java | 141 + .../formatters/TypeReplacementStrategy.java | 33 + .../library/formatters/XmlFormatter.java | 46 + .../library/formatters/default-convention.xml | 347 + .../micegroup/voila2/cartridge/library/h2.mtl | 12 + .../library/javaservice/AssociationUtils.java | 1160 ++ .../javaservice/AuditableAttributes.java | 5 + .../library/javaservice/ChildManagement.java | 6 + .../javaservice/ConsoleMsgJavaUtils.java | 22 + .../library/javaservice/ConsoleUtils.java | 142 + .../library/javaservice/Constants.java | 5 + .../library/javaservice/CopyFolderUtils.java | 259 + .../library/javaservice/EntityCategory.java | 8 + .../javaservice/EntitySpecificFeature.java | 9 + .../library/javaservice/EntityUtils.java | 1013 + .../javaservice/ExceptionHandlerUtils.java | 166 + .../library/javaservice/FeatureUtils.java | 313 + .../library/javaservice/FileCopyUtils.java | 33 + .../library/javaservice/GeneralUtils.java | 169 + .../library/javaservice/GenericFeature.java | 8 + .../library/javaservice/JavaBeautifier.java | 250 + .../library/javaservice/LogFormatter.java | 108 + .../library/javaservice/LoggerUtils.java | 5 + .../javaservice/MicroServiceCategory.java | 5 + .../javaservice/MicroServiceUtils.java | 241 + .../library/javaservice/ModelCategory.java | 5 + .../library/javaservice/ModelUtils.java | 654 + .../library/javaservice/ParentSelection.java | 6 + .../library/javaservice/ProfileName.java | 8 + .../library/javaservice/PropertyUtils.java | 312 + .../library/javaservice/SecurityUtils.java | 66 + .../library/javaservice/SeverityLevels.java | 21 + .../javaservice/SpecificationFilterUtils.java | 54 + .../library/javaservice/StereotypeName.java | 52 + .../javaservice/StereotypePropertyName.java | 109 + .../library/javaservice/StereotypeUtils.java | 18 + .../library/javaservice/StringUtils.java | 162 + .../library/javaservice/SubjectAreaUtils.java | 43 + .../library/javaservice/TypeUtils.java | 538 + .../javaservice/wrapper/associationUtils.mtl | 210 + .../javaservice/wrapper/copyFolderUtils.mtl | 6 + .../javaservice/wrapper/entityUtils.mtl | 250 + .../wrapper/exceptionHandlerUtils.mtl | 7 + .../javaservice/wrapper/featureUtils.mtl | 58 + .../javaservice/wrapper/generalUtils.mtl | 23 + .../library/javaservice/wrapper/generate.mtl | 23 + .../javaservice/wrapper/microServiceUtils.mtl | 53 + .../javaservice/wrapper/modelUtils.mtl | 118 + .../javaservice/wrapper/propertyUtils.mtl | 93 + .../javaservice/wrapper/securityUtils.mtl | 23 + .../wrapper/specificationFilterUtils.mtl | 7 + .../javaservice/wrapper/stringUtils.mtl | 64 + .../javaservice/wrapper/subjectAreaUtils.mtl | 6 + .../library/javaservice/wrapper/typeUtils.mtl | 55 + .../cartridge/library/logger/consoleUtils.mtl | 10 + .../library/logger/severityLevel.mtl | 22 + .../library/microservice/classPathUtils.mtl | 15 + .../library/microservice/componentUtils.mtl | 24 + .../microservice/controllerMsUtils.mtl | 234 + .../library/microservice/fileNameUtils.mtl | 207 + .../library/microservice/folderUtils.mtl | 254 + .../microservice/folderUtilsSandBox.mtl | 32 + .../microservice/mainGeneratorUtils.mtl | 32 + .../microservice/microserviceUtils.mtl | 52 + .../microservice/modelAssemblerUtils.mtl | 94 + .../library/microservice/pomUtils.mtl | 517 + .../library/microservice/propertiesUtils.mtl | 72 + .../voila2/cartridge/library/mvnWrapper.mtl | 24 + .../voila2/cartridge/library/properties.mtl | 92 + .../library/springboot/associationUtils.mtl | 432 + .../library/springboot/auditable.mtl | 94 + .../library/springboot/cacheConfig.mtl | 45 + .../library/springboot/classNameUtils.mtl | 168 + .../library/springboot/constants.mtl | 57 + .../library/springboot/controllerJavaDoc.mtl | 36 + .../library/springboot/controllerUtils.mtl | 421 + .../cartridge/library/springboot/dtoUtils.mtl | 107 + .../library/springboot/entityKeyUtils.mtl | 201 + .../library/springboot/entityUtils.mtl | 436 + .../library/springboot/fileNameUtils.mtl | 380 + .../library/springboot/filterUtils.mtl | 145 + .../library/springboot/folderUtils.mtl | 151 + .../springboot/fullyQualifiedNamesUtils.mtl | 75 + .../library/springboot/importUtils.mtl | 834 + .../mailManagerServiceImplUtils.mtl | 228 + .../springboot/ms-web/applicationYML.mtl | 86 + .../ms-web/customSpringLiquibase.mtl | 51 + .../springboot/ms-web/db/genMsDBScript.mtl | 49 + .../ms-web/globalExceptionHandler.mtl | 18 + .../ms-web/liquibaseConfigurationBean.mtl | 58 + .../springboot/ms-web/mapperConfig.mtl | 36 + .../library/springboot/ms-web/msConfig.mtl | 23 + .../springboot/ms-web/msInterceptor.mtl | 38 + .../springboot/ms-web/msProperties.mtl | 20 + .../springboot/ms-web/securityConfig.mtl | 21 + .../library/springboot/packageUtils.mtl | 177 + .../cartridge/library/springboot/pomUtils.mtl | 173 + .../library/springboot/repositoryUtils.mtl | 15 + .../library/springboot/runtimeUtils.mtl | 107 + .../library/springboot/securityUtils.mtl | 15 + .../library/springboot/serviceImplUtils.mtl | 574 + .../voila2/cartridge/library/test.mtl | 14 + .../.classpath | 11 + .../.project | 50 + .../.settings/org.eclipse.jdt.core.prefs | 9 + .../META-INF/MANIFEST.MF | 24 + .../build.properties | 4 + .../voila2/cartridge/springjpa/Activator.java | 67 + .../templates/applicationResources.mtl | 101 + .../springjpa/templates/entity/controller.mtl | 87 + .../springjpa/templates/entity/criteria.mtl | 61 + .../entity/dataTransfer/entityDto.mtl | 42 + .../entity/dataTransfer/entityKeyDto.mtl | 32 + .../entity/dataTransfer/entityWriteDto.mtl | 40 + .../entity/dataTransfer/mailWriteDto.mtl | 40 + .../springjpa/templates/entity/entity.mtl | 141 + .../templates/entity/entityGeneration.mtl | 41 + .../springjpa/templates/entity/entityKey.mtl | 49 + .../templates/entity/modelAssembler.mtl | 31 + .../springjpa/templates/entity/repository.mtl | 55 + .../springjpa/templates/entity/resource.mtl | 55 + .../springjpa/templates/entity/service.mtl | 64 + .../templates/entity/serviceImpl.mtl | 95 + .../templates/mail/mailController.mtl | 40 + .../springjpa/templates/mail/mailDto.mtl | 30 + .../templates/mail/mailGeneration.mtl | 21 + .../templates/mail/mailManagerService.mtl | 30 + .../templates/mail/mailManagerServiceImpl.mtl | 59 + .../springjpa/templates/mainClass.mtl | 38 + .../springjpa/templates/mainSpringJpa.mtl | 68 + .../templates/mainStaticResources.mtl | 24 + .../cartridge/springjpa/templates/msWeb.mtl | 53 + .../springjpa/templates/pom/pomCoreModule.mtl | 49 + .../springjpa/templates/pom/pomGeneration.mtl | 11 + .../springjpa/templates/pom/pomImplModule.mtl | 46 + .../templates/pom/pomParentModule.mtl | 74 + .../springjpa/templates/pom/pomWebModule.mtl | 118 + .../templates/security/permission.mtl | 40 + .../security/sqlPermissionsScript.mtl | 93 + .../springjpa/templates/settings.mtl | 43 + .../springjpa/templates/utilsGeneration.mtl | 14 + .../.classpath | 11 + .../.project | 50 + .../.settings/org.eclipse.jdt.core.prefs | 9 + .../META-INF/MANIFEST.MF | 24 + .../build.properties | 4 + .../cartridge/springmongo/Activator.java | 67 + .../templates/applicationResources.mtl | 101 + .../springmongo/templates/cacheConfig.mtl | 45 + .../springmongo/templates/constants.mtl | 57 + .../templates/entity/controller.mtl | 97 + .../springmongo/templates/entity/criteria.mtl | 61 + .../entity/dataTransfer/entityDto.mtl | 31 + .../entity/dataTransfer/entityWriteDto.mtl | 23 + .../entity/dataTransfer/mailWriteDto.mtl | 40 + .../springmongo/templates/entity/entity.mtl | 148 + .../templates/entity/entityKey.mtl | 42 + .../templates/entity/modelAssembler.mtl | 31 + .../templates/entity/repository.mtl | 53 + .../springmongo/templates/entity/resource.mtl | 55 + .../springmongo/templates/entity/service.mtl | 61 + .../templates/entity/serviceImpl.mtl | 96 + .../templates/entitySpecificFiles.mtl | 37 + .../springmongo/templates/mainClass.mtl | 41 + .../springmongo/templates/mainSpringMongo.mtl | 71 + .../templates/ms-web/applicationYML.mtl | 73 + .../springmongo/templates/ms-web/msWeb.mtl | 53 + .../templates/pom/pomCoreModule.mtl | 68 + .../templates/pom/pomGeneration.mtl | 11 + .../templates/pom/pomImplModule.mtl | 46 + .../templates/pom/pomParentModule.mtl | 74 + .../templates/pom/pomWebModule.mtl | 108 + .../springmongo/templates/settings.mtl | 43 + .../springmongo/templates/staticResources.mtl | 24 + .../cartridge/springmongo/templates/test.mtl | 14 + .../utilities/controllerUtilsMongo.mtl | 1 + .../templates/utilities/entityUtilsMongo.mtl | 192 + .../utilities/repositoryUtilsMongo.mtl | 40 + .../utilities/serviceImplUtilsMongo.mtl | 97 + .../templates/utilities/serviceUtilsMongo.mtl | 26 + .../springmongo/templates/utilsGeneration.mtl | 14 + .../it.micegroup.voila2.toolbox/.classpath | 7 + .../it.micegroup.voila2.toolbox/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 10 + .../META-INF/MANIFEST.MF | 18 + .../build.properties | 6 + .../icons/commit.png | Bin 0 -> 2973 bytes .../icons/magicHat.png | Bin 0 -> 6452 bytes .../icons/magicHat@2x.png | Bin 0 -> 6192 bytes .../icons/sample.png | Bin 0 -> 332 bytes .../icons/sample@2x.png | Bin 0 -> 526 bytes .../icons/voila2Icon.png | Bin 0 -> 1013 bytes .../it.micegroup.voila2.toolbox/plugin.xml | 92 + .../toolbox/handlers/CommitSyncAction.java | 77 + .../toolbox/handlers/CommitSyncHandler.java | 37 + .../properties/ui/MultipleAttribute.xwt | 17 + .../properties/ui/MultipleEntity.xwt | 9 + .../ui/MultipleManyToOneRelation.xwt | 17 + .../properties/ui/MultipleNamedElement.xwt | 9 + .../properties/ui/SingleAttribute.xwt | 33 + plugin-version/properties/ui/SingleEntity.xwt | 26 + .../properties/ui/SingleManyToOneRelation.xwt | 31 + .../properties/ui/SingleNamedElement.xwt | 28 + 2115 files changed, 397334 insertions(+) create mode 100644 GF/.project create mode 100644 GF/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/.voilaProject create mode 100644 GF/gestioneferie-libs/.classpath create mode 100644 GF/gestioneferie-libs/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-libs/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-libs/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-libs/.project create mode 100644 GF/gestioneferie-libs/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-libs/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-libs/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-libs/.voilaProject create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/.classpath create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/.project create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/.voilaProject create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/pom.xml create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/entity/BaseEntity.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/exception/BaseExceptionHandler.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/repository/BaseRepository.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/request/BaseRequest.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/response/BaseResponse.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/response/BaseResponseEntityWrapper.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/service/BaseEntityService.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/Auditable.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/CacheConfig.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/Constants.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/JasperReportsCache.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/MessageSourceSettings.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/MessageUtil.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/SpringFoxConfig.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/application.yml create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res.properties create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res_en.properties create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res_it.properties create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/.classpath create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/.project create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/.voilaProject create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/pom.xml create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/src/main/java/it/micegroup/gestioneferie/libs/service/BaseServiceImpl.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-impl/src/main/resources/application.yml create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/.classpath create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/.project create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/.voilaProject create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/pom.xml create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/assembler/BaseModelAssembler.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/controller/BaseController.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/converter/BeanConverter.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/dto/BaseDto.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/filter/LogMdcFilter.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/JPAAuditConfig.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/KeycloakRealmRoleConverter.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/ResourceServerSecurityConfig.java create mode 100644 GF/gestioneferie-libs/gestioneferie-libs-web/src/main/resources/application.yml create mode 100644 GF/gestioneferie-libs/pom.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/.classpath create mode 100644 GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/.project create mode 100644 GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/.voilaProject create mode 100644 GF/gestioneferie-ms-configurazionepf/Dockerfile create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.classpath create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.project create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.voilaProject create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/mvnw create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/mvnw.cmd create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/pom.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DconfigPaPfUoHCriteria.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DconfigPaPianiFerieCriteria.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DpercAutPianFerieHCriteria.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DpercAutPianFeriePkCriteria.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DregolePianiFerieHCriteria.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DregolePianiFeriePkCriteria.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DconfigPaPfUoH.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DconfigPaPianiFerie.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DpercAutPianFerieH.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DpercAutPianFeriePk.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DregolePianiFerieH.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DregolePianiFeriePk.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DconfigPaPfUoHRepository.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DconfigPaPianiFerieRepository.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DpercAutPianFerieHRepository.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DpercAutPianFeriePkRepository.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DregolePianiFerieHRepository.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DregolePianiFeriePkRepository.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPfUoHService.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPianiFerieService.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFerieHService.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFeriePkService.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFerieHService.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFeriePkService.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.classpath create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.project create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.voilaProject create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/mvnw create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/mvnw.cmd create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/pom.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPfUoHServiceImpl.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPianiFerieServiceImpl.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFerieHServiceImpl.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFeriePkServiceImpl.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFerieHServiceImpl.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFeriePkServiceImpl.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/resources/ciao.txt create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.classpath create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.project create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.voilaProject create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/META-INF/MANIFEST.MF create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/pom.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/Main.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainFE.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainGenerator.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainGeneratorFE.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/main.mtl create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/mainFE.mtl create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.di create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.notation create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.uml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.di create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.notation create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.uml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/properties/voila2-default.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/voila2.log4j.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.classpath create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.project create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.core.resources.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.voilaProject create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/mvnw create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/mvnw.cmd create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/pom.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/GestioneferieMsConfigurazionepf.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/actuator/GestioneferieMsConfigurazionepfInterceptor.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/actuator/GestioneferieMsConfigurazionepfProperties.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/advices/GlobalExceptionHandler.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DconfigPaPfUoHModelAssembler.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DconfigPaPianiFerieModelAssembler.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DpercAutPianFerieHModelAssembler.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DpercAutPianFeriePkModelAssembler.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DregolePianiFerieHModelAssembler.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DregolePianiFeriePkModelAssembler.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/CustomSpringLiquibase.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/GestioneferieMsConfigurazionepfConfig.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/LiquibaseConfigurationBean.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/MapperConfig.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DconfigPaPfUoHController.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DconfigPaPianiFerieController.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DpercAutPianFerieHController.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DpercAutPianFeriePkController.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DregolePianiFerieHController.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DregolePianiFeriePkController.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPfUoHDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPfUoHWriteDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPianiFerieDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPianiFerieWriteDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFerieHDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFerieHWriteDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFeriePkDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFeriePkWriteDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFerieHDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFerieHWriteDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFeriePkDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFeriePkWriteDto.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/security/Permission.java create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/.h2.server.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/application-integration-test.yaml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/application.yml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources_en.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources_it.properties create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/changeset/initDataDb.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/sql/initDbScript.sql create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/update.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/logback-spring.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDconfigPaPfUoH.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDconfigPaPianiFerie.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDpercAutPianFerieH.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDpercAutPianFeriePk.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDregolePianiFerieH.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDregolePianiFeriePk.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDconfigPaPfUoHForDconfigPaPianiFerie.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDpercAutPianFerieHForDconfigPaPianiFerie.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDpercAutPianFerieHForDpercAutPianFeriePk.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDregolePianiFerieHForDregolePianiFeriePk.jrxml create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/images/mice.png create mode 100644 GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/templates/default.jrtx create mode 100644 GF/gestioneferie-ms-configurazionepf/mvnw create mode 100644 GF/gestioneferie-ms-configurazionepf/mvnw.cmd create mode 100644 GF/gestioneferie-ms-configurazionepf/pom.xml create mode 100644 GF/gestioneferie-ms-configurazionepf/s_start.sh create mode 100644 GF/gestioneferie-ms-configurazionepf/sql/permissions.sql create mode 100644 GF/gestioneferie-ms-pianificazioneferie/.classpath create mode 100644 GF/gestioneferie-ms-pianificazioneferie/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-ms-pianificazioneferie/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/.project create mode 100644 GF/gestioneferie-ms-pianificazioneferie/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-ms-pianificazioneferie/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-ms-pianificazioneferie/.voilaProject create mode 100644 GF/gestioneferie-ms-pianificazioneferie/Dockerfile create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/.classpath create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/.project create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/.voilaProject create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/mvnw create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/mvnw.cmd create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/pom.xml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DammtiPianiFerieCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DesitiRichAdesionePfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DmotivazioniAlertPfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DperiodiAmmtoPfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DpianiFerieCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DpianificFerieAmmtoCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DrichAdesionePfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DrichPianifFerieAmmtoCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DrichiesteApprovazPfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DsollecitiPfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DstatiAdesionePfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DstatiPianificFerieCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DstatiPianoFerieCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DstatiRichAdesionePfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DstatiRichApprovPfCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/criteria/DstatiRichiestaPfAmmtoCriteria.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DammtiPianiFerie.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DammtiPianiFerieKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DesitiRichAdesionePf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DesitiRichAdesionePfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DmotivazioniAlertPf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DmotivazioniAlertPfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DperiodiAmmtoPf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DperiodiAmmtoPfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DpianiFerie.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DpianificFerieAmmto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DpianificFerieAmmtoKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DrichAdesionePf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DrichAdesionePfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DrichPianifFerieAmmto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DrichPianifFerieAmmtoKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DrichiesteApprovazPf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DrichiesteApprovazPfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DsollecitiPf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DsollecitiPfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiAdesionePf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiAdesionePfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiPianificFerie.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiPianificFerieKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiPianoFerie.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiPianoFerieKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiRichAdesionePf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiRichAdesionePfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiRichApprovPf.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiRichApprovPfKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiRichiestaPfAmmto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/entity/DstatiRichiestaPfAmmtoKey.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DammtiPianiFerieRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DesitiRichAdesionePfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DmotivazioniAlertPfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DperiodiAmmtoPfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DpianiFerieRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DpianificFerieAmmtoRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DrichAdesionePfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DrichPianifFerieAmmtoRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DrichiesteApprovazPfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DsollecitiPfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DstatiAdesionePfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DstatiPianificFerieRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DstatiPianoFerieRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DstatiRichAdesionePfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DstatiRichApprovPfRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/repository/DstatiRichiestaPfAmmtoRepository.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DammtiPianiFerieService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DesitiRichAdesionePfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DmotivazioniAlertPfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DperiodiAmmtoPfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DpianiFerieService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DpianificFerieAmmtoService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DrichAdesionePfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DrichPianifFerieAmmtoService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DrichiesteApprovazPfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DsollecitiPfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiAdesionePfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiPianificFerieService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiPianoFerieService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiRichAdesionePfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiRichApprovPfService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-core/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiRichiestaPfAmmtoService.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/.classpath create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/.project create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/.voilaProject create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/mvnw create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/mvnw.cmd create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/pom.xml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DammtiPianiFerieServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DesitiRichAdesionePfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DmotivazioniAlertPfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DperiodiAmmtoPfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DpianiFerieServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DpianificFerieAmmtoServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DrichAdesionePfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DrichPianifFerieAmmtoServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DrichiesteApprovazPfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DsollecitiPfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiAdesionePfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiPianificFerieServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiPianoFerieServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiRichAdesionePfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiRichApprovPfServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/service/DstatiRichiestaPfAmmtoServiceImpl.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-impl/src/main/resources/ciao.txt create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/.classpath create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/.project create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/.voilaProject create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/META-INF/MANIFEST.MF create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/pom.xml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/model/Main.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/model/MainFE.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/model/MainGenerator.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/model/MainGeneratorFE.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/model/main.mtl create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/model/mainFE.mtl create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/resources/model/main_model.di create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/resources/model/main_model.notation create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/resources/model/main_model.uml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/resources/model/pianificazioneferie_model.di create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/resources/model/pianificazioneferie_model.notation create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/resources/model/pianificazioneferie_model.uml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/resources/properties/voila2-default.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-model/src/main/resources/voila2.log4j.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/.classpath create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/.mvn/wrapper/maven-wrapper.jar create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/.mvn/wrapper/maven-wrapper.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/.project create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/.settings/org.eclipse.jdt.core.prefs create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/.settings/org.eclipse.m2e.core.prefs create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/.voilaProject create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/mvnw create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/mvnw.cmd create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/pom.xml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/GestioneferieMsPianificazioneferie.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/actuator/GestioneferieMsPianificazioneferieInterceptor.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/actuator/GestioneferieMsPianificazioneferieProperties.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/advices/GlobalExceptionHandler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DammtiPianiFerieModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DesitiRichAdesionePfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DmotivazioniAlertPfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DperiodiAmmtoPfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DpianiFerieModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DpianificFerieAmmtoModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DrichAdesionePfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DrichPianifFerieAmmtoModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DrichiesteApprovazPfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DsollecitiPfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DstatiAdesionePfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DstatiPianificFerieModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DstatiPianoFerieModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DstatiRichAdesionePfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DstatiRichApprovPfModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/assembler/DstatiRichiestaPfAmmtoModelAssembler.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/config/CustomSpringLiquibase.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/config/GestioneferieMsPianificazioneferieConfig.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/config/LiquibaseConfigurationBean.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/config/MapperConfig.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DammtiPianiFerieController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DesitiRichAdesionePfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DmotivazioniAlertPfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DperiodiAmmtoPfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DpianiFerieController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DpianificFerieAmmtoController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DrichAdesionePfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DrichPianifFerieAmmtoController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DrichiesteApprovazPfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DsollecitiPfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DstatiAdesionePfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DstatiPianificFerieController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DstatiPianoFerieController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DstatiRichAdesionePfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DstatiRichApprovPfController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/controller/DstatiRichiestaPfAmmtoController.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DammtiPianiFerieDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DammtiPianiFerieKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DammtiPianiFerieWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DesitiRichAdesionePfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DesitiRichAdesionePfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DesitiRichAdesionePfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DmotivazioniAlertPfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DmotivazioniAlertPfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DmotivazioniAlertPfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DperiodiAmmtoPfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DperiodiAmmtoPfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DperiodiAmmtoPfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DpianiFerieDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DpianiFerieWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DpianificFerieAmmtoDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DpianificFerieAmmtoKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DpianificFerieAmmtoWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichAdesionePfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichAdesionePfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichAdesionePfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichPianifFerieAmmtoDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichPianifFerieAmmtoKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichPianifFerieAmmtoWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichiesteApprovazPfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichiesteApprovazPfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DrichiesteApprovazPfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DsollecitiPfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DsollecitiPfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DsollecitiPfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiAdesionePfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiAdesionePfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiAdesionePfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiPianificFerieDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiPianificFerieKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiPianificFerieWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiPianoFerieDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiPianoFerieKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiPianoFerieWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichAdesionePfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichAdesionePfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichAdesionePfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichApprovPfDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichApprovPfKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichApprovPfWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichiestaPfAmmtoDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichiestaPfAmmtoKeyDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/dto/DstatiRichiestaPfAmmtoWriteDto.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/java/it/micegroup/gestioneferie/pianificazioneferie/security/Permission.java create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/.h2.server.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/application-integration-test.yaml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/application.yml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/applicationResources.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/applicationResources_en.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/applicationResources_it.properties create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/db/liquibase/changeset/initDataDb.xml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/db/liquibase/sql/initDbScript.sql create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/db/liquibase/update.xml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/logback-spring.xml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDammtiPianiFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDesitiRichAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDmotivazioniAlertPf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDperiodiAmmtoPf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDpianiFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDpianificFerieAmmto.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDrichAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDrichPianifFerieAmmto.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDrichiesteApprovazPf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDsollecitiPf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDstatiAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDstatiPianificFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDstatiPianoFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDstatiRichAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDstatiRichApprovPf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/DetailDstatiRichiestaPfAmmto.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDammtiPianiFerieForDmotivazioniAlertPf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDammtiPianiFerieForDpianiFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDesitiRichAdesionePfForDrichAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDesitiRichAdesionePfForDstatiAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDperiodiAmmtoPfForDpianificFerieAmmto.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianiFerieForDstatiPianoFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianificFerieAmmtoForDesitiRichAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianificFerieAmmtoForDstatiPianificFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichAdesionePfForDpianiFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichAdesionePfForDstatiRichAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichPianifFerieAmmtoForDpianificFerieAmmto.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichPianifFerieAmmtoForDstatiRichiestaPfAmmto.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichiesteApprovazPfForDpianiFerie.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichiesteApprovazPfForDstatiRichApprovPf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDsollecitiPfForDrichAdesionePf.jrxml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/images/mice.png create mode 100644 GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/templates/default.jrtx create mode 100644 GF/gestioneferie-ms-pianificazioneferie/mvnw create mode 100644 GF/gestioneferie-ms-pianificazioneferie/mvnw.cmd create mode 100644 GF/gestioneferie-ms-pianificazioneferie/pom.xml create mode 100644 GF/gestioneferie-ms-pianificazioneferie/s_start.sh create mode 100644 GF/gestioneferie-ms-pianificazioneferie/sql/permissions.sql create mode 100644 GF/pom.xml create mode 100644 plugin-version/.gitignore create mode 100644 plugin-version/.merge_file_a08080 create mode 100644 plugin-version/.merge_file_a13816 create mode 100644 plugin-version/.merge_file_a15312 create mode 100644 plugin-version/.merge_file_a22264 create mode 100644 plugin-version/.project create mode 100644 plugin-version/.settings/ts.eclipse.ide.core.prefs create mode 100644 plugin-version/README - Sviluppatori.md create mode 100644 plugin-version/README.md create mode 100644 plugin-version/Schema.jpg create mode 100644 plugin-version/esclusioni_import.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/.classpath create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/.do_not_generate create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/.gitignore create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/.settings/org.eclipse.core.resources.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/.settings/ts.eclipse.ide.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/README.md create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/build.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/icons/sample.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/icons/sample@2x.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/libs/ant-1.7.1.jar create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/libs/ant-launcher-1.7.1.jar create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/libs/antlr-2.7.7.jar create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/libs/jalopy-1.5-RC3P1.jar create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/plugin.xml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/.browserslistrc create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/.editorconfig create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/.gitignore create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/README.md create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/angular.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/e2e/protractor.conf.js create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/e2e/src/app.e2e-spec.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/e2e/src/app.po.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/e2e/tsconfig.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/karma.conf.js create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/package.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/server.xml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/app-routing.module.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/app.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/app.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/app.module.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/auth-routing-module.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/auth.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/auth.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/auth.module.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/login/login.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/login/login.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/login/login.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/login/login.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/signup/signup.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/signup/signup.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/signup/signup.component.spec.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/auth/signup/signup.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/footer/footer.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/footer/footer.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/footer/footer.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/header/header.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/header/header.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/header/header.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/header/header.constant.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/layout.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/layout.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/layout.component.spec.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/layout.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/layout.module.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/sidebar-left/sidebar-left.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/sidebar-left/sidebar-left.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/sidebar-left/sidebar-left.component.spec.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/sidebar-right/sidebar-right.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/sidebar-right/sidebar-right.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/sidebar-right/sidebar-right.component.spec.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/layout/sidebar-right/sidebar-right.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/client-gender/client-age.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/client-gender/client-age.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/client-gender/client-age.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/homepage-menu.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/homepage.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/homepage.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/homepage.component.spec.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/homepage.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/list-last-sales/list-last-sales.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/list-last-sales/list-last-sales.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/list-last-sales/list-last-sales.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/order-chart/order-chart.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/order-chart/order-chart.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/order-chart/order-chart.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/sales-overview/sales-overview.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/sales-overview/sales-overview.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/sales-overview/sales-overview.component.spec.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/homepage/sales-overview/sales-overview.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/pages.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/pages.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/pages/pages.module.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/base/base-api.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/base/base-tab.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/base/base.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/base/base.enum.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/base/base.helper.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/base/base.interface.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/base/base.model.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/base/base.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/shared/interceptor/error.interceptor.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/theme/black-theme.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/theme/blue-theme.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/theme/italiaPA-theme.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/theme/theme-map.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/theme/theme.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/dialog/confirm-dialog.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/dialog/confirm-dialog/confirm-dialog.component.html create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/dialog/confirm-dialog/confirm-dialog.component.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/dialog/confirm-dialog/confirm-dialog.component.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/enum/page-status.enum.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/function/helper.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/pipe/utility-pipe.module.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/pipe/utility-pipe.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/services/buttons.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/services/locale.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/services/overlays.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/services/route.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/app/utilities/services/toastr.service.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/assets/.gitkeep create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/assets/i18n/en.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/assets/i18n/it.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/assets/logo-mice-black.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/environments/environment.prod.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/environments/environment.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/favicon.ico create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/main.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/polyfills.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/styles.scss create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/src/test.ts create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/tsconfig.app.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/tsconfig.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/tsconfig.spec.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/FrontEndFolder/tslint.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/applicationFile/application.yml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/applicationFile/libsCore/application.yml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/applicationFile/libsCore/i18n/res.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/applicationFile/libsCore/i18n/res_en.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/applicationFile/libsCore/i18n/res_it.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/applicationFile/libsWeb-Impl/application.yml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/dummyFolder/ciao.txt create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/.gitignore create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/.mvn/wrapper/maven-wrapper.jar create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/.mvn/wrapper/maven-wrapper.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/mvnw create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/mvnw.cmd create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/src/main/resources/META-INF/spring-configuration-metadata.json create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/gateway/src/main/resources/logback-spring.xml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/grafana-prometheus/README_prometheus_grafana.md create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/grafana-prometheus/grafana.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/grafana-prometheus/grafana2.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/grafana-prometheus/grafanaDropDown.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/grafana-prometheus/grafanaVariables.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/grafana-prometheus/grafanasetting.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/grafana-prometheus/prometheus.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/grafana-prometheus/url.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/libs/libsCore/libsCoreException/BaseExceptionHandler.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/libs/libsCore/libsCoreRequest/BaseRequest.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/libs/libsCore/libsCoreResponse/BaseResponseEntityWrapper.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/libs/libsCore/libsCoreUtil/MessageSourceSettings.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/libs/libsCore/libsCoreUtil/MessageUtil.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/libs/libsWeb/libsWebBeanConverter/BeanConverter.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/libs/libsWeb/libsWebFilter/LogMdcFilter.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/mainGeneratorTemplate/mainGenerator.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/meta-src-main-pom/pom.xml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/meta-src-main-pom/src/main/java/@GROUP_FIRST@/@GROUP_SECOND@/@ARTIFACT_NAME@/@BASE_PACKAGE_AS_FOLDER@/model/MainGeneratorFE.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/meta-src-main-pom/src/main/java/@GROUP_FIRST@/@GROUP_SECOND@/@ARTIFACT_NAME@/@BASE_PACKAGE_AS_FOLDER@/model/main.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/meta-src-main-pom/src/main/java/@GROUP_FIRST@/@GROUP_SECOND@/@ARTIFACT_NAME@/@BASE_PACKAGE_AS_FOLDER@/model/mainFE.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/meta-src-main-pom/src/main/resources/voila2.log4j.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/attachment-microservice/src/main/resources/model/@MS_NAME@_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/attachment-microservice/src/main/resources/model/@MS_NAME@_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/attachment-microservice/src/main/resources/model/@MS_NAME@_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/attachment-microservice/src/main/resources/model/main_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/attachment-microservice/src/main/resources/model/main_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/attachment-microservice/src/main/resources/model/main_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/business-microservice/src/main/resources/model/@MS_NAME@_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/business-microservice/src/main/resources/model/@MS_NAME@_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/business-microservice/src/main/resources/model/@MS_NAME@_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/business-microservice/src/main/resources/model/main_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/business-microservice/src/main/resources/model/main_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/business-microservice/src/main/resources/model/main_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/demo-microservice/src/main/resources/model/@MS_NAME@_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/demo-microservice/src/main/resources/model/@MS_NAME@_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/demo-microservice/src/main/resources/model/@MS_NAME@_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/demo-microservice/src/main/resources/model/main_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/demo-microservice/src/main/resources/model/main_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/demo-microservice/src/main/resources/model/main_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/notification-microservice/src/main/resources/model/@MS_NAME@_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/notification-microservice/src/main/resources/model/@MS_NAME@_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/notification-microservice/src/main/resources/model/@MS_NAME@_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/notification-microservice/src/main/resources/model/main_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/notification-microservice/src/main/resources/model/main_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/notification-microservice/src/main/resources/model/main_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/security-microservice/src/main/resources/model/@MS_NAME@_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/security-microservice/src/main/resources/model/@MS_NAME@_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/security-microservice/src/main/resources/model/@MS_NAME@_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/security-microservice/src/main/resources/model/main_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/security-microservice/src/main/resources/model/main_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/modelli-microservice-categorie/security-microservice/src/main/resources/model/main_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/msWebResources/application-integration-test.yaml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/msWebResources/db/liquibase/changeset/initDataDb.xml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/msWebResources/db/liquibase/update.xml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/msWebResources/logback-spring.xml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/BE-fileProj/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/BE-fileProj/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/BE-fileProj/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/BE-fileProj/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/MS-fileProj/.classpath create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/MS-fileProj/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/MS-fileProj/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/MS-model-fileProj/.classpath create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/MS-model-fileProj/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/MS-model-fileProj/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibs/.classpath create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibs/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibs/.mvn/wrapper/maven-wrapper.jar create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibs/.mvn/wrapper/maven-wrapper.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibs/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibs/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibs/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibs/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsCore/.classpath create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsCore/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsCore/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsCore/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsCore/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsImpl/.classpath create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsImpl/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsImpl/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsImpl/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsImpl/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsWeb/.classpath create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsWeb/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsWeb/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsWeb/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/projectForLibsWeb/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/root-fileProj/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/voilaProjForFE/.project create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/voilaProjForFE/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/projectFile/voilaProjForSandBox/.voilaProject create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/commonSettings/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/commonSettings/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/msCoreSettings/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/msCoreSettings/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/msImplSettings/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/msImplSettings/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/msSettings/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/msSettings/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/msWebSettings/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/settings/msWebSettings/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/resources/utilities/SpringFoxConfig.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/Activator.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/Main.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/VoilaFileWalks.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/.gitignore create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/app/appComponentHtml.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/app/appComponentTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/app/appModule.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/app/appRoutingModule.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/allEntityModule.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/baseComponent/baseComponentCss.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/baseComponent/baseComponentHtml.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/baseComponent/baseComponentModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/baseComponent/baseComponentRoutingModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/baseComponent/baseComponentSpecTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/baseComponent/baseComponentTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/baseEntityComponent/baseEntityComponentHtml.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/baseEntityComponent/baseEntityComponentTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/detail/detailComponentCss.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/detail/detailComponentHtml.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/detail/detailComponentSpecTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/detail/detailComponentTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/detail/detailModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/detail/detailRoutingModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/entityModule.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/entityRoute.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/list/listComponentCss.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/list/listComponentHtml.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/list/listComponentSpecTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/list/listComponentTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/list/listModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/list/listRoutingModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/listsearch/listAndSearchComponentCss.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/listsearch/listAndSearchComponentHtml.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/listsearch/listAndSearchComponentSpecTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/listsearch/listAndSearchComponentTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/listsearch/listAndSearchModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/listsearch/listAndSearchRoutingModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/search/searchComponentCss.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/search/searchComponentHtml.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/search/searchComponentSpecTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/search/searchComponentTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/search/searchForm.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/search/searchModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/search/searchRoutingModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/tabs/tabsComponentCss.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/tabs/tabsComponentHtml.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/tabs/tabsComponentSpecTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/tabs/tabsComponentTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/tabs/tabsModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/component/tabs/tabsRoutingModuleTs.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/criteria/entityCriteria.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/model/baseEntity.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/model/entity.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/model/form.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/service/baseService.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/angular/entity/service/entityService.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/eclipse/classpath.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/eclipse/main.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/eclipse/project.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/main.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseAttachmentController.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseClasses.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseController.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseDTO.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseEntity.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseEntityService.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseEntityServiceImpl.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseEntityServiceMongo.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseGeneration.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseModelAssembler.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseRepository.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseRepositoryMongo.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseResponse.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/base/baseServiceImpl.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/buildNdeploy.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerCompose.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerComposePrometheusGrafana.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerFile.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerFileFe.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerFileMysql.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerGeneration.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerPrometheus.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerPull.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/dockerPush.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/docker/grafanaIni.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/gateway/gateway.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/keycloak/initKeycloakSQL.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/libs/baseResponseEntityWrapper.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/main.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/mainGenerator/mainGenerator.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/manifestMF.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/pom/pom.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/properties/properties.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/security/jpaAuditConfig.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/security/keycloakRealmRoleConverter.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/microservice/security/resourceServerSecurityConfig.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/applicationProperties.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/datasource/.h2.server.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/gitignore.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/log4j2Properties.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/main.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/mvn/wrapper/MavenWrapperDownloader.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/mvn/wrapper/maven-wrapper.jar create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/mvn/wrapper/maven-wrapper.properties create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/mvnScript/mvnw create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/mvnScript/mvnw.cmd create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/accessDeniedHandlerBean.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/authController.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/authService.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/authServiceImpl.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/authenticationEntryPointBean.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/authenticationFilterBean.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/authenticationProviderBean.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/customMethodSecurityExpressionHandler.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/customMethodSecurityExpressionRoot.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/customPermissionEvaluator.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/initSecurityScriptSQL.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/initSecurityScriptXML.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/methodSecurityConfig.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/passwordEncoderBean.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/securityGeneration.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/securityMain.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/securityUserDetailRepository.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/securityUserDetailServiceImpl.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/userNotFoundException.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/security/webSecurityConfigurer.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/settings.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/updateLiquibase.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/utilities/SpringFoxConfig.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/core/springboot/webConfig.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/domain/domain_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/domain/domain_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/domain/domain_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/gcertimodel.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/gcertimodel.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/gcertimodel.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/helloWorld-model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/helloWorld-model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/helloWorld-model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/mail-model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/mail-model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/mail-model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/masterdetailfilter.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/masterdetailfilter.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/masterdetailfilter.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/orchestratore_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/orchestratore_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/orchestratore_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/profile/VNprofile.profile.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/profile/VNprofile.profile.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/profile/VNprofile.profile.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/profile/model.profile.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/profile/model.profile.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/profile/model.profile.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/attachment_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/attachment_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/attachment_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/feature_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/feature_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/feature_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/mail_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/mail_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/mail_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/security_model.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/security_model.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/reuse/security_model.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/samplemasterdetail.di create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/samplemasterdetail.notation create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/model/samplemasterdetail.uml create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/cache.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/folderUtils.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/images/mice.png create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/javaservice/ReportUtils.java create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/listReport.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/main.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/reportUtils.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/reports.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/subReports.mtl create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/templates/default.jrtx create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/tasks/.gitignore create mode 100644 plugin-version/it.mice.voila2.acceleogenerator/tasks/mainTarget.xml create mode 100644 plugin-version/it.mice.voila2.architecture.properties/.classpath create mode 100644 plugin-version/it.mice.voila2.architecture.properties/.project create mode 100644 plugin-version/it.mice.voila2.architecture.properties/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.architecture.properties/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.architecture.properties/README.md create mode 100644 plugin-version/it.mice.voila2.architecture.properties/build.properties create mode 100644 plugin-version/it.mice.voila2.architecture.properties/icon.ico create mode 100644 plugin-version/it.mice.voila2.architecture.properties/plugin.xml create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/model.ctx create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MemberEnd.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleAttribute.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleBinding.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleDomainType.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleEntity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleExternalEntity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleManyToOneRelation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleNamedElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleOneToOneRelation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleOperation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultiplePattern.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultiplePersistentEntity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleRelation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleService.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleSubjectArea.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleTransformation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/MultipleTransientEntity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleAttribute.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleBinding.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleComponent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleDomainType.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleEntity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleExternalEntity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleManyToOneRelation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleModel.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleNamedElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleOneToOneRelation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleOperation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SinglePattern.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SinglePersistentEntity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleRelation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleService.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleSubjectArea.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleTransformation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/ui/SingleTransientEntity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/UML.ctx create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/AsyncMessage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MemberEnd.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/Metaclass.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAbstraction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAcceptCallAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAcceptEventAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActionExecutionSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActionInputPin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActivity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActivityEdge.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActivityFinalNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActivityNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActivityParameterNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActivityPartition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleActor.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAddStructuralFeatureValueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAddVariableValueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAnyReceiveEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleArtifact.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAssociation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleAssociationClass.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleBehavior.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleBehaviorExecutionSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleBehavioralFeature.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleBehavioredClassifier.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleBroadcastSignalAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCallAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCallBehaviorAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCallEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCallOperationAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCentralBufferNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleChangeEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleClass.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleClassifier.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleClassifierTemplateParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleClearAssociationAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleClearStructuralFeatureAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleClearVariableAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCollaboration.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCollaborationUse.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCombinedFragment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCommunicationPath.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleComponent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleComponentRealization.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleConditionalNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleConnectableElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleConnectionPointReference.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleConnector.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleConnectorEnd.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleConsiderIgnoreFragment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleContinuation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleControlFlow.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleControlNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCreateLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCreateLinkObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCreateObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleCreationEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDataStoreNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDataType.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDecisionNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDependency.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDeployedArtifact.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDeployment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDeploymentSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDeploymentTarget.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDestroyLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDestroyObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDestructionOccurrenceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDevice.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDuration.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDurationConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDurationInterval.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleDurationObservation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleElementImport.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleEncapsulatedClassifier.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleEnumeration.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleEnumerationLiteral.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExecutableNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExecutionEnvironment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExecutionOccurrenceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExecutionSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExpansionNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExpansionRegion.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExpression.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExtend.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExtension.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExtensionEnd.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleExtensionPoint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleFeature.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleFinalNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleFinalState.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleFlowFinalNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleForkNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleFunctionBehavior.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleGate.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleGeneralOrdering.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleGeneralization.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleGeneralizationSet.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInclude.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInformationFlow.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInformationItem.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInitialNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInputPin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInstanceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInstanceValue.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInteraction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInteractionConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInteractionFragment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInteractionOperand.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInteractionUse.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInterface.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInterfaceRealization.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInterval.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleIntervalConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleInvocationAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleJoinNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLifeline.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLinkEndCreationData.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLinkEndDestructionData.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLiteralBoolean.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLiteralInteger.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLiteralNull.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLiteralSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLiteralString.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLiteralUnlimitedNatural.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleLoopNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleManifestation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleMergeNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleMessage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleMessageEnd.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleMessageEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleMessageOccurrenceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleModel.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleMultiplicityElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleNamedElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleNamespace.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleObjectFlow.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleObjectNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleObservation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleOccurrenceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleOpaqueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleOpaqueBehavior.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleOpaqueExpression.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleOperation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleOutputPin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePackage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePackageImport.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePackageMerge.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePackageableElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleParameterSet.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePartDecomposition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePort.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePrimitiveType.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleProfile.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleProfileApplication.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleProperty.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleProtocolStateMachine.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleProtocolTransition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultiplePseudostate.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleRaiseExceptionAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReadExtentAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReadIsClassifiedObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReadLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReadLinkObjectEndAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReadLinkObjectEndQualifierAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReadSelfAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReadStructuralFeatureAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReadVariableAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleRealLiteral.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleRealization.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReception.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReclassifyObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleRedefinableElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleRedefinableTemplateSignature.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReduceAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleRegion.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleRemoveStructuralFeatureValueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleRemoveVariableValueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleReplyAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleSendObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleSendSignalAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleSequenceNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleSignal.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleSignalEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStartClassifierBehaviorAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStartObjectBehaviorAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleState.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStateInvariant.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStateMachine.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStereotype.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStringExpression.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStructuralFeature.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStructuralFeatureAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStructuredActivityNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleStructuredClassifier.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleSubstitution.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTestIdentityAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTimeConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTimeEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTimeExpression.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTimeInterval.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTimeObservation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTransition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTrigger.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleType.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleTypedElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleUnmarshallAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleUsage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleUseCase.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleValuePin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleValueSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleValueSpecificationAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleVariable.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleVariableAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleVertex.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleWriteLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleWriteStructuralFeatureAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/MultipleWriteVariableAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/ProfileDefinitions.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/ReplyMessage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAbstraction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAcceptCallAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAcceptEventAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActionExecutionSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActionInputPin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActivity.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActivityEdge.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActivityFinalNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActivityNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActivityParameterNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActivityPartition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleActor.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAddStructuralFeatureValueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAddVariableValueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAnyReceiveEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleArtifact.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAssociation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAssociationClass.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleAsyncMessage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleBehavior.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleBehaviorExecutionSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleBehavioralFeature.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleBehavioredClassifier.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleBroadcastSignalAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCallAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCallBehaviorAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCallEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCallOperationAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCentralBufferNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleChangeEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleClass.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleClassifier.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleClassifierTemplateParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleClause.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleClearAssociationAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleClearStructuralFeatureAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleClearVariableAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCollaboration.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCollaborationUse.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCombinedFragment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleComment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCommunicationPath.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleComponent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleComponentRealization.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleConditionalNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleConnectableElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleConnectableElementTemplateParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleConnectionPointReference.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleConnector.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleConnectorEnd.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleConsiderIgnoreFragment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleContinuation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleControlFlow.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleControlNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCreateLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCreateLinkObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCreateObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleCreationEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDataStoreNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDataType.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDatatypeInstance.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDecisionNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDependency.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDeployedArtifact.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDeployment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDeploymentSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDeploymentTarget.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDestroyLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDestroyObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDestructionOccurrenceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDevice.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDuration.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDurationConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDurationInterval.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleDurationObservation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleElementAppliedComments.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleElementImport.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleElementOwnedComments.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleEncapsulatedClassifier.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleEnumeration.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleEnumerationLiteral.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExceptionHandler.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExecutableNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExecutionEnvironment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExecutionOccurrenceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExecutionSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExpansionNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExpansionRegion.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExpression.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExtend.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExtension.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExtensionEnd.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleExtensionPoint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleFeature.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleFinalNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleFinalState.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleFlowFinalNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleForkNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleFunctionBehavior.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleGate.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleGeneralOrdering.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleGeneralization.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleGeneralizationSet.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleImage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInclude.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInformationFlow.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInformationItem.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInitialNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInputPin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInstanceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInstanceValue.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInteraction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInteractionConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInteractionFragment.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInteractionOperand.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInteractionUse.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInterface.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInterfaceRealization.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInterruptibleActivityRegion.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInterval.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleIntervalConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleInvocationAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleJoinNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLifeline.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLinkEndCreationData.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLinkEndData.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLinkEndDestructionData.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLiteralBoolean.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLiteralInteger.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLiteralNull.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLiteralSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLiteralString.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLiteralUnlimitedNatural.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleLoopNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleManifestation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleMergeNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleMessage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleMessageEnd.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleMessageEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleMessageOccurrenceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleModel.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleMultiplicityElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleNamedElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleNamespace.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleObjectFlow.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleObjectNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleObservation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleOccurrenceSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleOpaqueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleOpaqueBehavior.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleOpaqueExpression.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleOperation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleOperationTemplateParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleOutputPin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePackage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePackageImport.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePackageMerge.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePackageProfile.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePackageableElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleParameterSet.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePartDecomposition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePort.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePrimitiveType.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleProfile.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleProfileApplication.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleProfileDefinition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleProperty.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleProtocolStateMachine.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleProtocolTransition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SinglePseudostate.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleQualifierValue.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleRaiseExceptionAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReadExtentAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReadIsClassifiedObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReadLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReadLinkObjectEndAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReadLinkObjectEndQualifierAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReadSelfAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReadStructuralFeatureAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReadVariableAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleRealLiteral.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleRealization.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReception.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReclassifyObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleRedefinableElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleRedefinableTemplateSignature.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReduceAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleRegion.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleRemoveStructuralFeatureValueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleRemoveVariableValueAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReplyAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleReplyMessage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleSendObjectAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleSendSignalAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleSequenceNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleSignal.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleSignalEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleSlot.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStartClassifierBehaviorAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStartObjectBehaviorAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleState.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStateInvariant.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStateMachine.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStereotype.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStringExpression.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStructuralFeature.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStructuralFeatureAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStructuredActivityNode.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleStructuredClassifier.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleSubstitution.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleSyncMessage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTemplateBinding.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTemplateParameter.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTemplateParameterSubstitution.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTestIdentityAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTimeConstraint.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTimeEvent.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTimeExpression.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTimeInterval.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTimeObservation.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTransition.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTrigger.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleType.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleTypedElement.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleUnmarshallAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleUsage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleUseCase.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleValuePin.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleValueSpecification.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleValueSpecificationAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleVariable.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleVariableAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleVertex.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleWriteLinkAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleWriteStructuralFeatureAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SingleWriteVariableAction.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/ui/SyncMessage.xwt create mode 100644 plugin-version/it.mice.voila2.architecture.properties/properties/umlref/uml.querySet create mode 100644 plugin-version/it.mice.voila2.architecture.properties/src/it/mice/voila2/architecture/properties/Activator.java create mode 100644 plugin-version/it.mice.voila2.architecture.properties/src/it/mice/voila2/architecture/properties/internal/ContextConfigurator.java create mode 100644 plugin-version/it.mice.voila2.architecture.properties/src/it/mice/voila2/helpers/VoilaAssociationHelper.java create mode 100644 plugin-version/it.mice.voila2.architecture/.classpath create mode 100644 plugin-version/it.mice.voila2.architecture/.project create mode 100644 plugin-version/it.mice.voila2.architecture/.settings/org.eclipse.core.resources.prefs create mode 100644 plugin-version/it.mice.voila2.architecture/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.architecture/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.architecture/README.md create mode 100644 plugin-version/it.mice.voila2.architecture/build.properties create mode 100644 plugin-version/it.mice.voila2.architecture/icon.ico create mode 100644 plugin-version/it.mice.voila2.architecture/palette/palette.paletteconfiguration create mode 100644 plugin-version/it.mice.voila2.architecture/palette/palette_Semantic.elementtypesconfigurations create mode 100644 plugin-version/it.mice.voila2.architecture/palette/palette_UI.elementtypesconfigurations create mode 100644 plugin-version/it.mice.voila2.architecture/palette/style/voila.css create mode 100644 plugin-version/it.mice.voila2.architecture/plugin.xml create mode 100644 plugin-version/it.mice.voila2.architecture/src/.persist create mode 100644 plugin-version/it.mice.voila2.architecture/voila2.architecture create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/.classpath create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/.gitignore create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/.project create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/build.properties create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/help/styles/stacks/image.png create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/help/styles/stacks/spring.ios.android.html create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/help/styles/stacks/spring.ios.android/complete.html create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/help/styles/stacks/spring.ios.android/demostart.html create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/help/styles/stacks/spring.ios.android/image.png create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/plugin.properties create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/plugin.xml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/complete/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/complete/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/complete/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demosogei/@PROJECT_ID@_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demosogei/model.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demosogei/model.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demosogei/model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demosogei/reuse_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demosogei/src/workflow/workflow.oaw create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demostart/@PROJECT_ID@_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demostart/model.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demostart/model.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demostart/model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/demostart/src/workflow/workflow.oaw create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/.classpath create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/.gitignore create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/.project create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/.settings/org.eclipse.core.resources.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/.settings/org.eclipse.jdt.ui.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/.settings/ts.eclipse.ide.core.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/README.md create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/angularRun.png create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/angularrun.cmd create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/build.properties create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/buildRun.png create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/buildRun2.png create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/buildandrun.cmd create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/buildandrun.sh create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.classpath create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.project create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.core.resources.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.wst.common.component create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.wst.validation.prefs create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/.voilaIgnore create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/pom.xml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/Main.java create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/Main.java.lost create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/MainGenerator.java create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/main.mtl create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/domain/domain_model.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/domain/domain_model.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/domain/domain_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/profile/Voila2Profile.profile.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/profile/Voila2Profile.profile.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/profile/Voila2Profile.profile.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/attachment_model.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/attachment_model.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/attachment_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/mail_model.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/mail_model.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/mail_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/main_model.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/main_model.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/main_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/security_model.di create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/security_model.notation create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/reuse/security_model.uml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/modules/@PROJECT_ID@-model/src/main/resources/voila2.log4j.properties create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/resources/root/pom.xml create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/src/resources/it/mice/voila/oawarchetype/mobile/plugin/WorkflowComplete.java create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/src/resources/it/mice/voila/oawarchetype/mobile/plugin/workflowComplete.mtl create mode 100644 plugin-version/it.mice.voila2.ep.mobile.enterprise.solution.plugin/src/resources/voila.log4j.properties create mode 100644 plugin-version/it.mice.voila2.feature.core/.project create mode 100644 plugin-version/it.mice.voila2.feature.core/build.properties create mode 100644 plugin-version/it.mice.voila2.feature.core/feature.xml create mode 100644 plugin-version/it.mice.voila2.feature.microservice/.project create mode 100644 plugin-version/it.mice.voila2.feature.microservice/build.properties create mode 100644 plugin-version/it.mice.voila2.feature.microservice/feature.xml create mode 100644 plugin-version/it.mice.voila2.feature.mobile/.project create mode 100644 plugin-version/it.mice.voila2.feature.mobile/build.properties create mode 100644 plugin-version/it.mice.voila2.feature.mobile/feature.xml create mode 100644 plugin-version/it.mice.voila2.feature.mongo/.project create mode 100644 plugin-version/it.mice.voila2.feature.mongo/build.properties create mode 100644 plugin-version/it.mice.voila2.feature.mongo/feature.xml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/.classpath create mode 100644 plugin-version/it.mice.voila2.microservice.solution/.project create mode 100644 plugin-version/it.mice.voila2.microservice.solution/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.microservice.solution/build.properties create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/image.png create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/microservice.gateway.spa.html create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/microservice.gateway.spa.nosql/MicroserviceApplicationSchema.jpg create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/microservice.gateway.spa.nosql/complete.html create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/microservice.gateway.spa/MicroserviceApplicationSchema.jpg create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/microservice.gateway.spa/complete.html create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/spring.ios.android/complete.html create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/spring.ios.android/demostart.html create mode 100644 plugin-version/it.mice.voila2.microservice.solution/help/styles/stacks/spring.ios.android/image.png create mode 100644 plugin-version/it.mice.voila2.microservice.solution/plugin.properties create mode 100644 plugin-version/it.mice.voila2.microservice.solution/plugin.xml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/complete/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/Main.java create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/complete/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/Main.java.lost create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/complete/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/MainGenerator.java create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/complete/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/main.mtl create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/complete/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.di create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/complete/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.notation create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/complete/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demosogei/@PROJECT_ID@_model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demosogei/model.di create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demosogei/model.notation create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demosogei/model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demosogei/reuse_model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demosogei/src/workflow/workflow.oaw create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demostart/@PROJECT_ID@_model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demostart/model.di create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demostart/model.notation create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demostart/model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/demostart/src/workflow/workflow.oaw create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/half/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/Main.java create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/half/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/Main.java.lost create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/half/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/MainGenerator.java create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/half/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/main.mtl create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/half/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.di create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/half/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.notation create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/half/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/nosqlms/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/Main.java create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/nosqlms/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/Main.java.lost create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/nosqlms/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/MainGenerator.java create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/nosqlms/modules/@PROJECT_ID@-model/src/main/java/@BASE_PACKAGE_AS_FOLDER@/model/main.mtl create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/nosqlms/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.di create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/nosqlms/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.notation create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/nosqlms/modules/@PROJECT_ID@-model/src/main/resources/model/@PROJECT_ID@_model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/.classpath create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/.gitignore create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/.project create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/.settings/org.eclipse.core.resources.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/.settings/org.eclipse.jdt.ui.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/.settings/org.eclipse.m2e.core.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/.settings/ts.eclipse.ide.core.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/README.md create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/angularRun.png create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/angularrun.cmd create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/build.properties create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/buildRun.png create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/buildRun2.png create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/buildandrun.cmd create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/buildandrun.sh create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/.classpath create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/.project create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.core.resources.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.wst.common.component create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/.settings/org.eclipse.wst.validation.prefs create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/.voilaIgnore create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/pom.xml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/domain/domain_model.di create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/domain/domain_model.notation create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/domain/domain_model.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/profile/Voila2Profile.profile.di create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/profile/Voila2Profile.profile.notation create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/src/main/resources/model/profile/Voila2Profile.profile.uml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/modules/@PROJECT_ID@-model/src/main/resources/voila2.log4j.properties create mode 100644 plugin-version/it.mice.voila2.microservice.solution/resources/root/pom.xml create mode 100644 plugin-version/it.mice.voila2.microservice.solution/src/resources/it/mice/voila2/microservice/solution/NoSqlMicroservices.java create mode 100644 plugin-version/it.mice.voila2.microservice.solution/src/resources/it/mice/voila2/microservice/solution/WorkflowComplete.java create mode 100644 plugin-version/it.mice.voila2.microservice.solution/src/resources/it/mice/voila2/microservice/solution/noSqlMicroservices.mtl create mode 100644 plugin-version/it.mice.voila2.microservice.solution/src/resources/it/mice/voila2/microservice/solution/workflowComplete.mtl create mode 100644 plugin-version/it.mice.voila2.microservice.solution/src/resources/voila.log4j.properties create mode 100644 plugin-version/it.mice.voila2.plugin/.classpath create mode 100644 plugin-version/it.mice.voila2.plugin/.project create mode 100644 plugin-version/it.mice.voila2.plugin/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.plugin/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.plugin/build.properties create mode 100644 plugin-version/it.mice.voila2.plugin/icons/sample.png create mode 100644 plugin-version/it.mice.voila2.plugin/icons/sample@2x.png create mode 100644 plugin-version/it.mice.voila2.plugin/plugin.xml create mode 100644 plugin-version/it.mice.voila2.plugin/src/it/mice/voila2/plugin/Activator.java create mode 100644 plugin-version/it.mice.voila2.plugin/src/it/mice/voila2/plugin/handlers/VoilaGenerationHandler.java create mode 100644 plugin-version/it.mice.voila2.plugin/src/it/mice/voila2/plugin/transformer/BasicTransformer.java create mode 100644 plugin-version/it.mice.voila2.plugin/src/it/mice/voila2/plugin/transformer/StaticResources.java create mode 100644 plugin-version/it.mice.voila2.plugin/src/it/mice/voila2/plugin/utils/Utility.java create mode 100644 plugin-version/it.mice.voila2.profile/.classpath create mode 100644 plugin-version/it.mice.voila2.profile/.project create mode 100644 plugin-version/it.mice.voila2.profile/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.profile/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.profile/Voila2Profile.profile.di create mode 100644 plugin-version/it.mice.voila2.profile/Voila2Profile.profile.notation create mode 100644 plugin-version/it.mice.voila2.profile/Voila2Profile.profile.uml create mode 100644 plugin-version/it.mice.voila2.profile/build.properties create mode 100644 plugin-version/it.mice.voila2.profile/plugin.xml create mode 100644 plugin-version/it.mice.voila2.profile/src/.persist create mode 100644 plugin-version/it.mice.voila2.site/.project create mode 100644 plugin-version/it.mice.voila2.site/site.xml create mode 100644 plugin-version/it.mice.voila2.sync.plugin/.classpath create mode 100644 plugin-version/it.mice.voila2.sync.plugin/.project create mode 100644 plugin-version/it.mice.voila2.sync.plugin/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.mice.voila2.sync.plugin/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.sync.plugin/build.properties create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/full/obj/fldr_obj.gif create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/full/obj/mod_obj.gif create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/full/obj/moe_obj.gif create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/full/obj/prj_obj.gif create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/full/obj/root_obj.gif create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/full/wizards/fsicon_wiz.gif create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/full/wizards/synced.gif create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/full/wizban/newconnect_wizban.png create mode 100644 plugin-version/it.mice.voila2.sync.plugin/icons/sample.gif create mode 100644 plugin-version/it.mice.voila2.sync.plugin/plugin.xml create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/it/mice/voila2/sync/plugin/Activator.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/CRCUtils.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/FileModificationValidator.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/FileSystemOperations.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/FileSystemProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/FileSystemProviderType.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/Policy.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/StreamUtil.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/history/FileSystemFileRevision.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/history/FileSystemHistory.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/history/FileSystemHistoryProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/messages.properties create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemMergeContext.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemRemoteTree.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemResourceVariant.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemSubscriber.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemSyncInfo.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/subscriber/FileSystemThreeWaySynchronizer.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/CompoundResourceTraversal.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/ConfigurationWizard.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/DisconnectAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemHistoryPage.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemHistoryPageSource.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemMainPage.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemOperation.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemPropertiesPage.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemRevisionEditorInput.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemSynchronizeParticipant.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FileSystemTableProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FixRecordsAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/FixRecordsOperation.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/GetAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/GetOperation.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/ModelPutAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/OpenFileSystemRevisionAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/ProjectSetSerializer.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/PutAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/PutOperation.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/ShowHistoryAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/SynchronizeAction.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/filesystem/ui/SynchronizeWizard.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/localhistory/LocalHistoryParticipant.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/localhistory/LocalHistorySubscriber.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/localhistory/LocalHistorySyncInfo.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/localhistory/LocalHistorySynchronizeWizard.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/localhistory/LocalHistoryVariant.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/localhistory/LocalHistoryVariantComparator.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/localhistory/RevertAllOperation.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelContainer.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelFile.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelFolder.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelNature.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelObject.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelObjectDefinitionFile.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelObjectElementFile.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelProject.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelResource.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ModelWorkspace.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/mapping/ExampleModelProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/mapping/ModResourceMapping.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/mapping/ModelContainerResourceMapping.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/mapping/ModelMerger.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/mapping/ModelResourceMapping.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/mapping/MoeResourceMapping.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/AdapterFactory.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/ModelNavigatorActionProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/ModelNavigatorContentProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/ModelNavigatorLabelProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/ModelWorkbenchAdapter.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/NewModelProjectWizard.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/mapping/CompareAdapter.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/mapping/ModelMergeActionHandler.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/mapping/ModelSyncActionProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/mapping/ModelSyncContentProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/model/ui/mapping/ModelSyncLabelProvider.java create mode 100644 plugin-version/it.mice.voila2.sync.plugin/src/org/eclipse/team/examples/test/test1.java create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/.classpath create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/.project create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/build.properties create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/microService.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/microService/MicroserviceApplicationSchema.jpg create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/microService/microservice_gateway_spa.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional/enterpriseWebApplication.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional/enterpriseWebApplication.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional/lightWeightWebApplication.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional/lightWeightWebApplication.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional/mobile.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional/mobile.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional/portalApplication.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/onlineTransactional/portalApplication.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/soa.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/help/wizard/styles/traditionalBatch.html create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/icons/archetype.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/icons/pattern.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/icons/sample.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/icons/stack.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/icons/stack2.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/icons/style.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/icons/wizard.gif create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/plugin.xml create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/schema/computingStyle.exsd create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/schema/implementationPattern.exsd create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/schema/sampleArchetype.exsd create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/schema/technologyStack.exsd create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/src/dummy.uml create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/src/it/mice/voila/wizard/plugin/ActivatorPlugin.java create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/src/it/mice/voila/wizard/plugin/NewProjectWizard.java create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/src/it/mice/voila/wizard/plugin/NewProjectWizardStackPage.java create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/src/it/mice/voila/wizard/plugin/NewProjectWizardStylesPage.java create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/src/it/mice/voila/wizard/plugin/Policy.java create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/src/it/mice/voila/wizard/plugin/WizardAcceleoGenerator.java create mode 100644 plugin-version/it.mice.voila2.wizard.plugin/src/it/mice/voila/wizard/plugin/messages.properties create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/.classpath create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/.project create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/build.properties create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/Activator.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/angularJson.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/assets/i18n/i18nEnJson.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/assets/i18n/i18nItJson.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/config.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/configMenu.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/detailEntityComponentHtml.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/detailEntityComponentScss.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/detailEntityComponentTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/tabs/tabChildEntity/tabChildEntityComponentHtml.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/tabs/tabChildEntity/tabChildEntityComponentScss.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/tabs/tabChildEntity/tabChildEntityComponentTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/tabs/tabsEntityComponentHtml.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/tabs/tabsEntityComponentScss.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/detail/tabs/tabsEntityComponentTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/dialog/dialogListEntity/dialogListEntityComponentHtml.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/dialog/dialogListEntity/dialogListEntityComponentScss.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/dialog/dialogListEntity/dialogListEntityComponentTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityApiServiceTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityConstantTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityCriteriaTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityFormTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityGroupApiServiceTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityInterfaceTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityModelTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityModuleTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/entityRoutingModuleTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/i18nEN.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/i18nIT.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/indexHtml.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentHtml.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentScss.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentSpecTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mainAngularMS.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mapperConfigGeneralTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mapperConfigTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceMenuTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceModuleTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceRoutingModuleTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/pagesRouting.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentHtml.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentScss.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/security/privilegeEnumTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/security/privilegesTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/securityConfigTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/sidebar-left-component.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/translateConfigTs.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/.classpath create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/.project create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/build.properties create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/libs/ant-1.7.1.jar create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/libs/ant-launcher-1.7.1.jar create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/libs/antlr-2.7.7.jar create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/libs/jalopy-1.5-RC3P1.jar create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/plugin.xml create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/Activator.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/entityUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/folderUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/generalUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/associationUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/entityUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/idUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/utilities.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/AbstractTypeReplacementStrategy.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/Beautifier.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/BeautifierContext.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/CharacterSequence.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/DefaultTypeReplacementStrategy.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/ImportBeautifierJalopyConstants.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/JavaBeautifier.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/JavaImportBeautifierImpl.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/PrettierFormatter.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/SimpleXmlFormatterPostProcessor.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/TypeContext.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/TypeReplacementStrategy.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/XmlFormatter.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/default-convention.xml create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/h2.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/AssociationUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/AuditableAttributes.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ChildManagement.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ConsoleMsgJavaUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ConsoleUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/Constants.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/CopyFolderUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntityCategory.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntitySpecificFeature.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntityUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ExceptionHandlerUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/FeatureUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/FileCopyUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/GeneralUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/GenericFeature.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/JavaBeautifier.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/LogFormatter.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/LoggerUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/MicroServiceCategory.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/MicroServiceUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ModelCategory.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ModelUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ParentSelection.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ProfileName.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/PropertyUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SecurityUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SeverityLevels.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SpecificationFilterUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypeName.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypePropertyName.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypeUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StringUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SubjectAreaUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/TypeUtils.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/associationUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/copyFolderUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/entityUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/exceptionHandlerUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/featureUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/generalUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/generate.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/microServiceUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/modelUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/propertyUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/securityUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/specificationFilterUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/stringUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/subjectAreaUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/typeUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/logger/consoleUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/logger/severityLevel.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/classPathUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/componentUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/controllerMsUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/fileNameUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/folderUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/folderUtilsSandBox.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/mainGeneratorUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/microserviceUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/modelAssemblerUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/pomUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/propertiesUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/mvnWrapper.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/properties.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/associationUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/auditable.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/cacheConfig.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/classNameUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/constants.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/controllerJavaDoc.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/controllerUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/dtoUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/entityKeyUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/entityUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/fileNameUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/filterUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/folderUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/fullyQualifiedNamesUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/importUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/mailManagerServiceImplUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/applicationYML.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/customSpringLiquibase.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/db/genMsDBScript.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/globalExceptionHandler.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/liquibaseConfigurationBean.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/mapperConfig.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msConfig.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msInterceptor.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msProperties.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/securityConfig.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/packageUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/pomUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/repositoryUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/runtimeUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/securityUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/serviceImplUtils.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/test.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/.classpath create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/.project create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/build.properties create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/Activator.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/applicationResources.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/controller.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/criteria.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityDto.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityKeyDto.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityWriteDto.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/mailWriteDto.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entity.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entityGeneration.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entityKey.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/modelAssembler.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/repository.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/resource.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/service.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/serviceImpl.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailController.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailDto.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailGeneration.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailManagerService.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailManagerServiceImpl.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainClass.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainSpringJpa.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainStaticResources.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/msWeb.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomCoreModule.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomGeneration.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomImplModule.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomParentModule.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomWebModule.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/security/permission.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/security/sqlPermissionsScript.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/settings.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/utilsGeneration.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/.classpath create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/.project create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/build.properties create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/Activator.java create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/applicationResources.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/cacheConfig.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/constants.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/controller.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/criteria.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/entityDto.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/entityWriteDto.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/mailWriteDto.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/entity.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/entityKey.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/modelAssembler.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/repository.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/resource.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/service.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/serviceImpl.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entitySpecificFiles.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/mainClass.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/mainSpringMongo.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/ms-web/applicationYML.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/ms-web/msWeb.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomCoreModule.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomGeneration.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomImplModule.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomParentModule.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomWebModule.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/settings.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/staticResources.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/test.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/controllerUtilsMongo.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/entityUtilsMongo.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/repositoryUtilsMongo.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/serviceImplUtilsMongo.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/serviceUtilsMongo.mtl create mode 100644 plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilsGeneration.mtl create mode 100644 plugin-version/it.micegroup.voila2.toolbox/.classpath create mode 100644 plugin-version/it.micegroup.voila2.toolbox/.project create mode 100644 plugin-version/it.micegroup.voila2.toolbox/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugin-version/it.micegroup.voila2.toolbox/META-INF/MANIFEST.MF create mode 100644 plugin-version/it.micegroup.voila2.toolbox/build.properties create mode 100644 plugin-version/it.micegroup.voila2.toolbox/icons/commit.png create mode 100644 plugin-version/it.micegroup.voila2.toolbox/icons/magicHat.png create mode 100644 plugin-version/it.micegroup.voila2.toolbox/icons/magicHat@2x.png create mode 100644 plugin-version/it.micegroup.voila2.toolbox/icons/sample.png create mode 100644 plugin-version/it.micegroup.voila2.toolbox/icons/sample@2x.png create mode 100644 plugin-version/it.micegroup.voila2.toolbox/icons/voila2Icon.png create mode 100644 plugin-version/it.micegroup.voila2.toolbox/plugin.xml create mode 100644 plugin-version/it.micegroup.voila2.toolbox/src/it/micegroup/voila2/toolbox/handlers/CommitSyncAction.java create mode 100644 plugin-version/it.micegroup.voila2.toolbox/src/it/micegroup/voila2/toolbox/handlers/CommitSyncHandler.java create mode 100644 plugin-version/properties/ui/MultipleAttribute.xwt create mode 100644 plugin-version/properties/ui/MultipleEntity.xwt create mode 100644 plugin-version/properties/ui/MultipleManyToOneRelation.xwt create mode 100644 plugin-version/properties/ui/MultipleNamedElement.xwt create mode 100644 plugin-version/properties/ui/SingleAttribute.xwt create mode 100644 plugin-version/properties/ui/SingleEntity.xwt create mode 100644 plugin-version/properties/ui/SingleManyToOneRelation.xwt create mode 100644 plugin-version/properties/ui/SingleNamedElement.xwt diff --git a/GF/.project b/GF/.project new file mode 100644 index 0000000..8c2105a --- /dev/null +++ b/GF/.project @@ -0,0 +1,48 @@ + + + gestioneferie-be + + + gestioneferie + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.jdt.core.javanature + + + + 1644425858164 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858176 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425858190 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/.settings/org.eclipse.jdt.core.prefs b/GF/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..a274c0a --- /dev/null +++ b/GF/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,359 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.lineSplit=120 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=false +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/GF/.settings/org.eclipse.m2e.core.prefs b/GF/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/.voilaProject b/GF/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-libs/.classpath b/GF/gestioneferie-libs/.classpath new file mode 100644 index 0000000..f4b9d22 --- /dev/null +++ b/GF/gestioneferie-libs/.classpath @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-libs/.mvn/wrapper/MavenWrapperDownloader.java b/GF/gestioneferie-libs/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..e76d1f3 --- /dev/null +++ b/GF/gestioneferie-libs/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/GF/gestioneferie-libs/.mvn/wrapper/maven-wrapper.jar b/GF/gestioneferie-libs/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054 GIT binary patch literal 50710 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 EfAhh=DF6Tf literal 0 HcmV?d00001 diff --git a/GF/gestioneferie-libs/.mvn/wrapper/maven-wrapper.properties b/GF/gestioneferie-libs/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..642d572 --- /dev/null +++ b/GF/gestioneferie-libs/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/GF/gestioneferie-libs/.project b/GF/gestioneferie-libs/.project new file mode 100644 index 0000000..21be2a6 --- /dev/null +++ b/GF/gestioneferie-libs/.project @@ -0,0 +1,47 @@ + + + gestioneferie-libs + + + gestioneferie + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + + + 1644425858200 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858204 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425858214 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/gestioneferie-libs/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-libs/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/GF/gestioneferie-libs/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/GF/gestioneferie-libs/.settings/org.eclipse.jdt.core.prefs b/GF/gestioneferie-libs/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3a0745f --- /dev/null +++ b/GF/gestioneferie-libs/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,16 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/GF/gestioneferie-libs/.settings/org.eclipse.m2e.core.prefs b/GF/gestioneferie-libs/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/gestioneferie-libs/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/gestioneferie-libs/.voilaProject b/GF/gestioneferie-libs/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/.classpath b/GF/gestioneferie-libs/gestioneferie-libs-core/.classpath new file mode 100644 index 0000000..2929c33 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/.classpath @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/.project b/GF/gestioneferie-libs/gestioneferie-libs-core/.project new file mode 100644 index 0000000..1179433 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/.project @@ -0,0 +1,54 @@ + + + gestioneferie-libs-core + + + gestioneferie + gestioneferie-libs + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + + + 1644425858226 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858231 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425858242 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.jdt.core.prefs b/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..2af1e7b --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.m2e.core.prefs b/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/.voilaProject b/GF/gestioneferie-libs/gestioneferie-libs-core/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/pom.xml b/GF/gestioneferie-libs/gestioneferie-libs-core/pom.xml new file mode 100644 index 0000000..374f6f7 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/pom.xml @@ -0,0 +1,48 @@ + + + + 4.0.0 + + gestioneferie-libs-core + gestioneferie-libs-core + Voila 2 Sample Project rel. 0.0.1 + jar + + + it.micegroup + gestioneferie-libs + 0.0.1-SNAPSHOT + ../pom.xml + + + + + it.micegroup + voila2runtime-core + ${voila2.runtime.version} + + + io.springfox + springfox-swagger2 + + + + + it.micegroup + voila2runtime-mail-core + ${voila2.runtime.version} + + + it.micegroup + voila2runtime-bi-core + ${voila2.runtime.version} + + + org.springframework.boot + spring-boot-starter-hateoas + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/entity/BaseEntity.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/entity/BaseEntity.java new file mode 100644 index 0000000..13754a9 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/entity/BaseEntity.java @@ -0,0 +1,19 @@ +package it.micegroup.gestioneferie.libs.entity; + +import it.micegroup.voila2runtime.entity.GenericEntity; +import it.micegroup.gestioneferie.libs.utilities.Constants; + + +/** + * Generic class for entities + * + */ +public abstract class BaseEntity extends GenericEntity { + + public abstract String getObjectKey(); + public abstract void setObjectKey(String id); + + protected String getRowIdFieldDelimiter() { + return Constants.ROWIDFIELDDELIMITER; + } +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/exception/BaseExceptionHandler.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/exception/BaseExceptionHandler.java new file mode 100644 index 0000000..39b5f65 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/exception/BaseExceptionHandler.java @@ -0,0 +1,91 @@ +package it.micegroup.gestioneferie.libs.exception; + +import it.micegroup.gestioneferie.libs.response.BaseResponse; +import it.micegroup.gestioneferie.libs.utilities.MessageSourceSettings; +import it.micegroup.gestioneferie.libs.utilities.MessageUtil; + +import it.micegroup.voila2runtime.exception.*; +import it.micegroup.voila2runtime.response.Messages; +import it.micegroup.voila2runtime.response.Message.MessageLevelType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.validation.ObjectError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +import java.util.ArrayList; + + +public abstract class BaseExceptionHandler extends ResponseEntityExceptionHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(BaseExceptionHandler.class); + + @Autowired + private MessageSource messageSource; + + @ExceptionHandler({NotFoundException.class}) + public ResponseEntity> exceptionHandler(RuntimeException exception, WebRequest request) { + return notFoundExceptionHandler((NotFoundException) exception, request); + } + + @ExceptionHandler({BusinessException.class}) + public ResponseEntity businessExceptionHandler(BusinessException exception, WebRequest request) { + logException(exception); + ErrorDetails errorDetails = new ErrorDetails(exception, request); + return new ResponseEntity<>(errorDetails, HttpStatus.NOT_FOUND); + } + + protected ResponseEntity> notFoundExceptionHandler(NotFoundException exception, WebRequest request) { + exception.setMessage( messageSource.getMessage("not.found", new Object[] {exception.getClassType().getSimpleName()}, exception.getLocale())); + //ErrorDetails errorDetails = ; + + BaseResponse baseError = new BaseResponse<>(); + baseError.setErrorDetails(new ErrorDetails(exception, request)); + + Messages msgs = new Messages(); + msgs.addMessage(MessageLevelType.ERROR, exception.getMessage()); + + baseError.setMessages(msgs); + return new ResponseEntity>(baseError, HttpStatus.NOT_FOUND); + } + + @Override + protected ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { + MessageUtil.setMessageSource(messageSource); + MessageUtil.setMessages(new ArrayList<>()); + ErrorDetails errorDetails = new ErrorDetails(ex, request); + for (ObjectError oe : ex.getAllErrors()) { + MessageUtil.addErrorMessage(oe.getCode(), oe.getArguments()); + } +// errorDetails.getMessages().addAll(MessageUtil.getMessages()); + return new ResponseEntity<>(errorDetails, HttpStatus.BAD_REQUEST); + } + + @Override + protected ResponseEntity handleHttpMessageNotReadable(HttpMessageNotReadableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { + logException(ex); + ErrorDetails errorDetails = new ErrorDetails(ex, request); + return new ResponseEntity<>(errorDetails, HttpStatus.BAD_REQUEST); + } + + @ExceptionHandler(Exception.class) + public ResponseEntity globalExceptionHandler(Exception ex, WebRequest request) { + logException(ex); + ErrorDetails errorDetails = new ErrorDetails(ex, request); + return new ResponseEntity<>(errorDetails, HttpStatus.INTERNAL_SERVER_ERROR); + } + + protected void logException(Exception e) { + LOGGER.error("Generic error", e); + } + + +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/repository/BaseRepository.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/repository/BaseRepository.java new file mode 100644 index 0000000..17b832d --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/repository/BaseRepository.java @@ -0,0 +1,12 @@ +package it.micegroup.gestioneferie.libs.repository; + + +import it.micegroup.voila2runtime.repository.GenericRepository; +import org.springframework.data.repository.NoRepositoryBean; +/** + * Generic class for repository + * + */ +@NoRepositoryBean +public interface BaseRepository extends GenericRepository { +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/request/BaseRequest.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/request/BaseRequest.java new file mode 100644 index 0000000..adc16d1 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/request/BaseRequest.java @@ -0,0 +1,44 @@ +package it.micegroup.gestioneferie.libs.request; + +import java.io.Serializable; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +@JsonSerialize +@JsonInclude(value = Include.NON_NULL) +public class BaseRequest implements Serializable { + + private static final long serialVersionUID = -2194408736186342022L; + + @JsonIgnore + private String requestId; + + @JsonProperty(required = true) + private T data; + + public BaseRequest() { + super(); +// String requestId = UserHolder.getCurrentUser().getUserId() + String.valueOf(System.currentTimeMillis()); +// this.setRequestId(requestId); + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } + + public String getRequestId() { + return requestId; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/response/BaseResponse.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/response/BaseResponse.java new file mode 100644 index 0000000..f43ddda --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/response/BaseResponse.java @@ -0,0 +1,37 @@ +package it.micegroup.gestioneferie.libs.response; + +import java.io.Serializable; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.springframework.hateoas.RepresentationModel; +import it.micegroup.voila2runtime.exception.ErrorDetails; +import it.micegroup.voila2runtime.response.Messages; +import lombok.Data; + +@Data +public class BaseResponse extends RepresentationModel> implements Serializable { + private Messages messages = new Messages(); + private T response; + private ErrorDetails errorDetails; + + @SuppressWarnings("unused") + public BaseResponse() { + } + + public BaseResponse(Messages messages, T response) { + this.messages = messages; + this.response = response; + } + + @SuppressWarnings("unused") + public BaseResponse(T body) { + setResponse(body); + } + + @Override + public String toString() { + return "BaseResponse [Message=" + messages + ", response=" + response + "]"; + } +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/response/BaseResponseEntityWrapper.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/response/BaseResponseEntityWrapper.java new file mode 100644 index 0000000..ce0dd6d --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/response/BaseResponseEntityWrapper.java @@ -0,0 +1,64 @@ +package it.micegroup.gestioneferie.libs.response; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.springframework.core.MethodParameter; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; + +import it.micegroup.voila2runtime.response.Messages; + +@RestControllerAdvice +public class BaseResponseEntityWrapper implements ResponseBodyAdvice { + + private static final Logger LOGGER = LoggerFactory.getLogger(BaseResponseEntityWrapper.class); + + private Messages messages; + + @Override + public boolean supports(MethodParameter returnType, Class converterType) { + return true; + } + + @Override + public T beforeBodyWrite(T baseResponse, MethodParameter returnType, + MediaType selectedContentType, Class> selectedConverterType, + ServerHttpRequest request, ServerHttpResponse response) { + + this.messages = new Messages(); + return baseResponse; + } + + + //TODO capire se � ok questo comportamento + private BaseResponse wrapIterableResponse(BaseResponse baseResponse) { + // TODO decidere come trattare la risposta in caso di liste paginate ecc... + return baseResponse; + } + + private BaseResponse wrapDetailResponse(BaseResponse baseResponse) { + return baseResponse; + } + + +// private BaseResponse wrapIterableResponse(T body) { +// // TODO decidere come trattare la risposta in caso di liste paginate ecc... +// return new BaseResponse<>(body); +// } +// +// private BaseResponse wrapDetailResponse(T body) { +// return new BaseResponse<>(body); +// } + + public Messages getMessages() { + if (messages == null) { + messages = new Messages(); + } + return this.messages; + } +} \ No newline at end of file diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/service/BaseEntityService.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/service/BaseEntityService.java new file mode 100644 index 0000000..3896db9 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/service/BaseEntityService.java @@ -0,0 +1,12 @@ +package it.micegroup.gestioneferie.libs.service; + + +import it.micegroup.voila2runtime.service.GenericEntityService; + +/** + * Generic class for entity services + * + */ +public interface BaseEntityService extends GenericEntityService { + +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/Auditable.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/Auditable.java new file mode 100644 index 0000000..b11fc23 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/Auditable.java @@ -0,0 +1,70 @@ +package it.micegroup.gestioneferie.libs.utilities; + +import java.time.LocalDateTime; + +import javax.persistence.Column; +import javax.persistence.EntityListeners; +import javax.persistence.MappedSuperclass; + +import org.springframework.data.annotation.CreatedBy; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedBy; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import it.micegroup.gestioneferie.libs.entity.BaseEntity; + +/** + * Class for audit data. This class is extended by entity flagged as auditable. + */ +@EntityListeners(AuditingEntityListener.class) +@MappedSuperclass +public abstract class Auditable extends BaseEntity { + @CreatedBy + @Column(name = "created_by") + private String createdBy; + + @CreatedDate + @Column(name = "created_date", updatable = false) + private LocalDateTime createdDate; + + @LastModifiedBy + @Column(name = "last_modified_by") + private String lastModifiedBy; + + @LastModifiedDate + @Column(name = "last_modified_date", updatable = false) + private LocalDateTime lastModifiedDate; + + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } + + public LocalDateTime getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(LocalDateTime createdDate) { + this.createdDate = createdDate; + } + + public String getLastModifiedBy() { + return lastModifiedBy; + } + + public void setLastModifiedBy(String lastModifiedBy) { + this.lastModifiedBy = lastModifiedBy; + } + + public LocalDateTime getLastModifiedDate() { + return lastModifiedDate; + } + + public void setLastModifiedDate(LocalDateTime lastModifiedDate) { + this.lastModifiedDate = lastModifiedDate; + } +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/CacheConfig.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/CacheConfig.java new file mode 100644 index 0000000..43e7308 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/CacheConfig.java @@ -0,0 +1,23 @@ +package it.micegroup.gestioneferie.libs.utilities; +import java.util.Arrays; + +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.concurrent.ConcurrentMapCache; +import org.springframework.cache.support.SimpleCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCaching +public class CacheConfig { + + @Bean + public CacheManager cacheManager() { + SimpleCacheManager cacheManager = new SimpleCacheManager(); + cacheManager.setCaches(Arrays.asList( + new ConcurrentMapCache("PrivilegePerRole") + )); + return cacheManager; + } +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/Constants.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/Constants.java new file mode 100644 index 0000000..c09df7c --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/Constants.java @@ -0,0 +1,10 @@ +package it.micegroup.gestioneferie.libs.utilities; + +public class Constants{ + private Constants() { + throw new IllegalStateException("Utility class"); + } + public static final String ROWIDFIELDDELIMITER = "~"; + public static final String CORRELATION_KEY = "X-Correlation-ID"; +} + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/JasperReportsCache.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/JasperReportsCache.java new file mode 100644 index 0000000..d689941 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/JasperReportsCache.java @@ -0,0 +1,31 @@ + +package it.micegroup.gestioneferie.libs.utilities; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import org.springframework.stereotype.Component; + +import net.sf.jasperreports.engine.JasperReport; + +@Component +public class JasperReportsCache { + private Map cache; + + public JasperReportsCache() { + cache = new ConcurrentHashMap(); + } + + public void save(String key, JasperReport jasperReport) { + cache.put(key, jasperReport); + } + + public JasperReport load(String key) { + return cache.get(key); + } + + public boolean isSaved(String key) { + return cache.containsKey(key); + } +} + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/MessageSourceSettings.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/MessageSourceSettings.java new file mode 100644 index 0000000..9403196 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/MessageSourceSettings.java @@ -0,0 +1,20 @@ +package it.micegroup.gestioneferie.libs.utilities; + + +import org.springframework.context.MessageSource; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.ResourceBundleMessageSource; + + +@Configuration +public class MessageSourceSettings { + + @Bean + public MessageSource messageSource(){ + ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); + messageSource.setBasenames("i18n/res"); + return messageSource; + } + +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/MessageUtil.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/MessageUtil.java new file mode 100644 index 0000000..e050e74 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/MessageUtil.java @@ -0,0 +1,80 @@ +package it.micegroup.gestioneferie.libs.utilities; + +import java.util.List; +import java.util.Locale; + +import org.springframework.context.MessageSource; +import org.springframework.context.support.DefaultMessageSourceResolvable; + +import it.micegroup.voila2runtime.response.Message; +import it.micegroup.voila2runtime.response.Message.MessageLevelType; + + +public class MessageUtil { + private static MessageSource messageSource; + private static ThreadLocal> messages = new ThreadLocal<>(); + + public static void setMessageSource(MessageSource source) { + messageSource = source; + } + + public static ThreadLocal> getThreadLocalMessages() { + return messages; + } + + public static void setThreadLocalMessages(ThreadLocal> messages) { + MessageUtil.messages = messages; + } + + public static List getMessages() { + return getThreadLocalMessages().get(); + } + + public static void setMessages(List msgs) { + getThreadLocalMessages().set(msgs); + } + + public static Message addInfoMessage(String msg) { + return addMessage(MessageLevelType.INFO, null, msg, null); + } + + public static Message addInfoMessage(String key, Object ... args) { + return addMessage(MessageLevelType.INFO, key, null, args); + } + + public static Message addWarningMessage(String msg) { + return addMessage(MessageLevelType.WARNING, null, msg, null); + } + + public static Message addWarningMessage(String key, Object ... args) { + return addMessage(MessageLevelType.WARNING, key, null, args); + } + + public static Message addErrorMessage(String msg) { + return addMessage(MessageLevelType.ERROR, null, msg, null); + } + + public static Message addErrorMessage(String key, Object ... args) { + return addMessage(MessageLevelType.ERROR, key, null, args); + } + + public static Message addMessage(MessageLevelType severity, String key, String msg, Object[] args) { + if (key != null) { + String[] fields = new String[args.length]; + if (args.length > 0 && args[0].getClass().isAssignableFrom(DefaultMessageSourceResolvable.class)) { + for (int i = 0; i < args.length; i++) { + if (DefaultMessageSourceResolvable.class.isAssignableFrom(args[i].getClass())) { + fields[i] = messageSource.getMessage((DefaultMessageSourceResolvable)args[i], Locale.getDefault()); + } + } + msg = messageSource.getMessage(key, fields, msg, Locale.getDefault()); + } else { + msg = messageSource.getMessage(key, args, msg, Locale.getDefault()); + } + } + Message m = new Message(severity, key, msg, args); + getMessages().add(m); + return m; + } +} + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/SpringFoxConfig.java b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/SpringFoxConfig.java new file mode 100644 index 0000000..7c00192 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/java/it/micegroup/gestioneferie/libs/utilities/SpringFoxConfig.java @@ -0,0 +1,51 @@ +package it.micegroup.gestioneferie.libs.utilities; + +//import static java.util.Collections.singletonList; +// +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +// +//import springfox.documentation.builders.ApiInfoBuilder; +//import springfox.documentation.builders.PathSelectors; +//import springfox.documentation.builders.RequestHandlerSelectors; +//import springfox.documentation.service.ApiInfo; +//import springfox.documentation.service.ApiKey; +//import springfox.documentation.service.AuthorizationScope; +//import springfox.documentation.service.SecurityReference; +//import springfox.documentation.spi.DocumentationType; +//import springfox.documentation.spi.service.contexts.SecurityContext; +//import springfox.documentation.spring.web.plugins.Docket; +//import springfox.documentation.swagger2.annotations.EnableSwagger2; + + +//@Configuration +//@EnableSwagger2 +public class SpringFoxConfig { + +// @Bean +// public Docket api() { +// return new Docket(DocumentationType.SWAGGER_2) +// .apiInfo(apiInfo()).securitySchemes(singletonList(new ApiKey("Token Auth", "Authorization", "Bearer"))) +// .securityContexts(singletonList( +// SecurityContext.builder() +// .securityReferences( +// singletonList(SecurityReference.builder() +// .reference("Token Auth") +// .scopes(new AuthorizationScope[0]) +// .build() +// ) +// ) +// .build()) +// ). +// select() +// .apis(RequestHandlerSelectors.any()) +// .paths(PathSelectors.any()) +// .build(); +// +// } +// +// private ApiInfo apiInfo() { +// return new ApiInfoBuilder().title("REST API Document").description("description for api") +// .termsOfServiceUrl("localhost").version("1.0").build(); +// } +} \ No newline at end of file diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/application.yml b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/application.yml new file mode 100644 index 0000000..9d5bd8a --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/application.yml @@ -0,0 +1,7 @@ +jasperreports: + dir: reports + debug: true + +spring: + messages: + basename: i18n/res \ No newline at end of file diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res.properties b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res.properties new file mode 100644 index 0000000..7c975c2 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res.properties @@ -0,0 +1 @@ +not.found={0} not found! \ No newline at end of file diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res_en.properties b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res_en.properties new file mode 100644 index 0000000..2289c88 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res_en.properties @@ -0,0 +1 @@ +not.found={0} not found! \ No newline at end of file diff --git a/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res_it.properties b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res_it.properties new file mode 100644 index 0000000..0139c04 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-core/src/main/resources/i18n/res_it.properties @@ -0,0 +1 @@ +not.found={0} non trovato! \ No newline at end of file diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/.classpath b/GF/gestioneferie-libs/gestioneferie-libs-impl/.classpath new file mode 100644 index 0000000..4e06a5c --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-impl/.classpath @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/.project b/GF/gestioneferie-libs/gestioneferie-libs-impl/.project new file mode 100644 index 0000000..24967aa --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-impl/.project @@ -0,0 +1,54 @@ + + + gestioneferie-libs-impl + + + gestioneferie + gestioneferie-libs + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + + + 1644425858256 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858260 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425858272 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.jdt.core.prefs b/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..2af1e7b --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.m2e.core.prefs b/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-impl/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/.voilaProject b/GF/gestioneferie-libs/gestioneferie-libs-impl/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/pom.xml b/GF/gestioneferie-libs/gestioneferie-libs-impl/pom.xml new file mode 100644 index 0000000..c959c96 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-impl/pom.xml @@ -0,0 +1,43 @@ + + + + 4.0.0 + + gestioneferie-libs-impl + gestioneferie-libs-impl + Voila 2 Sample Project rel. 0.0.1 + jar + + + it.micegroup + gestioneferie-libs + 0.0.1-SNAPSHOT + ../pom.xml + + + + + it.micegroup + gestioneferie-libs-core + 0.0.1-SNAPSHOT + + + it.micegroup + voila2runtime-impl + ${voila2.runtime.version} + + + it.micegroup + voila2runtime-mail-impl + ${voila2.runtime.version} + + + it.micegroup + voila2runtime-bi-impl + ${voila2.runtime.version} + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/src/main/java/it/micegroup/gestioneferie/libs/service/BaseServiceImpl.java b/GF/gestioneferie-libs/gestioneferie-libs-impl/src/main/java/it/micegroup/gestioneferie/libs/service/BaseServiceImpl.java new file mode 100644 index 0000000..3894773 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-impl/src/main/java/it/micegroup/gestioneferie/libs/service/BaseServiceImpl.java @@ -0,0 +1,78 @@ +package it.micegroup.gestioneferie.libs.service; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import org.springframework.core.io.Resource; +import org.springframework.core.io.ResourceLoader; +import org.springframework.core.io.support.ResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternUtils; + +import org.springframework.stereotype.Service; + +import it.micegroup.gestioneferie.libs.utilities.JasperReportsCache; +import it.micegroup.voila2runtime.exception.BusinessException; +import net.sf.jasperreports.engine.JRException; +import java.io.IOException; + +import net.sf.jasperreports.engine.JasperCompileManager; +import net.sf.jasperreports.engine.JasperReport; + +/** + * Generic class for services + */ +@Service +public class BaseServiceImpl { + private static String JASPER_REPORT_EXTENSION = ".jrxml"; + private static String JASPER_REPORT_MAIN_PREFIX = "Detail"; + + @Value("${jasperreports.dir}") + protected String jasperReportsDir; + + @Autowired + private ResourceLoader resourceLoader; + + @Value("${jasperreports.debug}") + private Boolean jasperReportsDebug; + + @Autowired + private JasperReportsCache jasperReportsCache; + + protected JasperReport prepareJasperReport(String reportName, Map parameters) throws BusinessException { + String jrMainKey = reportName; + String jrMainFilename = jrMainKey + JASPER_REPORT_EXTENSION; + try{ + // Find and build all dependency resources except the main (also know as master report). + ResourcePatternResolver resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader); + Resource[] jrResources = resourcePatternResolver.getResources("classpath:" + jasperReportsDir + "/*" + reportName + JASPER_REPORT_EXTENSION); + Resource jrMainResource = null; + for (Resource resource : jrResources) { + if (resource.getFilename().equals(jrMainFilename)) { + // Save main report resource (file) and jump the build. + jrMainResource = resource; + continue; + } + String jrKey = resource.getFilename().replaceFirst(JASPER_REPORT_EXTENSION, ""); + if (jasperReportsDebug || !jasperReportsCache.isSaved(jrKey)) { + jasperReportsCache.save(jrKey, JasperCompileManager.compileReport(resource.getInputStream())); + } + parameters.put(jrKey, jasperReportsCache.load(jrKey)); + } + // Check if main report exist. + if (jrMainResource == null) { + throw new RuntimeException(jrMainFilename + " not found"); + } + // Compile and return the main report. + if (jasperReportsDebug || !jasperReportsCache.isSaved(jrMainKey)) { + jasperReportsCache.save(jrMainKey, JasperCompileManager.compileReport(jrMainResource.getInputStream())); + } + return jasperReportsCache.load(jrMainKey); + } catch (IOException e) { + throw new BusinessException(e); + } catch(JRException j) { + throw new BusinessException(j); + } + } +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-impl/src/main/resources/application.yml b/GF/gestioneferie-libs/gestioneferie-libs-impl/src/main/resources/application.yml new file mode 100644 index 0000000..a5cbdb1 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-impl/src/main/resources/application.yml @@ -0,0 +1,3 @@ +jasperreports: + dir: reports + debug: true \ No newline at end of file diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/.classpath b/GF/gestioneferie-libs/gestioneferie-libs-web/.classpath new file mode 100644 index 0000000..2016b94 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/.classpath @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/.project b/GF/gestioneferie-libs/gestioneferie-libs-web/.project new file mode 100644 index 0000000..b2d47a0 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/.project @@ -0,0 +1,54 @@ + + + gestioneferie-libs-web + + + gestioneferie + gestioneferie-libs + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + + + 1644425858283 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858287 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425858299 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.jdt.core.prefs b/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..2af1e7b --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.m2e.core.prefs b/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/.voilaProject b/GF/gestioneferie-libs/gestioneferie-libs-web/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/pom.xml b/GF/gestioneferie-libs/gestioneferie-libs-web/pom.xml new file mode 100644 index 0000000..3eac04d --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/pom.xml @@ -0,0 +1,50 @@ + + + + 4.0.0 + + gestioneferie-libs-web + gestioneferie-libs-web + Voila 2 Sample Project rel. 0.0.1 + jar + + + it.micegroup + gestioneferie-libs + 0.0.1-SNAPSHOT + ../pom.xml + + + + 2.3.9 + + + + + it.micegroup + gestioneferie-libs-impl + 0.0.1-SNAPSHOT + + + it.micegroup + voila2runtime-web + ${voila2.runtime.version} + + + org.modelmapper + modelmapper + ${modelmapper.version} + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.boot + spring-boot-starter-oauth2-resource-server + + + + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/assembler/BaseModelAssembler.java b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/assembler/BaseModelAssembler.java new file mode 100644 index 0000000..4d4a093 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/assembler/BaseModelAssembler.java @@ -0,0 +1,55 @@ +package it.micegroup.gestioneferie.libs.assembler; + +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; + +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.hateoas.Link; +import org.springframework.hateoas.LinkRelation; +import org.springframework.hateoas.RepresentationModel; +import org.springframework.hateoas.server.RepresentationModelAssembler; + +import it.micegroup.gestioneferie.libs.controller.BaseController; +import it.micegroup.gestioneferie.libs.entity.BaseEntity; +import it.micegroup.gestioneferie.libs.response.BaseResponse; + +import java.net.URI; + +public abstract class BaseModelAssembler, C extends BaseController>> + implements RepresentationModelAssembler { + + private static ModelMapper modelMapperInstance; + + @Value("${gateway.baseuri}") + private String baseUri; + + @Autowired + private ModelMapper modelMapper; + + protected BaseModelAssembler() { + } + + protected D map(M entity, Class dtoClass, Class controllerClass) { + D dto = modelMapper.map(entity, dtoClass); + Link selfLink = convert(linkTo(methodOn(controllerClass).getByObjectKey(entity.getObjectKey())).withSelfRel()); + dto.add(selfLink); + return dto; + } + + protected Link convert(Link link) { + return Link.of(convertLink(link.getHref()), link.getRel()); + } + + private String convertLink(String href) { + URI uri = URI.create(href); + return baseUri + uri.getPath(); + } + + protected Link getLink(String ms, String entity, String objectKey, LinkRelation relation) { + return Link.of("http://127.0.0.1:8090" + "/" + ms + "/" + entity + "/" + objectKey).withRel(relation.value()); + } + +} + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/controller/BaseController.java b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/controller/BaseController.java new file mode 100644 index 0000000..27c496a --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/controller/BaseController.java @@ -0,0 +1,30 @@ +package it.micegroup.gestioneferie.libs.controller; + +import it.micegroup.voila2runtime.controller.GenericController; + +import it.micegroup.gestioneferie.libs.response.BaseResponse; +import org.springframework.http.ResponseEntity; + +/** + * Generic class for controllers + * + */ +public abstract class BaseController extends GenericController { + /** + * Authority constant + */ + protected static final String AUTH = "hasPrivilege"; + + /** + * Application name + */ + protected static final String APPLICATION_NAME = "gestioneferie"; + +public abstract ResponseEntity getByObjectKey(String objectKey); + + public ResponseEntity generateJasperReportPdf(byte[] pdfReport) { + return super.genJasperReportPdf(pdfReport); + } + public ResponseEntity generateJasperReportXls(byte[] xlsReport) { + return super.genJasperReportXls(xlsReport); + }} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/converter/BeanConverter.java b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/converter/BeanConverter.java new file mode 100644 index 0000000..bc4cf89 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/converter/BeanConverter.java @@ -0,0 +1,17 @@ +package it.micegroup.gestioneferie.libs.converter; + +import org.modelmapper.Converter; +import org.modelmapper.ModelMapper; +import org.modelmapper.spi.MappingContext; +import org.springframework.beans.factory.annotation.Autowired; + +public class BeanConverter implements Converter { + + @Autowired + ModelMapper modelMapper; + + @Override + public D convert(MappingContext context) { + return modelMapper.map(context.getSource(), context.getDestinationType()); + } +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/dto/BaseDto.java b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/dto/BaseDto.java new file mode 100644 index 0000000..ca802e0 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/dto/BaseDto.java @@ -0,0 +1,11 @@ +package it.micegroup.gestioneferie.libs.dto; + +import java.io.Serializable; +import org.springframework.hateoas.RepresentationModel; +import it.micegroup.voila2runtime.object.GenericObject; + +public abstract class BaseDto extends RepresentationModel implements Serializable { + + private static final long serialVersionUID = 4194007193178138872L; + +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/filter/LogMdcFilter.java b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/filter/LogMdcFilter.java new file mode 100644 index 0000000..c9a5843 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/filter/LogMdcFilter.java @@ -0,0 +1,39 @@ +package it.micegroup.gestioneferie.libs.filter; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; + +import org.slf4j.MDC; +import org.springframework.stereotype.Component; + +import it.micegroup.gestioneferie.libs.utilities.Constants; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Component +public class LogMdcFilter implements Filter { + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + if (request instanceof HttpServletRequest) { + HttpServletRequest httpRequest = (HttpServletRequest) request; + + String key = Constants.CORRELATION_KEY; + String uid = httpRequest.getHeader(key); + if (uid != null) { + if (log.isDebugEnabled()) { + log.debug("Setting log MDC attribute key {} to uid {}", key, uid); + } + MDC.put(key, uid); + } + } + chain.doFilter(request, response); + } +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/JPAAuditConfig.java b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/JPAAuditConfig.java new file mode 100644 index 0000000..b5165fd --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/JPAAuditConfig.java @@ -0,0 +1,32 @@ +package it.micegroup.gestioneferie.libs.security; + +import java.util.Optional; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.domain.AuditorAware; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.oauth2.jwt.Jwt; + +@Configuration +@EnableJpaAuditing(auditorAwareRef = "auditorProvider") +public class JPAAuditConfig { + + @Bean + public AuditorAware auditorProvider() { + return new AuditorAware() { + @Override + public Optional getCurrentAuditor() { + if (SecurityContextHolder.getContext().getAuthentication() != null) { + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + Jwt token = (Jwt) auth.getPrincipal(); + String subscriber = (String) token.getClaims().get("sub"); + return Optional.of(subscriber); + } + return Optional.of("Unknown"); + } + }; + } +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/KeycloakRealmRoleConverter.java b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/KeycloakRealmRoleConverter.java new file mode 100644 index 0000000..ae6a976 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/KeycloakRealmRoleConverter.java @@ -0,0 +1,25 @@ +package it.micegroup.gestioneferie.libs.security; + +import org.springframework.core.convert.converter.Converter; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.oauth2.jwt.Jwt; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class KeycloakRealmRoleConverter implements Converter> { + @Override + public Collection convert(Jwt jwt) { + final Map realmAccess = (Map) jwt.getClaims().get("realm_access"); + return ((List) realmAccess.get("roles")).stream().map(roleName -> "ROLE_" + roleName) // prefix to map + // to a Spring + // Security + // "role" + .map(SimpleGrantedAuthority::new)// .peek(s-> System.out.println(s.getAuthority())) + .collect(Collectors.toList()); + } +} + diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/ResourceServerSecurityConfig.java b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/ResourceServerSecurityConfig.java new file mode 100644 index 0000000..60d1a79 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/java/it/micegroup/gestioneferie/libs/security/ResourceServerSecurityConfig.java @@ -0,0 +1,68 @@ +package it.micegroup.gestioneferie.libs.security; + +import java.util.Arrays; +import java.util.Collections; + +import javax.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.oauth2.jwt.Jwt; +import org.springframework.security.oauth2.jwt.JwtDecoder; +import org.springframework.security.oauth2.jwt.NimbusJwtDecoder; +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@EnableWebSecurity +@EnableGlobalMethodSecurity(jsr250Enabled = true, prePostEnabled = true) // Commentare questa per disattivare sicurezza + // da keycloak +public class ResourceServerSecurityConfig extends WebSecurityConfigurerAdapter { + + @Value("${spring.security.oauth2.resourceserver.jwt.jwk-set-uri}") + private String jwkSetUri; + + @Override + protected void configure(HttpSecurity http) throws Exception { + // http.headers().frameOptions().sameOrigin().and().csrf().disable().authorizeRequests().anyRequest().permitAll(); + // //Usare questa per disabilitare sicurezza da keycloak + + // http.cors().configurationSource(request -> new + // CorsConfiguration().applyPermitDefaultValues()).and().authorizeRequests(a -> + // a.anyRequest().authenticated()).oauth2ResourceServer( + // httpSecurityOAuth2ResourceServerConfigurer -> + // httpSecurityOAuth2ResourceServerConfigurer + // .jwt(jwtConfigurer -> + // jwtConfigurer.jwtAuthenticationConverter(jwtAuthenticationConverter()))); + + http.authorizeRequests(a -> a.anyRequest().authenticated()).oauth2ResourceServer( + httpSecurityOAuth2ResourceServerConfigurer -> httpSecurityOAuth2ResourceServerConfigurer + .jwt(jwtConfigurer -> jwtConfigurer.jwtAuthenticationConverter(jwtAuthenticationConverter()))); + + http.csrf().disable(); + http.headers().frameOptions().disable(); + } + + private Converter jwtAuthenticationConverter() { + JwtAuthenticationConverter jwtConverter = new JwtAuthenticationConverter(); + jwtConverter.setJwtGrantedAuthoritiesConverter(new KeycloakRealmRoleConverter()); + return jwtConverter; + } + + @Bean + public JwtDecoder jwtDecoder() { + return NimbusJwtDecoder.withJwkSetUri(this.jwkSetUri).build(); + } + +} diff --git a/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/resources/application.yml b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/resources/application.yml new file mode 100644 index 0000000..a5cbdb1 --- /dev/null +++ b/GF/gestioneferie-libs/gestioneferie-libs-web/src/main/resources/application.yml @@ -0,0 +1,3 @@ +jasperreports: + dir: reports + debug: true \ No newline at end of file diff --git a/GF/gestioneferie-libs/pom.xml b/GF/gestioneferie-libs/pom.xml new file mode 100644 index 0000000..91a02fe --- /dev/null +++ b/GF/gestioneferie-libs/pom.xml @@ -0,0 +1,26 @@ + + + + 4.0.0 + + gestioneferie-libs + gestioneferie-libs + Voila 2 Sample Project rel. 0.0.1 + pom + + + it.micegroup + gestioneferie-be + 0.0.1-SNAPSHOT + ../pom.xml + + + + gestioneferie-libs-core + gestioneferie-libs-web + gestioneferie-libs-impl + + + diff --git a/GF/gestioneferie-ms-configurazionepf/.classpath b/GF/gestioneferie-ms-configurazionepf/.classpath new file mode 100644 index 0000000..30aaa47 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/MavenWrapperDownloader.java b/GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..c32394f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.5"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/maven-wrapper.jar b/GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..0d5e649888a4843c1520054d9672f80c62ebbb48 GIT binary patch literal 50710 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�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 JS$+5G{{hr`vzY(@ literal 0 HcmV?d00001 diff --git a/GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/maven-wrapper.properties b/GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..7d59a01 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/GF/gestioneferie-ms-configurazionepf/.project b/GF/gestioneferie-ms-configurazionepf/.project new file mode 100644 index 0000000..d2f5c55 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/.project @@ -0,0 +1,74 @@ + + + gestioneferie-ms-configurazionepf + + + gestioneferie + gestioneferie-be + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.acceleo.ide.ui.acceleoBuilder + + + compilation.kind + compilation.absolute.path + + + compliance + pragmatic + + + resource.kind + xmi + + + trim-position + false + + + + + org.eclipse.acceleo.ide.ui.acceleoBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.acceleo.ide.ui.acceleoNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + + + 1644511776246 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-node_modules + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.jdt.core.prefs b/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..a274c0a --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,359 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.lineSplit=120 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=false +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.m2e.core.prefs b/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/gestioneferie-ms-configurazionepf/.voilaProject b/GF/gestioneferie-ms-configurazionepf/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-ms-configurazionepf/Dockerfile b/GF/gestioneferie-ms-configurazionepf/Dockerfile new file mode 100644 index 0000000..4204192 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/Dockerfile @@ -0,0 +1,10 @@ +FROM openjdk:11.0-jdk +ADD /modules/gestioneferie-ms-configurazionepf-web/target/gestioneferie-ms-configurazionepf.jar / +EXPOSE 8080 +RUN apt-get update +RUN apt-get install dos2unix + +ADD s_start.sh / +RUN dos2unix s_start.sh +RUN chmod +x /s_start.sh +CMD cd / && ./s_start.sh diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.classpath b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.classpath new file mode 100644 index 0000000..8b2948e --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.classpath @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/MavenWrapperDownloader.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..c32394f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.5"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/maven-wrapper.jar b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..0d5e649888a4843c1520054d9672f80c62ebbb48 GIT binary patch literal 50710 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�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 JS$+5G{{hr`vzY(@ literal 0 HcmV?d00001 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/maven-wrapper.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..7d59a01 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.project b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.project new file mode 100644 index 0000000..e039759 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.project @@ -0,0 +1,71 @@ + + + gestioneferie-ms-configurazionepf-core + + + gestioneferie-ms-configurazionepf + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.m2e.core.maven2Nature + + + + 1644425858541 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858548 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425858581 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..e9441bb --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding/=UTF-8 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.jdt.core.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ea81b66 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,366 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=11 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.lineSplit=120 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=false +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.m2e.core.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.voilaProject b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/mvnw b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/mvnw new file mode 100644 index 0000000..d2f0ea3 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/mvnw.cmd b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/mvnw.cmd new file mode 100644 index 0000000..b26ab24 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/pom.xml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/pom.xml new file mode 100644 index 0000000..3bc81f7 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/pom.xml @@ -0,0 +1,32 @@ + + + 4.0.0 + + gestioneferie-ms-configurazionepf-core + gestioneferie-ms-configurazionepf-core module + http://www.micegroup.it + + + it.micegroup + gestioneferie-ms-configurazionepf + 0.0.1-SNAPSHOT + ../../pom.xml + + jar + + + + + + + + + it.micegroup + gestioneferie-libs-core + 0.0.1-SNAPSHOT + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DconfigPaPfUoHCriteria.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DconfigPaPfUoHCriteria.java new file mode 100644 index 0000000..a494c62 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DconfigPaPfUoHCriteria.java @@ -0,0 +1,198 @@ +package it.micegroup.gestioneferie.configurazionepf.criteria; + +import java.io.Serializable; + +import it.micegroup.voila2runtime.filter.StringFilter; + +import it.micegroup.voila2runtime.filter.LongFilter; +import it.micegroup.voila2runtime.filter.StringFilter; +import it.micegroup.voila2runtime.filter.LocalDateFilter; + +public class DconfigPaPfUoHCriteria implements Serializable { + + // SERIAL UID + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 2107839351L; + + // FILTER ATTRIBUTES + private LongFilter sequIdConfigPaPfUoH; + + private StringFilter flagValidoUoSubordinate; + + private LongFilter fkConfigPaPianoFerie; + + private LongFilter fkUnitaFunzionale; + + private LongFilter fkUnitaOrganizzativaPk; + + private StringFilter utenteUltimaModifica; + + private StringFilter flagEliminato; + + private LocalDateFilter dataInizioValidita; + + private LocalDateFilter dataFineValidita; + + private LocalDateFilter dataUltimaModifica; + + // FILTER FATHER + private String theDconfigPaPianiFerieObjectKey; + + // FILTER IMPORTED FATHER + + // GETTER/SETTER + /** + * @return the sequIdConfigPaPfUoH + */ + public LongFilter getSequIdConfigPaPfUoH() { + return this.sequIdConfigPaPfUoH; + } + + /** + * @param sequIdConfigPaPfUoH to set + */ + public void setSequIdConfigPaPfUoH(LongFilter sequIdConfigPaPfUoH) { + this.sequIdConfigPaPfUoH = sequIdConfigPaPfUoH; + } + + /** + * @return the flagValidoUoSubordinate + */ + public StringFilter getFlagValidoUoSubordinate() { + return this.flagValidoUoSubordinate; + } + + /** + * @param flagValidoUoSubordinate to set + */ + public void setFlagValidoUoSubordinate(StringFilter flagValidoUoSubordinate) { + this.flagValidoUoSubordinate = flagValidoUoSubordinate; + } + + /** + * @return the fkConfigPaPianoFerie + */ + public LongFilter getFkConfigPaPianoFerie() { + return this.fkConfigPaPianoFerie; + } + + /** + * @param fkConfigPaPianoFerie to set + */ + public void setFkConfigPaPianoFerie(LongFilter fkConfigPaPianoFerie) { + this.fkConfigPaPianoFerie = fkConfigPaPianoFerie; + } + + /** + * @return the fkUnitaFunzionale + */ + public LongFilter getFkUnitaFunzionale() { + return this.fkUnitaFunzionale; + } + + /** + * @param fkUnitaFunzionale to set + */ + public void setFkUnitaFunzionale(LongFilter fkUnitaFunzionale) { + this.fkUnitaFunzionale = fkUnitaFunzionale; + } + + /** + * @return the fkUnitaOrganizzativaPk + */ + public LongFilter getFkUnitaOrganizzativaPk() { + return this.fkUnitaOrganizzativaPk; + } + + /** + * @param fkUnitaOrganizzativaPk to set + */ + public void setFkUnitaOrganizzativaPk(LongFilter fkUnitaOrganizzativaPk) { + this.fkUnitaOrganizzativaPk = fkUnitaOrganizzativaPk; + } + + /** + * @return the utenteUltimaModifica + */ + public StringFilter getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(StringFilter utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the flagEliminato + */ + public StringFilter getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(StringFilter flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the dataInizioValidita + */ + public DateFilter getDataInizioValidita() { + return this.dataInizioValidita; + } + + /** + * @param dataInizioValidita to set + */ + public void setDataInizioValidita(DateFilter dataInizioValidita) { + this.dataInizioValidita = dataInizioValidita; + } + + /** + * @return the dataFineValidita + */ + public DateFilter getDataFineValidita() { + return this.dataFineValidita; + } + + /** + * @param dataFineValidita to set + */ + public void setDataFineValidita(DateFilter dataFineValidita) { + this.dataFineValidita = dataFineValidita; + } + + /** + * @return the dataUltimaModifica + */ + public DateFilter getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(DateFilter dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + // GETTER/SETTER FATHER + + public String getTheDconfigPaPianiFerieObjectKey() { + return theDconfigPaPianiFerieObjectKey; + } + + public void setTheDconfigPaPianiFerieObjectKey(String theDconfigPaPianiFerieObjectKey) { + this.theDconfigPaPianiFerieObjectKey = theDconfigPaPianiFerieObjectKey; + } + + // GETTER/SETTER IMPORTED FATHER + + // GEN COMPOSITE FILTER + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DconfigPaPianiFerieCriteria.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DconfigPaPianiFerieCriteria.java new file mode 100644 index 0000000..23fa72a --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DconfigPaPianiFerieCriteria.java @@ -0,0 +1,187 @@ +package it.micegroup.gestioneferie.configurazionepf.criteria; + +import java.io.Serializable; + +import it.micegroup.voila2runtime.filter.LongFilter; +import it.micegroup.voila2runtime.filter.StringFilter; +import it.micegroup.voila2runtime.filter.LocalDateFilter; + +public class DconfigPaPianiFerieCriteria implements Serializable { + + // SERIAL UID + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 1237557078L; + + // FILTER ATTRIBUTES + private LongFilter sequIdConfigPaPianoFerie; + + private StringFilter codiConfigPaPianoFerie; + + private StringFilter descConfigPaPianoFerie; + + private LongFilter fkAmministrazionePk; + + private LongFilter fkTipoOrganigramma; + + private LocalDateFilter dataUltimaModifica; + + private StringFilter utenteUltimaModifica; + + private StringFilter flagEliminato; + + private LocalDateFilter dataInizioRecord; + + private LocalDateFilter dataFineRecord; + + // FILTER FATHER + + // FILTER IMPORTED FATHER + + // GETTER/SETTER + /** + * @return the sequIdConfigPaPianoFerie + */ + public LongFilter getSequIdConfigPaPianoFerie() { + return this.sequIdConfigPaPianoFerie; + } + + /** + * @param sequIdConfigPaPianoFerie to set + */ + public void setSequIdConfigPaPianoFerie(LongFilter sequIdConfigPaPianoFerie) { + this.sequIdConfigPaPianoFerie = sequIdConfigPaPianoFerie; + } + + /** + * @return the codiConfigPaPianoFerie + */ + public StringFilter getCodiConfigPaPianoFerie() { + return this.codiConfigPaPianoFerie; + } + + /** + * @param codiConfigPaPianoFerie to set + */ + public void setCodiConfigPaPianoFerie(StringFilter codiConfigPaPianoFerie) { + this.codiConfigPaPianoFerie = codiConfigPaPianoFerie; + } + + /** + * @return the descConfigPaPianoFerie + */ + public StringFilter getDescConfigPaPianoFerie() { + return this.descConfigPaPianoFerie; + } + + /** + * @param descConfigPaPianoFerie to set + */ + public void setDescConfigPaPianoFerie(StringFilter descConfigPaPianoFerie) { + this.descConfigPaPianoFerie = descConfigPaPianoFerie; + } + + /** + * @return the fkAmministrazionePk + */ + public LongFilter getFkAmministrazionePk() { + return this.fkAmministrazionePk; + } + + /** + * @param fkAmministrazionePk to set + */ + public void setFkAmministrazionePk(LongFilter fkAmministrazionePk) { + this.fkAmministrazionePk = fkAmministrazionePk; + } + + /** + * @return the fkTipoOrganigramma + */ + public LongFilter getFkTipoOrganigramma() { + return this.fkTipoOrganigramma; + } + + /** + * @param fkTipoOrganigramma to set + */ + public void setFkTipoOrganigramma(LongFilter fkTipoOrganigramma) { + this.fkTipoOrganigramma = fkTipoOrganigramma; + } + + /** + * @return the dataUltimaModifica + */ + public DateFilter getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(DateFilter dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + /** + * @return the utenteUltimaModifica + */ + public StringFilter getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(StringFilter utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the flagEliminato + */ + public StringFilter getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(StringFilter flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the dataInizioRecord + */ + public DateFilter getDataInizioRecord() { + return this.dataInizioRecord; + } + + /** + * @param dataInizioRecord to set + */ + public void setDataInizioRecord(DateFilter dataInizioRecord) { + this.dataInizioRecord = dataInizioRecord; + } + + /** + * @return the dataFineRecord + */ + public DateFilter getDataFineRecord() { + return this.dataFineRecord; + } + + /** + * @param dataFineRecord to set + */ + public void setDataFineRecord(DateFilter dataFineRecord) { + this.dataFineRecord = dataFineRecord; + } + + // GETTER/SETTER FATHER + + // GETTER/SETTER IMPORTED FATHER + + // GEN COMPOSITE FILTER + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DpercAutPianFerieHCriteria.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DpercAutPianFerieHCriteria.java new file mode 100644 index 0000000..d64a9b9 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DpercAutPianFerieHCriteria.java @@ -0,0 +1,191 @@ +package it.micegroup.gestioneferie.configurazionepf.criteria; + +import java.io.Serializable; + +import it.micegroup.voila2runtime.filter.StringFilter; + +import it.micegroup.voila2runtime.filter.LongFilter; +import it.micegroup.voila2runtime.filter.LocalDateFilter; +import it.micegroup.voila2runtime.filter.StringFilter; + +public class DpercAutPianFerieHCriteria implements Serializable { + + // SERIAL UID + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 2997153128L; + + // FILTER ATTRIBUTES + private LongFilter sequIdPercAutPianFerieH; + + private LongFilter fkConfigPaPianoFerie; + + private LongFilter fkPercorso; + + private LongFilter fkPercAutPianFeriePk; + + private LocalDateFilter dataUltimaModifica; + + private LocalDateFilter dataFineValidita; + + private LocalDateFilter dataInizioValidita; + + private StringFilter utenteUltimaModifica; + + private StringFilter flagEliminato; + + // FILTER FATHER + private String theDpercAutPianFeriePkObjectKey; + private String theDconfigPaPianiFerieObjectKey; + + // FILTER IMPORTED FATHER + + // GETTER/SETTER + /** + * @return the sequIdPercAutPianFerieH + */ + public LongFilter getSequIdPercAutPianFerieH() { + return this.sequIdPercAutPianFerieH; + } + + /** + * @param sequIdPercAutPianFerieH to set + */ + public void setSequIdPercAutPianFerieH(LongFilter sequIdPercAutPianFerieH) { + this.sequIdPercAutPianFerieH = sequIdPercAutPianFerieH; + } + + /** + * @return the fkConfigPaPianoFerie + */ + public LongFilter getFkConfigPaPianoFerie() { + return this.fkConfigPaPianoFerie; + } + + /** + * @param fkConfigPaPianoFerie to set + */ + public void setFkConfigPaPianoFerie(LongFilter fkConfigPaPianoFerie) { + this.fkConfigPaPianoFerie = fkConfigPaPianoFerie; + } + + /** + * @return the fkPercorso + */ + public LongFilter getFkPercorso() { + return this.fkPercorso; + } + + /** + * @param fkPercorso to set + */ + public void setFkPercorso(LongFilter fkPercorso) { + this.fkPercorso = fkPercorso; + } + + /** + * @return the fkPercAutPianFeriePk + */ + public LongFilter getFkPercAutPianFeriePk() { + return this.fkPercAutPianFeriePk; + } + + /** + * @param fkPercAutPianFeriePk to set + */ + public void setFkPercAutPianFeriePk(LongFilter fkPercAutPianFeriePk) { + this.fkPercAutPianFeriePk = fkPercAutPianFeriePk; + } + + /** + * @return the dataUltimaModifica + */ + public DateFilter getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(DateFilter dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + /** + * @return the dataFineValidita + */ + public DateFilter getDataFineValidita() { + return this.dataFineValidita; + } + + /** + * @param dataFineValidita to set + */ + public void setDataFineValidita(DateFilter dataFineValidita) { + this.dataFineValidita = dataFineValidita; + } + + /** + * @return the dataInizioValidita + */ + public DateFilter getDataInizioValidita() { + return this.dataInizioValidita; + } + + /** + * @param dataInizioValidita to set + */ + public void setDataInizioValidita(DateFilter dataInizioValidita) { + this.dataInizioValidita = dataInizioValidita; + } + + /** + * @return the utenteUltimaModifica + */ + public StringFilter getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(StringFilter utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the flagEliminato + */ + public StringFilter getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(StringFilter flagEliminato) { + this.flagEliminato = flagEliminato; + } + + // GETTER/SETTER FATHER + + public String getTheDpercAutPianFeriePkObjectKey() { + return theDpercAutPianFeriePkObjectKey; + } + + public void setTheDpercAutPianFeriePkObjectKey(String theDpercAutPianFeriePkObjectKey) { + this.theDpercAutPianFeriePkObjectKey = theDpercAutPianFeriePkObjectKey; + } + + public String getTheDconfigPaPianiFerieObjectKey() { + return theDconfigPaPianiFerieObjectKey; + } + + public void setTheDconfigPaPianiFerieObjectKey(String theDconfigPaPianiFerieObjectKey) { + this.theDconfigPaPianiFerieObjectKey = theDconfigPaPianiFerieObjectKey; + } + + // GETTER/SETTER IMPORTED FATHER + + // GEN COMPOSITE FILTER + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DpercAutPianFeriePkCriteria.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DpercAutPianFeriePkCriteria.java new file mode 100644 index 0000000..034c032 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DpercAutPianFeriePkCriteria.java @@ -0,0 +1,91 @@ +package it.micegroup.gestioneferie.configurazionepf.criteria; + +import java.io.Serializable; + +import it.micegroup.voila2runtime.filter.LongFilter; +import it.micegroup.voila2runtime.filter.StringFilter; +import it.micegroup.voila2runtime.filter.LocalDateFilter; + +public class DpercAutPianFeriePkCriteria implements Serializable { + + // SERIAL UID + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 887071405L; + + // FILTER ATTRIBUTES + private LongFilter sequIdPercAutPianFeriePk; + + private StringFilter flagEliminato; + + private StringFilter utenteUltimaModifica; + + private LocalDateFilter dataUltimaModifica; + + // FILTER FATHER + + // FILTER IMPORTED FATHER + + // GETTER/SETTER + /** + * @return the sequIdPercAutPianFeriePk + */ + public LongFilter getSequIdPercAutPianFeriePk() { + return this.sequIdPercAutPianFeriePk; + } + + /** + * @param sequIdPercAutPianFeriePk to set + */ + public void setSequIdPercAutPianFeriePk(LongFilter sequIdPercAutPianFeriePk) { + this.sequIdPercAutPianFeriePk = sequIdPercAutPianFeriePk; + } + + /** + * @return the flagEliminato + */ + public StringFilter getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(StringFilter flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the utenteUltimaModifica + */ + public StringFilter getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(StringFilter utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the dataUltimaModifica + */ + public DateFilter getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(DateFilter dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + // GETTER/SETTER FATHER + + // GETTER/SETTER IMPORTED FATHER + + // GEN COMPOSITE FILTER + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DregolePianiFerieHCriteria.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DregolePianiFerieHCriteria.java new file mode 100644 index 0000000..2069ec1 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DregolePianiFerieHCriteria.java @@ -0,0 +1,278 @@ +package it.micegroup.gestioneferie.configurazionepf.criteria; + +import java.io.Serializable; + +import it.micegroup.voila2runtime.filter.StringFilter; + +import it.micegroup.voila2runtime.filter.LongFilter; +import it.micegroup.voila2runtime.filter.StringFilter; +import it.micegroup.voila2runtime.filter.LocalDateFilter; + +public class DregolePianiFerieHCriteria implements Serializable { + + // SERIAL UID + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 976188501L; + + // FILTER ATTRIBUTES + private LongFilter sequIdRegolePianiFerieH; + + private LongFilter numMinGgDaPianificare; + + private LongFilter numMaxGgDaPianificare; + + private LongFilter numePercMinGiorniPresenza; + + private StringFilter flagValidoUoSubordinate; + + private LongFilter fkAmministrazione; + + private LongFilter fkRegolaPianoFeriePk; + + private LongFilter fkTipoOrganigramma; + + private LongFilter fkUnitaFunzionale; + + private LongFilter fkUnitaOrganizzativaPk; + + private StringFilter flagEliminato; + + private StringFilter utenteUltimaModifica; + + private LocalDateFilter dataUltimaModifica; + + private LocalDateFilter dataInizioValidita; + + private LocalDateFilter dataFineValidita; + + // FILTER FATHER + private String theDregolePianiFeriePkObjectKey; + + // FILTER IMPORTED FATHER + + // GETTER/SETTER + /** + * @return the sequIdRegolePianiFerieH + */ + public LongFilter getSequIdRegolePianiFerieH() { + return this.sequIdRegolePianiFerieH; + } + + /** + * @param sequIdRegolePianiFerieH to set + */ + public void setSequIdRegolePianiFerieH(LongFilter sequIdRegolePianiFerieH) { + this.sequIdRegolePianiFerieH = sequIdRegolePianiFerieH; + } + + /** + * @return the numMinGgDaPianificare + */ + public LongFilter getNumMinGgDaPianificare() { + return this.numMinGgDaPianificare; + } + + /** + * @param numMinGgDaPianificare to set + */ + public void setNumMinGgDaPianificare(LongFilter numMinGgDaPianificare) { + this.numMinGgDaPianificare = numMinGgDaPianificare; + } + + /** + * @return the numMaxGgDaPianificare + */ + public LongFilter getNumMaxGgDaPianificare() { + return this.numMaxGgDaPianificare; + } + + /** + * @param numMaxGgDaPianificare to set + */ + public void setNumMaxGgDaPianificare(LongFilter numMaxGgDaPianificare) { + this.numMaxGgDaPianificare = numMaxGgDaPianificare; + } + + /** + * @return the numePercMinGiorniPresenza + */ + public LongFilter getNumePercMinGiorniPresenza() { + return this.numePercMinGiorniPresenza; + } + + /** + * @param numePercMinGiorniPresenza to set + */ + public void setNumePercMinGiorniPresenza(LongFilter numePercMinGiorniPresenza) { + this.numePercMinGiorniPresenza = numePercMinGiorniPresenza; + } + + /** + * @return the flagValidoUoSubordinate + */ + public StringFilter getFlagValidoUoSubordinate() { + return this.flagValidoUoSubordinate; + } + + /** + * @param flagValidoUoSubordinate to set + */ + public void setFlagValidoUoSubordinate(StringFilter flagValidoUoSubordinate) { + this.flagValidoUoSubordinate = flagValidoUoSubordinate; + } + + /** + * @return the fkAmministrazione + */ + public LongFilter getFkAmministrazione() { + return this.fkAmministrazione; + } + + /** + * @param fkAmministrazione to set + */ + public void setFkAmministrazione(LongFilter fkAmministrazione) { + this.fkAmministrazione = fkAmministrazione; + } + + /** + * @return the fkRegolaPianoFeriePk + */ + public LongFilter getFkRegolaPianoFeriePk() { + return this.fkRegolaPianoFeriePk; + } + + /** + * @param fkRegolaPianoFeriePk to set + */ + public void setFkRegolaPianoFeriePk(LongFilter fkRegolaPianoFeriePk) { + this.fkRegolaPianoFeriePk = fkRegolaPianoFeriePk; + } + + /** + * @return the fkTipoOrganigramma + */ + public LongFilter getFkTipoOrganigramma() { + return this.fkTipoOrganigramma; + } + + /** + * @param fkTipoOrganigramma to set + */ + public void setFkTipoOrganigramma(LongFilter fkTipoOrganigramma) { + this.fkTipoOrganigramma = fkTipoOrganigramma; + } + + /** + * @return the fkUnitaFunzionale + */ + public LongFilter getFkUnitaFunzionale() { + return this.fkUnitaFunzionale; + } + + /** + * @param fkUnitaFunzionale to set + */ + public void setFkUnitaFunzionale(LongFilter fkUnitaFunzionale) { + this.fkUnitaFunzionale = fkUnitaFunzionale; + } + + /** + * @return the fkUnitaOrganizzativaPk + */ + public LongFilter getFkUnitaOrganizzativaPk() { + return this.fkUnitaOrganizzativaPk; + } + + /** + * @param fkUnitaOrganizzativaPk to set + */ + public void setFkUnitaOrganizzativaPk(LongFilter fkUnitaOrganizzativaPk) { + this.fkUnitaOrganizzativaPk = fkUnitaOrganizzativaPk; + } + + /** + * @return the flagEliminato + */ + public StringFilter getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(StringFilter flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the utenteUltimaModifica + */ + public StringFilter getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(StringFilter utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the dataUltimaModifica + */ + public DateFilter getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(DateFilter dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + /** + * @return the dataInizioValidita + */ + public DateFilter getDataInizioValidita() { + return this.dataInizioValidita; + } + + /** + * @param dataInizioValidita to set + */ + public void setDataInizioValidita(DateFilter dataInizioValidita) { + this.dataInizioValidita = dataInizioValidita; + } + + /** + * @return the dataFineValidita + */ + public DateFilter getDataFineValidita() { + return this.dataFineValidita; + } + + /** + * @param dataFineValidita to set + */ + public void setDataFineValidita(DateFilter dataFineValidita) { + this.dataFineValidita = dataFineValidita; + } + + // GETTER/SETTER FATHER + + public String getTheDregolePianiFeriePkObjectKey() { + return theDregolePianiFeriePkObjectKey; + } + + public void setTheDregolePianiFeriePkObjectKey(String theDregolePianiFeriePkObjectKey) { + this.theDregolePianiFeriePkObjectKey = theDregolePianiFeriePkObjectKey; + } + + // GETTER/SETTER IMPORTED FATHER + + // GEN COMPOSITE FILTER + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DregolePianiFeriePkCriteria.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DregolePianiFeriePkCriteria.java new file mode 100644 index 0000000..aa621d7 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/criteria/DregolePianiFeriePkCriteria.java @@ -0,0 +1,155 @@ +package it.micegroup.gestioneferie.configurazionepf.criteria; + +import java.io.Serializable; + +import it.micegroup.voila2runtime.filter.LongFilter; +import it.micegroup.voila2runtime.filter.StringFilter; +import it.micegroup.voila2runtime.filter.LocalDateFilter; + +public class DregolePianiFeriePkCriteria implements Serializable { + + // SERIAL UID + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 3289577936L; + + // FILTER ATTRIBUTES + private LongFilter sequIdRegolePianiFeriePk; + + private StringFilter codiRegola; + + private StringFilter descRegola; + + private StringFilter flagEliminato; + + private StringFilter utenteUltimaModifica; + + private LocalDateFilter dataUltimaModifica; + + private LocalDateFilter dataInizioValidita; + + private LocalDateFilter dataFineValidita; + + // FILTER FATHER + + // FILTER IMPORTED FATHER + + // GETTER/SETTER + /** + * @return the sequIdRegolePianiFeriePk + */ + public LongFilter getSequIdRegolePianiFeriePk() { + return this.sequIdRegolePianiFeriePk; + } + + /** + * @param sequIdRegolePianiFeriePk to set + */ + public void setSequIdRegolePianiFeriePk(LongFilter sequIdRegolePianiFeriePk) { + this.sequIdRegolePianiFeriePk = sequIdRegolePianiFeriePk; + } + + /** + * @return the codiRegola + */ + public StringFilter getCodiRegola() { + return this.codiRegola; + } + + /** + * @param codiRegola to set + */ + public void setCodiRegola(StringFilter codiRegola) { + this.codiRegola = codiRegola; + } + + /** + * @return the descRegola + */ + public StringFilter getDescRegola() { + return this.descRegola; + } + + /** + * @param descRegola to set + */ + public void setDescRegola(StringFilter descRegola) { + this.descRegola = descRegola; + } + + /** + * @return the flagEliminato + */ + public StringFilter getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(StringFilter flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the utenteUltimaModifica + */ + public StringFilter getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(StringFilter utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the dataUltimaModifica + */ + public DateFilter getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(DateFilter dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + /** + * @return the dataInizioValidita + */ + public DateFilter getDataInizioValidita() { + return this.dataInizioValidita; + } + + /** + * @param dataInizioValidita to set + */ + public void setDataInizioValidita(DateFilter dataInizioValidita) { + this.dataInizioValidita = dataInizioValidita; + } + + /** + * @return the dataFineValidita + */ + public DateFilter getDataFineValidita() { + return this.dataFineValidita; + } + + /** + * @param dataFineValidita to set + */ + public void setDataFineValidita(DateFilter dataFineValidita) { + this.dataFineValidita = dataFineValidita; + } + + // GETTER/SETTER FATHER + + // GETTER/SETTER IMPORTED FATHER + + // GEN COMPOSITE FILTER + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DconfigPaPfUoH.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DconfigPaPfUoH.java new file mode 100644 index 0000000..84a9d22 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DconfigPaPfUoH.java @@ -0,0 +1,414 @@ +package it.micegroup.gestioneferie.configurazionepf.entity; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +import javax.persistence.Id; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.FetchType; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.annotation.JsonBackReference; +import javax.persistence.ManyToOne; +import javax.validation.constraints.NotNull; + +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.Getter; +import lombok.AllArgsConstructor; + +import javax.persistence.Table; + +import org.apache.commons.lang3.StringUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hibernate.Hibernate; +import java.util.Objects; + +import it.micegroup.gestioneferie.libs.entity.BaseEntity; +import it.micegroup.voila2runtime.utils.EntityUtils; + +@NoArgsConstructor + +@Getter +@Setter +@Entity +@Table(name = "D_CONFIG_PA_PF_UO_H") +public class DconfigPaPfUoH extends BaseEntity implements Serializable { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 2107839351L; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DconfigPaPfUoH.class); + + // ATTRIBUTES + @Id + + @Column(name = "SEQU_ID_CONFIG_PA_PF_UO_H", columnDefinition = "NUMBER(15)") + private Long sequIdConfigPaPfUoH; + @NotNull + + @Column(name = "FLAG_VALIDO_UO_SUBORDINATE", columnDefinition = "VARCHAR(1)") + private String flagValidoUoSubordinate; + @NotNull + + @Column(name = "FK_CONFIG_PA_PIANO_FERIE", columnDefinition = "NUMBER(15)") + private Long fkConfigPaPianoFerie; + @Column(name = "FK_UNITA_FUNZIONALE", columnDefinition = "NUMBER(15)") + private Long fkUnitaFunzionale; + @Column(name = "FK_UNITA_ORGANIZZATIVA_PK", columnDefinition = "NUMBER(15)") + private Long fkUnitaOrganizzativaPk; + @NotNull + + @Column(name = "UTENTE_ULTIMA_MODIFICA", columnDefinition = "VARCHAR(50)") + private String utenteUltimaModifica; + @NotNull + + @Column(name = "FLAG_ELIMINATO", columnDefinition = "VARCHAR(1)") + private String flagEliminato; + @NotNull + + @Column(name = "DATA_INIZIO_VALIDITA", columnDefinition = "DATE") + private Date dataInizioValidita; + @NotNull + + @Column(name = "DATA_FINE_VALIDITA", columnDefinition = "DATE") + private Date dataFineValidita; + @NotNull + + @Column(name = "DATA_ULTIMA_MODIFICA", columnDefinition = "DATE") + private Date dataUltimaModifica; + + // IMPORTED PARENTS + + // CONSTRUCTORS + public DconfigPaPfUoH(String objectKey) { + super(); + setObjectKey(objectKey); + } + + public DconfigPaPfUoH(String flagValidoUoSubordinate, Long fkConfigPaPianoFerie, Long fkUnitaFunzionale, + Long fkUnitaOrganizzativaPk, String utenteUltimaModifica, String flagEliminato, Date dataInizioValidita, + Date dataFineValidita, Date dataUltimaModifica, Long sequIdConfigPaPfUoH) { + super(); + + this.flagValidoUoSubordinate = flagValidoUoSubordinate; + this.fkConfigPaPianoFerie = fkConfigPaPianoFerie; + this.fkUnitaFunzionale = fkUnitaFunzionale; + this.fkUnitaOrganizzativaPk = fkUnitaOrganizzativaPk; + this.utenteUltimaModifica = utenteUltimaModifica; + this.flagEliminato = flagEliminato; + this.dataInizioValidita = dataInizioValidita; + this.dataFineValidita = dataFineValidita; + this.dataUltimaModifica = dataUltimaModifica; + this.sequIdConfigPaPfUoH = sequIdConfigPaPfUoH; + } + + // CHILDREN + + // PARENTS + @NotNull + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "FK_CONFIG_PA_PIANO_FERIE", referencedColumnName = "SEQU_ID_CONFIG_PA_PIANO_FERIE", nullable = false) + @JsonBackReference("theDconfigPaPianiFerie") + @JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" }, allowSetters = true) + private DconfigPaPianiFerie theDconfigPaPianiFerie; + + // GETTER/SETTER + /** + * @return the sequIdConfigPaPfUoH + */ + public Long getSequIdConfigPaPfUoH() { + return this.sequIdConfigPaPfUoH; + } + + /** + * @param sequIdConfigPaPfUoH to set + */ + public void setSequIdConfigPaPfUoH(Long sequIdConfigPaPfUoH) { + this.sequIdConfigPaPfUoH = sequIdConfigPaPfUoH; + } + + /** + * @return the flagValidoUoSubordinate + */ + public String getFlagValidoUoSubordinate() { + return this.flagValidoUoSubordinate; + } + + /** + * @param flagValidoUoSubordinate to set + */ + public void setFlagValidoUoSubordinate(String flagValidoUoSubordinate) { + this.flagValidoUoSubordinate = flagValidoUoSubordinate; + } + + /** + * @return the fkConfigPaPianoFerie + */ + public Long getFkConfigPaPianoFerie() { + return this.fkConfigPaPianoFerie; + } + + /** + * @param fkConfigPaPianoFerie to set + */ + public void setFkConfigPaPianoFerie(Long fkConfigPaPianoFerie) { + this.fkConfigPaPianoFerie = fkConfigPaPianoFerie; + } + + /** + * @return the fkUnitaFunzionale + */ + public Long getFkUnitaFunzionale() { + return this.fkUnitaFunzionale; + } + + /** + * @param fkUnitaFunzionale to set + */ + public void setFkUnitaFunzionale(Long fkUnitaFunzionale) { + this.fkUnitaFunzionale = fkUnitaFunzionale; + } + + /** + * @return the fkUnitaOrganizzativaPk + */ + public Long getFkUnitaOrganizzativaPk() { + return this.fkUnitaOrganizzativaPk; + } + + /** + * @param fkUnitaOrganizzativaPk to set + */ + public void setFkUnitaOrganizzativaPk(Long fkUnitaOrganizzativaPk) { + this.fkUnitaOrganizzativaPk = fkUnitaOrganizzativaPk; + } + + /** + * @return the utenteUltimaModifica + */ + public String getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(String utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the flagEliminato + */ + public String getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(String flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the dataInizioValidita + */ + public Date getDataInizioValidita() { + return this.dataInizioValidita; + } + + /** + * @param dataInizioValidita to set + */ + public void setDataInizioValidita(Date dataInizioValidita) { + this.dataInizioValidita = dataInizioValidita; + } + + /** + * @return the dataFineValidita + */ + public Date getDataFineValidita() { + return this.dataFineValidita; + } + + /** + * @param dataFineValidita to set + */ + public void setDataFineValidita(Date dataFineValidita) { + this.dataFineValidita = dataFineValidita; + } + + /** + * @return the dataUltimaModifica + */ + public Date getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(Date dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + // CHILD GETTER/SETTER + + /// ADD CHILD + + // PARENT GETTER/SETTER + /** + * @return the DconfigPaPianiFerie + */ + @JsonProperty(access = Access.WRITE_ONLY) + public DconfigPaPianiFerie getTheDconfigPaPianiFerie() { + return theDconfigPaPianiFerie; + } + + /** + * @param aDconfigPaPianiFerieList to set + */ + public void setTheDconfigPaPianiFerie(DconfigPaPianiFerie aDconfigPaPianiFerie) { + theDconfigPaPianiFerie = aDconfigPaPianiFerie; + } + + // PARENT ID GETTER/SETTER + /** + * Return the sequIdConfigPaPianoFerie from theDconfigPaPianiFerie. + * + * @return sequIdConfigPaPianoFerie from theDconfigPaPianiFerie. + */ + @JsonProperty + public Long getSequIdConfigPaPianoFerie() { + // If the parent entity object is null, then return null + if (getTheDconfigPaPianiFerie() == null) { + return null; + } + // Return requested attribute + return theDconfigPaPianiFerie.getSequIdConfigPaPianoFerie(); + } + + // PARENT OBJECT TITLE + /** + * Return the object title of theDconfigPaPianiFerie. + * + * @return the object title of theDconfigPaPianiFerie. + */ + @JsonProperty + public String getTheDconfigPaPianiFerieObjectTitle() { + return getTheDconfigPaPianiFerie() != null ? getTheDconfigPaPianiFerie().getObjectTitle() : null; + } + + // PARENT OBJECT KEY + /** + * Return the object key of theDconfigPaPianiFerie. + * + * @return the object key of theDconfigPaPianiFerie. + */ + @JsonProperty + public String getTheDconfigPaPianiFerieObjectKey() { + return getTheDconfigPaPianiFerie() != null ? getTheDconfigPaPianiFerie().getObjectKey() : null; + } + + /** + * Set object key of theDconfigPaPianiFerie. + * + */ + @JsonProperty + public void setTheDconfigPaPianiFerieObjectKey(String objectKey) { + if (EntityUtils.isValueChanged(getTheDconfigPaPianiFerieObjectKey(), objectKey, false)) { + DconfigPaPianiFerie dconfigPaPianiFerie = new DconfigPaPianiFerie(); + dconfigPaPianiFerie.setObjectKey(objectKey); + setTheDconfigPaPianiFerie(dconfigPaPianiFerie); + } + } + + // IMPORTED PARENT OBJECT KEY + + // OPERATIONS + + // OBJECT KEY + /** + * Restituisce l'identificativo della chiave in formato stringa. Ritorna + * conveniente nelle selezioni da lista. + * + * @return L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public String getObjectKey() { + return getObjectKeyById(getSequIdConfigPaPfUoH()); + } + + public String getObjectKeyById(Long identification) { + if (identification == null) { + return null; + } + StringBuilder output = new StringBuilder(); + output.append(identification); + return output.toString(); + } + + /** + * Inizializza la parte identificativa del bean in base alla stringa tokenizzata + * da "||" fornita in input. + * + * @param key L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public void setObjectKey(String key) { + if (key == null || key.trim().length() == 0) { + return; + } + String[] array = StringUtils.splitByWholeSeparatorPreserveAllTokens(key, getRowIdFieldDelimiter()); + int ctr = 0; + + setSequIdConfigPaPfUoH(getLongCheckedAgainstNullContent(array[ctr])); + } + + // OBJECT TITLE + public String getObjectTitle() { + StringBuilder output = new StringBuilder(); + output.append(getFlagValidoUoSubordinate()); + return output.toString(); + } + + // PREPERSIST + + @PrePersist + public void prePersist() { + } + + @PreUpdate + public void PreUpdate() { + } + + // Equals / HashCode + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) + return false; + DconfigPaPfUoH that = (DconfigPaPfUoH) o; + return sequIdConfigPaPfUoH != null && Objects.equals(sequIdConfigPaPfUoH, that.sequIdConfigPaPfUoH); + } + + @Override + public int hashCode() { + return Objects.hash(sequIdConfigPaPfUoH); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DconfigPaPianiFerie.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DconfigPaPianiFerie.java new file mode 100644 index 0000000..a5daa71 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DconfigPaPianiFerie.java @@ -0,0 +1,397 @@ +package it.micegroup.gestioneferie.configurazionepf.entity; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +import javax.persistence.Id; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import java.util.Collection; +import java.util.ArrayList; +import javax.persistence.OneToMany; +import javax.persistence.CascadeType; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import lombok.ToString; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; + +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.Getter; +import lombok.AllArgsConstructor; + +import javax.persistence.Table; + +import org.apache.commons.lang3.StringUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hibernate.Hibernate; +import java.util.Objects; + +import it.micegroup.gestioneferie.libs.entity.BaseEntity; +import it.micegroup.voila2runtime.utils.EntityUtils; + +@NoArgsConstructor + +@Getter +@Setter +@Entity +@Table(name = "D_CONFIG_PA_PIANI_FERIE") +public class DconfigPaPianiFerie extends BaseEntity implements Serializable { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 1237557078L; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DconfigPaPianiFerie.class); + + // ATTRIBUTES + @Id + + @Column(name = "SEQU_ID_CONFIG_PA_PIANO_FERIE", columnDefinition = "NUMBER(15)") + private Long sequIdConfigPaPianoFerie; + @NotNull + + @Column(name = "CODI_CONFIG_PA_PIANO_FERIE", columnDefinition = "VARCHAR(50)") + private String codiConfigPaPianoFerie; + @NotNull + + @Column(name = "DESC_CONFIG_PA_PIANO_FERIE", columnDefinition = "VARCHAR(250)") + private String descConfigPaPianoFerie; + @NotNull + + @Column(name = "FK_AMMINISTRAZIONE_PK", columnDefinition = "NUMBER(15)") + private Long fkAmministrazionePk; + @NotNull + + @Column(name = "FK_TIPO_ORGANIGRAMMA", columnDefinition = "NUMBER(15)") + private Long fkTipoOrganigramma; + @NotNull + + @Column(name = "DATA_ULTIMA_MODIFICA", columnDefinition = "DATE") + private Date dataUltimaModifica; + @NotNull + + @Column(name = "UTENTE_ULTIMA_MODIFICA", columnDefinition = "VARCHAR(50)") + private String utenteUltimaModifica; + @NotNull + + @Column(name = "FLAG_ELIMINATO", columnDefinition = "VARCHAR(1)") + private String flagEliminato; + @NotNull + + @Column(name = "DATA_INIZIO_RECORD", columnDefinition = "DATE") + private Date dataInizioRecord; + @NotNull + + @Column(name = "DATA_FINE_RECORD", columnDefinition = "DATE") + private Date dataFineRecord; + + // IMPORTED PARENTS + + // CONSTRUCTORS + public DconfigPaPianiFerie(String objectKey) { + super(); + setObjectKey(objectKey); + } + + public DconfigPaPianiFerie(String codiConfigPaPianoFerie, String descConfigPaPianoFerie, Long fkAmministrazionePk, + Long fkTipoOrganigramma, Date dataUltimaModifica, String utenteUltimaModifica, String flagEliminato, + Date dataInizioRecord, Date dataFineRecord, Long sequIdConfigPaPianoFerie) { + super(); + + this.codiConfigPaPianoFerie = codiConfigPaPianoFerie; + this.descConfigPaPianoFerie = descConfigPaPianoFerie; + this.fkAmministrazionePk = fkAmministrazionePk; + this.fkTipoOrganigramma = fkTipoOrganigramma; + this.dataUltimaModifica = dataUltimaModifica; + this.utenteUltimaModifica = utenteUltimaModifica; + this.flagEliminato = flagEliminato; + this.dataInizioRecord = dataInizioRecord; + this.dataFineRecord = dataFineRecord; + this.sequIdConfigPaPianoFerie = sequIdConfigPaPianoFerie; + } + + // CHILDREN + @JsonProperty(access = Access.WRITE_ONLY) + @JsonManagedReference("theDconfigPaPianiFerie") + @OneToMany(mappedBy = "theDconfigPaPianiFerie", fetch = FetchType.LAZY, cascade = CascadeType.ALL) + @ToString.Exclude + private Collection theDpercAutPianFerieH = new ArrayList<>(); + + @JsonProperty(access = Access.WRITE_ONLY) + @JsonManagedReference("theDconfigPaPianiFerie") + @OneToMany(mappedBy = "theDconfigPaPianiFerie", fetch = FetchType.LAZY, cascade = CascadeType.ALL) + @ToString.Exclude + private Collection theDconfigPaPfUoH = new ArrayList<>(); + + // PARENTS + + // GETTER/SETTER + /** + * @return the sequIdConfigPaPianoFerie + */ + public Long getSequIdConfigPaPianoFerie() { + return this.sequIdConfigPaPianoFerie; + } + + /** + * @param sequIdConfigPaPianoFerie to set + */ + public void setSequIdConfigPaPianoFerie(Long sequIdConfigPaPianoFerie) { + this.sequIdConfigPaPianoFerie = sequIdConfigPaPianoFerie; + } + + /** + * @return the codiConfigPaPianoFerie + */ + public String getCodiConfigPaPianoFerie() { + return this.codiConfigPaPianoFerie; + } + + /** + * @param codiConfigPaPianoFerie to set + */ + public void setCodiConfigPaPianoFerie(String codiConfigPaPianoFerie) { + this.codiConfigPaPianoFerie = codiConfigPaPianoFerie; + } + + /** + * @return the descConfigPaPianoFerie + */ + public String getDescConfigPaPianoFerie() { + return this.descConfigPaPianoFerie; + } + + /** + * @param descConfigPaPianoFerie to set + */ + public void setDescConfigPaPianoFerie(String descConfigPaPianoFerie) { + this.descConfigPaPianoFerie = descConfigPaPianoFerie; + } + + /** + * @return the fkAmministrazionePk + */ + public Long getFkAmministrazionePk() { + return this.fkAmministrazionePk; + } + + /** + * @param fkAmministrazionePk to set + */ + public void setFkAmministrazionePk(Long fkAmministrazionePk) { + this.fkAmministrazionePk = fkAmministrazionePk; + } + + /** + * @return the fkTipoOrganigramma + */ + public Long getFkTipoOrganigramma() { + return this.fkTipoOrganigramma; + } + + /** + * @param fkTipoOrganigramma to set + */ + public void setFkTipoOrganigramma(Long fkTipoOrganigramma) { + this.fkTipoOrganigramma = fkTipoOrganigramma; + } + + /** + * @return the dataUltimaModifica + */ + public Date getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(Date dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + /** + * @return the utenteUltimaModifica + */ + public String getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(String utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the flagEliminato + */ + public String getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(String flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the dataInizioRecord + */ + public Date getDataInizioRecord() { + return this.dataInizioRecord; + } + + /** + * @param dataInizioRecord to set + */ + public void setDataInizioRecord(Date dataInizioRecord) { + this.dataInizioRecord = dataInizioRecord; + } + + /** + * @return the dataFineRecord + */ + public Date getDataFineRecord() { + return this.dataFineRecord; + } + + /** + * @param dataFineRecord to set + */ + public void setDataFineRecord(Date dataFineRecord) { + this.dataFineRecord = dataFineRecord; + } + + // CHILD GETTER/SETTER + /** + * @return the DpercAutPianFerieH + */ + public Collection getTheDpercAutPianFerieH() { + return theDpercAutPianFerieH; + } + + /** + * @param aDpercAutPianFerieHList to set + */ + public void setTheDpercAutPianFerieH(Collection aDpercAutPianFerieHList) { + theDpercAutPianFerieH = aDpercAutPianFerieHList; + } + + /** + * @return the DconfigPaPfUoH + */ + public Collection getTheDconfigPaPfUoH() { + return theDconfigPaPfUoH; + } + + /** + * @param aDconfigPaPfUoHList to set + */ + public void setTheDconfigPaPfUoH(Collection aDconfigPaPfUoHList) { + theDconfigPaPfUoH = aDconfigPaPfUoHList; + } + + /// ADD CHILD + public void addDpercAutPianFerieH(DpercAutPianFerieH dpercAutPianFerieH) { + theDpercAutPianFerieH.add(dpercAutPianFerieH); + } + + public void addDconfigPaPfUoH(DconfigPaPfUoH dconfigPaPfUoH) { + theDconfigPaPfUoH.add(dconfigPaPfUoH); + } + + // PARENT GETTER/SETTER + + // PARENT ID GETTER/SETTER + + // PARENT OBJECT TITLE + + // PARENT OBJECT KEY + + // IMPORTED PARENT OBJECT KEY + + // OPERATIONS + + // OBJECT KEY + /** + * Restituisce l'identificativo della chiave in formato stringa. Ritorna + * conveniente nelle selezioni da lista. + * + * @return L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public String getObjectKey() { + return getObjectKeyById(getSequIdConfigPaPianoFerie()); + } + + public String getObjectKeyById(Long identification) { + if (identification == null) { + return null; + } + StringBuilder output = new StringBuilder(); + output.append(identification); + return output.toString(); + } + + /** + * Inizializza la parte identificativa del bean in base alla stringa tokenizzata + * da "||" fornita in input. + * + * @param key L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public void setObjectKey(String key) { + if (key == null || key.trim().length() == 0) { + return; + } + String[] array = StringUtils.splitByWholeSeparatorPreserveAllTokens(key, getRowIdFieldDelimiter()); + int ctr = 0; + + setSequIdConfigPaPianoFerie(getLongCheckedAgainstNullContent(array[ctr])); + } + + // OBJECT TITLE + public String getObjectTitle() { + StringBuilder output = new StringBuilder(); + output.append(getCodiConfigPaPianoFerie()); + return output.toString(); + } + + // PREPERSIST + + @PrePersist + public void prePersist() { + } + + @PreUpdate + public void PreUpdate() { + } + + // Equals / HashCode + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) + return false; + DconfigPaPianiFerie that = (DconfigPaPianiFerie) o; + return sequIdConfigPaPianoFerie != null + && Objects.equals(sequIdConfigPaPianoFerie, that.sequIdConfigPaPianoFerie); + } + + @Override + public int hashCode() { + return Objects.hash(sequIdConfigPaPianoFerie); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DpercAutPianFerieH.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DpercAutPianFerieH.java new file mode 100644 index 0000000..e34ca85 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DpercAutPianFerieH.java @@ -0,0 +1,468 @@ +package it.micegroup.gestioneferie.configurazionepf.entity; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +import javax.persistence.Id; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.FetchType; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.annotation.JsonBackReference; +import javax.persistence.ManyToOne; +import javax.validation.constraints.NotNull; + +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.Getter; +import lombok.AllArgsConstructor; + +import javax.persistence.Table; + +import org.apache.commons.lang3.StringUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hibernate.Hibernate; +import java.util.Objects; + +import it.micegroup.gestioneferie.libs.entity.BaseEntity; +import it.micegroup.voila2runtime.utils.EntityUtils; + +@NoArgsConstructor + +@Getter +@Setter +@Entity +@Table(name = "D_PERC_AUT_PIAN_FERIE_H") +public class DpercAutPianFerieH extends BaseEntity implements Serializable { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 2997153128L; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DpercAutPianFerieH.class); + + // ATTRIBUTES + @Id + + @Column(name = "SEQU_ID_PERC_AUT_PIAN_FERIE_H", columnDefinition = "NUMBER(15)") + private Long sequIdPercAutPianFerieH; + @NotNull + + @Column(name = "FK_CONFIG_PA_PIANO_FERIE", columnDefinition = "NUMBER(15)") + private Long fkConfigPaPianoFerie; + @NotNull + + @Column(name = "FK_PERCORSO", columnDefinition = "NUMBER(15)") + private Long fkPercorso; + @NotNull + + @Column(name = "FK_PERC_AUT_PIAN_FERIE_PK", columnDefinition = "NUMBER(15)") + private Long fkPercAutPianFeriePk; + @NotNull + + @Column(name = "DATA_ULTIMA_MODIFICA", columnDefinition = "DATE") + private Date dataUltimaModifica; + @NotNull + + @Column(name = "DATA_FINE_VALIDITA", columnDefinition = "DATE") + private Date dataFineValidita; + @NotNull + + @Column(name = "DATA_INIZIO_VALIDITA", columnDefinition = "DATE") + private Date dataInizioValidita; + @NotNull + + @Column(name = "UTENTE_ULTIMA_MODIFICA", columnDefinition = "VARCHAR(50)") + private String utenteUltimaModifica; + @NotNull + + @Column(name = "FLAG_ELIMINATO", columnDefinition = "VARCHAR(1)") + private String flagEliminato; + + // IMPORTED PARENTS + + // CONSTRUCTORS + public DpercAutPianFerieH(String objectKey) { + super(); + setObjectKey(objectKey); + } + + public DpercAutPianFerieH(Long fkConfigPaPianoFerie, Long fkPercorso, Long fkPercAutPianFeriePk, + Date dataUltimaModifica, Date dataFineValidita, Date dataInizioValidita, String utenteUltimaModifica, + String flagEliminato, Long sequIdPercAutPianFerieH) { + super(); + + this.fkConfigPaPianoFerie = fkConfigPaPianoFerie; + this.fkPercorso = fkPercorso; + this.fkPercAutPianFeriePk = fkPercAutPianFeriePk; + this.dataUltimaModifica = dataUltimaModifica; + this.dataFineValidita = dataFineValidita; + this.dataInizioValidita = dataInizioValidita; + this.utenteUltimaModifica = utenteUltimaModifica; + this.flagEliminato = flagEliminato; + this.sequIdPercAutPianFerieH = sequIdPercAutPianFerieH; + } + + // CHILDREN + + // PARENTS + @NotNull + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "FK_PERC_AUT_PIAN_FERIE_PK", referencedColumnName = "SEQU_ID_PERC_AUT_PIAN_FERIE_PK", nullable = false) + @JsonBackReference("theDpercAutPianFeriePk") + @JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" }, allowSetters = true) + private DpercAutPianFeriePk theDpercAutPianFeriePk; + @NotNull + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "FK_CONFIG_PA_PIANO_FERIE", referencedColumnName = "SEQU_ID_CONFIG_PA_PIANO_FERIE", nullable = false) + @JsonBackReference("theDconfigPaPianiFerie") + @JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" }, allowSetters = true) + private DconfigPaPianiFerie theDconfigPaPianiFerie; + + // GETTER/SETTER + /** + * @return the sequIdPercAutPianFerieH + */ + public Long getSequIdPercAutPianFerieH() { + return this.sequIdPercAutPianFerieH; + } + + /** + * @param sequIdPercAutPianFerieH to set + */ + public void setSequIdPercAutPianFerieH(Long sequIdPercAutPianFerieH) { + this.sequIdPercAutPianFerieH = sequIdPercAutPianFerieH; + } + + /** + * @return the fkConfigPaPianoFerie + */ + public Long getFkConfigPaPianoFerie() { + return this.fkConfigPaPianoFerie; + } + + /** + * @param fkConfigPaPianoFerie to set + */ + public void setFkConfigPaPianoFerie(Long fkConfigPaPianoFerie) { + this.fkConfigPaPianoFerie = fkConfigPaPianoFerie; + } + + /** + * @return the fkPercorso + */ + public Long getFkPercorso() { + return this.fkPercorso; + } + + /** + * @param fkPercorso to set + */ + public void setFkPercorso(Long fkPercorso) { + this.fkPercorso = fkPercorso; + } + + /** + * @return the fkPercAutPianFeriePk + */ + public Long getFkPercAutPianFeriePk() { + return this.fkPercAutPianFeriePk; + } + + /** + * @param fkPercAutPianFeriePk to set + */ + public void setFkPercAutPianFeriePk(Long fkPercAutPianFeriePk) { + this.fkPercAutPianFeriePk = fkPercAutPianFeriePk; + } + + /** + * @return the dataUltimaModifica + */ + public Date getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(Date dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + /** + * @return the dataFineValidita + */ + public Date getDataFineValidita() { + return this.dataFineValidita; + } + + /** + * @param dataFineValidita to set + */ + public void setDataFineValidita(Date dataFineValidita) { + this.dataFineValidita = dataFineValidita; + } + + /** + * @return the dataInizioValidita + */ + public Date getDataInizioValidita() { + return this.dataInizioValidita; + } + + /** + * @param dataInizioValidita to set + */ + public void setDataInizioValidita(Date dataInizioValidita) { + this.dataInizioValidita = dataInizioValidita; + } + + /** + * @return the utenteUltimaModifica + */ + public String getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(String utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the flagEliminato + */ + public String getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(String flagEliminato) { + this.flagEliminato = flagEliminato; + } + + // CHILD GETTER/SETTER + + /// ADD CHILD + + // PARENT GETTER/SETTER + /** + * @return the DpercAutPianFeriePk + */ + @JsonProperty(access = Access.WRITE_ONLY) + public DpercAutPianFeriePk getTheDpercAutPianFeriePk() { + return theDpercAutPianFeriePk; + } + + /** + * @param aDpercAutPianFeriePkList to set + */ + public void setTheDpercAutPianFeriePk(DpercAutPianFeriePk aDpercAutPianFeriePk) { + theDpercAutPianFeriePk = aDpercAutPianFeriePk; + } + + /** + * @return the DconfigPaPianiFerie + */ + @JsonProperty(access = Access.WRITE_ONLY) + public DconfigPaPianiFerie getTheDconfigPaPianiFerie() { + return theDconfigPaPianiFerie; + } + + /** + * @param aDconfigPaPianiFerieList to set + */ + public void setTheDconfigPaPianiFerie(DconfigPaPianiFerie aDconfigPaPianiFerie) { + theDconfigPaPianiFerie = aDconfigPaPianiFerie; + } + + // PARENT ID GETTER/SETTER + /** + * Return the sequIdPercAutPianFeriePk from theDpercAutPianFeriePk. + * + * @return sequIdPercAutPianFeriePk from theDpercAutPianFeriePk. + */ + @JsonProperty + public Long getSequIdPercAutPianFeriePk() { + // If the parent entity object is null, then return null + if (getTheDpercAutPianFeriePk() == null) { + return null; + } + // Return requested attribute + return theDpercAutPianFeriePk.getSequIdPercAutPianFeriePk(); + } + + /** + * Return the sequIdConfigPaPianoFerie from theDconfigPaPianiFerie. + * + * @return sequIdConfigPaPianoFerie from theDconfigPaPianiFerie. + */ + @JsonProperty + public Long getSequIdConfigPaPianoFerie() { + // If the parent entity object is null, then return null + if (getTheDconfigPaPianiFerie() == null) { + return null; + } + // Return requested attribute + return theDconfigPaPianiFerie.getSequIdConfigPaPianoFerie(); + } + + // PARENT OBJECT TITLE + /** + * Return the object title of theDpercAutPianFeriePk. + * + * @return the object title of theDpercAutPianFeriePk. + */ + @JsonProperty + public String getTheDpercAutPianFeriePkObjectTitle() { + return getTheDpercAutPianFeriePk() != null ? getTheDpercAutPianFeriePk().getObjectTitle() : null; + } + + /** + * Return the object title of theDconfigPaPianiFerie. + * + * @return the object title of theDconfigPaPianiFerie. + */ + @JsonProperty + public String getTheDconfigPaPianiFerieObjectTitle() { + return getTheDconfigPaPianiFerie() != null ? getTheDconfigPaPianiFerie().getObjectTitle() : null; + } + + // PARENT OBJECT KEY + /** + * Return the object key of theDpercAutPianFeriePk. + * + * @return the object key of theDpercAutPianFeriePk. + */ + @JsonProperty + public String getTheDpercAutPianFeriePkObjectKey() { + return getTheDpercAutPianFeriePk() != null ? getTheDpercAutPianFeriePk().getObjectKey() : null; + } + + /** + * Set object key of theDpercAutPianFeriePk. + * + */ + @JsonProperty + public void setTheDpercAutPianFeriePkObjectKey(String objectKey) { + if (EntityUtils.isValueChanged(getTheDpercAutPianFeriePkObjectKey(), objectKey, false)) { + DpercAutPianFeriePk dpercAutPianFeriePk = new DpercAutPianFeriePk(); + dpercAutPianFeriePk.setObjectKey(objectKey); + setTheDpercAutPianFeriePk(dpercAutPianFeriePk); + } + } + + /** + * Return the object key of theDconfigPaPianiFerie. + * + * @return the object key of theDconfigPaPianiFerie. + */ + @JsonProperty + public String getTheDconfigPaPianiFerieObjectKey() { + return getTheDconfigPaPianiFerie() != null ? getTheDconfigPaPianiFerie().getObjectKey() : null; + } + + /** + * Set object key of theDconfigPaPianiFerie. + * + */ + @JsonProperty + public void setTheDconfigPaPianiFerieObjectKey(String objectKey) { + if (EntityUtils.isValueChanged(getTheDconfigPaPianiFerieObjectKey(), objectKey, false)) { + DconfigPaPianiFerie dconfigPaPianiFerie = new DconfigPaPianiFerie(); + dconfigPaPianiFerie.setObjectKey(objectKey); + setTheDconfigPaPianiFerie(dconfigPaPianiFerie); + } + } + + // IMPORTED PARENT OBJECT KEY + + // OPERATIONS + + // OBJECT KEY + /** + * Restituisce l'identificativo della chiave in formato stringa. Ritorna + * conveniente nelle selezioni da lista. + * + * @return L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public String getObjectKey() { + return getObjectKeyById(getSequIdPercAutPianFerieH()); + } + + public String getObjectKeyById(Long identification) { + if (identification == null) { + return null; + } + StringBuilder output = new StringBuilder(); + output.append(identification); + return output.toString(); + } + + /** + * Inizializza la parte identificativa del bean in base alla stringa tokenizzata + * da "||" fornita in input. + * + * @param key L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public void setObjectKey(String key) { + if (key == null || key.trim().length() == 0) { + return; + } + String[] array = StringUtils.splitByWholeSeparatorPreserveAllTokens(key, getRowIdFieldDelimiter()); + int ctr = 0; + + setSequIdPercAutPianFerieH(getLongCheckedAgainstNullContent(array[ctr])); + } + + // OBJECT TITLE + public String getObjectTitle() { + StringBuilder output = new StringBuilder(); + output.append(getUtenteUltimaModifica()); + return output.toString(); + } + + // PREPERSIST + + @PrePersist + public void prePersist() { + } + + @PreUpdate + public void PreUpdate() { + } + + // Equals / HashCode + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) + return false; + DpercAutPianFerieH that = (DpercAutPianFerieH) o; + return sequIdPercAutPianFerieH != null && Objects.equals(sequIdPercAutPianFerieH, that.sequIdPercAutPianFerieH); + } + + @Override + public int hashCode() { + return Objects.hash(sequIdPercAutPianFerieH); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DpercAutPianFeriePk.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DpercAutPianFeriePk.java new file mode 100644 index 0000000..f472e89 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DpercAutPianFeriePk.java @@ -0,0 +1,258 @@ +package it.micegroup.gestioneferie.configurazionepf.entity; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +import javax.persistence.Id; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import java.util.Collection; +import java.util.ArrayList; +import javax.persistence.OneToMany; +import javax.persistence.CascadeType; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import lombok.ToString; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; + +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.Getter; +import lombok.AllArgsConstructor; + +import javax.persistence.Table; + +import org.apache.commons.lang3.StringUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hibernate.Hibernate; +import java.util.Objects; + +import it.micegroup.gestioneferie.libs.entity.BaseEntity; +import it.micegroup.voila2runtime.utils.EntityUtils; + +@NoArgsConstructor + +@Getter +@Setter +@Entity +@Table(name = "D_PERC_AUT_PIAN_FERIE_PK") +public class DpercAutPianFeriePk extends BaseEntity implements Serializable { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 887071405L; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DpercAutPianFeriePk.class); + + // ATTRIBUTES + @Id + + @Column(name = "SEQU_ID_PERC_AUT_PIAN_FERIE_PK", columnDefinition = "NUMBER(15)") + private Long sequIdPercAutPianFeriePk; + @NotNull + + @Column(name = "FLAG_ELIMINATO", columnDefinition = "VARCHAR(1)") + private String flagEliminato; + @NotNull + + @Column(name = "UTENTE_ULTIMA_MODIFICA", columnDefinition = "VARCHAR(50)") + private String utenteUltimaModifica; + @NotNull + + @Column(name = "DATA_ULTIMA_MODIFICA", columnDefinition = "DATE") + private Date dataUltimaModifica; + + // IMPORTED PARENTS + + // CONSTRUCTORS + public DpercAutPianFeriePk(String objectKey) { + super(); + setObjectKey(objectKey); + } + + public DpercAutPianFeriePk(String flagEliminato, String utenteUltimaModifica, Date dataUltimaModifica, + Long sequIdPercAutPianFeriePk) { + super(); + + this.flagEliminato = flagEliminato; + this.utenteUltimaModifica = utenteUltimaModifica; + this.dataUltimaModifica = dataUltimaModifica; + this.sequIdPercAutPianFeriePk = sequIdPercAutPianFeriePk; + } + + // CHILDREN + @JsonProperty(access = Access.WRITE_ONLY) + @JsonManagedReference("theDpercAutPianFeriePk") + @OneToMany(mappedBy = "theDpercAutPianFeriePk", fetch = FetchType.LAZY, cascade = CascadeType.ALL) + @ToString.Exclude + private Collection theDpercAutPianFerieH = new ArrayList<>(); + + // PARENTS + + // GETTER/SETTER + /** + * @return the sequIdPercAutPianFeriePk + */ + public Long getSequIdPercAutPianFeriePk() { + return this.sequIdPercAutPianFeriePk; + } + + /** + * @param sequIdPercAutPianFeriePk to set + */ + public void setSequIdPercAutPianFeriePk(Long sequIdPercAutPianFeriePk) { + this.sequIdPercAutPianFeriePk = sequIdPercAutPianFeriePk; + } + + /** + * @return the flagEliminato + */ + public String getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(String flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the utenteUltimaModifica + */ + public String getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(String utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the dataUltimaModifica + */ + public Date getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(Date dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + // CHILD GETTER/SETTER + /** + * @return the DpercAutPianFerieH + */ + public Collection getTheDpercAutPianFerieH() { + return theDpercAutPianFerieH; + } + + /** + * @param aDpercAutPianFerieHList to set + */ + public void setTheDpercAutPianFerieH(Collection aDpercAutPianFerieHList) { + theDpercAutPianFerieH = aDpercAutPianFerieHList; + } + + /// ADD CHILD + public void addDpercAutPianFerieH(DpercAutPianFerieH dpercAutPianFerieH) { + theDpercAutPianFerieH.add(dpercAutPianFerieH); + } + + // PARENT GETTER/SETTER + + // PARENT ID GETTER/SETTER + + // PARENT OBJECT TITLE + + // PARENT OBJECT KEY + + // IMPORTED PARENT OBJECT KEY + + // OPERATIONS + + // OBJECT KEY + /** + * Restituisce l'identificativo della chiave in formato stringa. Ritorna + * conveniente nelle selezioni da lista. + * + * @return L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public String getObjectKey() { + return getObjectKeyById(getSequIdPercAutPianFeriePk()); + } + + public String getObjectKeyById(Long identification) { + if (identification == null) { + return null; + } + StringBuilder output = new StringBuilder(); + output.append(identification); + return output.toString(); + } + + /** + * Inizializza la parte identificativa del bean in base alla stringa tokenizzata + * da "||" fornita in input. + * + * @param key L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public void setObjectKey(String key) { + if (key == null || key.trim().length() == 0) { + return; + } + String[] array = StringUtils.splitByWholeSeparatorPreserveAllTokens(key, getRowIdFieldDelimiter()); + int ctr = 0; + + setSequIdPercAutPianFeriePk(getLongCheckedAgainstNullContent(array[ctr])); + } + + // OBJECT TITLE + public String getObjectTitle() { + StringBuilder output = new StringBuilder(); + output.append(getFlagEliminato()); + return output.toString(); + } + + // PREPERSIST + + @PrePersist + public void prePersist() { + } + + @PreUpdate + public void PreUpdate() { + } + + // Equals / HashCode + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) + return false; + DpercAutPianFeriePk that = (DpercAutPianFeriePk) o; + return sequIdPercAutPianFeriePk != null + && Objects.equals(sequIdPercAutPianFeriePk, that.sequIdPercAutPianFeriePk); + } + + @Override + public int hashCode() { + return Objects.hash(sequIdPercAutPianFeriePk); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DregolePianiFerieH.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DregolePianiFerieH.java new file mode 100644 index 0000000..5b8f109 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DregolePianiFerieH.java @@ -0,0 +1,510 @@ +package it.micegroup.gestioneferie.configurazionepf.entity; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +import javax.persistence.Id; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.FetchType; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.annotation.JsonBackReference; +import javax.persistence.ManyToOne; +import javax.validation.constraints.NotNull; + +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.Getter; +import lombok.AllArgsConstructor; + +import javax.persistence.Table; + +import org.apache.commons.lang3.StringUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hibernate.Hibernate; +import java.util.Objects; + +import it.micegroup.gestioneferie.libs.entity.BaseEntity; +import it.micegroup.voila2runtime.utils.EntityUtils; + +@NoArgsConstructor + +@Getter +@Setter +@Entity +@Table(name = "D_REGOLE_PIANI_FERIE_H") +public class DregolePianiFerieH extends BaseEntity implements Serializable { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 976188501L; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DregolePianiFerieH.class); + + // ATTRIBUTES + @Id + + @Column(name = "SEQU_ID_REGOLE_PIANI_FERIE_H", columnDefinition = "NUMBER(15)") + private Long sequIdRegolePianiFerieH; + @NotNull + + @Column(name = "NUME_MIN_GG_DA_PIANIFICARE", columnDefinition = "NUMBER(15)") + private Long numMinGgDaPianificare; + @NotNull + + @Column(name = "NUME_MAX_GG_DA_PIANIFICARE", columnDefinition = "NUMBER(15)") + private Long numMaxGgDaPianificare; + @NotNull + + @Column(name = "NUME_PERC_MIN_GIORNI_PRESENZA", columnDefinition = "NUMBER(15)") + private Long numePercMinGiorniPresenza; + @NotNull + + @Column(name = "FLAG_VALIDO_UO_SUBORDINATE", columnDefinition = "VARCHAR(1)") + private String flagValidoUoSubordinate; + @NotNull + + @Column(name = "FK_AMMINISTRAZIONE", columnDefinition = "NUMBER(15)") + private Long fkAmministrazione; + @NotNull + + @Column(name = "FK_REGOLA_PIANO_FERIE_PK", columnDefinition = "NUMBER(15)") + private Long fkRegolaPianoFeriePk; + @NotNull + + @Column(name = "FK_TIPO_ORGANIGRAMMA", columnDefinition = "NUMBER(15)") + private Long fkTipoOrganigramma; + @Column(name = "FK_UNITA_FUNZIONALE", columnDefinition = "NUMBER(15)") + private Long fkUnitaFunzionale; + @Column(name = "FK_UNITA_ORGANIZZATIVA_PK", columnDefinition = "NUMBER(15)") + private Long fkUnitaOrganizzativaPk; + @NotNull + + @Column(name = "FLAG_ELIMINATO", columnDefinition = "VARCHAR(1)") + private String flagEliminato; + @NotNull + + @Column(name = "UTENTE_ULTIMA_MODIFICA", columnDefinition = "VARCHAR(50)") + private String utenteUltimaModifica; + @NotNull + + @Column(name = "DATA_ULTIMA_MODIFICA", columnDefinition = "DATE") + private Date dataUltimaModifica; + @NotNull + + @Column(name = "DATA_INIZIO_VALIDITA", columnDefinition = "DATE") + private Date dataInizioValidita; + @NotNull + + @Column(name = "DATA_FINE_VALIDITA", columnDefinition = "DATE") + private Date dataFineValidita; + + // IMPORTED PARENTS + + // CONSTRUCTORS + public DregolePianiFerieH(String objectKey) { + super(); + setObjectKey(objectKey); + } + + public DregolePianiFerieH(Long numMinGgDaPianificare, Long numMaxGgDaPianificare, Long numePercMinGiorniPresenza, + String flagValidoUoSubordinate, Long fkAmministrazione, Long fkRegolaPianoFeriePk, Long fkTipoOrganigramma, + Long fkUnitaFunzionale, Long fkUnitaOrganizzativaPk, String flagEliminato, String utenteUltimaModifica, + Date dataUltimaModifica, Date dataInizioValidita, Date dataFineValidita, Long sequIdRegolePianiFerieH) { + super(); + + this.numMinGgDaPianificare = numMinGgDaPianificare; + this.numMaxGgDaPianificare = numMaxGgDaPianificare; + this.numePercMinGiorniPresenza = numePercMinGiorniPresenza; + this.flagValidoUoSubordinate = flagValidoUoSubordinate; + this.fkAmministrazione = fkAmministrazione; + this.fkRegolaPianoFeriePk = fkRegolaPianoFeriePk; + this.fkTipoOrganigramma = fkTipoOrganigramma; + this.fkUnitaFunzionale = fkUnitaFunzionale; + this.fkUnitaOrganizzativaPk = fkUnitaOrganizzativaPk; + this.flagEliminato = flagEliminato; + this.utenteUltimaModifica = utenteUltimaModifica; + this.dataUltimaModifica = dataUltimaModifica; + this.dataInizioValidita = dataInizioValidita; + this.dataFineValidita = dataFineValidita; + this.sequIdRegolePianiFerieH = sequIdRegolePianiFerieH; + } + + // CHILDREN + + // PARENTS + @NotNull + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "FK_REGOLA_PIANO_FERIE_PK", referencedColumnName = "SEQU_ID_REGOLE_PIANI_FERIE_PK", nullable = false) + @JsonBackReference("theDregolePianiFeriePk") + @JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" }, allowSetters = true) + private DregolePianiFeriePk theDregolePianiFeriePk; + + // GETTER/SETTER + /** + * @return the sequIdRegolePianiFerieH + */ + public Long getSequIdRegolePianiFerieH() { + return this.sequIdRegolePianiFerieH; + } + + /** + * @param sequIdRegolePianiFerieH to set + */ + public void setSequIdRegolePianiFerieH(Long sequIdRegolePianiFerieH) { + this.sequIdRegolePianiFerieH = sequIdRegolePianiFerieH; + } + + /** + * @return the numMinGgDaPianificare + */ + public Long getNumMinGgDaPianificare() { + return this.numMinGgDaPianificare; + } + + /** + * @param numMinGgDaPianificare to set + */ + public void setNumMinGgDaPianificare(Long numMinGgDaPianificare) { + this.numMinGgDaPianificare = numMinGgDaPianificare; + } + + /** + * @return the numMaxGgDaPianificare + */ + public Long getNumMaxGgDaPianificare() { + return this.numMaxGgDaPianificare; + } + + /** + * @param numMaxGgDaPianificare to set + */ + public void setNumMaxGgDaPianificare(Long numMaxGgDaPianificare) { + this.numMaxGgDaPianificare = numMaxGgDaPianificare; + } + + /** + * @return the numePercMinGiorniPresenza + */ + public Long getNumePercMinGiorniPresenza() { + return this.numePercMinGiorniPresenza; + } + + /** + * @param numePercMinGiorniPresenza to set + */ + public void setNumePercMinGiorniPresenza(Long numePercMinGiorniPresenza) { + this.numePercMinGiorniPresenza = numePercMinGiorniPresenza; + } + + /** + * @return the flagValidoUoSubordinate + */ + public String getFlagValidoUoSubordinate() { + return this.flagValidoUoSubordinate; + } + + /** + * @param flagValidoUoSubordinate to set + */ + public void setFlagValidoUoSubordinate(String flagValidoUoSubordinate) { + this.flagValidoUoSubordinate = flagValidoUoSubordinate; + } + + /** + * @return the fkAmministrazione + */ + public Long getFkAmministrazione() { + return this.fkAmministrazione; + } + + /** + * @param fkAmministrazione to set + */ + public void setFkAmministrazione(Long fkAmministrazione) { + this.fkAmministrazione = fkAmministrazione; + } + + /** + * @return the fkRegolaPianoFeriePk + */ + public Long getFkRegolaPianoFeriePk() { + return this.fkRegolaPianoFeriePk; + } + + /** + * @param fkRegolaPianoFeriePk to set + */ + public void setFkRegolaPianoFeriePk(Long fkRegolaPianoFeriePk) { + this.fkRegolaPianoFeriePk = fkRegolaPianoFeriePk; + } + + /** + * @return the fkTipoOrganigramma + */ + public Long getFkTipoOrganigramma() { + return this.fkTipoOrganigramma; + } + + /** + * @param fkTipoOrganigramma to set + */ + public void setFkTipoOrganigramma(Long fkTipoOrganigramma) { + this.fkTipoOrganigramma = fkTipoOrganigramma; + } + + /** + * @return the fkUnitaFunzionale + */ + public Long getFkUnitaFunzionale() { + return this.fkUnitaFunzionale; + } + + /** + * @param fkUnitaFunzionale to set + */ + public void setFkUnitaFunzionale(Long fkUnitaFunzionale) { + this.fkUnitaFunzionale = fkUnitaFunzionale; + } + + /** + * @return the fkUnitaOrganizzativaPk + */ + public Long getFkUnitaOrganizzativaPk() { + return this.fkUnitaOrganizzativaPk; + } + + /** + * @param fkUnitaOrganizzativaPk to set + */ + public void setFkUnitaOrganizzativaPk(Long fkUnitaOrganizzativaPk) { + this.fkUnitaOrganizzativaPk = fkUnitaOrganizzativaPk; + } + + /** + * @return the flagEliminato + */ + public String getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(String flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the utenteUltimaModifica + */ + public String getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(String utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the dataUltimaModifica + */ + public Date getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(Date dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + /** + * @return the dataInizioValidita + */ + public Date getDataInizioValidita() { + return this.dataInizioValidita; + } + + /** + * @param dataInizioValidita to set + */ + public void setDataInizioValidita(Date dataInizioValidita) { + this.dataInizioValidita = dataInizioValidita; + } + + /** + * @return the dataFineValidita + */ + public Date getDataFineValidita() { + return this.dataFineValidita; + } + + /** + * @param dataFineValidita to set + */ + public void setDataFineValidita(Date dataFineValidita) { + this.dataFineValidita = dataFineValidita; + } + + // CHILD GETTER/SETTER + + /// ADD CHILD + + // PARENT GETTER/SETTER + /** + * @return the DregolePianiFeriePk + */ + @JsonProperty(access = Access.WRITE_ONLY) + public DregolePianiFeriePk getTheDregolePianiFeriePk() { + return theDregolePianiFeriePk; + } + + /** + * @param aDregolePianiFeriePkList to set + */ + public void setTheDregolePianiFeriePk(DregolePianiFeriePk aDregolePianiFeriePk) { + theDregolePianiFeriePk = aDregolePianiFeriePk; + } + + // PARENT ID GETTER/SETTER + /** + * Return the sequIdRegolePianiFeriePk from theDregolePianiFeriePk. + * + * @return sequIdRegolePianiFeriePk from theDregolePianiFeriePk. + */ + @JsonProperty + public Long getSequIdRegolePianiFeriePk() { + // If the parent entity object is null, then return null + if (getTheDregolePianiFeriePk() == null) { + return null; + } + // Return requested attribute + return theDregolePianiFeriePk.getSequIdRegolePianiFeriePk(); + } + + // PARENT OBJECT TITLE + /** + * Return the object title of theDregolePianiFeriePk. + * + * @return the object title of theDregolePianiFeriePk. + */ + @JsonProperty + public String getTheDregolePianiFeriePkObjectTitle() { + return getTheDregolePianiFeriePk() != null ? getTheDregolePianiFeriePk().getObjectTitle() : null; + } + + // PARENT OBJECT KEY + /** + * Return the object key of theDregolePianiFeriePk. + * + * @return the object key of theDregolePianiFeriePk. + */ + @JsonProperty + public String getTheDregolePianiFeriePkObjectKey() { + return getTheDregolePianiFeriePk() != null ? getTheDregolePianiFeriePk().getObjectKey() : null; + } + + /** + * Set object key of theDregolePianiFeriePk. + * + */ + @JsonProperty + public void setTheDregolePianiFeriePkObjectKey(String objectKey) { + if (EntityUtils.isValueChanged(getTheDregolePianiFeriePkObjectKey(), objectKey, false)) { + DregolePianiFeriePk dregolePianiFeriePk = new DregolePianiFeriePk(); + dregolePianiFeriePk.setObjectKey(objectKey); + setTheDregolePianiFeriePk(dregolePianiFeriePk); + } + } + + // IMPORTED PARENT OBJECT KEY + + // OPERATIONS + + // OBJECT KEY + /** + * Restituisce l'identificativo della chiave in formato stringa. Ritorna + * conveniente nelle selezioni da lista. + * + * @return L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public String getObjectKey() { + return getObjectKeyById(getSequIdRegolePianiFerieH()); + } + + public String getObjectKeyById(Long identification) { + if (identification == null) { + return null; + } + StringBuilder output = new StringBuilder(); + output.append(identification); + return output.toString(); + } + + /** + * Inizializza la parte identificativa del bean in base alla stringa tokenizzata + * da "||" fornita in input. + * + * @param key L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public void setObjectKey(String key) { + if (key == null || key.trim().length() == 0) { + return; + } + String[] array = StringUtils.splitByWholeSeparatorPreserveAllTokens(key, getRowIdFieldDelimiter()); + int ctr = 0; + + setSequIdRegolePianiFerieH(getLongCheckedAgainstNullContent(array[ctr])); + } + + // OBJECT TITLE + public String getObjectTitle() { + StringBuilder output = new StringBuilder(); + output.append(getFlagValidoUoSubordinate()); + return output.toString(); + } + + // PREPERSIST + + @PrePersist + public void prePersist() { + } + + @PreUpdate + public void PreUpdate() { + } + + // Equals / HashCode + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) + return false; + DregolePianiFerieH that = (DregolePianiFerieH) o; + return sequIdRegolePianiFerieH != null && Objects.equals(sequIdRegolePianiFerieH, that.sequIdRegolePianiFerieH); + } + + @Override + public int hashCode() { + return Objects.hash(sequIdRegolePianiFerieH); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DregolePianiFeriePk.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DregolePianiFeriePk.java new file mode 100644 index 0000000..1c01041 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/entity/DregolePianiFeriePk.java @@ -0,0 +1,334 @@ +package it.micegroup.gestioneferie.configurazionepf.entity; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +import javax.persistence.Id; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import java.util.Collection; +import java.util.ArrayList; +import javax.persistence.OneToMany; +import javax.persistence.CascadeType; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import lombok.ToString; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; + +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.Getter; +import lombok.AllArgsConstructor; + +import javax.persistence.Table; + +import org.apache.commons.lang3.StringUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hibernate.Hibernate; +import java.util.Objects; + +import it.micegroup.gestioneferie.libs.entity.BaseEntity; +import it.micegroup.voila2runtime.utils.EntityUtils; + +@NoArgsConstructor + +@Getter +@Setter +@Entity +@Table(name = "D_REGOLE_PIANI_FERIE_PK") +public class DregolePianiFeriePk extends BaseEntity implements Serializable { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 3289577936L; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DregolePianiFeriePk.class); + + // ATTRIBUTES + @Id + + @Column(name = "SEQU_ID_REGOLE_PIANI_FERIE_PK", columnDefinition = "NUMBER(15)") + private Long sequIdRegolePianiFeriePk; + @NotNull + + @Column(name = "CODI_REGOLA", columnDefinition = "VARCHAR(50)") + private String codiRegola; + @NotNull + + @Column(name = "DESC_REGOLA", columnDefinition = "VARCHAR(250)") + private String descRegola; + @NotNull + + @Column(name = "FLAG_ELIMINATO", columnDefinition = "VARCHAR(1)") + private String flagEliminato; + @NotNull + + @Column(name = "UTENTE_ULTIMA_MODIFICA", columnDefinition = "VARCHAR(50)") + private String utenteUltimaModifica; + @NotNull + + @Column(name = "DATA_ULTIMA_MODIFICA", columnDefinition = "DATE") + private Date dataUltimaModifica; + @NotNull + + @Column(name = "DATA_INIZIO_VALIDITA", columnDefinition = "DATE") + private Date dataInizioValidita; + @NotNull + + @Column(name = "DATA_FINE_VALIDITA", columnDefinition = "DATE") + private Date dataFineValidita; + + // IMPORTED PARENTS + + // CONSTRUCTORS + public DregolePianiFeriePk(String objectKey) { + super(); + setObjectKey(objectKey); + } + + public DregolePianiFeriePk(String codiRegola, String descRegola, String flagEliminato, String utenteUltimaModifica, + Date dataUltimaModifica, Date dataInizioValidita, Date dataFineValidita, Long sequIdRegolePianiFeriePk) { + super(); + + this.codiRegola = codiRegola; + this.descRegola = descRegola; + this.flagEliminato = flagEliminato; + this.utenteUltimaModifica = utenteUltimaModifica; + this.dataUltimaModifica = dataUltimaModifica; + this.dataInizioValidita = dataInizioValidita; + this.dataFineValidita = dataFineValidita; + this.sequIdRegolePianiFeriePk = sequIdRegolePianiFeriePk; + } + + // CHILDREN + @JsonProperty(access = Access.WRITE_ONLY) + @JsonManagedReference("theDregolePianiFeriePk") + @OneToMany(mappedBy = "theDregolePianiFeriePk", fetch = FetchType.LAZY, cascade = CascadeType.ALL) + @ToString.Exclude + private Collection theDregolePianiFerieH = new ArrayList<>(); + + // PARENTS + + // GETTER/SETTER + /** + * @return the sequIdRegolePianiFeriePk + */ + public Long getSequIdRegolePianiFeriePk() { + return this.sequIdRegolePianiFeriePk; + } + + /** + * @param sequIdRegolePianiFeriePk to set + */ + public void setSequIdRegolePianiFeriePk(Long sequIdRegolePianiFeriePk) { + this.sequIdRegolePianiFeriePk = sequIdRegolePianiFeriePk; + } + + /** + * @return the codiRegola + */ + public String getCodiRegola() { + return this.codiRegola; + } + + /** + * @param codiRegola to set + */ + public void setCodiRegola(String codiRegola) { + this.codiRegola = codiRegola; + } + + /** + * @return the descRegola + */ + public String getDescRegola() { + return this.descRegola; + } + + /** + * @param descRegola to set + */ + public void setDescRegola(String descRegola) { + this.descRegola = descRegola; + } + + /** + * @return the flagEliminato + */ + public String getFlagEliminato() { + return this.flagEliminato; + } + + /** + * @param flagEliminato to set + */ + public void setFlagEliminato(String flagEliminato) { + this.flagEliminato = flagEliminato; + } + + /** + * @return the utenteUltimaModifica + */ + public String getUtenteUltimaModifica() { + return this.utenteUltimaModifica; + } + + /** + * @param utenteUltimaModifica to set + */ + public void setUtenteUltimaModifica(String utenteUltimaModifica) { + this.utenteUltimaModifica = utenteUltimaModifica; + } + + /** + * @return the dataUltimaModifica + */ + public Date getDataUltimaModifica() { + return this.dataUltimaModifica; + } + + /** + * @param dataUltimaModifica to set + */ + public void setDataUltimaModifica(Date dataUltimaModifica) { + this.dataUltimaModifica = dataUltimaModifica; + } + + /** + * @return the dataInizioValidita + */ + public Date getDataInizioValidita() { + return this.dataInizioValidita; + } + + /** + * @param dataInizioValidita to set + */ + public void setDataInizioValidita(Date dataInizioValidita) { + this.dataInizioValidita = dataInizioValidita; + } + + /** + * @return the dataFineValidita + */ + public Date getDataFineValidita() { + return this.dataFineValidita; + } + + /** + * @param dataFineValidita to set + */ + public void setDataFineValidita(Date dataFineValidita) { + this.dataFineValidita = dataFineValidita; + } + + // CHILD GETTER/SETTER + /** + * @return the DregolePianiFerieH + */ + public Collection getTheDregolePianiFerieH() { + return theDregolePianiFerieH; + } + + /** + * @param aDregolePianiFerieHList to set + */ + public void setTheDregolePianiFerieH(Collection aDregolePianiFerieHList) { + theDregolePianiFerieH = aDregolePianiFerieHList; + } + + /// ADD CHILD + public void addDregolePianiFerieH(DregolePianiFerieH dregolePianiFerieH) { + theDregolePianiFerieH.add(dregolePianiFerieH); + } + + // PARENT GETTER/SETTER + + // PARENT ID GETTER/SETTER + + // PARENT OBJECT TITLE + + // PARENT OBJECT KEY + + // IMPORTED PARENT OBJECT KEY + + // OPERATIONS + + // OBJECT KEY + /** + * Restituisce l'identificativo della chiave in formato stringa. Ritorna + * conveniente nelle selezioni da lista. + * + * @return L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public String getObjectKey() { + return getObjectKeyById(getSequIdRegolePianiFeriePk()); + } + + public String getObjectKeyById(Long identification) { + if (identification == null) { + return null; + } + StringBuilder output = new StringBuilder(); + output.append(identification); + return output.toString(); + } + + /** + * Inizializza la parte identificativa del bean in base alla stringa tokenizzata + * da "||" fornita in input. + * + * @param key L'identificativo della chiave in formato pk1||pk2||pk3... + */ + public void setObjectKey(String key) { + if (key == null || key.trim().length() == 0) { + return; + } + String[] array = StringUtils.splitByWholeSeparatorPreserveAllTokens(key, getRowIdFieldDelimiter()); + int ctr = 0; + + setSequIdRegolePianiFeriePk(getLongCheckedAgainstNullContent(array[ctr])); + } + + // OBJECT TITLE + public String getObjectTitle() { + StringBuilder output = new StringBuilder(); + output.append(getCodiRegola()); + return output.toString(); + } + + // PREPERSIST + + @PrePersist + public void prePersist() { + } + + @PreUpdate + public void PreUpdate() { + } + + // Equals / HashCode + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) + return false; + DregolePianiFeriePk that = (DregolePianiFeriePk) o; + return sequIdRegolePianiFeriePk != null + && Objects.equals(sequIdRegolePianiFeriePk, that.sequIdRegolePianiFeriePk); + } + + @Override + public int hashCode() { + return Objects.hash(sequIdRegolePianiFeriePk); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DconfigPaPfUoHRepository.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DconfigPaPfUoHRepository.java new file mode 100644 index 0000000..b2774de --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DconfigPaPfUoHRepository.java @@ -0,0 +1,33 @@ +package it.micegroup.gestioneferie.configurazionepf.repository; + +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Collection; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.data.jpa.repository.EntityGraph; +import org.springframework.data.jpa.repository.EntityGraph.EntityGraphType; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; +import it.micegroup.gestioneferie.libs.repository.BaseRepository; + +@Repository +@EnableJpaRepositories +public interface DconfigPaPfUoHRepository extends BaseRepository { + + @EntityGraph(attributePaths = { "theDconfigPaPianiFerie" }, type = EntityGraphType.FETCH) + + Optional findBySequIdConfigPaPfUoH(Long id); + + @EntityGraph(attributePaths = { "theDconfigPaPianiFerie" }, type = EntityGraphType.FETCH) + + Page findByTheDconfigPaPianiFerie(DconfigPaPianiFerie parentEntity, Pageable pageable); + + @Query("DELETE FROM DconfigPaPfUoH WHERE sequIdConfigPaPfUoH IN ?1") + void deleteByIdIn(Collection ids); +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DconfigPaPianiFerieRepository.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DconfigPaPianiFerieRepository.java new file mode 100644 index 0000000..4a733d1 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DconfigPaPianiFerieRepository.java @@ -0,0 +1,21 @@ +package it.micegroup.gestioneferie.configurazionepf.repository; + +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Collection; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; +import it.micegroup.gestioneferie.libs.repository.BaseRepository; + +@Repository +@EnableJpaRepositories +public interface DconfigPaPianiFerieRepository extends BaseRepository { + + Optional findBySequIdConfigPaPianoFerie(Long id); + + @Query("DELETE FROM DconfigPaPianiFerie WHERE sequIdConfigPaPianoFerie IN ?1") + void deleteByIdIn(Collection ids); +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DpercAutPianFerieHRepository.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DpercAutPianFerieHRepository.java new file mode 100644 index 0000000..ffa691c --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DpercAutPianFerieHRepository.java @@ -0,0 +1,38 @@ +package it.micegroup.gestioneferie.configurazionepf.repository; + +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Collection; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.data.jpa.repository.EntityGraph; +import org.springframework.data.jpa.repository.EntityGraph.EntityGraphType; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; +import it.micegroup.gestioneferie.libs.repository.BaseRepository; + +@Repository +@EnableJpaRepositories +public interface DpercAutPianFerieHRepository extends BaseRepository { + + @EntityGraph(attributePaths = { "theDpercAutPianFeriePk", "theDconfigPaPianiFerie" }, type = EntityGraphType.FETCH) + + Optional findBySequIdPercAutPianFerieH(Long id); + + @EntityGraph(attributePaths = { "theDpercAutPianFeriePk", "theDconfigPaPianiFerie" }, type = EntityGraphType.FETCH) + + Page findByTheDpercAutPianFeriePk(DpercAutPianFeriePk parentEntity, Pageable pageable); + + @EntityGraph(attributePaths = { "theDpercAutPianFeriePk", "theDconfigPaPianiFerie" }, type = EntityGraphType.FETCH) + + Page findByTheDconfigPaPianiFerie(DconfigPaPianiFerie parentEntity, Pageable pageable); + + @Query("DELETE FROM DpercAutPianFerieH WHERE sequIdPercAutPianFerieH IN ?1") + void deleteByIdIn(Collection ids); +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DpercAutPianFeriePkRepository.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DpercAutPianFeriePkRepository.java new file mode 100644 index 0000000..cefbde7 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DpercAutPianFeriePkRepository.java @@ -0,0 +1,21 @@ +package it.micegroup.gestioneferie.configurazionepf.repository; + +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Collection; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; +import it.micegroup.gestioneferie.libs.repository.BaseRepository; + +@Repository +@EnableJpaRepositories +public interface DpercAutPianFeriePkRepository extends BaseRepository { + + Optional findBySequIdPercAutPianFeriePk(Long id); + + @Query("DELETE FROM DpercAutPianFeriePk WHERE sequIdPercAutPianFeriePk IN ?1") + void deleteByIdIn(Collection ids); +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DregolePianiFerieHRepository.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DregolePianiFerieHRepository.java new file mode 100644 index 0000000..e5241fc --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DregolePianiFerieHRepository.java @@ -0,0 +1,33 @@ +package it.micegroup.gestioneferie.configurazionepf.repository; + +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Collection; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.data.jpa.repository.EntityGraph; +import org.springframework.data.jpa.repository.EntityGraph.EntityGraphType; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; +import it.micegroup.gestioneferie.libs.repository.BaseRepository; + +@Repository +@EnableJpaRepositories +public interface DregolePianiFerieHRepository extends BaseRepository { + + @EntityGraph(attributePaths = { "theDregolePianiFeriePk" }, type = EntityGraphType.FETCH) + + Optional findBySequIdRegolePianiFerieH(Long id); + + @EntityGraph(attributePaths = { "theDregolePianiFeriePk" }, type = EntityGraphType.FETCH) + + Page findByTheDregolePianiFeriePk(DregolePianiFeriePk parentEntity, Pageable pageable); + + @Query("DELETE FROM DregolePianiFerieH WHERE sequIdRegolePianiFerieH IN ?1") + void deleteByIdIn(Collection ids); +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DregolePianiFeriePkRepository.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DregolePianiFeriePkRepository.java new file mode 100644 index 0000000..b00315a --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/repository/DregolePianiFeriePkRepository.java @@ -0,0 +1,21 @@ +package it.micegroup.gestioneferie.configurazionepf.repository; + +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Collection; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; +import it.micegroup.gestioneferie.libs.repository.BaseRepository; + +@Repository +@EnableJpaRepositories +public interface DregolePianiFeriePkRepository extends BaseRepository { + + Optional findBySequIdRegolePianiFeriePk(Long id); + + @Query("DELETE FROM DregolePianiFeriePk WHERE sequIdRegolePianiFeriePk IN ?1") + void deleteByIdIn(Collection ids); +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPfUoHService.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPfUoHService.java new file mode 100644 index 0000000..bc1f69b --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPfUoHService.java @@ -0,0 +1,20 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH; +import it.micegroup.gestioneferie.configurazionepf.criteria.DconfigPaPfUoHCriteria; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; +import it.micegroup.gestioneferie.libs.service.BaseEntityService; +import it.micegroup.voila2runtime.exception.BusinessException; + +public interface DconfigPaPfUoHService extends BaseEntityService { + + // PARENT-SPECIFIC SERVICES + Page findByTheDconfigPaPianiFerie(DconfigPaPianiFerie parentEntity, Pageable pageable); + + DconfigPaPfUoH bulkUpdate(DconfigPaPfUoH dconfigPaPfUoH); + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPianiFerieService.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPianiFerieService.java new file mode 100644 index 0000000..981152c --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPianiFerieService.java @@ -0,0 +1,15 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; +import it.micegroup.gestioneferie.configurazionepf.criteria.DconfigPaPianiFerieCriteria; +import it.micegroup.gestioneferie.libs.service.BaseEntityService; +import it.micegroup.voila2runtime.exception.BusinessException; + +public interface DconfigPaPianiFerieService + extends BaseEntityService { + + // PARENT-SPECIFIC SERVICES + + DconfigPaPianiFerie bulkUpdate(DconfigPaPianiFerie dconfigPaPianiFerie); + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFerieHService.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFerieHService.java new file mode 100644 index 0000000..f733460 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFerieHService.java @@ -0,0 +1,48 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; +import it.micegroup.gestioneferie.configurazionepf.criteria.DpercAutPianFerieHCriteria; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; +import it.micegroup.gestioneferie.libs.service.BaseEntityService; +import it.micegroup.voila2runtime.exception.BusinessException; + +public interface DpercAutPianFerieHService + extends BaseEntityService { + + // PARENT-SPECIFIC SERVICES + Page findByTheDpercAutPianFeriePk(DpercAutPianFeriePk parentEntity, Pageable pageable); + + Page findByTheDconfigPaPianiFerie(DconfigPaPianiFerie parentEntity, Pageable pageable); + + /** + * Return a list of DpercAutPianFeriePk from all DpercAutPianFerieH with given + * theDpercAutPianFeriePk + * + * @param dconfigPaPianiFerie + * @param pageable + * @return list of DpercAutPianFeriePk from all DpercAutPianFerieH with given + * TheDpercAutPianFeriePk + */ + Page findDpercAutPianFeriePkByTheDconfigPaPianiFerie(DconfigPaPianiFerie dconfigPaPianiFerie, + Pageable pageable); + + /** + * Return a list of DconfigPaPianiFerie from all DpercAutPianFerieH with given + * theDconfigPaPianiFerie + * + * @param dpercAutPianFeriePk + * @param pageable + * @return list of DconfigPaPianiFerie from all DpercAutPianFerieH with given + * TheDconfigPaPianiFerie + */ + Page findDconfigPaPianiFerieByTheDpercAutPianFeriePk(DpercAutPianFeriePk dpercAutPianFeriePk, + Pageable pageable); + + DpercAutPianFerieH bulkUpdate(DpercAutPianFerieH dpercAutPianFerieH); + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFeriePkService.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFeriePkService.java new file mode 100644 index 0000000..9f83d30 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFeriePkService.java @@ -0,0 +1,15 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; +import it.micegroup.gestioneferie.configurazionepf.criteria.DpercAutPianFeriePkCriteria; +import it.micegroup.gestioneferie.libs.service.BaseEntityService; +import it.micegroup.voila2runtime.exception.BusinessException; + +public interface DpercAutPianFeriePkService + extends BaseEntityService { + + // PARENT-SPECIFIC SERVICES + + DpercAutPianFeriePk bulkUpdate(DpercAutPianFeriePk dpercAutPianFeriePk); + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFerieHService.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFerieHService.java new file mode 100644 index 0000000..df19e77 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFerieHService.java @@ -0,0 +1,21 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH; +import it.micegroup.gestioneferie.configurazionepf.criteria.DregolePianiFerieHCriteria; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; +import it.micegroup.gestioneferie.libs.service.BaseEntityService; +import it.micegroup.voila2runtime.exception.BusinessException; + +public interface DregolePianiFerieHService + extends BaseEntityService { + + // PARENT-SPECIFIC SERVICES + Page findByTheDregolePianiFeriePk(DregolePianiFeriePk parentEntity, Pageable pageable); + + DregolePianiFerieH bulkUpdate(DregolePianiFerieH dregolePianiFerieH); + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFeriePkService.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFeriePkService.java new file mode 100644 index 0000000..cf581d0 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-core/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFeriePkService.java @@ -0,0 +1,15 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; +import it.micegroup.gestioneferie.configurazionepf.criteria.DregolePianiFeriePkCriteria; +import it.micegroup.gestioneferie.libs.service.BaseEntityService; +import it.micegroup.voila2runtime.exception.BusinessException; + +public interface DregolePianiFeriePkService + extends BaseEntityService { + + // PARENT-SPECIFIC SERVICES + + DregolePianiFeriePk bulkUpdate(DregolePianiFeriePk dregolePianiFeriePk); + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.classpath b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.classpath new file mode 100644 index 0000000..2bf55d4 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.classpath @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/MavenWrapperDownloader.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..c32394f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.5"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/maven-wrapper.jar b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..0d5e649888a4843c1520054d9672f80c62ebbb48 GIT binary patch literal 50710 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�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 JS$+5G{{hr`vzY(@ literal 0 HcmV?d00001 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/maven-wrapper.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..7d59a01 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.project b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.project new file mode 100644 index 0000000..90357da --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.project @@ -0,0 +1,71 @@ + + + gestioneferie-ms-configurazionepf-impl + + + gestioneferie-ms-configurazionepf + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.m2e.core.maven2Nature + + + + 1644425858603 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858625 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425858654 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.jdt.core.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ea81b66 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,366 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=11 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.lineSplit=120 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=false +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.m2e.core.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.voilaProject b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/mvnw b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/mvnw new file mode 100644 index 0000000..d2f0ea3 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/mvnw.cmd b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/mvnw.cmd new file mode 100644 index 0000000..b26ab24 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/pom.xml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/pom.xml new file mode 100644 index 0000000..2546d23 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/pom.xml @@ -0,0 +1,32 @@ + + + 4.0.0 + + gestioneferie-ms-configurazionepf-impl + gestioneferie-ms-configurazionepf-impl module + http://www.micegroup.it + + + it.micegroup + gestioneferie-ms-configurazionepf + 0.0.1-SNAPSHOT + ../../pom.xml + + jar + + + + it.micegroup + gestioneferie-ms-configurazionepf-core + ${project.parent.version} + + + it.micegroup + gestioneferie-libs-impl + 0.0.1-SNAPSHOT + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPfUoHServiceImpl.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPfUoHServiceImpl.java new file mode 100644 index 0000000..397dce3 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPfUoHServiceImpl.java @@ -0,0 +1,293 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import java.util.Map; +import java.util.List; +import java.util.Locale; +import java.util.HashMap; +import java.util.Optional; +import java.util.ArrayList; +import java.util.Collection; +import java.util.ResourceBundle; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import org.springframework.context.i18n.LocaleContextHolder; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperExportManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import it.micegroup.voila2runtime.filter.LongFilter; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH_; +import it.micegroup.gestioneferie.configurazionepf.criteria.DconfigPaPfUoHCriteria; +import it.micegroup.gestioneferie.configurazionepf.repository.DconfigPaPfUoHRepository; +import it.micegroup.voila2runtime.specification.FilterService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH_; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie_; +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.libs.service.BaseServiceImpl; + +import it.micegroup.voila2runtime.exception.BusinessException; +import net.sf.jasperreports.engine.JRException; + +@RequiredArgsConstructor +@Service +@Transactional +public class DconfigPaPfUoHServiceImpl extends BaseServiceImpl implements DconfigPaPfUoHService { + + private final DconfigPaPfUoHRepository dconfigPaPfUoHRepository; + private final FilterService filterService; + + // CHILD SERVICES + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DconfigPaPfUoHServiceImpl.class); + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll(org. springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findAll(Pageable pageable) { + return dconfigPaPfUoHRepository.findAll(pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll() + */ + @Override + @Transactional(readOnly = true) + public List findAll() { + return dconfigPaPfUoHRepository.findAll(); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object, org.springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findByCriteria(DconfigPaPfUoHCriteria criteria, Pageable pageable) { + final Specification specification = createSpecification(criteria); + return dconfigPaPfUoHRepository.findAll(specification, pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object) + */ + @Override + @Transactional(readOnly = true) + public List findByCriteria(DconfigPaPfUoHCriteria criteria) { + final Specification specification = createSpecification(criteria); + return dconfigPaPfUoHRepository.findAll(specification); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findById(java.lang. Object) + */ + @Override + @Transactional(readOnly = true) + public Optional findById(Long id) { + return dconfigPaPfUoHRepository.findBySequIdConfigPaPfUoH(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * exists(java.lang. Object) + */ + @Override + public boolean exists(Long id) { + return dconfigPaPfUoHRepository.existsById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * insert(java. lang.Object) + */ + @Override + public DconfigPaPfUoH insert(@Valid DconfigPaPfUoH entity) { + return dconfigPaPfUoHRepository.save(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * update(java. lang.Object) + */ + @Override + public DconfigPaPfUoH update(@Valid DconfigPaPfUoH entity) { + return dconfigPaPfUoHRepository.save(entity); + } + + @Override + public void delete(DconfigPaPfUoH entity) { + dconfigPaPfUoHRepository.delete(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteById(java.lang. Object) + */ + @Override + public void deleteById(Long id) { + dconfigPaPfUoHRepository.deleteById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteByIdIn(java.lang. Object) + */ + @Override + public void deleteByIdIn(Collection ids) { + dconfigPaPfUoHRepository.deleteByIdIn(ids); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByObjectKey(java.lang.String) + */ + @Override + @Transactional(readOnly = true) + public Optional findByObjectKey(String id) { + DconfigPaPfUoH dconfigPaPfUoH = new DconfigPaPfUoH(id); + + return findById(dconfigPaPfUoH.getSequIdConfigPaPfUoH()); + } + + @Override + public Page findByTheDconfigPaPianiFerie(DconfigPaPianiFerie parentEntity, Pageable pageable) { + return dconfigPaPfUoHRepository.findByTheDconfigPaPianiFerie(parentEntity, pageable); + } + + /** + * Convert DconfigPaPfUoHCriteria to a {@link Specification} + * + * @param criteria + * @return + */ + private Specification createSpecification(DconfigPaPfUoHCriteria criteria) { + Specification specification = Specification.where(null); + + if (criteria != null) { + // Attribute filters + if (criteria.getSequIdConfigPaPfUoH() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getSequIdConfigPaPfUoH(), DconfigPaPfUoH_.sequIdConfigPaPfUoH)); + } + if (criteria.getFlagValidoUoSubordinate() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getFlagValidoUoSubordinate(), DconfigPaPfUoH_.flagValidoUoSubordinate)); + } + if (criteria.getFkConfigPaPianoFerie() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkConfigPaPianoFerie(), DconfigPaPfUoH_.fkConfigPaPianoFerie)); + } + if (criteria.getFkUnitaFunzionale() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkUnitaFunzionale(), DconfigPaPfUoH_.fkUnitaFunzionale)); + } + if (criteria.getFkUnitaOrganizzativaPk() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkUnitaOrganizzativaPk(), DconfigPaPfUoH_.fkUnitaOrganizzativaPk)); + } + if (criteria.getUtenteUltimaModifica() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getUtenteUltimaModifica(), DconfigPaPfUoH_.utenteUltimaModifica)); + } + if (criteria.getFlagEliminato() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.getFlagEliminato(), + DconfigPaPfUoH_.flagEliminato)); + } + if (criteria.getDataInizioValidita() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataInizioValidita(), DconfigPaPfUoH_.dataInizioValidita)); + } + if (criteria.getDataFineValidita() != null) { + specification = specification.and(filterService + .generateRangeSpecification(criteria.getDataFineValidita(), DconfigPaPfUoH_.dataFineValidita)); + } + if (criteria.getDataUltimaModifica() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataUltimaModifica(), DconfigPaPfUoH_.dataUltimaModifica)); + } + + if (criteria.getTheDconfigPaPianiFerieObjectKey() != null) { + DconfigPaPianiFerie dconfigPaPianiFerie = new DconfigPaPianiFerie( + criteria.getTheDconfigPaPianiFerieObjectKey()); + + specification = specification.and( + filterService.generateEqualsSpecification(dconfigPaPianiFerie.getSequIdConfigPaPianoFerie(), + r -> r.get(DconfigPaPfUoH_.theDconfigPaPianiFerie) + .get(DconfigPaPianiFerie_.sequIdConfigPaPianoFerie))); + } + + } + return specification; + } + + @Override + @Transactional() + public DconfigPaPfUoH bulkUpdate(DconfigPaPfUoH dconfigPaPfUoH) { + + DconfigPaPfUoH update = this.update(dconfigPaPfUoH); + + return update; + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPianiFerieServiceImpl.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPianiFerieServiceImpl.java new file mode 100644 index 0000000..c2c6569 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DconfigPaPianiFerieServiceImpl.java @@ -0,0 +1,294 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import java.util.Map; +import java.util.List; +import java.util.Locale; +import java.util.HashMap; +import java.util.Optional; +import java.util.ArrayList; +import java.util.Collection; +import java.util.ResourceBundle; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import org.springframework.context.i18n.LocaleContextHolder; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperExportManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie_; +import it.micegroup.gestioneferie.configurazionepf.criteria.DconfigPaPianiFerieCriteria; +import it.micegroup.gestioneferie.configurazionepf.repository.DconfigPaPianiFerieRepository; +import it.micegroup.voila2runtime.specification.FilterService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie_; +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.libs.service.BaseServiceImpl; + +import java.util.stream.Collectors; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH; +import it.micegroup.voila2runtime.entity.GenericEntity; +import it.micegroup.voila2runtime.exception.BusinessException; +import net.sf.jasperreports.engine.JRException; + +@RequiredArgsConstructor +@Service +@Transactional +public class DconfigPaPianiFerieServiceImpl extends BaseServiceImpl implements DconfigPaPianiFerieService { + + private final DconfigPaPianiFerieRepository dconfigPaPianiFerieRepository; + private final FilterService filterService; + + // CHILD SERVICES + private final DpercAutPianFerieHService dpercAutPianFerieHService; + private final DconfigPaPfUoHService dconfigPaPfUoHService; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DconfigPaPianiFerieServiceImpl.class); + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll(org. springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findAll(Pageable pageable) { + return dconfigPaPianiFerieRepository.findAll(pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll() + */ + @Override + @Transactional(readOnly = true) + public List findAll() { + return dconfigPaPianiFerieRepository.findAll(); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object, org.springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findByCriteria(DconfigPaPianiFerieCriteria criteria, Pageable pageable) { + final Specification specification = createSpecification(criteria); + return dconfigPaPianiFerieRepository.findAll(specification, pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object) + */ + @Override + @Transactional(readOnly = true) + public List findByCriteria(DconfigPaPianiFerieCriteria criteria) { + final Specification specification = createSpecification(criteria); + return dconfigPaPianiFerieRepository.findAll(specification); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findById(java.lang. Object) + */ + @Override + @Transactional(readOnly = true) + public Optional findById(Long id) { + return dconfigPaPianiFerieRepository.findBySequIdConfigPaPianoFerie(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * exists(java.lang. Object) + */ + @Override + public boolean exists(Long id) { + return dconfigPaPianiFerieRepository.existsById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * insert(java. lang.Object) + */ + @Override + public DconfigPaPianiFerie insert(@Valid DconfigPaPianiFerie entity) { + return dconfigPaPianiFerieRepository.save(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * update(java. lang.Object) + */ + @Override + public DconfigPaPianiFerie update(@Valid DconfigPaPianiFerie entity) { + return dconfigPaPianiFerieRepository.save(entity); + } + + @Override + public void delete(DconfigPaPianiFerie entity) { + dconfigPaPianiFerieRepository.delete(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteById(java.lang. Object) + */ + @Override + public void deleteById(Long id) { + dconfigPaPianiFerieRepository.deleteById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteByIdIn(java.lang. Object) + */ + @Override + public void deleteByIdIn(Collection ids) { + dconfigPaPianiFerieRepository.deleteByIdIn(ids); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByObjectKey(java.lang.String) + */ + @Override + @Transactional(readOnly = true) + public Optional findByObjectKey(String id) { + DconfigPaPianiFerie dconfigPaPianiFerie = new DconfigPaPianiFerie(id); + + return findById(dconfigPaPianiFerie.getSequIdConfigPaPianoFerie()); + } + + /** + * Convert DconfigPaPianiFerieCriteria to a {@link Specification} + * + * @param criteria + * @return + */ + private Specification createSpecification(DconfigPaPianiFerieCriteria criteria) { + Specification specification = Specification.where(null); + + if (criteria != null) { + // Attribute filters + if (criteria.getSequIdConfigPaPianoFerie() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getSequIdConfigPaPianoFerie(), DconfigPaPianiFerie_.sequIdConfigPaPianoFerie)); + } + if (criteria.getCodiConfigPaPianoFerie() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getCodiConfigPaPianoFerie(), DconfigPaPianiFerie_.codiConfigPaPianoFerie)); + } + if (criteria.getDescConfigPaPianoFerie() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getDescConfigPaPianoFerie(), DconfigPaPianiFerie_.descConfigPaPianoFerie)); + } + if (criteria.getFkAmministrazionePk() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkAmministrazionePk(), DconfigPaPianiFerie_.fkAmministrazionePk)); + } + if (criteria.getFkTipoOrganigramma() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkTipoOrganigramma(), DconfigPaPianiFerie_.fkTipoOrganigramma)); + } + if (criteria.getDataUltimaModifica() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataUltimaModifica(), DconfigPaPianiFerie_.dataUltimaModifica)); + } + if (criteria.getUtenteUltimaModifica() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getUtenteUltimaModifica(), DconfigPaPianiFerie_.utenteUltimaModifica)); + } + if (criteria.getFlagEliminato() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.getFlagEliminato(), + DconfigPaPianiFerie_.flagEliminato)); + } + if (criteria.getDataInizioRecord() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataInizioRecord(), DconfigPaPianiFerie_.dataInizioRecord)); + } + if (criteria.getDataFineRecord() != null) { + specification = specification.and(filterService.generateRangeSpecification(criteria.getDataFineRecord(), + DconfigPaPianiFerie_.dataFineRecord)); + } + + } + return specification; + } + + @Override + @Transactional() + public DconfigPaPianiFerie bulkUpdate(DconfigPaPianiFerie dconfigPaPianiFerie) { + List updateTheDpercAutPianFerieH = dconfigPaPianiFerie.getTheDpercAutPianFerieH().stream() + .filter(child -> !child.isDeletedEntityState()).collect(Collectors.toList()); + List deleteTheDpercAutPianFerieH = dconfigPaPianiFerie.getTheDpercAutPianFerieH().stream() + .filter(GenericEntity::isDeletedEntityState).collect(Collectors.toList()); + + dconfigPaPianiFerie.setTheDpercAutPianFerieH(updateTheDpercAutPianFerieH); + List updateTheDconfigPaPfUoH = dconfigPaPianiFerie.getTheDconfigPaPfUoH().stream() + .filter(child -> !child.isDeletedEntityState()).collect(Collectors.toList()); + List deleteTheDconfigPaPfUoH = dconfigPaPianiFerie.getTheDconfigPaPfUoH().stream() + .filter(GenericEntity::isDeletedEntityState).collect(Collectors.toList()); + + dconfigPaPianiFerie.setTheDconfigPaPfUoH(updateTheDconfigPaPfUoH); + + DconfigPaPianiFerie update = this.update(dconfigPaPianiFerie); + + deleteTheDpercAutPianFerieH + .forEach(child -> dpercAutPianFerieHService.deleteById(child.getSequIdPercAutPianFerieH())); + deleteTheDconfigPaPfUoH.forEach(child -> dconfigPaPfUoHService.deleteById(child.getSequIdConfigPaPfUoH())); + return update; + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFerieHServiceImpl.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFerieHServiceImpl.java new file mode 100644 index 0000000..26eb623 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFerieHServiceImpl.java @@ -0,0 +1,351 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import java.util.Map; +import java.util.List; +import java.util.Locale; +import java.util.HashMap; +import java.util.Optional; +import java.util.ArrayList; +import java.util.Collection; +import java.util.ResourceBundle; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import org.springframework.context.i18n.LocaleContextHolder; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperExportManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import it.micegroup.voila2runtime.filter.LongFilter; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH_; +import it.micegroup.gestioneferie.configurazionepf.criteria.DpercAutPianFerieHCriteria; +import it.micegroup.gestioneferie.configurazionepf.repository.DpercAutPianFerieHRepository; +import it.micegroup.voila2runtime.specification.FilterService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH_; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk_; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie_; + +import org.springframework.data.domain.PageImpl; +import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.libs.service.BaseServiceImpl; + +import it.micegroup.voila2runtime.exception.BusinessException; +import net.sf.jasperreports.engine.JRException; + +@RequiredArgsConstructor +@Service +@Transactional +public class DpercAutPianFerieHServiceImpl extends BaseServiceImpl implements DpercAutPianFerieHService { + + private final DpercAutPianFerieHRepository dpercAutPianFerieHRepository; + private final FilterService filterService; + + // CHILD SERVICES + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DpercAutPianFerieHServiceImpl.class); + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll(org. springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findAll(Pageable pageable) { + return dpercAutPianFerieHRepository.findAll(pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll() + */ + @Override + @Transactional(readOnly = true) + public List findAll() { + return dpercAutPianFerieHRepository.findAll(); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object, org.springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findByCriteria(DpercAutPianFerieHCriteria criteria, Pageable pageable) { + final Specification specification = createSpecification(criteria); + return dpercAutPianFerieHRepository.findAll(specification, pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object) + */ + @Override + @Transactional(readOnly = true) + public List findByCriteria(DpercAutPianFerieHCriteria criteria) { + final Specification specification = createSpecification(criteria); + return dpercAutPianFerieHRepository.findAll(specification); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findById(java.lang. Object) + */ + @Override + @Transactional(readOnly = true) + public Optional findById(Long id) { + return dpercAutPianFerieHRepository.findBySequIdPercAutPianFerieH(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * exists(java.lang. Object) + */ + @Override + public boolean exists(Long id) { + return dpercAutPianFerieHRepository.existsById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * insert(java. lang.Object) + */ + @Override + public DpercAutPianFerieH insert(@Valid DpercAutPianFerieH entity) { + return dpercAutPianFerieHRepository.save(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * update(java. lang.Object) + */ + @Override + public DpercAutPianFerieH update(@Valid DpercAutPianFerieH entity) { + return dpercAutPianFerieHRepository.save(entity); + } + + @Override + public void delete(DpercAutPianFerieH entity) { + dpercAutPianFerieHRepository.delete(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteById(java.lang. Object) + */ + @Override + public void deleteById(Long id) { + dpercAutPianFerieHRepository.deleteById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteByIdIn(java.lang. Object) + */ + @Override + public void deleteByIdIn(Collection ids) { + dpercAutPianFerieHRepository.deleteByIdIn(ids); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByObjectKey(java.lang.String) + */ + @Override + @Transactional(readOnly = true) + public Optional findByObjectKey(String id) { + DpercAutPianFerieH dpercAutPianFerieH = new DpercAutPianFerieH(id); + + return findById(dpercAutPianFerieH.getSequIdPercAutPianFerieH()); + } + + @Override + public Page findByTheDpercAutPianFeriePk(DpercAutPianFeriePk parentEntity, Pageable pageable) { + return dpercAutPianFerieHRepository.findByTheDpercAutPianFeriePk(parentEntity, pageable); + } + + @Override + public Page findByTheDconfigPaPianiFerie(DconfigPaPianiFerie parentEntity, Pageable pageable) { + return dpercAutPianFerieHRepository.findByTheDconfigPaPianiFerie(parentEntity, pageable); + } + + /** + * Convert DpercAutPianFerieHCriteria to a {@link Specification} + * + * @param criteria + * @return + */ + private Specification createSpecification(DpercAutPianFerieHCriteria criteria) { + Specification specification = Specification.where(null); + + if (criteria != null) { + // Attribute filters + if (criteria.getSequIdPercAutPianFerieH() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getSequIdPercAutPianFerieH(), DpercAutPianFerieH_.sequIdPercAutPianFerieH)); + } + if (criteria.getFkConfigPaPianoFerie() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkConfigPaPianoFerie(), DpercAutPianFerieH_.fkConfigPaPianoFerie)); + } + if (criteria.getFkPercorso() != null) { + specification = specification.and(filterService.generateRangeSpecification(criteria.getFkPercorso(), + DpercAutPianFerieH_.fkPercorso)); + } + if (criteria.getFkPercAutPianFeriePk() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkPercAutPianFeriePk(), DpercAutPianFerieH_.fkPercAutPianFeriePk)); + } + if (criteria.getDataUltimaModifica() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataUltimaModifica(), DpercAutPianFerieH_.dataUltimaModifica)); + } + if (criteria.getDataFineValidita() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataFineValidita(), DpercAutPianFerieH_.dataFineValidita)); + } + if (criteria.getDataInizioValidita() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataInizioValidita(), DpercAutPianFerieH_.dataInizioValidita)); + } + if (criteria.getUtenteUltimaModifica() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getUtenteUltimaModifica(), DpercAutPianFerieH_.utenteUltimaModifica)); + } + if (criteria.getFlagEliminato() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.getFlagEliminato(), + DpercAutPianFerieH_.flagEliminato)); + } + + if (criteria.getTheDpercAutPianFeriePkObjectKey() != null) { + DpercAutPianFeriePk dpercAutPianFeriePk = new DpercAutPianFeriePk( + criteria.getTheDpercAutPianFeriePkObjectKey()); + + specification = specification.and( + filterService.generateEqualsSpecification(dpercAutPianFeriePk.getSequIdPercAutPianFeriePk(), + r -> r.get(DpercAutPianFerieH_.theDpercAutPianFeriePk) + .get(DpercAutPianFeriePk_.sequIdPercAutPianFeriePk))); + } + if (criteria.getTheDconfigPaPianiFerieObjectKey() != null) { + DconfigPaPianiFerie dconfigPaPianiFerie = new DconfigPaPianiFerie( + criteria.getTheDconfigPaPianiFerieObjectKey()); + + specification = specification.and( + filterService.generateEqualsSpecification(dconfigPaPianiFerie.getSequIdConfigPaPianoFerie(), + r -> r.get(DpercAutPianFerieH_.theDconfigPaPianiFerie) + .get(DconfigPaPianiFerie_.sequIdConfigPaPianoFerie))); + } + + } + return specification; + } + + /* + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.DpercAutPianFerieHService + * #findDpercAutPianFeriePkBytheDconfigPaPianiFerie(it.micegroup.gestioneferie. + * configurazionepf.entity.DconfigPaPianiFerie, + * org.springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findDpercAutPianFeriePkByTheDconfigPaPianiFerie( + DconfigPaPianiFerie dconfigPaPianiFerie, Pageable pageable) { + Page dpercAutPianFerieHPage = dpercAutPianFerieHRepository + .findByTheDconfigPaPianiFerie(dconfigPaPianiFerie, pageable); + List content = dpercAutPianFerieHPage.getContent().stream() + .map(DpercAutPianFerieH::getTheDpercAutPianFeriePk).collect(Collectors.toList()); + Page result = new PageImpl(content, pageable, + dpercAutPianFerieHPage.getTotalElements()); + return result; + } + + /* + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.DpercAutPianFerieHService + * #findDconfigPaPianiFerieBytheDpercAutPianFeriePk(it.micegroup.gestioneferie. + * configurazionepf.entity.DpercAutPianFeriePk, + * org.springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findDconfigPaPianiFerieByTheDpercAutPianFeriePk( + DpercAutPianFeriePk dpercAutPianFeriePk, Pageable pageable) { + Page dpercAutPianFerieHPage = dpercAutPianFerieHRepository + .findByTheDpercAutPianFeriePk(dpercAutPianFeriePk, pageable); + List content = dpercAutPianFerieHPage.getContent().stream() + .map(DpercAutPianFerieH::getTheDconfigPaPianiFerie).collect(Collectors.toList()); + Page result = new PageImpl(content, pageable, + dpercAutPianFerieHPage.getTotalElements()); + return result; + } + + @Override + @Transactional() + public DpercAutPianFerieH bulkUpdate(DpercAutPianFerieH dpercAutPianFerieH) { + + DpercAutPianFerieH update = this.update(dpercAutPianFerieH); + + return update; + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFeriePkServiceImpl.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFeriePkServiceImpl.java new file mode 100644 index 0000000..00fa651 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DpercAutPianFeriePkServiceImpl.java @@ -0,0 +1,261 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import java.util.Map; +import java.util.List; +import java.util.Locale; +import java.util.HashMap; +import java.util.Optional; +import java.util.ArrayList; +import java.util.Collection; +import java.util.ResourceBundle; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import org.springframework.context.i18n.LocaleContextHolder; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperExportManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk_; +import it.micegroup.gestioneferie.configurazionepf.criteria.DpercAutPianFeriePkCriteria; +import it.micegroup.gestioneferie.configurazionepf.repository.DpercAutPianFeriePkRepository; +import it.micegroup.voila2runtime.specification.FilterService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk_; +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.libs.service.BaseServiceImpl; + +import java.util.stream.Collectors; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; +import it.micegroup.voila2runtime.entity.GenericEntity; +import it.micegroup.voila2runtime.exception.BusinessException; +import net.sf.jasperreports.engine.JRException; + +@RequiredArgsConstructor +@Service +@Transactional +public class DpercAutPianFeriePkServiceImpl extends BaseServiceImpl implements DpercAutPianFeriePkService { + + private final DpercAutPianFeriePkRepository dpercAutPianFeriePkRepository; + private final FilterService filterService; + + // CHILD SERVICES + private final DpercAutPianFerieHService dpercAutPianFerieHService; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DpercAutPianFeriePkServiceImpl.class); + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll(org. springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findAll(Pageable pageable) { + return dpercAutPianFeriePkRepository.findAll(pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll() + */ + @Override + @Transactional(readOnly = true) + public List findAll() { + return dpercAutPianFeriePkRepository.findAll(); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object, org.springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findByCriteria(DpercAutPianFeriePkCriteria criteria, Pageable pageable) { + final Specification specification = createSpecification(criteria); + return dpercAutPianFeriePkRepository.findAll(specification, pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object) + */ + @Override + @Transactional(readOnly = true) + public List findByCriteria(DpercAutPianFeriePkCriteria criteria) { + final Specification specification = createSpecification(criteria); + return dpercAutPianFeriePkRepository.findAll(specification); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findById(java.lang. Object) + */ + @Override + @Transactional(readOnly = true) + public Optional findById(Long id) { + return dpercAutPianFeriePkRepository.findBySequIdPercAutPianFeriePk(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * exists(java.lang. Object) + */ + @Override + public boolean exists(Long id) { + return dpercAutPianFeriePkRepository.existsById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * insert(java. lang.Object) + */ + @Override + public DpercAutPianFeriePk insert(@Valid DpercAutPianFeriePk entity) { + return dpercAutPianFeriePkRepository.save(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * update(java. lang.Object) + */ + @Override + public DpercAutPianFeriePk update(@Valid DpercAutPianFeriePk entity) { + return dpercAutPianFeriePkRepository.save(entity); + } + + @Override + public void delete(DpercAutPianFeriePk entity) { + dpercAutPianFeriePkRepository.delete(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteById(java.lang. Object) + */ + @Override + public void deleteById(Long id) { + dpercAutPianFeriePkRepository.deleteById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteByIdIn(java.lang. Object) + */ + @Override + public void deleteByIdIn(Collection ids) { + dpercAutPianFeriePkRepository.deleteByIdIn(ids); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByObjectKey(java.lang.String) + */ + @Override + @Transactional(readOnly = true) + public Optional findByObjectKey(String id) { + DpercAutPianFeriePk dpercAutPianFeriePk = new DpercAutPianFeriePk(id); + + return findById(dpercAutPianFeriePk.getSequIdPercAutPianFeriePk()); + } + + /** + * Convert DpercAutPianFeriePkCriteria to a {@link Specification} + * + * @param criteria + * @return + */ + private Specification createSpecification(DpercAutPianFeriePkCriteria criteria) { + Specification specification = Specification.where(null); + + if (criteria != null) { + // Attribute filters + if (criteria.getSequIdPercAutPianFeriePk() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getSequIdPercAutPianFeriePk(), DpercAutPianFeriePk_.sequIdPercAutPianFeriePk)); + } + if (criteria.getFlagEliminato() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.getFlagEliminato(), + DpercAutPianFeriePk_.flagEliminato)); + } + if (criteria.getUtenteUltimaModifica() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getUtenteUltimaModifica(), DpercAutPianFeriePk_.utenteUltimaModifica)); + } + if (criteria.getDataUltimaModifica() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataUltimaModifica(), DpercAutPianFeriePk_.dataUltimaModifica)); + } + + } + return specification; + } + + @Override + @Transactional() + public DpercAutPianFeriePk bulkUpdate(DpercAutPianFeriePk dpercAutPianFeriePk) { + List updateTheDpercAutPianFerieH = dpercAutPianFeriePk.getTheDpercAutPianFerieH().stream() + .filter(child -> !child.isDeletedEntityState()).collect(Collectors.toList()); + List deleteTheDpercAutPianFerieH = dpercAutPianFeriePk.getTheDpercAutPianFerieH().stream() + .filter(GenericEntity::isDeletedEntityState).collect(Collectors.toList()); + + dpercAutPianFeriePk.setTheDpercAutPianFerieH(updateTheDpercAutPianFerieH); + + DpercAutPianFeriePk update = this.update(dpercAutPianFeriePk); + + deleteTheDpercAutPianFerieH + .forEach(child -> dpercAutPianFerieHService.deleteById(child.getSequIdPercAutPianFerieH())); + return update; + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFerieHServiceImpl.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFerieHServiceImpl.java new file mode 100644 index 0000000..7b33417 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFerieHServiceImpl.java @@ -0,0 +1,313 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import java.util.Map; +import java.util.List; +import java.util.Locale; +import java.util.HashMap; +import java.util.Optional; +import java.util.ArrayList; +import java.util.Collection; +import java.util.ResourceBundle; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import org.springframework.context.i18n.LocaleContextHolder; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperExportManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import it.micegroup.voila2runtime.filter.LongFilter; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH_; +import it.micegroup.gestioneferie.configurazionepf.criteria.DregolePianiFerieHCriteria; +import it.micegroup.gestioneferie.configurazionepf.repository.DregolePianiFerieHRepository; +import it.micegroup.voila2runtime.specification.FilterService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH_; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk_; +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.libs.service.BaseServiceImpl; + +import it.micegroup.voila2runtime.exception.BusinessException; +import net.sf.jasperreports.engine.JRException; + +@RequiredArgsConstructor +@Service +@Transactional +public class DregolePianiFerieHServiceImpl extends BaseServiceImpl implements DregolePianiFerieHService { + + private final DregolePianiFerieHRepository dregolePianiFerieHRepository; + private final FilterService filterService; + + // CHILD SERVICES + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DregolePianiFerieHServiceImpl.class); + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll(org. springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findAll(Pageable pageable) { + return dregolePianiFerieHRepository.findAll(pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll() + */ + @Override + @Transactional(readOnly = true) + public List findAll() { + return dregolePianiFerieHRepository.findAll(); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object, org.springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findByCriteria(DregolePianiFerieHCriteria criteria, Pageable pageable) { + final Specification specification = createSpecification(criteria); + return dregolePianiFerieHRepository.findAll(specification, pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object) + */ + @Override + @Transactional(readOnly = true) + public List findByCriteria(DregolePianiFerieHCriteria criteria) { + final Specification specification = createSpecification(criteria); + return dregolePianiFerieHRepository.findAll(specification); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findById(java.lang. Object) + */ + @Override + @Transactional(readOnly = true) + public Optional findById(Long id) { + return dregolePianiFerieHRepository.findBySequIdRegolePianiFerieH(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * exists(java.lang. Object) + */ + @Override + public boolean exists(Long id) { + return dregolePianiFerieHRepository.existsById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * insert(java. lang.Object) + */ + @Override + public DregolePianiFerieH insert(@Valid DregolePianiFerieH entity) { + return dregolePianiFerieHRepository.save(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * update(java. lang.Object) + */ + @Override + public DregolePianiFerieH update(@Valid DregolePianiFerieH entity) { + return dregolePianiFerieHRepository.save(entity); + } + + @Override + public void delete(DregolePianiFerieH entity) { + dregolePianiFerieHRepository.delete(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteById(java.lang. Object) + */ + @Override + public void deleteById(Long id) { + dregolePianiFerieHRepository.deleteById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteByIdIn(java.lang. Object) + */ + @Override + public void deleteByIdIn(Collection ids) { + dregolePianiFerieHRepository.deleteByIdIn(ids); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByObjectKey(java.lang.String) + */ + @Override + @Transactional(readOnly = true) + public Optional findByObjectKey(String id) { + DregolePianiFerieH dregolePianiFerieH = new DregolePianiFerieH(id); + + return findById(dregolePianiFerieH.getSequIdRegolePianiFerieH()); + } + + @Override + public Page findByTheDregolePianiFeriePk(DregolePianiFeriePk parentEntity, Pageable pageable) { + return dregolePianiFerieHRepository.findByTheDregolePianiFeriePk(parentEntity, pageable); + } + + /** + * Convert DregolePianiFerieHCriteria to a {@link Specification} + * + * @param criteria + * @return + */ + private Specification createSpecification(DregolePianiFerieHCriteria criteria) { + Specification specification = Specification.where(null); + + if (criteria != null) { + // Attribute filters + if (criteria.getSequIdRegolePianiFerieH() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getSequIdRegolePianiFerieH(), DregolePianiFerieH_.sequIdRegolePianiFerieH)); + } + if (criteria.getNumMinGgDaPianificare() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getNumMinGgDaPianificare(), DregolePianiFerieH_.numMinGgDaPianificare)); + } + if (criteria.getNumMaxGgDaPianificare() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getNumMaxGgDaPianificare(), DregolePianiFerieH_.numMaxGgDaPianificare)); + } + if (criteria.getNumePercMinGiorniPresenza() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getNumePercMinGiorniPresenza(), DregolePianiFerieH_.numePercMinGiorniPresenza)); + } + if (criteria.getFlagValidoUoSubordinate() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getFlagValidoUoSubordinate(), DregolePianiFerieH_.flagValidoUoSubordinate)); + } + if (criteria.getFkAmministrazione() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkAmministrazione(), DregolePianiFerieH_.fkAmministrazione)); + } + if (criteria.getFkRegolaPianoFeriePk() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkRegolaPianoFeriePk(), DregolePianiFerieH_.fkRegolaPianoFeriePk)); + } + if (criteria.getFkTipoOrganigramma() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkTipoOrganigramma(), DregolePianiFerieH_.fkTipoOrganigramma)); + } + if (criteria.getFkUnitaFunzionale() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkUnitaFunzionale(), DregolePianiFerieH_.fkUnitaFunzionale)); + } + if (criteria.getFkUnitaOrganizzativaPk() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getFkUnitaOrganizzativaPk(), DregolePianiFerieH_.fkUnitaOrganizzativaPk)); + } + if (criteria.getFlagEliminato() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.getFlagEliminato(), + DregolePianiFerieH_.flagEliminato)); + } + if (criteria.getUtenteUltimaModifica() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getUtenteUltimaModifica(), DregolePianiFerieH_.utenteUltimaModifica)); + } + if (criteria.getDataUltimaModifica() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataUltimaModifica(), DregolePianiFerieH_.dataUltimaModifica)); + } + if (criteria.getDataInizioValidita() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataInizioValidita(), DregolePianiFerieH_.dataInizioValidita)); + } + if (criteria.getDataFineValidita() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataFineValidita(), DregolePianiFerieH_.dataFineValidita)); + } + + if (criteria.getTheDregolePianiFeriePkObjectKey() != null) { + DregolePianiFeriePk dregolePianiFeriePk = new DregolePianiFeriePk( + criteria.getTheDregolePianiFeriePkObjectKey()); + + specification = specification.and( + filterService.generateEqualsSpecification(dregolePianiFeriePk.getSequIdRegolePianiFeriePk(), + r -> r.get(DregolePianiFerieH_.theDregolePianiFeriePk) + .get(DregolePianiFeriePk_.sequIdRegolePianiFeriePk))); + } + + } + return specification; + } + + @Override + @Transactional() + public DregolePianiFerieH bulkUpdate(DregolePianiFerieH dregolePianiFerieH) { + + DregolePianiFerieH update = this.update(dregolePianiFerieH); + + return update; + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFeriePkServiceImpl.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFeriePkServiceImpl.java new file mode 100644 index 0000000..fe5ccea --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/java/it/micegroup/gestioneferie/configurazionepf/service/DregolePianiFeriePkServiceImpl.java @@ -0,0 +1,277 @@ +package it.micegroup.gestioneferie.configurazionepf.service; + +import java.util.Map; +import java.util.List; +import java.util.Locale; +import java.util.HashMap; +import java.util.Optional; +import java.util.ArrayList; +import java.util.Collection; +import java.util.ResourceBundle; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import org.springframework.context.i18n.LocaleContextHolder; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperExportManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk_; +import it.micegroup.gestioneferie.configurazionepf.criteria.DregolePianiFeriePkCriteria; +import it.micegroup.gestioneferie.configurazionepf.repository.DregolePianiFeriePkRepository; +import it.micegroup.voila2runtime.specification.FilterService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk_; +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.libs.service.BaseServiceImpl; + +import java.util.stream.Collectors; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH; +import it.micegroup.voila2runtime.entity.GenericEntity; +import it.micegroup.voila2runtime.exception.BusinessException; +import net.sf.jasperreports.engine.JRException; + +@RequiredArgsConstructor +@Service +@Transactional +public class DregolePianiFeriePkServiceImpl extends BaseServiceImpl implements DregolePianiFeriePkService { + + private final DregolePianiFeriePkRepository dregolePianiFeriePkRepository; + private final FilterService filterService; + + // CHILD SERVICES + private final DregolePianiFerieHService dregolePianiFerieHService; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DregolePianiFeriePkServiceImpl.class); + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll(org. springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findAll(Pageable pageable) { + return dregolePianiFeriePkRepository.findAll(pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findAll() + */ + @Override + @Transactional(readOnly = true) + public List findAll() { + return dregolePianiFeriePkRepository.findAll(); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object, org.springframework.data.domain.Pageable) + */ + @Override + @Transactional(readOnly = true) + public Page findByCriteria(DregolePianiFeriePkCriteria criteria, Pageable pageable) { + final Specification specification = createSpecification(criteria); + return dregolePianiFeriePkRepository.findAll(specification, pageable); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByCriteria(java. lang.Object) + */ + @Override + @Transactional(readOnly = true) + public List findByCriteria(DregolePianiFeriePkCriteria criteria) { + final Specification specification = createSpecification(criteria); + return dregolePianiFeriePkRepository.findAll(specification); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findById(java.lang. Object) + */ + @Override + @Transactional(readOnly = true) + public Optional findById(Long id) { + return dregolePianiFeriePkRepository.findBySequIdRegolePianiFeriePk(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * exists(java.lang. Object) + */ + @Override + public boolean exists(Long id) { + return dregolePianiFeriePkRepository.existsById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * insert(java. lang.Object) + */ + @Override + public DregolePianiFeriePk insert(@Valid DregolePianiFeriePk entity) { + return dregolePianiFeriePkRepository.save(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * update(java. lang.Object) + */ + @Override + public DregolePianiFeriePk update(@Valid DregolePianiFeriePk entity) { + return dregolePianiFeriePkRepository.save(entity); + } + + @Override + public void delete(DregolePianiFeriePk entity) { + dregolePianiFeriePkRepository.delete(entity); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteById(java.lang. Object) + */ + @Override + public void deleteById(Long id) { + dregolePianiFeriePkRepository.deleteById(id); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * deleteByIdIn(java.lang. Object) + */ + @Override + public void deleteByIdIn(Collection ids) { + dregolePianiFeriePkRepository.deleteByIdIn(ids); + } + + /* + * (non-Javadoc) + * + * @see + * it.micegroup.gestioneferie.configurazionepf.service.GenericEntityService# + * findByObjectKey(java.lang.String) + */ + @Override + @Transactional(readOnly = true) + public Optional findByObjectKey(String id) { + DregolePianiFeriePk dregolePianiFeriePk = new DregolePianiFeriePk(id); + + return findById(dregolePianiFeriePk.getSequIdRegolePianiFeriePk()); + } + + /** + * Convert DregolePianiFeriePkCriteria to a {@link Specification} + * + * @param criteria + * @return + */ + private Specification createSpecification(DregolePianiFeriePkCriteria criteria) { + Specification specification = Specification.where(null); + + if (criteria != null) { + // Attribute filters + if (criteria.getSequIdRegolePianiFeriePk() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getSequIdRegolePianiFeriePk(), DregolePianiFeriePk_.sequIdRegolePianiFeriePk)); + } + if (criteria.getCodiRegola() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.getCodiRegola(), + DregolePianiFeriePk_.codiRegola)); + } + if (criteria.getDescRegola() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.getDescRegola(), + DregolePianiFeriePk_.descRegola)); + } + if (criteria.getFlagEliminato() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.getFlagEliminato(), + DregolePianiFeriePk_.flagEliminato)); + } + if (criteria.getUtenteUltimaModifica() != null) { + specification = specification.and(filterService.generateStringSpecification( + criteria.getUtenteUltimaModifica(), DregolePianiFeriePk_.utenteUltimaModifica)); + } + if (criteria.getDataUltimaModifica() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataUltimaModifica(), DregolePianiFeriePk_.dataUltimaModifica)); + } + if (criteria.getDataInizioValidita() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataInizioValidita(), DregolePianiFeriePk_.dataInizioValidita)); + } + if (criteria.getDataFineValidita() != null) { + specification = specification.and(filterService.generateRangeSpecification( + criteria.getDataFineValidita(), DregolePianiFeriePk_.dataFineValidita)); + } + + } + return specification; + } + + @Override + @Transactional() + public DregolePianiFeriePk bulkUpdate(DregolePianiFeriePk dregolePianiFeriePk) { + List updateTheDregolePianiFerieH = dregolePianiFeriePk.getTheDregolePianiFerieH().stream() + .filter(child -> !child.isDeletedEntityState()).collect(Collectors.toList()); + List deleteTheDregolePianiFerieH = dregolePianiFeriePk.getTheDregolePianiFerieH().stream() + .filter(GenericEntity::isDeletedEntityState).collect(Collectors.toList()); + + dregolePianiFeriePk.setTheDregolePianiFerieH(updateTheDregolePianiFerieH); + + DregolePianiFeriePk update = this.update(dregolePianiFeriePk); + + deleteTheDregolePianiFerieH + .forEach(child -> dregolePianiFerieHService.deleteById(child.getSequIdRegolePianiFerieH())); + return update; + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/resources/ciao.txt b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/resources/ciao.txt new file mode 100644 index 0000000..8c9e1f7 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-impl/src/main/resources/ciao.txt @@ -0,0 +1 @@ +HELLOOOOOOOOOOOO \ No newline at end of file diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.classpath b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.classpath new file mode 100644 index 0000000..c2a5cfa --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.classpath @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.project b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.project new file mode 100644 index 0000000..23f8a2e --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.project @@ -0,0 +1,92 @@ + + + gestioneferie-ms-configurazionepf-model + + + gestioneferie + gestioneferie-ms-configurazionepf + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.acceleo.ide.ui.acceleoBuilder + + + compilation.kind + compilation.absolute.path + + + compliance + pragmatic + + + resource.kind + xmi + + + trim-position + false + + + + + org.eclipse.acceleo.ide.ui.acceleoBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.acceleo.ide.ui.acceleoNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + + + 1644425858680 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858698 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425858769 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.voilaProject b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/META-INF/MANIFEST.MF b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/META-INF/MANIFEST.MF new file mode 100644 index 0000000..8a545dd --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: configurazionepf +Bundle-SymbolicName: configurazionepf +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: configurazionepf +Bundle-RequiredExecutionEnvironment: JavaSE-15 +Export-Package: it.micegroup.gestioneferie.configurazionepf.model +Require-Bundle: org.eclipse.acceleo.engine, + it.micegroup.voila2.cartridge.library;bundle-version="1.0.0", + it.micegroup.voila2.cartridge.angular;bundle-version="1.0.0", + it.mice.voila2.acceleogenerator;bundle-version="1.0.0" + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/pom.xml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/pom.xml new file mode 100644 index 0000000..e42c237 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/pom.xml @@ -0,0 +1,24 @@ + + + + 4.0.0 + + gestioneferie-ms-configurazionepf-model + gestioneferie-ms-configurazionepf-model + Voila 2 Sample Project rel. 0.0.1 + pom + + + it.micegroup + gestioneferie-ms-configurazionepf + 0.0.1-SNAPSHOT + ../../pom.xml + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/Main.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/Main.java new file mode 100644 index 0000000..4c25e87 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/Main.java @@ -0,0 +1,415 @@ +/******************************************************************************* + * Copyright (c) 2008, 2012 Obeo. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package it.micegroup.gestioneferie.configurazionepf.model; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener; +import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy; +import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator; +import org.eclipse.emf.common.util.BasicMonitor; +import org.eclipse.emf.common.util.Monitor; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.ResourceSet; + +/** + * Entry point of the 'Main' generation module. + * + * @generated + */ +public class Main extends AbstractAcceleoGenerator { + /** + * The name of the module. + * + * @generated + */ + public static final String MODULE_FILE_NAME = "/it/micegroup/gestioneferie/configurazionepf/model/main"; + + /** + * The name of the templates that are to be generated. + * + * @generated + */ + public static final String[] TEMPLATE_NAMES = { "mainClass" }; + + /** + * The list of properties files from the launch parameters (Launch configuration). + * + * @generated + */ + private List propertiesFiles = new ArrayList(); + + /** + * Allows the public constructor to be used. Note that a generator created + * this way cannot be used to launch generations before one of + * {@link #initialize(EObject, File, List)} or + * {@link #initialize(URI, File, List)} is called. + *

+ * The main reason for this constructor is to allow clients of this + * generation to call it from another Java file, as it allows for the + * retrieval of {@link #getProperties()} and + * {@link #getGenerationListeners()}. + *

+ * + * @generated + */ + public Main() { + // Empty implementation + } + + /** + * This allows clients to instantiates a generator with all required information. + * + * @param modelURI + * URI where the model on which this generator will be used is located. + * @param targetFolder + * This will be used as the output folder for this generation : it will be the base path + * against which all file block URLs will be resolved. + * @param arguments + * If the template which will be called requires more than one argument taken from the model, + * pass them here. + * @throws IOException + * This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or + * the model cannot be loaded. + * @generated + */ + public Main(URI modelURI, File targetFolder, + List arguments) throws IOException { + initialize(modelURI, targetFolder, arguments); + } + + /** + * This allows clients to instantiates a generator with all required information. + * + * @param model + * We'll iterate over the content of this element to find Objects matching the first parameter + * of the template we need to call. + * @param targetFolder + * This will be used as the output folder for this generation : it will be the base path + * against which all file block URLs will be resolved. + * @param arguments + * If the template which will be called requires more than one argument taken from the model, + * pass them here. + * @throws IOException + * This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded. + * @generated + */ + public Main(EObject model, File targetFolder, + List arguments) throws IOException { + initialize(model, targetFolder, arguments); + } + + /** + * This can be used to launch the generation from a standalone application. + * + * @param args + * Arguments of the generation. + * @generated + */ + public static void main(String[] args) { + try { + if (args.length < 2) { + System.out.println("Arguments not valid : {model, folder}."); + } else { + URI modelURI = URI.createFileURI(args[0]); + File folder = new File(args[1]); + + List arguments = new ArrayList(); + + /* + * If you want to change the content of this method, do NOT forget to change the "@generated" + * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation + * of the Acceleo module with the main template that has caused the creation of this class will + * revert your modifications. + */ + + /* + * Add in this list all the arguments used by the starting point of the generation + * If your main template is called on an element of your model and a String, you can + * add in "arguments" this "String" attribute. + */ + + Main generator = new Main(modelURI, folder, arguments); + + /* + * Add the properties from the launch arguments. + * If you want to programmatically add new properties, add them in "propertiesFiles" + * You can add the absolute path of a properties files, or even a project relative path. + * If you want to add another "protocol" for your properties files, please override + * "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader. + * The behavior of the properties loader service is explained in the Acceleo documentation + * (Help -> Help Contents). + */ + + for (int i = 2; i < args.length; i++) { + generator.addPropertiesFile(args[i]); + } + + generator.doGenerate(new BasicMonitor()); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * Launches the generation described by this instance. + * + * @param monitor + * This will be used to display progress information to the user. + * @throws IOException + * This will be thrown if any of the output files cannot be saved to disk. + * @generated + */ + @Override + public void doGenerate(Monitor monitor) throws IOException { + /* + * TODO if you wish to change the generation as a whole, override this. The default behavior should + * be sufficient in most cases. If you want to change the content of this method, do NOT forget to + * change the "@generated" tag in the Javadoc of this method to "@generated NOT". Without this new tag, + * any compilation of the Acceleo module with the main template that has caused the creation of this + * class will revert your modifications. If you encounter a problem with an unresolved proxy during the + * generation, you can remove the comments in the following instructions to check for problems. Please + * note that those instructions may have a significant impact on the performances. + */ + + //org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(model); + + /* + * If you want to check for potential errors in your models before the launch of the generation, you + * use the code below. + */ + + //if (model != null && model.eResource() != null) { + // List errors = model.eResource().getErrors(); + // for (org.eclipse.emf.ecore.resource.Resource.Diagnostic diagnostic : errors) { + // System.err.println(diagnostic.toString()); + // } + //} + + super.doGenerate(monitor); + } + + /** + * If this generator needs to listen to text generation events, listeners can be returned from here. + * + * @return List of listeners that are to be notified when text is generated through this launch. + * @generated + */ + @Override + public List getGenerationListeners() { + List listeners = super.getGenerationListeners(); + /* + * TODO if you need to listen to generation event, add listeners to the list here. If you want to change + * the content of this method, do NOT forget to change the "@generated" tag in the Javadoc of this method + * to "@generated NOT". Without this new tag, any compilation of the Acceleo module with the main template + * that has caused the creation of this class will revert your modifications. + */ + return listeners; + } + + /** + * If you need to change the way files are generated, this is your entry point. + *

+ * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates + * files on the fly. If you only need to preview the results, return a new + * {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of + * the running Eclipse and can be used standalone. + *

+ *

+ * If you need the file generation to be aware of the workspace (A typical example is when you wanna + * override files that are under clear case or any other VCS that could forbid the overriding), then + * return a new {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}. + * Note, however, that this cannot be used standalone. + *

+ *

+ * All three of these default strategies support merging through JMerge. + *

+ * + * @return The generation strategy that is to be used for generations launched through this launcher. + * @generated + */ + @Override + public IAcceleoGenerationStrategy getGenerationStrategy() { + return super.getGenerationStrategy(); + } + + /** + * This will be called in order to find and load the module that will be launched through this launcher. + * We expect this name not to contain file extension, and the module to be located beside the launcher. + * + * @return The name of the module that is to be launched. + * @generated + */ + @Override + public String getModuleName() { + return MODULE_FILE_NAME; + } + + /** + * If the module(s) called by this launcher require properties files, return their qualified path from + * here.Take note that the first added properties files will take precedence over subsequent ones if they + * contain conflicting keys. + * + * @return The list of properties file we need to add to the generation context. + * @see java.util.ResourceBundle#getBundle(String) + * @generated + */ + @Override + public List getProperties() { + /* + * If you want to change the content of this method, do NOT forget to change the "@generated" + * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation + * of the Acceleo module with the main template that has caused the creation of this class will + * revert your modifications. + */ + + /* + * TODO if your generation module requires access to properties files, add their qualified path to the list here. + * + * Properties files can be located in an Eclipse plug-in or in the file system (all Acceleo projects are Eclipse + * plug-in). In order to use properties files located in an Eclipse plugin, you need to add the path of the properties + * files to the "propertiesFiles" list: + * + * final String prefix = "platform:/plugin/"; + * final String pluginName = "org.eclipse.acceleo.module.sample"; + * final String packagePath = "/org/eclipse/acceleo/module/sample/properties/"; + * final String fileName = "default.properties"; + * propertiesFiles.add(prefix + pluginName + packagePath + fileName); + * + * With this mechanism, you can load properties files from your plugin or from another plugin. + * + * You may want to load properties files from the file system, for that you need to add the absolute path of the file: + * + * propertiesFiles.add("C:\Users\MyName\MyFile.properties"); + * + * If you want to let your users add properties files located in the same folder as the model: + * + * if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != null) { + * propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model.eResource())); + * } + * + * To learn more about Properties Files, have a look at the Acceleo documentation (Help -> Help Contents). + */ + return propertiesFiles; + } + + /** + * Adds a properties file in the list of properties files. + * + * @param propertiesFile + * The properties file to add. + * @generated + * @since 3.1 + */ + @Override + public void addPropertiesFile(String propertiesFile) { + this.propertiesFiles.add(propertiesFile); + } + + /** + * This will be used to get the list of templates that are to be launched by this launcher. + * + * @return The list of templates to call on the module {@link #getModuleName()}. + * @generated + */ + @Override + public String[] getTemplateNames() { + return TEMPLATE_NAMES; + } + + /** + * This can be used to update the resource set's package registry with all needed EPackages. + * + * @param resourceSet + * The resource set which registry has to be updated. + * @generated + */ + @Override + public void registerPackages(ResourceSet resourceSet) { + super.registerPackages(resourceSet); + if (!isInWorkspace(org.eclipse.uml2.uml.UMLPackage.class)) { + resourceSet.getPackageRegistry().put(org.eclipse.uml2.uml.UMLPackage.eINSTANCE.getNsURI(), org.eclipse.uml2.uml.UMLPackage.eINSTANCE); + } + + /* + * If you want to change the content of this method, do NOT forget to change the "@generated" + * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation + * of the Acceleo module with the main template that has caused the creation of this class will + * revert your modifications. + */ + + /* + * If you need additional package registrations, you can register them here. The following line + * (in comment) is an example of the package registration for UML. + * + * You can use the method "isInWorkspace(Class c)" to check if the package that you are about to + * register is in the workspace. + * + * To register a package properly, please follow the following conventions: + * + * If the package is located in another plug-in, already installed in Eclipse. The following content should + * have been generated at the beginning of this method. Do not register the package using this mechanism if + * the metamodel is located in the workspace. + * + * if (!isInWorkspace(UMLPackage.class)) { + * // The normal package registration if your metamodel is in a plugin. + * resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE); + * } + * + * If the package is located in another project in your workspace, the plugin containing the package has not + * been register by EMF and Acceleo should register it automatically. If you want to use the generator in + * stand alone, the regular registration (seen a couple lines before) is needed. + * + * To learn more about Package Registration, have a look at the Acceleo documentation (Help -> Help Contents). + */ + } + + /** + * This can be used to update the resource set's resource factory registry with all needed factories. + * + * @param resourceSet + * The resource set which registry has to be updated. + * @generated + */ + @Override + public void registerResourceFactories(ResourceSet resourceSet) { + super.registerResourceFactories(resourceSet); + /* + * If you want to change the content of this method, do NOT forget to change the "@generated" + * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation + * of the Acceleo module with the main template that has caused the creation of this class will + * revert your modifications. + */ + + /* + * TODO If you need additional resource factories registrations, you can register them here. the following line + * (in comment) is an example of the resource factory registration. + * + * If you want to use the generator in stand alone, the resource factory registration will be required. + * + * To learn more about the registration of Resource Factories, have a look at the Acceleo documentation (Help -> Help Contents). + */ + + // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(XyzResource.FILE_EXTENSION, XyzResource.Factory.INSTANCE); + + /* + * Some metamodels require a very complex setup for standalone usage. For example, if you want to use a generator + * targetting UML models in standalone, you NEED to use the following: + */ + // UMLResourcesUtil.init(resourceSet) + } + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainFE.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainFE.java new file mode 100644 index 0000000..4741cc2 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainFE.java @@ -0,0 +1,415 @@ +/******************************************************************************* + * Copyright (c) 2008, 2012 Obeo. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package it.micegroup.gestioneferie.configurazionepf.model; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener; +import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy; +import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator; +import org.eclipse.emf.common.util.BasicMonitor; +import org.eclipse.emf.common.util.Monitor; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.ResourceSet; + +/** + * Entry point of the 'MainFE' generation module. + * + * @generated + */ +public class MainFE extends AbstractAcceleoGenerator { + /** + * The name of the module. + * + * @generated + */ + public static final String MODULE_FILE_NAME = "/it/micegroup/gestioneferie/configurazionepf/model/mainFE"; + + /** + * The name of the templates that are to be generated. + * + * @generated + */ + public static final String[] TEMPLATE_NAMES = { "mainClassFE" }; + + /** + * The list of properties files from the launch parameters (Launch configuration). + * + * @generated + */ + private List propertiesFiles = new ArrayList(); + + /** + * Allows the public constructor to be used. Note that a generator created + * this way cannot be used to launch generations before one of + * {@link #initialize(EObject, File, List)} or + * {@link #initialize(URI, File, List)} is called. + *

+ * The main reason for this constructor is to allow clients of this + * generation to call it from another Java file, as it allows for the + * retrieval of {@link #getProperties()} and + * {@link #getGenerationListeners()}. + *

+ * + * @generated + */ + public MainFE() { + // Empty implementation + } + + /** + * This allows clients to instantiates a generator with all required information. + * + * @param modelURI + * URI where the model on which this generator will be used is located. + * @param targetFolder + * This will be used as the output folder for this generation : it will be the base path + * against which all file block URLs will be resolved. + * @param arguments + * If the template which will be called requires more than one argument taken from the model, + * pass them here. + * @throws IOException + * This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or + * the model cannot be loaded. + * @generated + */ + public MainFE(URI modelURI, File targetFolder, + List arguments) throws IOException { + initialize(modelURI, targetFolder, arguments); + } + + /** + * This allows clients to instantiates a generator with all required information. + * + * @param model + * We'll iterate over the content of this element to find Objects matching the first parameter + * of the template we need to call. + * @param targetFolder + * This will be used as the output folder for this generation : it will be the base path + * against which all file block URLs will be resolved. + * @param arguments + * If the template which will be called requires more than one argument taken from the model, + * pass them here. + * @throws IOException + * This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded. + * @generated + */ + public MainFE(EObject model, File targetFolder, + List arguments) throws IOException { + initialize(model, targetFolder, arguments); + } + + /** + * This can be used to launch the generation from a standalone application. + * + * @param args + * Arguments of the generation. + * @generated + */ + public static void main(String[] args) { + try { + if (args.length < 2) { + System.out.println("Arguments not valid : {model, folder}."); + } else { + URI modelURI = URI.createFileURI(args[0]); + File folder = new File(args[1]); + + List arguments = new ArrayList(); + + /* + * If you want to change the content of this method, do NOT forget to change the "@generated" + * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation + * of the Acceleo module with the main template that has caused the creation of this class will + * revert your modifications. + */ + + /* + * Add in this list all the arguments used by the starting point of the generation + * If your main template is called on an element of your model and a String, you can + * add in "arguments" this "String" attribute. + */ + + MainFE generator = new MainFE(modelURI, folder, arguments); + + /* + * Add the properties from the launch arguments. + * If you want to programmatically add new properties, add them in "propertiesFiles" + * You can add the absolute path of a properties files, or even a project relative path. + * If you want to add another "protocol" for your properties files, please override + * "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader. + * The behavior of the properties loader service is explained in the Acceleo documentation + * (Help -> Help Contents). + */ + + for (int i = 2; i < args.length; i++) { + generator.addPropertiesFile(args[i]); + } + + generator.doGenerate(new BasicMonitor()); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * Launches the generation described by this instance. + * + * @param monitor + * This will be used to display progress information to the user. + * @throws IOException + * This will be thrown if any of the output files cannot be saved to disk. + * @generated + */ + @Override + public void doGenerate(Monitor monitor) throws IOException { + /* + * TODO if you wish to change the generation as a whole, override this. The default behavior should + * be sufficient in most cases. If you want to change the content of this method, do NOT forget to + * change the "@generated" tag in the Javadoc of this method to "@generated NOT". Without this new tag, + * any compilation of the Acceleo module with the main template that has caused the creation of this + * class will revert your modifications. If you encounter a problem with an unresolved proxy during the + * generation, you can remove the comments in the following instructions to check for problems. Please + * note that those instructions may have a significant impact on the performances. + */ + + //org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(model); + + /* + * If you want to check for potential errors in your models before the launch of the generation, you + * use the code below. + */ + + //if (model != null && model.eResource() != null) { + // List errors = model.eResource().getErrors(); + // for (org.eclipse.emf.ecore.resource.Resource.Diagnostic diagnostic : errors) { + // System.err.println(diagnostic.toString()); + // } + //} + + super.doGenerate(monitor); + } + + /** + * If this generator needs to listen to text generation events, listeners can be returned from here. + * + * @return List of listeners that are to be notified when text is generated through this launch. + * @generated + */ + @Override + public List getGenerationListeners() { + List listeners = super.getGenerationListeners(); + /* + * TODO if you need to listen to generation event, add listeners to the list here. If you want to change + * the content of this method, do NOT forget to change the "@generated" tag in the Javadoc of this method + * to "@generated NOT". Without this new tag, any compilation of the Acceleo module with the main template + * that has caused the creation of this class will revert your modifications. + */ + return listeners; + } + + /** + * If you need to change the way files are generated, this is your entry point. + *

+ * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates + * files on the fly. If you only need to preview the results, return a new + * {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of + * the running Eclipse and can be used standalone. + *

+ *

+ * If you need the file generation to be aware of the workspace (A typical example is when you wanna + * override files that are under clear case or any other VCS that could forbid the overriding), then + * return a new {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}. + * Note, however, that this cannot be used standalone. + *

+ *

+ * All three of these default strategies support merging through JMerge. + *

+ * + * @return The generation strategy that is to be used for generations launched through this launcher. + * @generated + */ + @Override + public IAcceleoGenerationStrategy getGenerationStrategy() { + return super.getGenerationStrategy(); + } + + /** + * This will be called in order to find and load the module that will be launched through this launcher. + * We expect this name not to contain file extension, and the module to be located beside the launcher. + * + * @return The name of the module that is to be launched. + * @generated + */ + @Override + public String getModuleName() { + return MODULE_FILE_NAME; + } + + /** + * If the module(s) called by this launcher require properties files, return their qualified path from + * here.Take note that the first added properties files will take precedence over subsequent ones if they + * contain conflicting keys. + * + * @return The list of properties file we need to add to the generation context. + * @see java.util.ResourceBundle#getBundle(String) + * @generated + */ + @Override + public List getProperties() { + /* + * If you want to change the content of this method, do NOT forget to change the "@generated" + * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation + * of the Acceleo module with the main template that has caused the creation of this class will + * revert your modifications. + */ + + /* + * TODO if your generation module requires access to properties files, add their qualified path to the list here. + * + * Properties files can be located in an Eclipse plug-in or in the file system (all Acceleo projects are Eclipse + * plug-in). In order to use properties files located in an Eclipse plugin, you need to add the path of the properties + * files to the "propertiesFiles" list: + * + * final String prefix = "platform:/plugin/"; + * final String pluginName = "org.eclipse.acceleo.module.sample"; + * final String packagePath = "/org/eclipse/acceleo/module/sample/properties/"; + * final String fileName = "default.properties"; + * propertiesFiles.add(prefix + pluginName + packagePath + fileName); + * + * With this mechanism, you can load properties files from your plugin or from another plugin. + * + * You may want to load properties files from the file system, for that you need to add the absolute path of the file: + * + * propertiesFiles.add("C:\Users\MyName\MyFile.properties"); + * + * If you want to let your users add properties files located in the same folder as the model: + * + * if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != null) { + * propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model.eResource())); + * } + * + * To learn more about Properties Files, have a look at the Acceleo documentation (Help -> Help Contents). + */ + return propertiesFiles; + } + + /** + * Adds a properties file in the list of properties files. + * + * @param propertiesFile + * The properties file to add. + * @generated + * @since 3.1 + */ + @Override + public void addPropertiesFile(String propertiesFile) { + this.propertiesFiles.add(propertiesFile); + } + + /** + * This will be used to get the list of templates that are to be launched by this launcher. + * + * @return The list of templates to call on the module {@link #getModuleName()}. + * @generated + */ + @Override + public String[] getTemplateNames() { + return TEMPLATE_NAMES; + } + + /** + * This can be used to update the resource set's package registry with all needed EPackages. + * + * @param resourceSet + * The resource set which registry has to be updated. + * @generated + */ + @Override + public void registerPackages(ResourceSet resourceSet) { + super.registerPackages(resourceSet); + if (!isInWorkspace(org.eclipse.uml2.uml.UMLPackage.class)) { + resourceSet.getPackageRegistry().put(org.eclipse.uml2.uml.UMLPackage.eINSTANCE.getNsURI(), org.eclipse.uml2.uml.UMLPackage.eINSTANCE); + } + + /* + * If you want to change the content of this method, do NOT forget to change the "@generated" + * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation + * of the Acceleo module with the main template that has caused the creation of this class will + * revert your modifications. + */ + + /* + * If you need additional package registrations, you can register them here. The following line + * (in comment) is an example of the package registration for UML. + * + * You can use the method "isInWorkspace(Class c)" to check if the package that you are about to + * register is in the workspace. + * + * To register a package properly, please follow the following conventions: + * + * If the package is located in another plug-in, already installed in Eclipse. The following content should + * have been generated at the beginning of this method. Do not register the package using this mechanism if + * the metamodel is located in the workspace. + * + * if (!isInWorkspace(UMLPackage.class)) { + * // The normal package registration if your metamodel is in a plugin. + * resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE); + * } + * + * If the package is located in another project in your workspace, the plugin containing the package has not + * been register by EMF and Acceleo should register it automatically. If you want to use the generator in + * stand alone, the regular registration (seen a couple lines before) is needed. + * + * To learn more about Package Registration, have a look at the Acceleo documentation (Help -> Help Contents). + */ + } + + /** + * This can be used to update the resource set's resource factory registry with all needed factories. + * + * @param resourceSet + * The resource set which registry has to be updated. + * @generated + */ + @Override + public void registerResourceFactories(ResourceSet resourceSet) { + super.registerResourceFactories(resourceSet); + /* + * If you want to change the content of this method, do NOT forget to change the "@generated" + * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation + * of the Acceleo module with the main template that has caused the creation of this class will + * revert your modifications. + */ + + /* + * TODO If you need additional resource factories registrations, you can register them here. the following line + * (in comment) is an example of the resource factory registration. + * + * If you want to use the generator in stand alone, the resource factory registration will be required. + * + * To learn more about the registration of Resource Factories, have a look at the Acceleo documentation (Help -> Help Contents). + */ + + // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(XyzResource.FILE_EXTENSION, XyzResource.Factory.INSTANCE); + + /* + * Some metamodels require a very complex setup for standalone usage. For example, if you want to use a generator + * targetting UML models in standalone, you NEED to use the following: + */ + // UMLResourcesUtil.init(resourceSet) + } + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainGenerator.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainGenerator.java new file mode 100644 index 0000000..f1bea6f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainGenerator.java @@ -0,0 +1,184 @@ + +package it.micegroup.gestioneferie.configurazionepf.model; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; + +import it.mice.voila2.acceleogenerator.core.Main; + +/** + * Entry point of the 'Main' generation module. + * + * @generated + */ +public class MainGenerator extends Main { + /** + * The name of the module. + * + * @generated + */ + public static final String MODULE_FILE_NAME = "/it/micegroup/gestioneferie/configurazionepf/model/main"; + + /** + * The name of the templates that are to be generated. + * + * @generated + */ + public static final String[] TEMPLATE_NAMES = { "mainClass" }; + + /** + * The list of properties files from the launch parameters (Launch + * configuration). + * + * @generated + */ + private List propertiesFiles = new ArrayList(); + + /** + * Allows the public constructor to be used. Note that a generator created this + * way cannot be used to launch generations before one of + * {@link #initialize(EObject, File, List)} or + * {@link #initialize(URI, File, List)} is called. + *

+ * The main reason for this constructor is to allow clients of this generation + * to call it from another Java file, as it allows for the retrieval of + * {@link #getProperties()} and {@link #getGenerationListeners()}. + *

+ * + * @generated + */ + public MainGenerator() { + // Empty implementation + } + + /** + * This allows clients to instantiates a generator with all required + * information. + * + * @param modelURI URI where the model on which this generator will be used + * is located. + * @param targetFolder This will be used as the output folder for this + * generation : it will be the base path against which all + * file block URLs will be resolved. + * @param arguments If the template which will be called requires more than + * one argument taken from the model, pass them here. + * @throws IOException This can be thrown in three scenarios : the module cannot + * be found, it cannot be loaded, or the model cannot be + * loaded. + * @generated + */ + public MainGenerator(URI modelURI, File targetFolder, List arguments) throws IOException { + initialize(modelURI, targetFolder, arguments); + } + + /** + * This allows clients to instantiates a generator with all required + * information. + * + * @param model We'll iterate over the content of this element to find + * Objects matching the first parameter of the template we + * need to call. + * @param targetFolder This will be used as the output folder for this + * generation : it will be the base path against which all + * file block URLs will be resolved. + * @param arguments If the template which will be called requires more than + * one argument taken from the model, pass them here. + * @throws IOException This can be thrown in two scenarios : the module cannot + * be found, or it cannot be loaded. + * @generated + */ + public MainGenerator(EObject model, File targetFolder, List arguments) throws IOException { + initialize(model, targetFolder, arguments); + } + + /** + * This will be called in order to find and load the module that will be + * launched through this launcher. We expect this name not to contain file + * extension, and the module to be located beside the launcher. + * + * @return The name of the module that is to be launched. + * @generated + */ + @Override + public String getModuleName() { + return MODULE_FILE_NAME; + } + + /** + * If the module(s) called by this launcher require properties files, return + * their qualified path from here.Take note that the first added properties + * files will take precedence over subsequent ones if they contain conflicting + * keys. + * + * @return The list of properties file we need to add to the generation context. + * @see java.util.ResourceBundle#getBundle(String) + * @generated NOT + */ + @Override + public List getProperties() { + /* + * If you want to change the content of this method, do NOT forget to change the + * "@generated" tag in the Javadoc of this method to "@generated NOT". Without + * this new tag, any compilation of the Acceleo module with the main template + * that has caused the creation of this class will revert your modifications. + */ + + /* + * TODO if your generation module requires access to properties files, add their + * qualified path to the list here. + * + * Properties files can be located in an Eclipse plug-in or in the file system + * (all Acceleo projects are Eclipse plug-in). In order to use properties files + * located in an Eclipse plugin, you need to add the path of the properties + * files to the "propertiesFiles" list: + * + * final String prefix = "platform:/plugin/"; final String pluginName = + * "org.eclipse.acceleo.module.sample"; final String packagePath = + * "/org/eclipse/acceleo/module/sample/properties/"; final String fileName = + * "default.properties"; propertiesFiles.add(prefix + pluginName + packagePath + + * fileName); + * + * With this mechanism, you can load properties files from your plugin or from + * another plugin. + * + * You may want to load properties files from the file system, for that you need + * to add the absolute path of the file: + * + * propertiesFiles.add("C:\Users\MyName\MyFile.properties"); + * + * If you want to let your users add properties files located in the same folder + * as the model: + * + * if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != + * null) { + * propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model. + * eResource())); } + * + * To learn more about Properties Files, have a look at the Acceleo + * documentation (Help -> Help Contents). + */ + URL uri = Thread.currentThread().getContextClassLoader().getResource("properties/voila2-default.properties"); + String resName = uri.toExternalForm().substring(6); + propertiesFiles.add(resName); + return propertiesFiles; + } + + /** + * This will be used to get the list of templates that are to be launched by + * this launcher. + * + * @return The list of templates to call on the module {@link #getModuleName()}. + * @generated + */ + @Override + public String[] getTemplateNames() { + return TEMPLATE_NAMES; + } +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainGeneratorFE.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainGeneratorFE.java new file mode 100644 index 0000000..bec867a --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/MainGeneratorFE.java @@ -0,0 +1,183 @@ +package it.micegroup.gestioneferie.configurazionepf.model; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; + +import it.mice.voila2.acceleogenerator.core.Main; + +/** + * Entry point of the 'Main' generation module. + * + * @generated + */ +public class MainGeneratorFE extends Main { + /** + * The name of the module. + * + * @generated + */ + public static final String MODULE_FILE_NAME = "/it/micegroup/gestioneferie/configurazionepf/model/mainFE"; + + /** + * The name of the templates that are to be generated. + * + * @generated + */ + public static final String[] TEMPLATE_NAMES = { "mainClassFE" }; + + /** + * The list of properties files from the launch parameters (Launch + * configuration). + * + * @generated + */ + private List propertiesFiles = new ArrayList(); + + /** + * Allows the public constructor to be used. Note that a generator created this + * way cannot be used to launch generations before one of + * {@link #initialize(EObject, File, List)} or + * {@link #initialize(URI, File, List)} is called. + *

+ * The main reason for this constructor is to allow clients of this generation + * to call it from another Java file, as it allows for the retrieval of + * {@link #getProperties()} and {@link #getGenerationListeners()}. + *

+ * + * @generated + */ + public MainGeneratorFE() { + // Empty implementation + } + + /** + * This allows clients to instantiates a generator with all required + * information. + * + * @param modelURI URI where the model on which this generator will be used + * is located. + * @param targetFolder This will be used as the output folder for this + * generation : it will be the base path against which all + * file block URLs will be resolved. + * @param arguments If the template which will be called requires more than + * one argument taken from the model, pass them here. + * @throws IOException This can be thrown in three scenarios : the module cannot + * be found, it cannot be loaded, or the model cannot be + * loaded. + * @generated + */ + public MainGeneratorFE(URI modelURI, File targetFolder, List arguments) throws IOException { + initialize(modelURI, targetFolder, arguments); + } + + /** + * This allows clients to instantiates a generator with all required + * information. + * + * @param model We'll iterate over the content of this element to find + * Objects matching the first parameter of the template we + * need to call. + * @param targetFolder This will be used as the output folder for this + * generation : it will be the base path against which all + * file block URLs will be resolved. + * @param arguments If the template which will be called requires more than + * one argument taken from the model, pass them here. + * @throws IOException This can be thrown in two scenarios : the module cannot + * be found, or it cannot be loaded. + * @generated + */ + public MainGeneratorFE(EObject model, File targetFolder, List arguments) throws IOException { + initialize(model, targetFolder, arguments); + } + + /** + * This will be called in order to find and load the module that will be + * launched through this launcher. We expect this name not to contain file + * extension, and the module to be located beside the launcher. + * + * @return The name of the module that is to be launched. + * @generated + */ + @Override + public String getModuleName() { + return MODULE_FILE_NAME; + } + + /** + * If the module(s) called by this launcher require properties files, return + * their qualified path from here.Take note that the first added properties + * files will take precedence over subsequent ones if they contain conflicting + * keys. + * + * @return The list of properties file we need to add to the generation context. + * @see java.util.ResourceBundle#getBundle(String) + * @generated NOT + */ + @Override + public List getProperties() { + /* + * If you want to change the content of this method, do NOT forget to change the + * "@generated" tag in the Javadoc of this method to "@generated NOT". Without + * this new tag, any compilation of the Acceleo module with the main template + * that has caused the creation of this class will revert your modifications. + */ + + /* + * TODO if your generation module requires access to properties files, add their + * qualified path to the list here. + * + * Properties files can be located in an Eclipse plug-in or in the file system + * (all Acceleo projects are Eclipse plug-in). In order to use properties files + * located in an Eclipse plugin, you need to add the path of the properties + * files to the "propertiesFiles" list: + * + * final String prefix = "platform:/plugin/"; final String pluginName = + * "org.eclipse.acceleo.module.sample"; final String packagePath = + * "/org/eclipse/acceleo/module/sample/properties/"; final String fileName = + * "default.properties"; propertiesFiles.add(prefix + pluginName + packagePath + + * fileName); + * + * With this mechanism, you can load properties files from your plugin or from + * another plugin. + * + * You may want to load properties files from the file system, for that you need + * to add the absolute path of the file: + * + * propertiesFiles.add("C:\Users\MyName\MyFile.properties"); + * + * If you want to let your users add properties files located in the same folder + * as the model: + * + * if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != + * null) { + * propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model. + * eResource())); } + * + * To learn more about Properties Files, have a look at the Acceleo + * documentation (Help -> Help Contents). + */ + URL uri = Thread.currentThread().getContextClassLoader().getResource("properties/voila2-default.properties"); + String resName = uri.toExternalForm().substring(6); + propertiesFiles.add(resName); + return propertiesFiles; + } + + /** + * This will be used to get the list of templates that are to be launched by + * this launcher. + * + * @return The list of templates to call on the module {@link #getModuleName()}. + * @generated + */ + @Override + public String[] getTemplateNames() { + return TEMPLATE_NAMES; + } +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/main.mtl b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/main.mtl new file mode 100644 index 0000000..c323722 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/main.mtl @@ -0,0 +1,84 @@ +[comment encoding = UTF-8 /] +[module main('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[comment]UTILS[/comment] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::exceptionHandlerUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtilsSandBox/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::pomUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::mice::voila2::acceleogenerator::core::microservice::pom::pom /] + +[import it::micegroup::voila2::cartridge::library::properties /] + +[comment]LOGGER[/comment] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[comment]JAVA SPRINGBOOT[/comment] +[import it::mice::voila2::acceleogenerator::core::springboot::main/] + +[comment]ECLIPSE[/comment] +[import it::mice::voila2::acceleogenerator::core::eclipse::main/] + +[comment]REPORTS[/comment] +[import it::mice::voila2::acceleogenerator::reports::main/] + +[template public mainClass(aModel : Model){cExceptions: Boolean = aModel.hasDiagramExceptions();}] +[comment @main /] + + +[comment]INITIALIZATION[/comment] +[consoleMessage(getInfoSeverity(), '***ENTITIES INITIALIZATION***')/] +[initializeEntities(aModel)/] + +[comment]JAVA SPRINGBOOT[/comment] +[consoleMessage(getInfoSeverity(), '***JAVA SPRINGBOOT***')/] +[genSpringBootMain(aModel)/] + +[comment]ECLIPSE[/comment] +[consoleMessage(getInfoSeverity(), '***ECLIPSE***')/] +[genEclipseMain(false,aModel)/] + +[comment]REPORTS[/comment] +[consoleMessage(getInfoSeverity(), '***REPORTS***')/] +[genReportsMain()/] + +[comment]Creazione Voila'  Proj Per microservice Web,Core,Impl [/comment] +[consoleMessage(getInfoSeverity(), '***Core Resources***')/] +[copyFolder('resources/projectFile/voilaProjForSandBox',getCoreModuleFolder(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] + +[consoleMessage(getInfoSeverity(), '***Web Resources***')/] +[copyFolder('resources/projectFile/voilaProjForSandBox',getWebModuleFolder(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] + +[consoleMessage(getInfoSeverity(), '***Impl Resources***')/] +[copyFolder('resources/projectFile/voilaProjForSandBox',getImplModuleFolder(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] + +[consoleMessage(getInfoSeverity(), '***Model Resources***')/] +[copyFolder('resources/projectFile/voilaProjForSandBox',getModelModuleFolder(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] + +[comment]Aggiorno il pom root del MS dopo aver generato i moduli[/comment] +[consoleMessage(getInfoSeverity(), '***Generazione Root Pom***')/] +[genPom(aModel,'', getArtifact(), 'pom', getGAVP(getGroupName(),getParentModuleForMs(),getVersion(),'../pom.xml'), getVersionForChild(), getArtifact(), getProjectDescription(), getMSGeneratedPomModules(getArtifact()),getMSDependencies(),'','','', getMSGeneratedPomFileName())/] + +[comment]creo cartella dummy src/main/resources per evitare build path errors ( nature java)[/comment] +[copyFolder('resources/dummyFolder', getImplResourcesFolder(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] + + +[consoleMessage(getInfoSeverity(), 'MAIN_MS_MODEL')/] +[/template] + +[template private antFilterList(dummy : OclAny)] +['*.json,*.project,*.properties,*.oaw,*.MF,*.uml,*.notation,*.xml,*.gitignore,*.mtl,*.java,*.classpath'/] +[/template] + +[template private tokenValuePairs(dummy : OclAny)] +['PROJECT_ID=' + getArtifact() + ',PROJECT_DESCRIPTION=' + getProjectDescription()/] +[/template] diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/mainFE.mtl b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/mainFE.mtl new file mode 100644 index 0000000..3dbfa41 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/java/it/micegroup/gestioneferie/configurazionepf/model/mainFE.mtl @@ -0,0 +1,22 @@ +[module mainFE('http://www.eclipse.org/uml2/5.0.0/UML')/] + + +[comment]LOGGER[/comment] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[comment]UTILS[/comment] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] + +[import it::micegroup::voila2::cartridge::angular::templates::mainAngularMS/] + +[template public mainClassFE(aModel : Model)] +[comment @main /] + +[comment]INITIALIZATION[/comment] +[initializeEntities(aModel)/] + +[consoleMessage(getInfoSeverity(), '***Front End Generation***')/] +[genMainAngularMs()/] + +[/template] \ No newline at end of file diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.di b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.di new file mode 100644 index 0000000..cd1a7bd --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.di @@ -0,0 +1,2 @@ + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.notation b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.notation new file mode 100644 index 0000000..6dac330 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.notation @@ -0,0 +1,15971 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.uml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.uml new file mode 100644 index 0000000..0afbb17 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/configurazionepf_model.uml @@ -0,0 +1,328 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.di b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.di new file mode 100644 index 0000000..cd1a7bd --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.di @@ -0,0 +1,2 @@ + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.notation b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.notation new file mode 100644 index 0000000..6de4c5b --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.notation @@ -0,0 +1,2678 @@ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.uml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.uml new file mode 100644 index 0000000..55f37fb --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/model/main_model.uml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/properties/voila2-default.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/properties/voila2-default.properties new file mode 100644 index 0000000..ef84893 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/properties/voila2-default.properties @@ -0,0 +1,16 @@ +id = 14 +sourcefolder = src +root.artifactId = gestioneferie +group.name = it.micegroup +base.package.name = it.micegroup.gestioneferie.configurazionepf +base.package.folder = it/micegroup/gestioneferie/configurazionepf +artifact = gestioneferie-ms-configurazionepf +project.name = gestioneferie-ms-configurazionepf +microservice.category = demo +project.description = configurazionepf rel 0.0.1 +version = 0.0.1-SNAPSHOT +port.number = 8014 +frontend.generation.enabled = false +gateway.generation.enabled = false +persistence.type = sql +fe.formatting = true diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/voila2.log4j.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/voila2.log4j.properties new file mode 100644 index 0000000..b53419e --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-model/src/main/resources/voila2.log4j.properties @@ -0,0 +1,30 @@ +############################################################################### +# Copyright (c) 2005, 2006 committers of openArchitectureWare and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# committers of openArchitectureWare - initial API and implementation +############################################################################### +# Set root logger level to DEBUG and its only appender to A1. +log4j.rootLogger=WARN, VoilaConsole +log4j.logger.it.mice.voila.core.runnables.WorkflowRunner=INFO +#log4j.additivity.org.openarchitectureware=true + +# A1 is set to be a ConsoleAppender. +log4j.appender.VoilaConsole=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.VoilaConsole.layout=org.apache.log4j.PatternLayout +log4j.appender.VoilaConsole.layout.ConversionPattern=%d %-5p (%F:%L) - %m%n + +# file appender +#log4j.appender.FILE=org.apache.log4j.FileAppender +#log4j.appender.FILE.File=src/workflow.oaw.log +#log4j.appender.FILE.layout=org.apache.log4j.PatternLayout +#log4j.appender.FILE.layout.ConversionPattern=%-5c ///// %-5p ///// - %m%n + +# suppress jalopy logging +log4j.logger.de.hunsicker=ERROR diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.classpath b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.classpath new file mode 100644 index 0000000..beffc7b --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.classpath @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/MavenWrapperDownloader.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..c32394f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.5"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/maven-wrapper.jar b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..0d5e649888a4843c1520054d9672f80c62ebbb48 GIT binary patch literal 50710 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�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 JS$+5G{{hr`vzY(@ literal 0 HcmV?d00001 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/maven-wrapper.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..7d59a01 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.project b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.project new file mode 100644 index 0000000..68b0abd --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.project @@ -0,0 +1,71 @@ + + + gestioneferie-ms-configurazionepf-web + + + gestioneferie-ms-configurazionepf + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.m2e.core.maven2Nature + + + + 1644425858953 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-modules + + + + 1644425858970 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.syncFolder + + + + 1644425859165 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-.target + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.core.resources.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.jdt.core.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ea81b66 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,366 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=11 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.lineSplit=120 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=false +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.m2e.core.prefs b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.voilaProject b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/.voilaProject new file mode 100644 index 0000000..e69de29 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/mvnw b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/mvnw new file mode 100644 index 0000000..d2f0ea3 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/mvnw.cmd b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/mvnw.cmd new file mode 100644 index 0000000..b26ab24 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/pom.xml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/pom.xml new file mode 100644 index 0000000..e7cdf54 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/pom.xml @@ -0,0 +1,114 @@ + + + 4.0.0 + + gestioneferie-ms-configurazionepf-web + gestioneferie-ms-configurazionepf-web module + http://www.micegroup.it + + + it.micegroup + gestioneferie-ms-configurazionepf + 0.0.1-SNAPSHOT + ../../pom.xml + + + + + it.micegroup + gestioneferie-ms-configurazionepf-impl + ${project.parent.version} + + + it.micegroup + gestioneferie-libs-web + 0.0.1-SNAPSHOT + + + com.h2database + h2 + runtime + + + org.liquibase + liquibase-core + 4.3.5 + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-registry-jmx + + + io.micrometer + micrometer-registry-prometheus + + + + + spring-boot:run + gestioneferie-ms-configurazionepf + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.5.RELEASE + + it.micegroup.gestioneferie.configurazionepf.GestioneferieMsConfigurazionepf + + + + + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 2.6 + + false + + + + + + + + dev + + true + + + + com.h2database + h2 + + + + + dev + + + + prod + + + prod + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/GestioneferieMsConfigurazionepf.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/GestioneferieMsConfigurazionepf.java new file mode 100644 index 0000000..dfcc8db --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/GestioneferieMsConfigurazionepf.java @@ -0,0 +1,14 @@ +package it.micegroup.gestioneferie.configurazionepf; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +@SpringBootApplication +@ComponentScan({ "it.micegroup.gestioneferie", "it.micegroup.voila2runtime" }) +public class GestioneferieMsConfigurazionepf { + + public static void main(String[] args) { + SpringApplication.run(GestioneferieMsConfigurazionepf.class, args); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/actuator/GestioneferieMsConfigurazionepfInterceptor.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/actuator/GestioneferieMsConfigurazionepfInterceptor.java new file mode 100644 index 0000000..952dcb6 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/actuator/GestioneferieMsConfigurazionepfInterceptor.java @@ -0,0 +1,35 @@ +package it.micegroup.gestioneferie.configurazionepf.actuator; + +import io.micrometer.core.instrument.MeterRegistry; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class GestioneferieMsConfigurazionepfInterceptor implements HandlerInterceptor { + + private static Logger log = LoggerFactory.getLogger(GestioneferieMsConfigurazionepfInterceptor.class); + + private MeterRegistry registry; + private String URI, pathKey, METHOD; + + public GestioneferieMsConfigurazionepfInterceptor(MeterRegistry registry) { + this.registry = registry; + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) + throws Exception { + URI = request.getRequestURI(); + METHOD = request.getMethod(); + if (!URI.contains("prometheus")) { + log.info(" >> PATH: {}", URI); + log.info(" >> METHOD: {}", METHOD); + + pathKey = "api_".concat(METHOD.toLowerCase()).concat(URI.replaceAll("/", "_").toLowerCase()); + this.registry.counter(pathKey).increment(); + } + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/actuator/GestioneferieMsConfigurazionepfProperties.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/actuator/GestioneferieMsConfigurazionepfProperties.java new file mode 100644 index 0000000..0d6f911 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/actuator/GestioneferieMsConfigurazionepfProperties.java @@ -0,0 +1,10 @@ +package it.micegroup.gestioneferie.configurazionepf.actuator; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +@Data +@ConfigurationProperties(prefix = "gestioneferiemsconfigurazionepf") +public class GestioneferieMsConfigurazionepfProperties { + private String path; +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/advices/GlobalExceptionHandler.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/advices/GlobalExceptionHandler.java new file mode 100644 index 0000000..3c91c70 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/advices/GlobalExceptionHandler.java @@ -0,0 +1,10 @@ +package it.micegroup.gestioneferie.configurazionepf.advices; + +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import it.micegroup.gestioneferie.libs.exception.BaseExceptionHandler; + +@RestControllerAdvice +public class GlobalExceptionHandler extends BaseExceptionHandler { + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DconfigPaPfUoHModelAssembler.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DconfigPaPfUoHModelAssembler.java new file mode 100644 index 0000000..fcede20 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DconfigPaPfUoHModelAssembler.java @@ -0,0 +1,59 @@ +package it.micegroup.gestioneferie.configurazionepf.assembler; + +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.Link; +import org.springframework.stereotype.Component; + +import it.micegroup.gestioneferie.libs.assembler.BaseModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.controller.DconfigPaPfUoHController; +import it.micegroup.gestioneferie.configurazionepf.dto.DconfigPaPfUoHDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH; + +import it.micegroup.gestioneferie.configurazionepf.controller.DconfigPaPianiFerieController; + +@Component +public class DconfigPaPfUoHModelAssembler + extends BaseModelAssembler { + + @Override + public DconfigPaPfUoHDto toModel(DconfigPaPfUoH dconfigPaPfUoH) { + DconfigPaPfUoHDto dconfigPaPfUoHDto = map(dconfigPaPfUoH, DconfigPaPfUoHDto.class, + DconfigPaPfUoHController.class); + + // SELF LINK + Link selfLink = convert( + linkTo(methodOn(DconfigPaPfUoHController.class).getByObjectKey(dconfigPaPfUoH.getObjectKey())) + .withSelfRel()); + dconfigPaPfUoHDto.add(selfLink); + + // PARENT LINKS + if (dconfigPaPfUoH.getTheDconfigPaPianiFerie() != null) { + Link dconfigPaPianiFerieLink = convert(linkTo(methodOn(DconfigPaPianiFerieController.class) + .getByObjectKey(dconfigPaPfUoH.getTheDconfigPaPianiFerieObjectKey())) + .withRel("theDconfigPaPianiFerie")); + dconfigPaPfUoHDto.add(dconfigPaPianiFerieLink); + } + + // CHILDREN LINKS + + // PARENTS LINKS FOR IMPORTED MS + + // CHILDREN LINKS FOR IMPORTED MS + + return dconfigPaPfUoHDto; + + } + + @Override + public CollectionModel toCollectionModel(Iterable entities) { + CollectionModel collectionEntities = super.toCollectionModel(entities); + // collectionEntities.add(linkTo(methodOn(OrdineController.class).findPaginated(null, + // null)).withSelfRel()); + + return collectionEntities; + } + +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DconfigPaPianiFerieModelAssembler.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DconfigPaPianiFerieModelAssembler.java new file mode 100644 index 0000000..54086e5 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DconfigPaPianiFerieModelAssembler.java @@ -0,0 +1,65 @@ +package it.micegroup.gestioneferie.configurazionepf.assembler; + +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.Link; +import org.springframework.stereotype.Component; + +import it.micegroup.gestioneferie.libs.assembler.BaseModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.controller.DconfigPaPianiFerieController; +import it.micegroup.gestioneferie.configurazionepf.dto.DconfigPaPianiFerieDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; + +import it.micegroup.gestioneferie.configurazionepf.controller.DpercAutPianFerieHController; +import it.micegroup.gestioneferie.configurazionepf.controller.DconfigPaPfUoHController; + +@Component +public class DconfigPaPianiFerieModelAssembler + extends BaseModelAssembler { + + @Override + public DconfigPaPianiFerieDto toModel(DconfigPaPianiFerie dconfigPaPianiFerie) { + DconfigPaPianiFerieDto dconfigPaPianiFerieDto = map(dconfigPaPianiFerie, DconfigPaPianiFerieDto.class, + DconfigPaPianiFerieController.class); + + // SELF LINK + Link selfLink = convert( + linkTo(methodOn(DconfigPaPianiFerieController.class).getByObjectKey(dconfigPaPianiFerie.getObjectKey())) + .withSelfRel()); + dconfigPaPianiFerieDto.add(selfLink); + + // PARENT LINKS + + // CHILDREN LINKS + if (dconfigPaPianiFerie.getTheDpercAutPianFerieH() != null) { + Link dpercAutPianFerieHLink = convert(linkTo(methodOn(DpercAutPianFerieHController.class) + .findByDconfigPaPianiFerie(dconfigPaPianiFerie.getObjectKey(), null)) + .withRel("theDpercAutPianFerieH")); + dconfigPaPianiFerieDto.add(dpercAutPianFerieHLink); + } + if (dconfigPaPianiFerie.getTheDconfigPaPfUoH() != null) { + Link dconfigPaPfUoHLink = convert(linkTo(methodOn(DconfigPaPfUoHController.class) + .findByDconfigPaPianiFerie(dconfigPaPianiFerie.getObjectKey(), null)).withRel("theDconfigPaPfUoH")); + dconfigPaPianiFerieDto.add(dconfigPaPfUoHLink); + } + + // PARENTS LINKS FOR IMPORTED MS + + // CHILDREN LINKS FOR IMPORTED MS + + return dconfigPaPianiFerieDto; + + } + + @Override + public CollectionModel toCollectionModel(Iterable entities) { + CollectionModel collectionEntities = super.toCollectionModel(entities); + // collectionEntities.add(linkTo(methodOn(OrdineController.class).findPaginated(null, + // null)).withSelfRel()); + + return collectionEntities; + } + +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DpercAutPianFerieHModelAssembler.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DpercAutPianFerieHModelAssembler.java new file mode 100644 index 0000000..7972098 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DpercAutPianFerieHModelAssembler.java @@ -0,0 +1,66 @@ +package it.micegroup.gestioneferie.configurazionepf.assembler; + +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.Link; +import org.springframework.stereotype.Component; + +import it.micegroup.gestioneferie.libs.assembler.BaseModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.controller.DpercAutPianFerieHController; +import it.micegroup.gestioneferie.configurazionepf.dto.DpercAutPianFerieHDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; + +import it.micegroup.gestioneferie.configurazionepf.controller.DpercAutPianFeriePkController; +import it.micegroup.gestioneferie.configurazionepf.controller.DconfigPaPianiFerieController; + +@Component +public class DpercAutPianFerieHModelAssembler + extends BaseModelAssembler { + + @Override + public DpercAutPianFerieHDto toModel(DpercAutPianFerieH dpercAutPianFerieH) { + DpercAutPianFerieHDto dpercAutPianFerieHDto = map(dpercAutPianFerieH, DpercAutPianFerieHDto.class, + DpercAutPianFerieHController.class); + + // SELF LINK + Link selfLink = convert( + linkTo(methodOn(DpercAutPianFerieHController.class).getByObjectKey(dpercAutPianFerieH.getObjectKey())) + .withSelfRel()); + dpercAutPianFerieHDto.add(selfLink); + + // PARENT LINKS + if (dpercAutPianFerieH.getTheDpercAutPianFeriePk() != null) { + Link dpercAutPianFeriePkLink = convert(linkTo(methodOn(DpercAutPianFeriePkController.class) + .getByObjectKey(dpercAutPianFerieH.getTheDpercAutPianFeriePkObjectKey())) + .withRel("theDpercAutPianFeriePk")); + dpercAutPianFerieHDto.add(dpercAutPianFeriePkLink); + } + if (dpercAutPianFerieH.getTheDconfigPaPianiFerie() != null) { + Link dconfigPaPianiFerieLink = convert(linkTo(methodOn(DconfigPaPianiFerieController.class) + .getByObjectKey(dpercAutPianFerieH.getTheDconfigPaPianiFerieObjectKey())) + .withRel("theDconfigPaPianiFerie")); + dpercAutPianFerieHDto.add(dconfigPaPianiFerieLink); + } + + // CHILDREN LINKS + + // PARENTS LINKS FOR IMPORTED MS + + // CHILDREN LINKS FOR IMPORTED MS + + return dpercAutPianFerieHDto; + + } + + @Override + public CollectionModel toCollectionModel(Iterable entities) { + CollectionModel collectionEntities = super.toCollectionModel(entities); + // collectionEntities.add(linkTo(methodOn(OrdineController.class).findPaginated(null, + // null)).withSelfRel()); + + return collectionEntities; + } + +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DpercAutPianFeriePkModelAssembler.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DpercAutPianFeriePkModelAssembler.java new file mode 100644 index 0000000..1f618ab --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DpercAutPianFeriePkModelAssembler.java @@ -0,0 +1,59 @@ +package it.micegroup.gestioneferie.configurazionepf.assembler; + +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.Link; +import org.springframework.stereotype.Component; + +import it.micegroup.gestioneferie.libs.assembler.BaseModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.controller.DpercAutPianFeriePkController; +import it.micegroup.gestioneferie.configurazionepf.dto.DpercAutPianFeriePkDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; + +import it.micegroup.gestioneferie.configurazionepf.controller.DpercAutPianFerieHController; + +@Component +public class DpercAutPianFeriePkModelAssembler + extends BaseModelAssembler { + + @Override + public DpercAutPianFeriePkDto toModel(DpercAutPianFeriePk dpercAutPianFeriePk) { + DpercAutPianFeriePkDto dpercAutPianFeriePkDto = map(dpercAutPianFeriePk, DpercAutPianFeriePkDto.class, + DpercAutPianFeriePkController.class); + + // SELF LINK + Link selfLink = convert( + linkTo(methodOn(DpercAutPianFeriePkController.class).getByObjectKey(dpercAutPianFeriePk.getObjectKey())) + .withSelfRel()); + dpercAutPianFeriePkDto.add(selfLink); + + // PARENT LINKS + + // CHILDREN LINKS + if (dpercAutPianFeriePk.getTheDpercAutPianFerieH() != null) { + Link dpercAutPianFerieHLink = convert(linkTo(methodOn(DpercAutPianFerieHController.class) + .findByDpercAutPianFeriePk(dpercAutPianFeriePk.getObjectKey(), null)) + .withRel("theDpercAutPianFerieH")); + dpercAutPianFeriePkDto.add(dpercAutPianFerieHLink); + } + + // PARENTS LINKS FOR IMPORTED MS + + // CHILDREN LINKS FOR IMPORTED MS + + return dpercAutPianFeriePkDto; + + } + + @Override + public CollectionModel toCollectionModel(Iterable entities) { + CollectionModel collectionEntities = super.toCollectionModel(entities); + // collectionEntities.add(linkTo(methodOn(OrdineController.class).findPaginated(null, + // null)).withSelfRel()); + + return collectionEntities; + } + +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DregolePianiFerieHModelAssembler.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DregolePianiFerieHModelAssembler.java new file mode 100644 index 0000000..3ced417 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DregolePianiFerieHModelAssembler.java @@ -0,0 +1,59 @@ +package it.micegroup.gestioneferie.configurazionepf.assembler; + +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.Link; +import org.springframework.stereotype.Component; + +import it.micegroup.gestioneferie.libs.assembler.BaseModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.controller.DregolePianiFerieHController; +import it.micegroup.gestioneferie.configurazionepf.dto.DregolePianiFerieHDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH; + +import it.micegroup.gestioneferie.configurazionepf.controller.DregolePianiFeriePkController; + +@Component +public class DregolePianiFerieHModelAssembler + extends BaseModelAssembler { + + @Override + public DregolePianiFerieHDto toModel(DregolePianiFerieH dregolePianiFerieH) { + DregolePianiFerieHDto dregolePianiFerieHDto = map(dregolePianiFerieH, DregolePianiFerieHDto.class, + DregolePianiFerieHController.class); + + // SELF LINK + Link selfLink = convert( + linkTo(methodOn(DregolePianiFerieHController.class).getByObjectKey(dregolePianiFerieH.getObjectKey())) + .withSelfRel()); + dregolePianiFerieHDto.add(selfLink); + + // PARENT LINKS + if (dregolePianiFerieH.getTheDregolePianiFeriePk() != null) { + Link dregolePianiFeriePkLink = convert(linkTo(methodOn(DregolePianiFeriePkController.class) + .getByObjectKey(dregolePianiFerieH.getTheDregolePianiFeriePkObjectKey())) + .withRel("theDregolePianiFeriePk")); + dregolePianiFerieHDto.add(dregolePianiFeriePkLink); + } + + // CHILDREN LINKS + + // PARENTS LINKS FOR IMPORTED MS + + // CHILDREN LINKS FOR IMPORTED MS + + return dregolePianiFerieHDto; + + } + + @Override + public CollectionModel toCollectionModel(Iterable entities) { + CollectionModel collectionEntities = super.toCollectionModel(entities); + // collectionEntities.add(linkTo(methodOn(OrdineController.class).findPaginated(null, + // null)).withSelfRel()); + + return collectionEntities; + } + +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DregolePianiFeriePkModelAssembler.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DregolePianiFeriePkModelAssembler.java new file mode 100644 index 0000000..b0f9807 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/assembler/DregolePianiFeriePkModelAssembler.java @@ -0,0 +1,59 @@ +package it.micegroup.gestioneferie.configurazionepf.assembler; + +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.Link; +import org.springframework.stereotype.Component; + +import it.micegroup.gestioneferie.libs.assembler.BaseModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.controller.DregolePianiFeriePkController; +import it.micegroup.gestioneferie.configurazionepf.dto.DregolePianiFeriePkDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; + +import it.micegroup.gestioneferie.configurazionepf.controller.DregolePianiFerieHController; + +@Component +public class DregolePianiFeriePkModelAssembler + extends BaseModelAssembler { + + @Override + public DregolePianiFeriePkDto toModel(DregolePianiFeriePk dregolePianiFeriePk) { + DregolePianiFeriePkDto dregolePianiFeriePkDto = map(dregolePianiFeriePk, DregolePianiFeriePkDto.class, + DregolePianiFeriePkController.class); + + // SELF LINK + Link selfLink = convert( + linkTo(methodOn(DregolePianiFeriePkController.class).getByObjectKey(dregolePianiFeriePk.getObjectKey())) + .withSelfRel()); + dregolePianiFeriePkDto.add(selfLink); + + // PARENT LINKS + + // CHILDREN LINKS + if (dregolePianiFeriePk.getTheDregolePianiFerieH() != null) { + Link dregolePianiFerieHLink = convert(linkTo(methodOn(DregolePianiFerieHController.class) + .findByDregolePianiFeriePk(dregolePianiFeriePk.getObjectKey(), null)) + .withRel("theDregolePianiFerieH")); + dregolePianiFeriePkDto.add(dregolePianiFerieHLink); + } + + // PARENTS LINKS FOR IMPORTED MS + + // CHILDREN LINKS FOR IMPORTED MS + + return dregolePianiFeriePkDto; + + } + + @Override + public CollectionModel toCollectionModel(Iterable entities) { + CollectionModel collectionEntities = super.toCollectionModel(entities); + // collectionEntities.add(linkTo(methodOn(OrdineController.class).findPaginated(null, + // null)).withSelfRel()); + + return collectionEntities; + } + +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/CustomSpringLiquibase.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/CustomSpringLiquibase.java new file mode 100644 index 0000000..b8a1b02 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/CustomSpringLiquibase.java @@ -0,0 +1,40 @@ +package it.micegroup.gestioneferie.configurazionepf.config; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.BeanNameAware; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ResourceLoaderAware; +import org.springframework.core.io.ResourceLoader; + +import liquibase.exception.LiquibaseException; +import liquibase.integration.spring.SpringLiquibase; + +public class CustomSpringLiquibase implements InitializingBean, BeanNameAware, ResourceLoaderAware { + + private static final Logger LOGGER = LogManager.getLogger(CustomSpringLiquibase.class); + private SpringLiquibase springLiquibase; + + public CustomSpringLiquibase(SpringLiquibase liquibase) { + springLiquibase = liquibase; + } + + @Override + public void afterPropertiesSet() { + try { + springLiquibase.afterPropertiesSet(); + } catch (LiquibaseException e) { + LOGGER.error("LiquibaseConfig ", e); + } + } + + @Override + public void setBeanName(String name) { + springLiquibase.setBeanName(name); + } + + @Override + public void setResourceLoader(ResourceLoader resourceLoader) { + springLiquibase.setResourceLoader(resourceLoader); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/GestioneferieMsConfigurazionepfConfig.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/GestioneferieMsConfigurazionepfConfig.java new file mode 100644 index 0000000..483ae2a --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/GestioneferieMsConfigurazionepfConfig.java @@ -0,0 +1,18 @@ +package it.micegroup.gestioneferie.configurazionepf.config; + +import it.micegroup.gestioneferie.configurazionepf.actuator.GestioneferieMsConfigurazionepfInterceptor; +import it.micegroup.gestioneferie.configurazionepf.actuator.GestioneferieMsConfigurazionepfProperties; +import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.handler.MappedInterceptor; + +@EnableConfigurationProperties(GestioneferieMsConfigurazionepfProperties.class) +@Configuration +public class GestioneferieMsConfigurazionepfConfig { + @Bean + public MappedInterceptor metricInterceptor(MeterRegistry registry) { + return new MappedInterceptor(new String[] { "/**" }, new GestioneferieMsConfigurazionepfInterceptor(registry)); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/LiquibaseConfigurationBean.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/LiquibaseConfigurationBean.java new file mode 100644 index 0000000..e76b851 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/LiquibaseConfigurationBean.java @@ -0,0 +1,46 @@ +package it.micegroup.gestioneferie.configurazionepf.config; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import liquibase.integration.spring.SpringLiquibase; + +@Configuration +public class LiquibaseConfigurationBean { + + @Autowired + private DataSource dataSource; + + @Bean + public LiquibaseProperties liquibaseProperties() { + return new LiquibaseProperties(); + } + + @Bean + public CustomSpringLiquibase liquibase() { + LiquibaseProperties liquibaseProperties = liquibaseProperties(); + SpringLiquibase liquibase = new SpringLiquibase(); + liquibase.setChangeLog("classpath:db/liquibase/update.xml"); + liquibase.setContexts(liquibaseProperties.getContexts()); + liquibase.setDataSource(getDataSource(liquibaseProperties)); + liquibase.setDefaultSchema(liquibaseProperties.getDefaultSchema()); + liquibase.setDropFirst(liquibaseProperties.isDropFirst()); + liquibase.setShouldRun(true); + liquibase.setLabels(liquibaseProperties.getLabels()); + liquibase.setChangeLogParameters(liquibaseProperties.getParameters()); + return new CustomSpringLiquibase(liquibase); + } + + private DataSource getDataSource(LiquibaseProperties liquibaseProperties) { + if (liquibaseProperties.getUrl() == null) { + return this.dataSource; + } + return DataSourceBuilder.create().url(liquibaseProperties.getUrl()).username(liquibaseProperties.getUser()) + .password(liquibaseProperties.getPassword()).build(); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/MapperConfig.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/MapperConfig.java new file mode 100644 index 0000000..208e252 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/config/MapperConfig.java @@ -0,0 +1,43 @@ +package it.micegroup.gestioneferie.configurazionepf.config; + +import org.modelmapper.ModelMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.modelmapper.convention.MatchingStrategies; + +import it.micegroup.gestioneferie.libs.converter.BeanConverter; +import it.micegroup.gestioneferie.configurazionepf.dto.DregolePianiFeriePkDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; +import it.micegroup.gestioneferie.configurazionepf.dto.DregolePianiFerieHDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH; +import it.micegroup.gestioneferie.configurazionepf.dto.DpercAutPianFeriePkDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; +import it.micegroup.gestioneferie.configurazionepf.dto.DpercAutPianFerieHDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; +import it.micegroup.gestioneferie.configurazionepf.dto.DconfigPaPianiFerieDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; +import it.micegroup.gestioneferie.configurazionepf.dto.DconfigPaPfUoHDto; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH; + +@Configuration +public class MapperConfig { + @Bean + public ModelMapper modelMapper() { + ModelMapper result = new ModelMapper(); + result.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + result.addConverter(new BeanConverter()); + return result; + } +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DconfigPaPfUoHController.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DconfigPaPfUoHController.java new file mode 100644 index 0000000..fd2d8bf --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DconfigPaPfUoHController.java @@ -0,0 +1,188 @@ +package it.micegroup.gestioneferie.configurazionepf.controller; + +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH; +import it.micegroup.gestioneferie.configurazionepf.assembler.DconfigPaPfUoHModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.criteria.DconfigPaPfUoHCriteria; +import it.micegroup.gestioneferie.configurazionepf.service.DconfigPaPfUoHService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; + +import it.micegroup.voila2runtime.exception.*; +import it.micegroup.gestioneferie.libs.controller.BaseController; +import it.micegroup.gestioneferie.configurazionepf.dto.DconfigPaPfUoHDto; +import it.micegroup.gestioneferie.configurazionepf.dto.DconfigPaPfUoHWriteDto; +import it.micegroup.gestioneferie.libs.response.BaseResponse; +import it.micegroup.gestioneferie.libs.request.BaseRequest; +import javax.annotation.PostConstruct; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedResourcesAssembler; +import org.springframework.hateoas.PagedModel; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import javax.validation.Valid; +import java.net.URI; +import java.util.Locale; +import java.util.Optional; + +import java.util.Collection; +import org.modelmapper.PropertyMap; +import java.util.stream.Collectors; + +@RequiredArgsConstructor +@RestController +@RequestMapping(value = "/dconfig-pa-pf-uo-h", produces = MediaType.APPLICATION_JSON_VALUE) +public class DconfigPaPfUoHController extends BaseController> { + + /// ENTITY SERVICE + private final DconfigPaPfUoHService dconfigPaPfUoHService; + private final DconfigPaPfUoHModelAssembler dconfigPaPfUoHModelAssembler; + private final PagedResourcesAssembler pagedResourcesAssembler; + private final ModelMapper modelMapper; + // CHILD SERVICES + + // CONSTRUCTOR + @PostConstruct + public void postConstruct() { + } + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DconfigPaPfUoHController.class); + + // API + @GetMapping + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PF_UO_H_FIND_PAGINATED.toString())") + public ResponseEntity>> findPaginated(DconfigPaPfUoHCriteria criteria, + Pageable pageable) { + Page page = dconfigPaPfUoHService.findByCriteria(criteria, pageable); + return toResponseEntityPaged(page, null); + } + + /** + * {@code GET /dconfig-pa-pf-uo-h/:objectKey} : get the dconfig-pa-pf-uo-h with + * given objectKey. + * + * @param objectKey the objectKey of the dconfig-pa-pf-uo-h to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the dconfig-pa-pf-uo-h, or with status {@code 404 (Not Found)}. + */ + @GetMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PF_UO_H_FIND_BY_ID.toString())") + public ResponseEntity> getByObjectKey(@PathVariable String objectKey) { + return toResponseEntity(dconfigPaPfUoHService.findByObjectKey(objectKey), null, HttpStatus.OK); + } + + /** + * {@code PUT /dconfig-pa-pf-uo-h} : Updates an existing DconfigPaPfUoH. + * + * @param DconfigPaPfUoH the DconfigPaPfUoH to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the updated DconfigPaPfUoH, or with status {@code 400 (Bad Request)} + * if the DconfigPaPfUoH is not valid, or with status + * {@code 500 (Internal Server Error)} if the DconfigPaPfUoH couldn't be + * updated. + */ + @PutMapping + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PF_UO_H_UPDATE.toString())") + public ResponseEntity update(@Valid @RequestBody BaseRequest request) { + return toResponseEntity( + Optional.of(dconfigPaPfUoHService.bulkUpdate(modelMapper.map(request.getData(), DconfigPaPfUoH.class))), + null, HttpStatus.OK); + } + + /** + * {@code POST /dconfig-pa-pf-uo-h} : Create a new DconfigPaPfUoH. + * + * @param DconfigPaPfUoH the DconfigPaPfUoH to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with + * body the new DconfigPaPfUoH, or with status {@code 400 (Bad Request)} + * if the DconfigPaPfUoH has already an ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PostMapping + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PF_UO_H_CREATE.toString())") + public ResponseEntity save(@Valid @RequestBody BaseRequest request) { + ResponseEntity response = null; + DconfigPaPfUoH dconfigPaPfUoHToInsert = childMap(request.getData()); + try { + DconfigPaPfUoH newDconfigPaPfUoH = dconfigPaPfUoHService + .insert(modelMapper.map(dconfigPaPfUoHToInsert, DconfigPaPfUoH.class)); + URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}") + .buildAndExpand(newDconfigPaPfUoH.getSequIdConfigPaPfUoH()).toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(location); + response = toResponseEntity(Optional.of(newDconfigPaPfUoH), headers, HttpStatus.CREATED); + } catch (Exception exception) { + LOGGER.error("Exception:", exception); + } + return response; + } + + private DconfigPaPfUoH childMap(DconfigPaPfUoHWriteDto data) { + DconfigPaPfUoH dconfigPaPfUoHToInsert = modelMapper.map(data, DconfigPaPfUoH.class); + return dconfigPaPfUoHToInsert; + } + + /** + * {@code DELETE /dconfig-pa-pf-uo-h/:objectKey} : delete the + * dconfig-pa-pf-uo-h with given objectKey. + * + * @param objectKey the objectKey of the DconfigPaPfUoH to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PF_UO_H_DELETE.toString())") + public ResponseEntity delete(@PathVariable String objectKey) { + dconfigPaPfUoHService + .deleteById(dconfigPaPfUoHService.findByObjectKey(objectKey).get().getSequIdConfigPaPfUoH()); + return new ResponseEntity<>(new BaseResponse<>(objectKey), HttpStatus.OK); + } + + /** + * GET /the-dconfig-pa-piani-ferie_id: Search all DconfigPaPfUoH for the given + * DconfigPaPianiFerie (parent) + * + * @param OK of DconfigPaPianiFerie + * @param pageable + * @return Page of DconfigPaPfUoH for the given DconfigPaPianiFerie (parent) + */ + @GetMapping("/findByTheDconfigPaPianiFerie/{dconfigPaPianiFerieObjectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PF_UO_H_FIND_BY_DCONFIG_PA_PIANI_FERIE.toString())") + public ResponseEntity>> findByDconfigPaPianiFerie( + @PathVariable String dconfigPaPianiFerieObjectKey, Pageable pageable) { + DconfigPaPianiFerie key = new DconfigPaPianiFerie(dconfigPaPianiFerieObjectKey); + return toResponseEntityPaged(dconfigPaPfUoHService.findByTheDconfigPaPianiFerie(key, pageable), null); + } + + private ResponseEntity> toResponseEntity(Optional maybeResponse, + HttpHeaders header, HttpStatus status) { + return maybeResponse + .map(response -> new ResponseEntity<>( + new BaseResponse<>(dconfigPaPfUoHModelAssembler.toModel(response)), header, status)) + .orElseThrow(() -> new NotFoundException(DconfigPaPfUoH.class, new Locale("it"))); + } + + private ResponseEntity>> toResponseEntityPaged(Page list, + HttpHeaders header) { + BaseResponse> collModel = new BaseResponse<>( + pagedResourcesAssembler.toModel(list, dconfigPaPfUoHModelAssembler)); + return ResponseEntity.ok().headers(header).body(collModel); + } + + @SuppressWarnings("unused") + private DconfigPaPfUoH dtoToEntity(DconfigPaPfUoHDto dto) { + return new ModelMapper().map(dto, DconfigPaPfUoH.class); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DconfigPaPianiFerieController.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DconfigPaPianiFerieController.java new file mode 100644 index 0000000..362fcef --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DconfigPaPianiFerieController.java @@ -0,0 +1,232 @@ +package it.micegroup.gestioneferie.configurazionepf.controller; + +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; +import it.micegroup.gestioneferie.configurazionepf.assembler.DconfigPaPianiFerieModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.criteria.DconfigPaPianiFerieCriteria; +import it.micegroup.gestioneferie.configurazionepf.service.DconfigPaPianiFerieService; +import it.micegroup.gestioneferie.configurazionepf.service.DpercAutPianFerieHService; +import it.micegroup.gestioneferie.configurazionepf.service.DconfigPaPfUoHService; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPfUoH; + +import it.micegroup.voila2runtime.exception.*; +import it.micegroup.gestioneferie.libs.controller.BaseController; +import it.micegroup.gestioneferie.configurazionepf.dto.DconfigPaPianiFerieDto; +import it.micegroup.gestioneferie.configurazionepf.dto.DconfigPaPianiFerieWriteDto; +import it.micegroup.gestioneferie.libs.response.BaseResponse; +import it.micegroup.gestioneferie.libs.request.BaseRequest; +import javax.annotation.PostConstruct; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedResourcesAssembler; +import org.springframework.hateoas.PagedModel; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import javax.validation.Valid; +import java.net.URI; +import java.util.Locale; +import java.util.Optional; + +import java.util.Collection; +import org.modelmapper.PropertyMap; +import java.util.stream.Collectors; + +@RequiredArgsConstructor +@RestController +@RequestMapping(value = "/dconfig-pa-piani-ferie", produces = MediaType.APPLICATION_JSON_VALUE) +public class DconfigPaPianiFerieController extends BaseController> { + + /// ENTITY SERVICE + private final DconfigPaPianiFerieService dconfigPaPianiFerieService; + private final DconfigPaPianiFerieModelAssembler dconfigPaPianiFerieModelAssembler; + private final PagedResourcesAssembler pagedResourcesAssembler; + private final ModelMapper modelMapper; + // CHILD SERVICES + private final DpercAutPianFerieHService dpercAutPianFerieHService; + private final DconfigPaPfUoHService dconfigPaPfUoHService; + + // CONSTRUCTOR + @PostConstruct + public void postConstruct() { + modelMapper.addMappings(new PropertyMap() { + @Override + protected void configure() { + skip(destination.getTheDpercAutPianFerieH()); + skip(destination.getTheDconfigPaPfUoH()); + } + }); + } + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DconfigPaPianiFerieController.class); + + // API + @GetMapping + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PIANI_FERIE_FIND_PAGINATED.toString())") + public ResponseEntity>> findPaginated( + DconfigPaPianiFerieCriteria criteria, Pageable pageable) { + Page page = dconfigPaPianiFerieService.findByCriteria(criteria, pageable); + return toResponseEntityPaged(page, null); + } + + /** + * {@code GET /dconfig-pa-piani-ferie/:objectKey} : get the + * dconfig-pa-piani-ferie with given objectKey. + * + * @param objectKey the objectKey of the dconfig-pa-piani-ferie to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the dconfig-pa-piani-ferie, or with status {@code 404 (Not Found)}. + */ + @GetMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PIANI_FERIE_FIND_BY_ID.toString())") + public ResponseEntity> getByObjectKey(@PathVariable String objectKey) { + return toResponseEntity(dconfigPaPianiFerieService.findByObjectKey(objectKey), null, HttpStatus.OK); + } + + /** + * {@code PUT /dconfig-pa-piani-ferie} : Updates an existing + * DconfigPaPianiFerie. + * + * @param DconfigPaPianiFerie the DconfigPaPianiFerie to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the updated DconfigPaPianiFerie, or with status + * {@code 400 (Bad Request)} if the DconfigPaPianiFerie is not valid, or + * with status {@code 500 (Internal Server Error)} if the + * DconfigPaPianiFerie couldn't be updated. + */ + @PutMapping + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PIANI_FERIE_UPDATE.toString())") + public ResponseEntity update(@Valid @RequestBody BaseRequest request) { + return toResponseEntity( + Optional.of(dconfigPaPianiFerieService + .bulkUpdate(modelMapper.map(request.getData(), DconfigPaPianiFerie.class))), + null, HttpStatus.OK); + } + + /** + * {@code POST /dconfig-pa-piani-ferie} : Create a new DconfigPaPianiFerie. + * + * @param DconfigPaPianiFerie the DconfigPaPianiFerie to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with + * body the new DconfigPaPianiFerie, or with status + * {@code 400 (Bad Request)} if the DconfigPaPianiFerie has already an + * ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PostMapping + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PIANI_FERIE_CREATE.toString())") + public ResponseEntity save(@Valid @RequestBody BaseRequest request) { + ResponseEntity response = null; + DconfigPaPianiFerie dconfigPaPianiFerieToInsert = childMap(request.getData()); + try { + DconfigPaPianiFerie newDconfigPaPianiFerie = dconfigPaPianiFerieService + .insert(modelMapper.map(dconfigPaPianiFerieToInsert, DconfigPaPianiFerie.class)); + URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}") + .buildAndExpand(newDconfigPaPianiFerie.getSequIdConfigPaPianoFerie()).toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(location); + response = toResponseEntity(Optional.of(newDconfigPaPianiFerie), headers, HttpStatus.CREATED); + } catch (Exception exception) { + LOGGER.error("Exception:", exception); + } + return response; + } + + private DconfigPaPianiFerie childMap(DconfigPaPianiFerieWriteDto data) { + DconfigPaPianiFerie dconfigPaPianiFerieToInsert = modelMapper.map(data, DconfigPaPianiFerie.class); + Collection theDpercAutPianFerieHs = data.getTheDpercAutPianFerieH().stream() + .map(element -> modelMapper.map(element, DpercAutPianFerieH.class)) + .peek(element -> element.setTheDconfigPaPianiFerie(dconfigPaPianiFerieToInsert)) + .collect(Collectors.toList()); + dconfigPaPianiFerieToInsert.setTheDpercAutPianFerieH(theDpercAutPianFerieHs); + Collection theDconfigPaPfUoHs = data.getTheDconfigPaPfUoH().stream() + .map(element -> modelMapper.map(element, DconfigPaPfUoH.class)) + .peek(element -> element.setTheDconfigPaPianiFerie(dconfigPaPianiFerieToInsert)) + .collect(Collectors.toList()); + dconfigPaPianiFerieToInsert.setTheDconfigPaPfUoH(theDconfigPaPfUoHs); + return dconfigPaPianiFerieToInsert; + } + + /** + * {@code DELETE /dconfig-pa-piani-ferie/:objectKey} : delete the + * dconfig-pa-piani-ferie with given objectKey. + * + * @param objectKey the objectKey of the DconfigPaPianiFerie to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PIANI_FERIE_DELETE.toString())") + public ResponseEntity delete(@PathVariable String objectKey) { + dconfigPaPianiFerieService + .deleteById(dconfigPaPianiFerieService.findByObjectKey(objectKey).get().getSequIdConfigPaPianoFerie()); + return new ResponseEntity<>(new BaseResponse<>(objectKey), HttpStatus.OK); + } + + /** + * GET /id/dperc-aut-pian-ferie-h: Search all DpercAutPianFerieH (childs) for + * the given DconfigPaPianiFerie + * + * @param objectKey ObjectKey of DconfigPaPianiFerie + * @param pageable + * @return Page of DpercAutPianFerieH for the given DconfigPaPianiFerie + */ + @GetMapping("/{objectKey:.+}/dperc-aut-pian-ferie-h") + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PIANI_FERIE_FIND_BY_THE_DPERC_AUT_PIAN_FERIE_H_OBJECT_KEY.toString())") + public ResponseEntity> getTheDpercAutPianFerieHByObjectKey(@PathVariable String objectKey, + Pageable pageable) { + DconfigPaPianiFerie dconfigPaPianiFerie = new DconfigPaPianiFerie(); + dconfigPaPianiFerie.setObjectKey(objectKey); + return ResponseEntity.ok() + .body(dpercAutPianFerieHService.findByTheDconfigPaPianiFerie(dconfigPaPianiFerie, pageable)); + } + + /** + * GET /id/dconfig-pa-pf-uo-h: Search all DconfigPaPfUoH (childs) for the given + * DconfigPaPianiFerie + * + * @param objectKey ObjectKey of DconfigPaPianiFerie + * @param pageable + * @return Page of DconfigPaPfUoH for the given DconfigPaPianiFerie + */ + @GetMapping("/{objectKey:.+}/dconfig-pa-pf-uo-h") + @PreAuthorize("hasRole(@permissionHolder.DCONFIG_PA_PIANI_FERIE_FIND_BY_THE_DCONFIG_PA_PF_UO_H_OBJECT_KEY.toString())") + public ResponseEntity> getTheDconfigPaPfUoHByObjectKey(@PathVariable String objectKey, + Pageable pageable) { + DconfigPaPianiFerie dconfigPaPianiFerie = new DconfigPaPianiFerie(); + dconfigPaPianiFerie.setObjectKey(objectKey); + return ResponseEntity.ok() + .body(dconfigPaPfUoHService.findByTheDconfigPaPianiFerie(dconfigPaPianiFerie, pageable)); + } + + private ResponseEntity> toResponseEntity( + Optional maybeResponse, HttpHeaders header, HttpStatus status) { + return maybeResponse + .map(response -> new ResponseEntity<>( + new BaseResponse<>(dconfigPaPianiFerieModelAssembler.toModel(response)), header, status)) + .orElseThrow(() -> new NotFoundException(DconfigPaPianiFerie.class, new Locale("it"))); + } + + private ResponseEntity>> toResponseEntityPaged( + Page list, HttpHeaders header) { + BaseResponse> collModel = new BaseResponse<>( + pagedResourcesAssembler.toModel(list, dconfigPaPianiFerieModelAssembler)); + return ResponseEntity.ok().headers(header).body(collModel); + } + + @SuppressWarnings("unused") + private DconfigPaPianiFerie dtoToEntity(DconfigPaPianiFerieDto dto) { + return new ModelMapper().map(dto, DconfigPaPianiFerie.class); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DpercAutPianFerieHController.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DpercAutPianFerieHController.java new file mode 100644 index 0000000..a718827 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DpercAutPianFerieHController.java @@ -0,0 +1,208 @@ +package it.micegroup.gestioneferie.configurazionepf.controller; + +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; +import it.micegroup.gestioneferie.configurazionepf.assembler.DpercAutPianFerieHModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.criteria.DpercAutPianFerieHCriteria; +import it.micegroup.gestioneferie.configurazionepf.service.DpercAutPianFerieHService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; +import it.micegroup.gestioneferie.configurazionepf.entity.DconfigPaPianiFerie; + +import it.micegroup.voila2runtime.exception.*; +import it.micegroup.gestioneferie.libs.controller.BaseController; +import it.micegroup.gestioneferie.configurazionepf.dto.DpercAutPianFerieHDto; +import it.micegroup.gestioneferie.configurazionepf.dto.DpercAutPianFerieHWriteDto; +import it.micegroup.gestioneferie.libs.response.BaseResponse; +import it.micegroup.gestioneferie.libs.request.BaseRequest; +import javax.annotation.PostConstruct; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedResourcesAssembler; +import org.springframework.hateoas.PagedModel; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import javax.validation.Valid; +import java.net.URI; +import java.util.Locale; +import java.util.Optional; + +import java.util.Collection; +import org.modelmapper.PropertyMap; +import java.util.stream.Collectors; + +@RequiredArgsConstructor +@RestController +@RequestMapping(value = "/dperc-aut-pian-ferie-h", produces = MediaType.APPLICATION_JSON_VALUE) +public class DpercAutPianFerieHController extends BaseController> { + + /// ENTITY SERVICE + private final DpercAutPianFerieHService dpercAutPianFerieHService; + private final DpercAutPianFerieHModelAssembler dpercAutPianFerieHModelAssembler; + private final PagedResourcesAssembler pagedResourcesAssembler; + private final ModelMapper modelMapper; + // CHILD SERVICES + + // CONSTRUCTOR + @PostConstruct + public void postConstruct() { + } + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DpercAutPianFerieHController.class); + + // API + @GetMapping + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_H_FIND_PAGINATED.toString())") + public ResponseEntity>> findPaginated( + DpercAutPianFerieHCriteria criteria, Pageable pageable) { + Page page = dpercAutPianFerieHService.findByCriteria(criteria, pageable); + return toResponseEntityPaged(page, null); + } + + /** + * {@code GET /dperc-aut-pian-ferie-h/:objectKey} : get the + * dperc-aut-pian-ferie-h with given objectKey. + * + * @param objectKey the objectKey of the dperc-aut-pian-ferie-h to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the dperc-aut-pian-ferie-h, or with status {@code 404 (Not Found)}. + */ + @GetMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_H_FIND_BY_ID.toString())") + public ResponseEntity> getByObjectKey(@PathVariable String objectKey) { + return toResponseEntity(dpercAutPianFerieHService.findByObjectKey(objectKey), null, HttpStatus.OK); + } + + /** + * {@code PUT /dperc-aut-pian-ferie-h} : Updates an existing + * DpercAutPianFerieH. + * + * @param DpercAutPianFerieH the DpercAutPianFerieH to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the updated DpercAutPianFerieH, or with status + * {@code 400 (Bad Request)} if the DpercAutPianFerieH is not valid, or + * with status {@code 500 (Internal Server Error)} if the + * DpercAutPianFerieH couldn't be updated. + */ + @PutMapping + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_H_UPDATE.toString())") + public ResponseEntity update(@Valid @RequestBody BaseRequest request) { + return toResponseEntity( + Optional.of(dpercAutPianFerieHService + .bulkUpdate(modelMapper.map(request.getData(), DpercAutPianFerieH.class))), + null, HttpStatus.OK); + } + + /** + * {@code POST /dperc-aut-pian-ferie-h} : Create a new DpercAutPianFerieH. + * + * @param DpercAutPianFerieH the DpercAutPianFerieH to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with + * body the new DpercAutPianFerieH, or with status + * {@code 400 (Bad Request)} if the DpercAutPianFerieH has already an + * ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PostMapping + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_H_CREATE.toString())") + public ResponseEntity save(@Valid @RequestBody BaseRequest request) { + ResponseEntity response = null; + DpercAutPianFerieH dpercAutPianFerieHToInsert = childMap(request.getData()); + try { + DpercAutPianFerieH newDpercAutPianFerieH = dpercAutPianFerieHService + .insert(modelMapper.map(dpercAutPianFerieHToInsert, DpercAutPianFerieH.class)); + URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}") + .buildAndExpand(newDpercAutPianFerieH.getSequIdPercAutPianFerieH()).toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(location); + response = toResponseEntity(Optional.of(newDpercAutPianFerieH), headers, HttpStatus.CREATED); + } catch (Exception exception) { + LOGGER.error("Exception:", exception); + } + return response; + } + + private DpercAutPianFerieH childMap(DpercAutPianFerieHWriteDto data) { + DpercAutPianFerieH dpercAutPianFerieHToInsert = modelMapper.map(data, DpercAutPianFerieH.class); + return dpercAutPianFerieHToInsert; + } + + /** + * {@code DELETE /dperc-aut-pian-ferie-h/:objectKey} : delete the + * dperc-aut-pian-ferie-h with given objectKey. + * + * @param objectKey the objectKey of the DpercAutPianFerieH to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_H_DELETE.toString())") + public ResponseEntity delete(@PathVariable String objectKey) { + dpercAutPianFerieHService + .deleteById(dpercAutPianFerieHService.findByObjectKey(objectKey).get().getSequIdPercAutPianFerieH()); + return new ResponseEntity<>(new BaseResponse<>(objectKey), HttpStatus.OK); + } + + /** + * GET /the-dperc-aut-pian-ferie-pk_id: Search all DpercAutPianFerieH for the + * given DpercAutPianFeriePk (parent) + * + * @param OK of DpercAutPianFeriePk + * @param pageable + * @return Page of DpercAutPianFerieH for the given DpercAutPianFeriePk (parent) + */ + @GetMapping("/findByTheDpercAutPianFeriePk/{dpercAutPianFeriePkObjectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_H_FIND_BY_DPERC_AUT_PIAN_FERIE_PK.toString())") + public ResponseEntity>> findByDpercAutPianFeriePk( + @PathVariable String dpercAutPianFeriePkObjectKey, Pageable pageable) { + DpercAutPianFeriePk key = new DpercAutPianFeriePk(dpercAutPianFeriePkObjectKey); + return toResponseEntityPaged(dpercAutPianFerieHService.findByTheDpercAutPianFeriePk(key, pageable), null); + } + + /** + * GET /the-dconfig-pa-piani-ferie_id: Search all DpercAutPianFerieH for the + * given DconfigPaPianiFerie (parent) + * + * @param OK of DconfigPaPianiFerie + * @param pageable + * @return Page of DpercAutPianFerieH for the given DconfigPaPianiFerie (parent) + */ + @GetMapping("/findByTheDconfigPaPianiFerie/{dconfigPaPianiFerieObjectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_H_FIND_BY_DCONFIG_PA_PIANI_FERIE.toString())") + public ResponseEntity>> findByDconfigPaPianiFerie( + @PathVariable String dconfigPaPianiFerieObjectKey, Pageable pageable) { + DconfigPaPianiFerie key = new DconfigPaPianiFerie(dconfigPaPianiFerieObjectKey); + return toResponseEntityPaged(dpercAutPianFerieHService.findByTheDconfigPaPianiFerie(key, pageable), null); + } + + private ResponseEntity> toResponseEntity( + Optional maybeResponse, HttpHeaders header, HttpStatus status) { + return maybeResponse + .map(response -> new ResponseEntity<>( + new BaseResponse<>(dpercAutPianFerieHModelAssembler.toModel(response)), header, status)) + .orElseThrow(() -> new NotFoundException(DpercAutPianFerieH.class, new Locale("it"))); + } + + private ResponseEntity>> toResponseEntityPaged( + Page list, HttpHeaders header) { + BaseResponse> collModel = new BaseResponse<>( + pagedResourcesAssembler.toModel(list, dpercAutPianFerieHModelAssembler)); + return ResponseEntity.ok().headers(header).body(collModel); + } + + @SuppressWarnings("unused") + private DpercAutPianFerieH dtoToEntity(DpercAutPianFerieHDto dto) { + return new ModelMapper().map(dto, DpercAutPianFerieH.class); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DpercAutPianFeriePkController.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DpercAutPianFeriePkController.java new file mode 100644 index 0000000..6ae6b84 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DpercAutPianFeriePkController.java @@ -0,0 +1,205 @@ +package it.micegroup.gestioneferie.configurazionepf.controller; + +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFeriePk; +import it.micegroup.gestioneferie.configurazionepf.assembler.DpercAutPianFeriePkModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.criteria.DpercAutPianFeriePkCriteria; +import it.micegroup.gestioneferie.configurazionepf.service.DpercAutPianFeriePkService; +import it.micegroup.gestioneferie.configurazionepf.service.DpercAutPianFerieHService; +import it.micegroup.gestioneferie.configurazionepf.entity.DpercAutPianFerieH; + +import it.micegroup.voila2runtime.exception.*; +import it.micegroup.gestioneferie.libs.controller.BaseController; +import it.micegroup.gestioneferie.configurazionepf.dto.DpercAutPianFeriePkDto; +import it.micegroup.gestioneferie.configurazionepf.dto.DpercAutPianFeriePkWriteDto; +import it.micegroup.gestioneferie.libs.response.BaseResponse; +import it.micegroup.gestioneferie.libs.request.BaseRequest; +import javax.annotation.PostConstruct; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedResourcesAssembler; +import org.springframework.hateoas.PagedModel; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import javax.validation.Valid; +import java.net.URI; +import java.util.Locale; +import java.util.Optional; + +import java.util.Collection; +import org.modelmapper.PropertyMap; +import java.util.stream.Collectors; + +@RequiredArgsConstructor +@RestController +@RequestMapping(value = "/dperc-aut-pian-ferie-pk", produces = MediaType.APPLICATION_JSON_VALUE) +public class DpercAutPianFeriePkController extends BaseController> { + + /// ENTITY SERVICE + private final DpercAutPianFeriePkService dpercAutPianFeriePkService; + private final DpercAutPianFeriePkModelAssembler dpercAutPianFeriePkModelAssembler; + private final PagedResourcesAssembler pagedResourcesAssembler; + private final ModelMapper modelMapper; + // CHILD SERVICES + private final DpercAutPianFerieHService dpercAutPianFerieHService; + + // CONSTRUCTOR + @PostConstruct + public void postConstruct() { + modelMapper.addMappings(new PropertyMap() { + @Override + protected void configure() { + skip(destination.getTheDpercAutPianFerieH()); + } + }); + } + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DpercAutPianFeriePkController.class); + + // API + @GetMapping + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_PK_FIND_PAGINATED.toString())") + public ResponseEntity>> findPaginated( + DpercAutPianFeriePkCriteria criteria, Pageable pageable) { + Page page = dpercAutPianFeriePkService.findByCriteria(criteria, pageable); + return toResponseEntityPaged(page, null); + } + + /** + * {@code GET /dperc-aut-pian-ferie-pk/:objectKey} : get the + * dperc-aut-pian-ferie-pk with given objectKey. + * + * @param objectKey the objectKey of the dperc-aut-pian-ferie-pk to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the dperc-aut-pian-ferie-pk, or with status {@code 404 (Not Found)}. + */ + @GetMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_PK_FIND_BY_ID.toString())") + public ResponseEntity> getByObjectKey(@PathVariable String objectKey) { + return toResponseEntity(dpercAutPianFeriePkService.findByObjectKey(objectKey), null, HttpStatus.OK); + } + + /** + * {@code PUT /dperc-aut-pian-ferie-pk} : Updates an existing + * DpercAutPianFeriePk. + * + * @param DpercAutPianFeriePk the DpercAutPianFeriePk to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the updated DpercAutPianFeriePk, or with status + * {@code 400 (Bad Request)} if the DpercAutPianFeriePk is not valid, or + * with status {@code 500 (Internal Server Error)} if the + * DpercAutPianFeriePk couldn't be updated. + */ + @PutMapping + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_PK_UPDATE.toString())") + public ResponseEntity update(@Valid @RequestBody BaseRequest request) { + return toResponseEntity( + Optional.of(dpercAutPianFeriePkService + .bulkUpdate(modelMapper.map(request.getData(), DpercAutPianFeriePk.class))), + null, HttpStatus.OK); + } + + /** + * {@code POST /dperc-aut-pian-ferie-pk} : Create a new DpercAutPianFeriePk. + * + * @param DpercAutPianFeriePk the DpercAutPianFeriePk to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with + * body the new DpercAutPianFeriePk, or with status + * {@code 400 (Bad Request)} if the DpercAutPianFeriePk has already an + * ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PostMapping + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_PK_CREATE.toString())") + public ResponseEntity save(@Valid @RequestBody BaseRequest request) { + ResponseEntity response = null; + DpercAutPianFeriePk dpercAutPianFeriePkToInsert = childMap(request.getData()); + try { + DpercAutPianFeriePk newDpercAutPianFeriePk = dpercAutPianFeriePkService + .insert(modelMapper.map(dpercAutPianFeriePkToInsert, DpercAutPianFeriePk.class)); + URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}") + .buildAndExpand(newDpercAutPianFeriePk.getSequIdPercAutPianFeriePk()).toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(location); + response = toResponseEntity(Optional.of(newDpercAutPianFeriePk), headers, HttpStatus.CREATED); + } catch (Exception exception) { + LOGGER.error("Exception:", exception); + } + return response; + } + + private DpercAutPianFeriePk childMap(DpercAutPianFeriePkWriteDto data) { + DpercAutPianFeriePk dpercAutPianFeriePkToInsert = modelMapper.map(data, DpercAutPianFeriePk.class); + Collection theDpercAutPianFerieHs = data.getTheDpercAutPianFerieH().stream() + .map(element -> modelMapper.map(element, DpercAutPianFerieH.class)) + .peek(element -> element.setTheDpercAutPianFeriePk(dpercAutPianFeriePkToInsert)) + .collect(Collectors.toList()); + dpercAutPianFeriePkToInsert.setTheDpercAutPianFerieH(theDpercAutPianFerieHs); + return dpercAutPianFeriePkToInsert; + } + + /** + * {@code DELETE /dperc-aut-pian-ferie-pk/:objectKey} : delete the + * dperc-aut-pian-ferie-pk with given objectKey. + * + * @param objectKey the objectKey of the DpercAutPianFeriePk to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_PK_DELETE.toString())") + public ResponseEntity delete(@PathVariable String objectKey) { + dpercAutPianFeriePkService + .deleteById(dpercAutPianFeriePkService.findByObjectKey(objectKey).get().getSequIdPercAutPianFeriePk()); + return new ResponseEntity<>(new BaseResponse<>(objectKey), HttpStatus.OK); + } + + /** + * GET /id/dperc-aut-pian-ferie-h: Search all DpercAutPianFerieH (childs) for + * the given DpercAutPianFeriePk + * + * @param objectKey ObjectKey of DpercAutPianFeriePk + * @param pageable + * @return Page of DpercAutPianFerieH for the given DpercAutPianFeriePk + */ + @GetMapping("/{objectKey:.+}/dperc-aut-pian-ferie-h") + @PreAuthorize("hasRole(@permissionHolder.DPERC_AUT_PIAN_FERIE_PK_FIND_BY_THE_DPERC_AUT_PIAN_FERIE_H_OBJECT_KEY.toString())") + public ResponseEntity> getTheDpercAutPianFerieHByObjectKey(@PathVariable String objectKey, + Pageable pageable) { + DpercAutPianFeriePk dpercAutPianFeriePk = new DpercAutPianFeriePk(); + dpercAutPianFeriePk.setObjectKey(objectKey); + return ResponseEntity.ok() + .body(dpercAutPianFerieHService.findByTheDpercAutPianFeriePk(dpercAutPianFeriePk, pageable)); + } + + private ResponseEntity> toResponseEntity( + Optional maybeResponse, HttpHeaders header, HttpStatus status) { + return maybeResponse + .map(response -> new ResponseEntity<>( + new BaseResponse<>(dpercAutPianFeriePkModelAssembler.toModel(response)), header, status)) + .orElseThrow(() -> new NotFoundException(DpercAutPianFeriePk.class, new Locale("it"))); + } + + private ResponseEntity>> toResponseEntityPaged( + Page list, HttpHeaders header) { + BaseResponse> collModel = new BaseResponse<>( + pagedResourcesAssembler.toModel(list, dpercAutPianFeriePkModelAssembler)); + return ResponseEntity.ok().headers(header).body(collModel); + } + + @SuppressWarnings("unused") + private DpercAutPianFeriePk dtoToEntity(DpercAutPianFeriePkDto dto) { + return new ModelMapper().map(dto, DpercAutPianFeriePk.class); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DregolePianiFerieHController.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DregolePianiFerieHController.java new file mode 100644 index 0000000..001200c --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DregolePianiFerieHController.java @@ -0,0 +1,190 @@ +package it.micegroup.gestioneferie.configurazionepf.controller; + +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH; +import it.micegroup.gestioneferie.configurazionepf.assembler.DregolePianiFerieHModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.criteria.DregolePianiFerieHCriteria; +import it.micegroup.gestioneferie.configurazionepf.service.DregolePianiFerieHService; + +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; + +import it.micegroup.voila2runtime.exception.*; +import it.micegroup.gestioneferie.libs.controller.BaseController; +import it.micegroup.gestioneferie.configurazionepf.dto.DregolePianiFerieHDto; +import it.micegroup.gestioneferie.configurazionepf.dto.DregolePianiFerieHWriteDto; +import it.micegroup.gestioneferie.libs.response.BaseResponse; +import it.micegroup.gestioneferie.libs.request.BaseRequest; +import javax.annotation.PostConstruct; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedResourcesAssembler; +import org.springframework.hateoas.PagedModel; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import javax.validation.Valid; +import java.net.URI; +import java.util.Locale; +import java.util.Optional; + +import java.util.Collection; +import org.modelmapper.PropertyMap; +import java.util.stream.Collectors; + +@RequiredArgsConstructor +@RestController +@RequestMapping(value = "/dregole-piani-ferie-h", produces = MediaType.APPLICATION_JSON_VALUE) +public class DregolePianiFerieHController extends BaseController> { + + /// ENTITY SERVICE + private final DregolePianiFerieHService dregolePianiFerieHService; + private final DregolePianiFerieHModelAssembler dregolePianiFerieHModelAssembler; + private final PagedResourcesAssembler pagedResourcesAssembler; + private final ModelMapper modelMapper; + // CHILD SERVICES + + // CONSTRUCTOR + @PostConstruct + public void postConstruct() { + } + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DregolePianiFerieHController.class); + + // API + @GetMapping + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_H_FIND_PAGINATED.toString())") + public ResponseEntity>> findPaginated( + DregolePianiFerieHCriteria criteria, Pageable pageable) { + Page page = dregolePianiFerieHService.findByCriteria(criteria, pageable); + return toResponseEntityPaged(page, null); + } + + /** + * {@code GET /dregole-piani-ferie-h/:objectKey} : get the + * dregole-piani-ferie-h with given objectKey. + * + * @param objectKey the objectKey of the dregole-piani-ferie-h to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the dregole-piani-ferie-h, or with status {@code 404 (Not Found)}. + */ + @GetMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_H_FIND_BY_ID.toString())") + public ResponseEntity> getByObjectKey(@PathVariable String objectKey) { + return toResponseEntity(dregolePianiFerieHService.findByObjectKey(objectKey), null, HttpStatus.OK); + } + + /** + * {@code PUT /dregole-piani-ferie-h} : Updates an existing DregolePianiFerieH. + * + * @param DregolePianiFerieH the DregolePianiFerieH to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the updated DregolePianiFerieH, or with status + * {@code 400 (Bad Request)} if the DregolePianiFerieH is not valid, or + * with status {@code 500 (Internal Server Error)} if the + * DregolePianiFerieH couldn't be updated. + */ + @PutMapping + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_H_UPDATE.toString())") + public ResponseEntity update(@Valid @RequestBody BaseRequest request) { + return toResponseEntity( + Optional.of(dregolePianiFerieHService + .bulkUpdate(modelMapper.map(request.getData(), DregolePianiFerieH.class))), + null, HttpStatus.OK); + } + + /** + * {@code POST /dregole-piani-ferie-h} : Create a new DregolePianiFerieH. + * + * @param DregolePianiFerieH the DregolePianiFerieH to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with + * body the new DregolePianiFerieH, or with status + * {@code 400 (Bad Request)} if the DregolePianiFerieH has already an + * ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PostMapping + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_H_CREATE.toString())") + public ResponseEntity save(@Valid @RequestBody BaseRequest request) { + ResponseEntity response = null; + DregolePianiFerieH dregolePianiFerieHToInsert = childMap(request.getData()); + try { + DregolePianiFerieH newDregolePianiFerieH = dregolePianiFerieHService + .insert(modelMapper.map(dregolePianiFerieHToInsert, DregolePianiFerieH.class)); + URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}") + .buildAndExpand(newDregolePianiFerieH.getSequIdRegolePianiFerieH()).toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(location); + response = toResponseEntity(Optional.of(newDregolePianiFerieH), headers, HttpStatus.CREATED); + } catch (Exception exception) { + LOGGER.error("Exception:", exception); + } + return response; + } + + private DregolePianiFerieH childMap(DregolePianiFerieHWriteDto data) { + DregolePianiFerieH dregolePianiFerieHToInsert = modelMapper.map(data, DregolePianiFerieH.class); + return dregolePianiFerieHToInsert; + } + + /** + * {@code DELETE /dregole-piani-ferie-h/:objectKey} : delete the + * dregole-piani-ferie-h with given objectKey. + * + * @param objectKey the objectKey of the DregolePianiFerieH to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_H_DELETE.toString())") + public ResponseEntity delete(@PathVariable String objectKey) { + dregolePianiFerieHService + .deleteById(dregolePianiFerieHService.findByObjectKey(objectKey).get().getSequIdRegolePianiFerieH()); + return new ResponseEntity<>(new BaseResponse<>(objectKey), HttpStatus.OK); + } + + /** + * GET /the-dregole-piani-ferie-pk_id: Search all DregolePianiFerieH for the + * given DregolePianiFeriePk (parent) + * + * @param OK of DregolePianiFeriePk + * @param pageable + * @return Page of DregolePianiFerieH for the given DregolePianiFeriePk (parent) + */ + @GetMapping("/findByTheDregolePianiFeriePk/{dregolePianiFeriePkObjectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_H_FIND_BY_DREGOLE_PIANI_FERIE_PK.toString())") + public ResponseEntity>> findByDregolePianiFeriePk( + @PathVariable String dregolePianiFeriePkObjectKey, Pageable pageable) { + DregolePianiFeriePk key = new DregolePianiFeriePk(dregolePianiFeriePkObjectKey); + return toResponseEntityPaged(dregolePianiFerieHService.findByTheDregolePianiFeriePk(key, pageable), null); + } + + private ResponseEntity> toResponseEntity( + Optional maybeResponse, HttpHeaders header, HttpStatus status) { + return maybeResponse + .map(response -> new ResponseEntity<>( + new BaseResponse<>(dregolePianiFerieHModelAssembler.toModel(response)), header, status)) + .orElseThrow(() -> new NotFoundException(DregolePianiFerieH.class, new Locale("it"))); + } + + private ResponseEntity>> toResponseEntityPaged( + Page list, HttpHeaders header) { + BaseResponse> collModel = new BaseResponse<>( + pagedResourcesAssembler.toModel(list, dregolePianiFerieHModelAssembler)); + return ResponseEntity.ok().headers(header).body(collModel); + } + + @SuppressWarnings("unused") + private DregolePianiFerieH dtoToEntity(DregolePianiFerieHDto dto) { + return new ModelMapper().map(dto, DregolePianiFerieH.class); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DregolePianiFeriePkController.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DregolePianiFeriePkController.java new file mode 100644 index 0000000..93a15c5 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/controller/DregolePianiFeriePkController.java @@ -0,0 +1,205 @@ +package it.micegroup.gestioneferie.configurazionepf.controller; + +import lombok.RequiredArgsConstructor; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFeriePk; +import it.micegroup.gestioneferie.configurazionepf.assembler.DregolePianiFeriePkModelAssembler; +import it.micegroup.gestioneferie.configurazionepf.criteria.DregolePianiFeriePkCriteria; +import it.micegroup.gestioneferie.configurazionepf.service.DregolePianiFeriePkService; +import it.micegroup.gestioneferie.configurazionepf.service.DregolePianiFerieHService; +import it.micegroup.gestioneferie.configurazionepf.entity.DregolePianiFerieH; + +import it.micegroup.voila2runtime.exception.*; +import it.micegroup.gestioneferie.libs.controller.BaseController; +import it.micegroup.gestioneferie.configurazionepf.dto.DregolePianiFeriePkDto; +import it.micegroup.gestioneferie.configurazionepf.dto.DregolePianiFeriePkWriteDto; +import it.micegroup.gestioneferie.libs.response.BaseResponse; +import it.micegroup.gestioneferie.libs.request.BaseRequest; +import javax.annotation.PostConstruct; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedResourcesAssembler; +import org.springframework.hateoas.PagedModel; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import javax.validation.Valid; +import java.net.URI; +import java.util.Locale; +import java.util.Optional; + +import java.util.Collection; +import org.modelmapper.PropertyMap; +import java.util.stream.Collectors; + +@RequiredArgsConstructor +@RestController +@RequestMapping(value = "/dregole-piani-ferie-pk", produces = MediaType.APPLICATION_JSON_VALUE) +public class DregolePianiFeriePkController extends BaseController> { + + /// ENTITY SERVICE + private final DregolePianiFeriePkService dregolePianiFeriePkService; + private final DregolePianiFeriePkModelAssembler dregolePianiFeriePkModelAssembler; + private final PagedResourcesAssembler pagedResourcesAssembler; + private final ModelMapper modelMapper; + // CHILD SERVICES + private final DregolePianiFerieHService dregolePianiFerieHService; + + // CONSTRUCTOR + @PostConstruct + public void postConstruct() { + modelMapper.addMappings(new PropertyMap() { + @Override + protected void configure() { + skip(destination.getTheDregolePianiFerieH()); + } + }); + } + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(DregolePianiFeriePkController.class); + + // API + @GetMapping + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_PK_FIND_PAGINATED.toString())") + public ResponseEntity>> findPaginated( + DregolePianiFeriePkCriteria criteria, Pageable pageable) { + Page page = dregolePianiFeriePkService.findByCriteria(criteria, pageable); + return toResponseEntityPaged(page, null); + } + + /** + * {@code GET /dregole-piani-ferie-pk/:objectKey} : get the + * dregole-piani-ferie-pk with given objectKey. + * + * @param objectKey the objectKey of the dregole-piani-ferie-pk to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the dregole-piani-ferie-pk, or with status {@code 404 (Not Found)}. + */ + @GetMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_PK_FIND_BY_ID.toString())") + public ResponseEntity> getByObjectKey(@PathVariable String objectKey) { + return toResponseEntity(dregolePianiFeriePkService.findByObjectKey(objectKey), null, HttpStatus.OK); + } + + /** + * {@code PUT /dregole-piani-ferie-pk} : Updates an existing + * DregolePianiFeriePk. + * + * @param DregolePianiFeriePk the DregolePianiFeriePk to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body + * the updated DregolePianiFeriePk, or with status + * {@code 400 (Bad Request)} if the DregolePianiFeriePk is not valid, or + * with status {@code 500 (Internal Server Error)} if the + * DregolePianiFeriePk couldn't be updated. + */ + @PutMapping + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_PK_UPDATE.toString())") + public ResponseEntity update(@Valid @RequestBody BaseRequest request) { + return toResponseEntity( + Optional.of(dregolePianiFeriePkService + .bulkUpdate(modelMapper.map(request.getData(), DregolePianiFeriePk.class))), + null, HttpStatus.OK); + } + + /** + * {@code POST /dregole-piani-ferie-pk} : Create a new DregolePianiFeriePk. + * + * @param DregolePianiFeriePk the DregolePianiFeriePk to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with + * body the new DregolePianiFeriePk, or with status + * {@code 400 (Bad Request)} if the DregolePianiFeriePk has already an + * ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PostMapping + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_PK_CREATE.toString())") + public ResponseEntity save(@Valid @RequestBody BaseRequest request) { + ResponseEntity response = null; + DregolePianiFeriePk dregolePianiFeriePkToInsert = childMap(request.getData()); + try { + DregolePianiFeriePk newDregolePianiFeriePk = dregolePianiFeriePkService + .insert(modelMapper.map(dregolePianiFeriePkToInsert, DregolePianiFeriePk.class)); + URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}") + .buildAndExpand(newDregolePianiFeriePk.getSequIdRegolePianiFeriePk()).toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(location); + response = toResponseEntity(Optional.of(newDregolePianiFeriePk), headers, HttpStatus.CREATED); + } catch (Exception exception) { + LOGGER.error("Exception:", exception); + } + return response; + } + + private DregolePianiFeriePk childMap(DregolePianiFeriePkWriteDto data) { + DregolePianiFeriePk dregolePianiFeriePkToInsert = modelMapper.map(data, DregolePianiFeriePk.class); + Collection theDregolePianiFerieHs = data.getTheDregolePianiFerieH().stream() + .map(element -> modelMapper.map(element, DregolePianiFerieH.class)) + .peek(element -> element.setTheDregolePianiFeriePk(dregolePianiFeriePkToInsert)) + .collect(Collectors.toList()); + dregolePianiFeriePkToInsert.setTheDregolePianiFerieH(theDregolePianiFerieHs); + return dregolePianiFeriePkToInsert; + } + + /** + * {@code DELETE /dregole-piani-ferie-pk/:objectKey} : delete the + * dregole-piani-ferie-pk with given objectKey. + * + * @param objectKey the objectKey of the DregolePianiFeriePk to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/{objectKey:.+}") + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_PK_DELETE.toString())") + public ResponseEntity delete(@PathVariable String objectKey) { + dregolePianiFeriePkService + .deleteById(dregolePianiFeriePkService.findByObjectKey(objectKey).get().getSequIdRegolePianiFeriePk()); + return new ResponseEntity<>(new BaseResponse<>(objectKey), HttpStatus.OK); + } + + /** + * GET /id/dregole-piani-ferie-h: Search all DregolePianiFerieH (childs) for the + * given DregolePianiFeriePk + * + * @param objectKey ObjectKey of DregolePianiFeriePk + * @param pageable + * @return Page of DregolePianiFerieH for the given DregolePianiFeriePk + */ + @GetMapping("/{objectKey:.+}/dregole-piani-ferie-h") + @PreAuthorize("hasRole(@permissionHolder.DREGOLE_PIANI_FERIE_PK_FIND_BY_THE_DREGOLE_PIANI_FERIE_H_OBJECT_KEY.toString())") + public ResponseEntity> getTheDregolePianiFerieHByObjectKey(@PathVariable String objectKey, + Pageable pageable) { + DregolePianiFeriePk dregolePianiFeriePk = new DregolePianiFeriePk(); + dregolePianiFeriePk.setObjectKey(objectKey); + return ResponseEntity.ok() + .body(dregolePianiFerieHService.findByTheDregolePianiFeriePk(dregolePianiFeriePk, pageable)); + } + + private ResponseEntity> toResponseEntity( + Optional maybeResponse, HttpHeaders header, HttpStatus status) { + return maybeResponse + .map(response -> new ResponseEntity<>( + new BaseResponse<>(dregolePianiFeriePkModelAssembler.toModel(response)), header, status)) + .orElseThrow(() -> new NotFoundException(DregolePianiFeriePk.class, new Locale("it"))); + } + + private ResponseEntity>> toResponseEntityPaged( + Page list, HttpHeaders header) { + BaseResponse> collModel = new BaseResponse<>( + pagedResourcesAssembler.toModel(list, dregolePianiFeriePkModelAssembler)); + return ResponseEntity.ok().headers(header).body(collModel); + } + + @SuppressWarnings("unused") + private DregolePianiFeriePk dtoToEntity(DregolePianiFeriePkDto dto) { + return new ModelMapper().map(dto, DregolePianiFeriePk.class); + } +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPfUoHDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPfUoHDto.java new file mode 100644 index 0000000..218ea32 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPfUoHDto.java @@ -0,0 +1,53 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.gestioneferie.libs.dto.BaseDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DconfigPaPfUoHDto extends BaseDto { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 2107839351L; + + @JsonProperty + private String objectKey; + @JsonProperty + private String objectTitle; + private Long sequIdConfigPaPfUoH; + + private String flagValidoUoSubordinate; + + private Long fkConfigPaPianoFerie; + + private Long fkUnitaFunzionale; + + private Long fkUnitaOrganizzativaPk; + + private String utenteUltimaModifica; + + private String flagEliminato; + + private Date dataInizioValidita; + + private Date dataFineValidita; + + private Date dataUltimaModifica; + + private Long sequIdConfigPaPianoFerie; + @JsonProperty + private String theDconfigPaPianiFerieObjectTitle; + @JsonProperty + private String theDconfigPaPianiFerieObjectKey; + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPfUoHWriteDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPfUoHWriteDto.java new file mode 100644 index 0000000..c35feec --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPfUoHWriteDto.java @@ -0,0 +1,48 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.voila2runtime.dto.GenericDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DconfigPaPfUoHWriteDto extends GenericDto { + + /** + * + * ObjectKey + * + */ + @JsonProperty + private String objectKey; + + private Long sequIdConfigPaPfUoH; + + private String flagValidoUoSubordinate; + + private Long fkConfigPaPianoFerie; + + private Long fkUnitaFunzionale; + + private Long fkUnitaOrganizzativaPk; + + private String utenteUltimaModifica; + + private String flagEliminato; + + private Date dataInizioValidita; + + private Date dataFineValidita; + + private Date dataUltimaModifica; + private String theDconfigPaPianiFerieObjectKey; +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPianiFerieDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPianiFerieDto.java new file mode 100644 index 0000000..adc6edf --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPianiFerieDto.java @@ -0,0 +1,49 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Collection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.gestioneferie.libs.dto.BaseDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DconfigPaPianiFerieDto extends BaseDto { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 1237557078L; + + @JsonProperty + private String objectKey; + @JsonProperty + private String objectTitle; + private Long sequIdConfigPaPianoFerie; + + private String codiConfigPaPianoFerie; + + private String descConfigPaPianoFerie; + + private Long fkAmministrazionePk; + + private Long fkTipoOrganigramma; + + private Date dataUltimaModifica; + + private String utenteUltimaModifica; + + private String flagEliminato; + + private Date dataInizioRecord; + + private Date dataFineRecord; + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPianiFerieWriteDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPianiFerieWriteDto.java new file mode 100644 index 0000000..2b97ad9 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DconfigPaPianiFerieWriteDto.java @@ -0,0 +1,54 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Collection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.voila2runtime.dto.GenericDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DconfigPaPianiFerieWriteDto extends GenericDto { + + /** + * + * ObjectKey + * + */ + @JsonProperty + private String objectKey; + + private Long sequIdConfigPaPianoFerie; + + private String codiConfigPaPianoFerie; + + private String descConfigPaPianoFerie; + + private Long fkAmministrazionePk; + + private Long fkTipoOrganigramma; + + private Date dataUltimaModifica; + + private String utenteUltimaModifica; + + private String flagEliminato; + + private Date dataInizioRecord; + + private Date dataFineRecord; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Collection theDpercAutPianFerieH; + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Collection theDconfigPaPfUoH; +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFerieHDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFerieHDto.java new file mode 100644 index 0000000..9bd3355 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFerieHDto.java @@ -0,0 +1,56 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.gestioneferie.libs.dto.BaseDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DpercAutPianFerieHDto extends BaseDto { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 2997153128L; + + @JsonProperty + private String objectKey; + @JsonProperty + private String objectTitle; + private Long sequIdPercAutPianFerieH; + + private Long fkConfigPaPianoFerie; + + private Long fkPercorso; + + private Long fkPercAutPianFeriePk; + + private Date dataUltimaModifica; + + private Date dataFineValidita; + + private Date dataInizioValidita; + + private String utenteUltimaModifica; + + private String flagEliminato; + + private Long sequIdPercAutPianFeriePk; + private Long sequIdConfigPaPianoFerie; + @JsonProperty + private String theDpercAutPianFeriePkObjectTitle; + @JsonProperty + private String theDpercAutPianFeriePkObjectKey; + @JsonProperty + private String theDconfigPaPianiFerieObjectTitle; + @JsonProperty + private String theDconfigPaPianiFerieObjectKey; + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFerieHWriteDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFerieHWriteDto.java new file mode 100644 index 0000000..a258534 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFerieHWriteDto.java @@ -0,0 +1,47 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.voila2runtime.dto.GenericDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DpercAutPianFerieHWriteDto extends GenericDto { + + /** + * + * ObjectKey + * + */ + @JsonProperty + private String objectKey; + + private Long sequIdPercAutPianFerieH; + + private Long fkConfigPaPianoFerie; + + private Long fkPercorso; + + private Long fkPercAutPianFeriePk; + + private Date dataUltimaModifica; + + private Date dataFineValidita; + + private Date dataInizioValidita; + + private String utenteUltimaModifica; + + private String flagEliminato; + private String theDpercAutPianFeriePkObjectKey; + private String theDconfigPaPianiFerieObjectKey; +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFeriePkDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFeriePkDto.java new file mode 100644 index 0000000..345e47e --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFeriePkDto.java @@ -0,0 +1,37 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Collection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.gestioneferie.libs.dto.BaseDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DpercAutPianFeriePkDto extends BaseDto { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 887071405L; + + @JsonProperty + private String objectKey; + @JsonProperty + private String objectTitle; + private Long sequIdPercAutPianFeriePk; + + private String flagEliminato; + + private String utenteUltimaModifica; + + private Date dataUltimaModifica; + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFeriePkWriteDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFeriePkWriteDto.java new file mode 100644 index 0000000..10ef574 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DpercAutPianFeriePkWriteDto.java @@ -0,0 +1,40 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Collection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.voila2runtime.dto.GenericDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DpercAutPianFeriePkWriteDto extends GenericDto { + + /** + * + * ObjectKey + * + */ + @JsonProperty + private String objectKey; + + private Long sequIdPercAutPianFeriePk; + + private String flagEliminato; + + private String utenteUltimaModifica; + + private Date dataUltimaModifica; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Collection theDpercAutPianFerieH; +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFerieHDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFerieHDto.java new file mode 100644 index 0000000..2db66b0 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFerieHDto.java @@ -0,0 +1,63 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.gestioneferie.libs.dto.BaseDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DregolePianiFerieHDto extends BaseDto { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 976188501L; + + @JsonProperty + private String objectKey; + @JsonProperty + private String objectTitle; + private Long sequIdRegolePianiFerieH; + + private Long numMinGgDaPianificare; + + private Long numMaxGgDaPianificare; + + private Long numePercMinGiorniPresenza; + + private String flagValidoUoSubordinate; + + private Long fkAmministrazione; + + private Long fkRegolaPianoFeriePk; + + private Long fkTipoOrganigramma; + + private Long fkUnitaFunzionale; + + private Long fkUnitaOrganizzativaPk; + + private String flagEliminato; + + private String utenteUltimaModifica; + + private Date dataUltimaModifica; + + private Date dataInizioValidita; + + private Date dataFineValidita; + + private Long sequIdRegolePianiFeriePk; + @JsonProperty + private String theDregolePianiFeriePkObjectTitle; + @JsonProperty + private String theDregolePianiFeriePkObjectKey; + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFerieHWriteDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFerieHWriteDto.java new file mode 100644 index 0000000..6f95617 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFerieHWriteDto.java @@ -0,0 +1,58 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.voila2runtime.dto.GenericDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DregolePianiFerieHWriteDto extends GenericDto { + + /** + * + * ObjectKey + * + */ + @JsonProperty + private String objectKey; + + private Long sequIdRegolePianiFerieH; + + private Long numMinGgDaPianificare; + + private Long numMaxGgDaPianificare; + + private Long numePercMinGiorniPresenza; + + private String flagValidoUoSubordinate; + + private Long fkAmministrazione; + + private Long fkRegolaPianoFeriePk; + + private Long fkTipoOrganigramma; + + private Long fkUnitaFunzionale; + + private Long fkUnitaOrganizzativaPk; + + private String flagEliminato; + + private String utenteUltimaModifica; + + private Date dataUltimaModifica; + + private Date dataInizioValidita; + + private Date dataFineValidita; + private String theDregolePianiFeriePkObjectKey; +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFeriePkDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFeriePkDto.java new file mode 100644 index 0000000..fa675a3 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFeriePkDto.java @@ -0,0 +1,45 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Collection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.gestioneferie.libs.dto.BaseDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DregolePianiFeriePkDto extends BaseDto { + + // Generated SERIAL VERSION UID + private static final long serialVersionUID = 3289577936L; + + @JsonProperty + private String objectKey; + @JsonProperty + private String objectTitle; + private Long sequIdRegolePianiFeriePk; + + private String codiRegola; + + private String descRegola; + + private String flagEliminato; + + private String utenteUltimaModifica; + + private Date dataUltimaModifica; + + private Date dataInizioValidita; + + private Date dataFineValidita; + +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFeriePkWriteDto.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFeriePkWriteDto.java new file mode 100644 index 0000000..d8aa39c --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/dto/DregolePianiFeriePkWriteDto.java @@ -0,0 +1,48 @@ +package it.micegroup.gestioneferie.configurazionepf.dto; + +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Collection; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import it.micegroup.voila2runtime.dto.GenericDto; + +@Data +@EqualsAndHashCode(callSuper = false) +public class DregolePianiFeriePkWriteDto extends GenericDto { + + /** + * + * ObjectKey + * + */ + @JsonProperty + private String objectKey; + + private Long sequIdRegolePianiFeriePk; + + private String codiRegola; + + private String descRegola; + + private String flagEliminato; + + private String utenteUltimaModifica; + + private Date dataUltimaModifica; + + private Date dataInizioValidita; + + private Date dataFineValidita; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Collection theDregolePianiFerieH; +} diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/security/Permission.java b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/security/Permission.java new file mode 100644 index 0000000..f523de1 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/java/it/micegroup/gestioneferie/configurazionepf/security/Permission.java @@ -0,0 +1,70 @@ +package it.micegroup.gestioneferie.configurazionepf.security; + +import org.springframework.stereotype.Component; + +@Component("permissionHolder") +public final class Permission { + /// DregolePianiFeriePk + public static final int DREGOLE_PIANI_FERIE_PK_FIND_PAGINATED = 8014100; + public static final int DREGOLE_PIANI_FERIE_PK_FIND_BY_ID = 8014101; + public static final int DREGOLE_PIANI_FERIE_PK_CREATE = 8014102; + public static final int DREGOLE_PIANI_FERIE_PK_UPDATE = 8014103; + public static final int DREGOLE_PIANI_FERIE_PK_DELETE = 8014104; + public static final int DREGOLE_PIANI_FERIE_PK_PDF_REPORT = 8014105; + + public static final int DREGOLE_PIANI_FERIE_PK_FIND_BY_THE_DREGOLE_PIANI_FERIE_H_OBJECT_KEY = 8014106; + + /// DregolePianiFerieH + public static final int DREGOLE_PIANI_FERIE_H_FIND_PAGINATED = 8014200; + public static final int DREGOLE_PIANI_FERIE_H_FIND_BY_ID = 8014201; + public static final int DREGOLE_PIANI_FERIE_H_CREATE = 8014202; + public static final int DREGOLE_PIANI_FERIE_H_UPDATE = 8014203; + public static final int DREGOLE_PIANI_FERIE_H_DELETE = 8014204; + public static final int DREGOLE_PIANI_FERIE_H_PDF_REPORT = 8014205; + + public static final int DREGOLE_PIANI_FERIE_H_FIND_BY_DREGOLE_PIANI_FERIE_PK = 8014206; + + /// DpercAutPianFeriePk + public static final int DPERC_AUT_PIAN_FERIE_PK_FIND_PAGINATED = 8014300; + public static final int DPERC_AUT_PIAN_FERIE_PK_FIND_BY_ID = 8014301; + public static final int DPERC_AUT_PIAN_FERIE_PK_CREATE = 8014302; + public static final int DPERC_AUT_PIAN_FERIE_PK_UPDATE = 8014303; + public static final int DPERC_AUT_PIAN_FERIE_PK_DELETE = 8014304; + public static final int DPERC_AUT_PIAN_FERIE_PK_PDF_REPORT = 8014305; + + public static final int DPERC_AUT_PIAN_FERIE_PK_FIND_BY_THE_DPERC_AUT_PIAN_FERIE_H_OBJECT_KEY = 8014306; + + /// DpercAutPianFerieH + public static final int DPERC_AUT_PIAN_FERIE_H_FIND_PAGINATED = 8014400; + public static final int DPERC_AUT_PIAN_FERIE_H_FIND_BY_ID = 8014401; + public static final int DPERC_AUT_PIAN_FERIE_H_CREATE = 8014402; + public static final int DPERC_AUT_PIAN_FERIE_H_UPDATE = 8014403; + public static final int DPERC_AUT_PIAN_FERIE_H_DELETE = 8014404; + public static final int DPERC_AUT_PIAN_FERIE_H_PDF_REPORT = 8014405; + + public static final int DPERC_AUT_PIAN_FERIE_H_FIND_BY_DPERC_AUT_PIAN_FERIE_PK = 8014406; + public static final int DPERC_AUT_PIAN_FERIE_H_FIND_BY_DCONFIG_PA_PIANI_FERIE = 8014407; + + /// DconfigPaPianiFerie + public static final int DCONFIG_PA_PIANI_FERIE_FIND_PAGINATED = 8014500; + public static final int DCONFIG_PA_PIANI_FERIE_FIND_BY_ID = 8014501; + public static final int DCONFIG_PA_PIANI_FERIE_CREATE = 8014502; + public static final int DCONFIG_PA_PIANI_FERIE_UPDATE = 8014503; + public static final int DCONFIG_PA_PIANI_FERIE_DELETE = 8014504; + public static final int DCONFIG_PA_PIANI_FERIE_PDF_REPORT = 8014505; + + public static final int DCONFIG_PA_PIANI_FERIE_FIND_BY_THE_DPERC_AUT_PIAN_FERIE_H_OBJECT_KEY = 8014506; + public static final int DCONFIG_PA_PIANI_FERIE_FIND_BY_THE_DCONFIG_PA_PF_UO_H_OBJECT_KEY = 8014507; + + /// DconfigPaPfUoH + public static final int DCONFIG_PA_PF_UO_H_FIND_PAGINATED = 8014600; + public static final int DCONFIG_PA_PF_UO_H_FIND_BY_ID = 8014601; + public static final int DCONFIG_PA_PF_UO_H_CREATE = 8014602; + public static final int DCONFIG_PA_PF_UO_H_UPDATE = 8014603; + public static final int DCONFIG_PA_PF_UO_H_DELETE = 8014604; + public static final int DCONFIG_PA_PF_UO_H_PDF_REPORT = 8014605; + + public static final int DCONFIG_PA_PF_UO_H_FIND_BY_DCONFIG_PA_PIANI_FERIE = 8014606; + +} + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/.h2.server.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/.h2.server.properties new file mode 100644 index 0000000..1de0761 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/.h2.server.properties @@ -0,0 +1,4 @@ +#H2 Server Properties +0=Voila' 2 H2 (Memory)|org.h2.Driver|jdbc\:h2\:mem\:gestioneferie-ms-configurazionepf +webAllowOthers=true +webSSL=false diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/application-integration-test.yaml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/application-integration-test.yaml new file mode 100644 index 0000000..9583c5f --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/application-integration-test.yaml @@ -0,0 +1,7 @@ +spring: + datasource: + url: jdbc:h2:mem:test + jpa: + properties: + hibernate: + dialect: org.hibernate.dialect.H2Dialect \ No newline at end of file diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/application.yml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/application.yml new file mode 100644 index 0000000..c832b08 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/application.yml @@ -0,0 +1,63 @@ +server: + port: ${PORT:8014} + servlet: + context-path: /configurazionepf + +spring: + application: + name: gestioneferie-configurazionepf-service + liquibase: + enabled: false + security: + oauth2: + resourceserver: + jwt: + issuer-uri: http://${KK_URL:localhost}:${KK_PORT:8282}/auth/realms/gestioneferie + jwk-set-uri: http://${KK_URL:localhost}:${KK_PORT:8282}/auth/realms/gestioneferie/protocol/openid-connect/certs + +# data: +# rest: +# basePath: /configurazionepf + jpa: + hibernate: + show-sql: true + ddl-auto: create + naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy + database-platform: org.hibernate.dialect.H2Dialect + datasource: + driverClassName: org.h2.Driver + url: jdbc:h2:mem:configurazionepf;MODE=MYSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + username: configurazionepf + password: + + h2: + console: + enabled: true + settings: + web-allow-others: true + path: /h2-console + devtools: + livereload: + port: 35830 + +logging: + level: + root: INFO + org.hibernate.SQL: TRACE + org.springframework: DEBUG + +gateway: + baseuri: http://localhost:8090 + +jasperreports: + dir: reports + debug: true + +management: + endpoints: + web: + exposure: + include: "*" + endpoint: + health: + show-details: always diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources.properties new file mode 100644 index 0000000..bf22c41 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources.properties @@ -0,0 +1,332 @@ +## Login +login.login=Accedi +login.button=Accedi +login.validation.username=Username è obbligatorio +login.validation.password=La password è obbligatoria +login.label=Effettua l'accesso + +## Pagination +pagination.Showing=Mostra +pagination.ElementsOf=Elementi di +pagination.All=Tutti" + +## Buttons +buttons.new=Nuovo +buttons.save=Salva +buttons.edit=Modifica +buttons.delete=Cancella +buttons.goBack=Indietro +buttons.search=Cerca +buttons.next=Avanti +buttons.export.pdf=Crea PDF + +## Panel +dregolePianiFeriePk.panelTitle.new=Inserisci Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.edit=Modifica Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.view=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.delete=Cancella Dregole Piani Ferie Pk +dregolePianiFerieH.panelTitle.new=Inserisci Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.edit=Modifica Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.view=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.delete=Cancella Dregole Piani Ferie H +dpercAutPianFeriePk.panelTitle.new=Inserisci Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.edit=Modifica Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.view=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.delete=Cancella Dperc Aut Pian Ferie Pk +dpercAutPianFerieH.panelTitle.new=Inserisci Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.edit=Modifica Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.view=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.delete=Cancella Dperc Aut Pian Ferie H +dconfigPaPianiFerie.panelTitle.new=Inserisci Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.edit=Modifica Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.view=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.delete=Cancella Dconfig Pa Piani Ferie +dconfigPaPfUoH.panelTitle.new=Inserisci Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.edit=Modifica Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.view=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.delete=Cancella Dconfig Pa Pf Uo H + +## Detail +dregolePianiFeriePk.label=Dregole Piani Ferie Pk +dregolePianiFeriePk.tooltip=Dregole Piani Ferie Pk +dregolePianiFeriePk.insert=Inserisci Dregole Piani Ferie Pk +dregolePianiFeriePk.detail=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.edit=Modifica Dregole Piani Ferie Pk +dregolePianiFeriePk.delete=Cancella Dregole Piani Ferie Pk +dregolePianiFeriePk.objectTitle=Dregole Piani Ferie Pk +dregolePianiFeriePk.objectKey=ID Dregole Piani Ferie Pk +dregolePianiFeriePk.jasperReports.title=Dregole Piani Ferie Pk Report +dregolePianiFeriePk.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dregolePianiFeriePk.jasperReports.tableHeader=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk +dregolePianiFeriePk.tooltip.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk +dregolePianiFeriePk.validation.required.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk è obbligatorio", +dregolePianiFeriePk.codiRegola=Codi Regola +dregolePianiFeriePk.tooltip.codiRegola=Codi Regola +dregolePianiFeriePk.validation.required.codiRegola=Codi Regola è obbligatorio", +dregolePianiFeriePk.descRegola=Desc Regola +dregolePianiFeriePk.tooltip.descRegola=Desc Regola +dregolePianiFeriePk.validation.required.descRegola=Desc Regola è obbligatorio", +dregolePianiFeriePk.flagEliminato=Flag Eliminato +dregolePianiFeriePk.tooltip.flagEliminato=Flag Eliminato +dregolePianiFeriePk.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dregolePianiFeriePk.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFeriePk.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFeriePk.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dregolePianiFeriePk.dataUltimaModifica=Data Ultima Modifica +dregolePianiFeriePk.tooltip.dataUltimaModifica=Data Ultima Modifica +dregolePianiFeriePk.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dregolePianiFeriePk.dataInizioValidita=Data Inizio Validita +dregolePianiFeriePk.tooltip.dataInizioValidita=Data Inizio Validita +dregolePianiFeriePk.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dregolePianiFeriePk.dataFineValidita=Data Fine Validita +dregolePianiFeriePk.tooltip.dataFineValidita=Data Fine Validita +dregolePianiFeriePk.validation.required.dataFineValidita=Data Fine Validita è obbligatorio" +dregolePianiFerieH.label=Dregole Piani Ferie H +dregolePianiFerieH.tooltip=Dregole Piani Ferie H +dregolePianiFerieH.insert=Inserisci Dregole Piani Ferie H +dregolePianiFerieH.detail=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.edit=Modifica Dregole Piani Ferie H +dregolePianiFerieH.delete=Cancella Dregole Piani Ferie H +dregolePianiFerieH.objectTitle=Dregole Piani Ferie H +dregolePianiFerieH.objectKey=ID Dregole Piani Ferie H +dregolePianiFerieH.jasperReports.title=Dregole Piani Ferie H Report +dregolePianiFerieH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dregolePianiFerieH.jasperReports.tableHeader=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H +dregolePianiFerieH.tooltip.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H +dregolePianiFerieH.validation.required.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H è obbligatorio", +dregolePianiFerieH.numMinGgDaPianificare=Num Min Gg Da Pianificare +dregolePianiFerieH.tooltip.numMinGgDaPianificare=Num Min Gg Da Pianificare +dregolePianiFerieH.validation.required.numMinGgDaPianificare=Num Min Gg Da Pianificare è obbligatorio", +dregolePianiFerieH.numMaxGgDaPianificare=Num Max Gg Da Pianificare +dregolePianiFerieH.tooltip.numMaxGgDaPianificare=Num Max Gg Da Pianificare +dregolePianiFerieH.validation.required.numMaxGgDaPianificare=Num Max Gg Da Pianificare è obbligatorio", +dregolePianiFerieH.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza +dregolePianiFerieH.tooltip.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza +dregolePianiFerieH.validation.required.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza è obbligatorio", +dregolePianiFerieH.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dregolePianiFerieH.tooltip.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dregolePianiFerieH.validation.required.flagValidoUoSubordinate=Flag Valido Uo Subordinate è obbligatorio", +dregolePianiFerieH.fkAmministrazione=Fk Amministrazione +dregolePianiFerieH.tooltip.fkAmministrazione=Fk Amministrazione +dregolePianiFerieH.validation.required.fkAmministrazione=Fk Amministrazione è obbligatorio", +dregolePianiFerieH.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk +dregolePianiFerieH.tooltip.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk +dregolePianiFerieH.validation.required.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk è obbligatorio", +dregolePianiFerieH.fkTipoOrganigramma=Fk Tipo Organigramma +dregolePianiFerieH.tooltip.fkTipoOrganigramma=Fk Tipo Organigramma +dregolePianiFerieH.validation.required.fkTipoOrganigramma=Fk Tipo Organigramma è obbligatorio", +dregolePianiFerieH.fkUnitaFunzionale=Fk Unita Funzionale +dregolePianiFerieH.tooltip.fkUnitaFunzionale=Fk Unita Funzionale +dregolePianiFerieH.validation.required.fkUnitaFunzionale=Fk Unita Funzionale è obbligatorio", +dregolePianiFerieH.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dregolePianiFerieH.tooltip.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dregolePianiFerieH.validation.required.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk è obbligatorio", +dregolePianiFerieH.flagEliminato=Flag Eliminato +dregolePianiFerieH.tooltip.flagEliminato=Flag Eliminato +dregolePianiFerieH.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dregolePianiFerieH.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFerieH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFerieH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dregolePianiFerieH.dataUltimaModifica=Data Ultima Modifica +dregolePianiFerieH.tooltip.dataUltimaModifica=Data Ultima Modifica +dregolePianiFerieH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dregolePianiFerieH.dataInizioValidita=Data Inizio Validita +dregolePianiFerieH.tooltip.dataInizioValidita=Data Inizio Validita +dregolePianiFerieH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dregolePianiFerieH.dataFineValidita=Data Fine Validita +dregolePianiFerieH.tooltip.dataFineValidita=Data Fine Validita +dregolePianiFerieH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio" +dregolePianiFerieH.theDregolePianiFeriePk=Dregole Piani Ferie Pk +dregolePianiFerieH.validation.required.theDregolePianiFeriePk=Dregole Piani Ferie Pk è obbligatorio +dpercAutPianFeriePk.label=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.tooltip=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.insert=Inserisci Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.detail=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.edit=Modifica Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.delete=Cancella Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.objectTitle=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.objectKey=ID Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.jasperReports.title=Dperc Aut Pian Ferie Pk Report +dpercAutPianFeriePk.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dpercAutPianFeriePk.jasperReports.tableHeader=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk +dpercAutPianFeriePk.tooltip.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk +dpercAutPianFeriePk.validation.required.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk è obbligatorio", +dpercAutPianFeriePk.flagEliminato=Flag Eliminato +dpercAutPianFeriePk.tooltip.flagEliminato=Flag Eliminato +dpercAutPianFeriePk.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dpercAutPianFeriePk.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFeriePk.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFeriePk.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dpercAutPianFeriePk.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFeriePk.tooltip.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFeriePk.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio" +dpercAutPianFerieH.label=Dperc Aut Pian Ferie H +dpercAutPianFerieH.tooltip=Dperc Aut Pian Ferie H +dpercAutPianFerieH.insert=Inserisci Dperc Aut Pian Ferie H +dpercAutPianFerieH.detail=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.edit=Modifica Dperc Aut Pian Ferie H +dpercAutPianFerieH.delete=Cancella Dperc Aut Pian Ferie H +dpercAutPianFerieH.objectTitle=Dperc Aut Pian Ferie H +dpercAutPianFerieH.objectKey=ID Dperc Aut Pian Ferie H +dpercAutPianFerieH.jasperReports.title=Dperc Aut Pian Ferie H Report +dpercAutPianFerieH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dpercAutPianFerieH.jasperReports.tableHeader=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H +dpercAutPianFerieH.tooltip.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H +dpercAutPianFerieH.validation.required.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H è obbligatorio", +dpercAutPianFerieH.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dpercAutPianFerieH.tooltip.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dpercAutPianFerieH.validation.required.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie è obbligatorio", +dpercAutPianFerieH.fkPercorso=Fk Percorso +dpercAutPianFerieH.tooltip.fkPercorso=Fk Percorso +dpercAutPianFerieH.validation.required.fkPercorso=Fk Percorso è obbligatorio", +dpercAutPianFerieH.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk +dpercAutPianFerieH.tooltip.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk +dpercAutPianFerieH.validation.required.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk è obbligatorio", +dpercAutPianFerieH.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFerieH.tooltip.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFerieH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dpercAutPianFerieH.dataFineValidita=Data Fine Validita +dpercAutPianFerieH.tooltip.dataFineValidita=Data Fine Validita +dpercAutPianFerieH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio", +dpercAutPianFerieH.dataInizioValidita=Data Inizio Validita +dpercAutPianFerieH.tooltip.dataInizioValidita=Data Inizio Validita +dpercAutPianFerieH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dpercAutPianFerieH.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFerieH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFerieH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dpercAutPianFerieH.flagEliminato=Flag Eliminato +dpercAutPianFerieH.tooltip.flagEliminato=Flag Eliminato +dpercAutPianFerieH.validation.required.flagEliminato=Flag Eliminato è obbligatorio" +dpercAutPianFerieH.theDpercAutPianFeriePk=Dperc Aut Pian Ferie Pk +dpercAutPianFerieH.validation.required.theDpercAutPianFeriePk=Dperc Aut Pian Ferie Pk è obbligatorio, +dpercAutPianFerieH.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie +dpercAutPianFerieH.validation.required.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie è obbligatorio +dconfigPaPianiFerie.label=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.tooltip=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.insert=Inserisci Dconfig Pa Piani Ferie +dconfigPaPianiFerie.detail=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.edit=Modifica Dconfig Pa Piani Ferie +dconfigPaPianiFerie.delete=Cancella Dconfig Pa Piani Ferie +dconfigPaPianiFerie.objectTitle=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.objectKey=ID Dconfig Pa Piani Ferie +dconfigPaPianiFerie.jasperReports.title=Dconfig Pa Piani Ferie Report +dconfigPaPianiFerie.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dconfigPaPianiFerie.jasperReports.tableHeader=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.descConfigPaPianoFerie=Desc Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.descConfigPaPianoFerie=Desc Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.descConfigPaPianoFerie=Desc Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.fkAmministrazionePk=Fk Amministrazione Pk +dconfigPaPianiFerie.tooltip.fkAmministrazionePk=Fk Amministrazione Pk +dconfigPaPianiFerie.validation.required.fkAmministrazionePk=Fk Amministrazione Pk è obbligatorio", +dconfigPaPianiFerie.fkTipoOrganigramma=Fk Tipo Organigramma +dconfigPaPianiFerie.tooltip.fkTipoOrganigramma=Fk Tipo Organigramma +dconfigPaPianiFerie.validation.required.fkTipoOrganigramma=Fk Tipo Organigramma è obbligatorio", +dconfigPaPianiFerie.dataUltimaModifica=Data Ultima Modifica +dconfigPaPianiFerie.tooltip.dataUltimaModifica=Data Ultima Modifica +dconfigPaPianiFerie.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dconfigPaPianiFerie.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPianiFerie.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPianiFerie.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dconfigPaPianiFerie.flagEliminato=Flag Eliminato +dconfigPaPianiFerie.tooltip.flagEliminato=Flag Eliminato +dconfigPaPianiFerie.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dconfigPaPianiFerie.dataInizioRecord=Data Inizio Record +dconfigPaPianiFerie.tooltip.dataInizioRecord=Data Inizio Record +dconfigPaPianiFerie.validation.required.dataInizioRecord=Data Inizio Record è obbligatorio", +dconfigPaPianiFerie.dataFineRecord=Data Fine Record +dconfigPaPianiFerie.tooltip.dataFineRecord=Data Fine Record +dconfigPaPianiFerie.validation.required.dataFineRecord=Data Fine Record è obbligatorio" +dconfigPaPfUoH.label=Dconfig Pa Pf Uo H +dconfigPaPfUoH.tooltip=Dconfig Pa Pf Uo H +dconfigPaPfUoH.insert=Inserisci Dconfig Pa Pf Uo H +dconfigPaPfUoH.detail=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.edit=Modifica Dconfig Pa Pf Uo H +dconfigPaPfUoH.delete=Cancella Dconfig Pa Pf Uo H +dconfigPaPfUoH.objectTitle=Dconfig Pa Pf Uo H +dconfigPaPfUoH.objectKey=ID Dconfig Pa Pf Uo H +dconfigPaPfUoH.jasperReports.title=Dconfig Pa Pf Uo H Report +dconfigPaPfUoH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dconfigPaPfUoH.jasperReports.tableHeader=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H +dconfigPaPfUoH.tooltip.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H +dconfigPaPfUoH.validation.required.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H è obbligatorio", +dconfigPaPfUoH.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dconfigPaPfUoH.tooltip.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dconfigPaPfUoH.validation.required.flagValidoUoSubordinate=Flag Valido Uo Subordinate è obbligatorio", +dconfigPaPfUoH.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dconfigPaPfUoH.tooltip.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dconfigPaPfUoH.validation.required.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie è obbligatorio", +dconfigPaPfUoH.fkUnitaFunzionale=Fk Unita Funzionale +dconfigPaPfUoH.tooltip.fkUnitaFunzionale=Fk Unita Funzionale +dconfigPaPfUoH.validation.required.fkUnitaFunzionale=Fk Unita Funzionale è obbligatorio", +dconfigPaPfUoH.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dconfigPaPfUoH.tooltip.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dconfigPaPfUoH.validation.required.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk è obbligatorio", +dconfigPaPfUoH.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPfUoH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPfUoH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dconfigPaPfUoH.flagEliminato=Flag Eliminato +dconfigPaPfUoH.tooltip.flagEliminato=Flag Eliminato +dconfigPaPfUoH.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dconfigPaPfUoH.dataInizioValidita=Data Inizio Validita +dconfigPaPfUoH.tooltip.dataInizioValidita=Data Inizio Validita +dconfigPaPfUoH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dconfigPaPfUoH.dataFineValidita=Data Fine Validita +dconfigPaPfUoH.tooltip.dataFineValidita=Data Fine Validita +dconfigPaPfUoH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio", +dconfigPaPfUoH.dataUltimaModifica=Data Ultima Modifica +dconfigPaPfUoH.tooltip.dataUltimaModifica=Data Ultima Modifica +dconfigPaPfUoH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio" +dconfigPaPfUoH.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie +dconfigPaPfUoH.validation.required.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie è obbligatorio + +## App +app.dregolePianiFeriePk.new=Inserisci Dregole Piani Ferie Pk +app.dregolePianiFeriePk.list=Lista Dregole Piani Ferie Pk +app.dregolePianiFeriePk.edit=Modifica Dregole Piani Ferie Pk +app.dregolePianiFeriePk.view=Dettaglio Dregole Piani Ferie Pk +app.dregolePianiFeriePk.delete=Cancella Dregole Piani Ferie Pk +app.dregolePianiFerieH.new=Inserisci Dregole Piani Ferie H +app.dregolePianiFerieH.list=Lista Dregole Piani Ferie H +app.dregolePianiFerieH.edit=Modifica Dregole Piani Ferie H +app.dregolePianiFerieH.view=Dettaglio Dregole Piani Ferie H +app.dregolePianiFerieH.delete=Cancella Dregole Piani Ferie H +app.dpercAutPianFeriePk.new=Inserisci Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.list=Lista Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.edit=Modifica Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.view=Dettaglio Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.delete=Cancella Dperc Aut Pian Ferie Pk +app.dpercAutPianFerieH.new=Inserisci Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.list=Lista Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.edit=Modifica Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.view=Dettaglio Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.delete=Cancella Dperc Aut Pian Ferie H +app.dconfigPaPianiFerie.new=Inserisci Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.list=Lista Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.edit=Modifica Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.view=Dettaglio Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.delete=Cancella Dconfig Pa Piani Ferie +app.dconfigPaPfUoH.new=Inserisci Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.list=Lista Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.edit=Modifica Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.view=Dettaglio Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.delete=Cancella Dconfig Pa Pf Uo H + +## JasperReports +jasperReports.logo=mice.png +jasperReports.date.format=dd/MM/yyyy +jasperReports.datetime.format=dd/MM/yyyy HH:mm:ss +jasperReports.pageNumber.label=Pag. +jasperReports.pageNumber.separator=di +jasperReports.footer.text=Copyright \u00a9 2020 MICE srl. Tutti i diritti riservati. + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources_en.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources_en.properties new file mode 100644 index 0000000..bf22c41 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources_en.properties @@ -0,0 +1,332 @@ +## Login +login.login=Accedi +login.button=Accedi +login.validation.username=Username è obbligatorio +login.validation.password=La password è obbligatoria +login.label=Effettua l'accesso + +## Pagination +pagination.Showing=Mostra +pagination.ElementsOf=Elementi di +pagination.All=Tutti" + +## Buttons +buttons.new=Nuovo +buttons.save=Salva +buttons.edit=Modifica +buttons.delete=Cancella +buttons.goBack=Indietro +buttons.search=Cerca +buttons.next=Avanti +buttons.export.pdf=Crea PDF + +## Panel +dregolePianiFeriePk.panelTitle.new=Inserisci Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.edit=Modifica Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.view=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.delete=Cancella Dregole Piani Ferie Pk +dregolePianiFerieH.panelTitle.new=Inserisci Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.edit=Modifica Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.view=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.delete=Cancella Dregole Piani Ferie H +dpercAutPianFeriePk.panelTitle.new=Inserisci Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.edit=Modifica Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.view=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.delete=Cancella Dperc Aut Pian Ferie Pk +dpercAutPianFerieH.panelTitle.new=Inserisci Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.edit=Modifica Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.view=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.delete=Cancella Dperc Aut Pian Ferie H +dconfigPaPianiFerie.panelTitle.new=Inserisci Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.edit=Modifica Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.view=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.delete=Cancella Dconfig Pa Piani Ferie +dconfigPaPfUoH.panelTitle.new=Inserisci Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.edit=Modifica Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.view=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.delete=Cancella Dconfig Pa Pf Uo H + +## Detail +dregolePianiFeriePk.label=Dregole Piani Ferie Pk +dregolePianiFeriePk.tooltip=Dregole Piani Ferie Pk +dregolePianiFeriePk.insert=Inserisci Dregole Piani Ferie Pk +dregolePianiFeriePk.detail=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.edit=Modifica Dregole Piani Ferie Pk +dregolePianiFeriePk.delete=Cancella Dregole Piani Ferie Pk +dregolePianiFeriePk.objectTitle=Dregole Piani Ferie Pk +dregolePianiFeriePk.objectKey=ID Dregole Piani Ferie Pk +dregolePianiFeriePk.jasperReports.title=Dregole Piani Ferie Pk Report +dregolePianiFeriePk.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dregolePianiFeriePk.jasperReports.tableHeader=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk +dregolePianiFeriePk.tooltip.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk +dregolePianiFeriePk.validation.required.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk è obbligatorio", +dregolePianiFeriePk.codiRegola=Codi Regola +dregolePianiFeriePk.tooltip.codiRegola=Codi Regola +dregolePianiFeriePk.validation.required.codiRegola=Codi Regola è obbligatorio", +dregolePianiFeriePk.descRegola=Desc Regola +dregolePianiFeriePk.tooltip.descRegola=Desc Regola +dregolePianiFeriePk.validation.required.descRegola=Desc Regola è obbligatorio", +dregolePianiFeriePk.flagEliminato=Flag Eliminato +dregolePianiFeriePk.tooltip.flagEliminato=Flag Eliminato +dregolePianiFeriePk.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dregolePianiFeriePk.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFeriePk.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFeriePk.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dregolePianiFeriePk.dataUltimaModifica=Data Ultima Modifica +dregolePianiFeriePk.tooltip.dataUltimaModifica=Data Ultima Modifica +dregolePianiFeriePk.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dregolePianiFeriePk.dataInizioValidita=Data Inizio Validita +dregolePianiFeriePk.tooltip.dataInizioValidita=Data Inizio Validita +dregolePianiFeriePk.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dregolePianiFeriePk.dataFineValidita=Data Fine Validita +dregolePianiFeriePk.tooltip.dataFineValidita=Data Fine Validita +dregolePianiFeriePk.validation.required.dataFineValidita=Data Fine Validita è obbligatorio" +dregolePianiFerieH.label=Dregole Piani Ferie H +dregolePianiFerieH.tooltip=Dregole Piani Ferie H +dregolePianiFerieH.insert=Inserisci Dregole Piani Ferie H +dregolePianiFerieH.detail=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.edit=Modifica Dregole Piani Ferie H +dregolePianiFerieH.delete=Cancella Dregole Piani Ferie H +dregolePianiFerieH.objectTitle=Dregole Piani Ferie H +dregolePianiFerieH.objectKey=ID Dregole Piani Ferie H +dregolePianiFerieH.jasperReports.title=Dregole Piani Ferie H Report +dregolePianiFerieH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dregolePianiFerieH.jasperReports.tableHeader=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H +dregolePianiFerieH.tooltip.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H +dregolePianiFerieH.validation.required.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H è obbligatorio", +dregolePianiFerieH.numMinGgDaPianificare=Num Min Gg Da Pianificare +dregolePianiFerieH.tooltip.numMinGgDaPianificare=Num Min Gg Da Pianificare +dregolePianiFerieH.validation.required.numMinGgDaPianificare=Num Min Gg Da Pianificare è obbligatorio", +dregolePianiFerieH.numMaxGgDaPianificare=Num Max Gg Da Pianificare +dregolePianiFerieH.tooltip.numMaxGgDaPianificare=Num Max Gg Da Pianificare +dregolePianiFerieH.validation.required.numMaxGgDaPianificare=Num Max Gg Da Pianificare è obbligatorio", +dregolePianiFerieH.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza +dregolePianiFerieH.tooltip.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza +dregolePianiFerieH.validation.required.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza è obbligatorio", +dregolePianiFerieH.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dregolePianiFerieH.tooltip.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dregolePianiFerieH.validation.required.flagValidoUoSubordinate=Flag Valido Uo Subordinate è obbligatorio", +dregolePianiFerieH.fkAmministrazione=Fk Amministrazione +dregolePianiFerieH.tooltip.fkAmministrazione=Fk Amministrazione +dregolePianiFerieH.validation.required.fkAmministrazione=Fk Amministrazione è obbligatorio", +dregolePianiFerieH.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk +dregolePianiFerieH.tooltip.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk +dregolePianiFerieH.validation.required.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk è obbligatorio", +dregolePianiFerieH.fkTipoOrganigramma=Fk Tipo Organigramma +dregolePianiFerieH.tooltip.fkTipoOrganigramma=Fk Tipo Organigramma +dregolePianiFerieH.validation.required.fkTipoOrganigramma=Fk Tipo Organigramma è obbligatorio", +dregolePianiFerieH.fkUnitaFunzionale=Fk Unita Funzionale +dregolePianiFerieH.tooltip.fkUnitaFunzionale=Fk Unita Funzionale +dregolePianiFerieH.validation.required.fkUnitaFunzionale=Fk Unita Funzionale è obbligatorio", +dregolePianiFerieH.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dregolePianiFerieH.tooltip.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dregolePianiFerieH.validation.required.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk è obbligatorio", +dregolePianiFerieH.flagEliminato=Flag Eliminato +dregolePianiFerieH.tooltip.flagEliminato=Flag Eliminato +dregolePianiFerieH.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dregolePianiFerieH.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFerieH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFerieH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dregolePianiFerieH.dataUltimaModifica=Data Ultima Modifica +dregolePianiFerieH.tooltip.dataUltimaModifica=Data Ultima Modifica +dregolePianiFerieH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dregolePianiFerieH.dataInizioValidita=Data Inizio Validita +dregolePianiFerieH.tooltip.dataInizioValidita=Data Inizio Validita +dregolePianiFerieH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dregolePianiFerieH.dataFineValidita=Data Fine Validita +dregolePianiFerieH.tooltip.dataFineValidita=Data Fine Validita +dregolePianiFerieH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio" +dregolePianiFerieH.theDregolePianiFeriePk=Dregole Piani Ferie Pk +dregolePianiFerieH.validation.required.theDregolePianiFeriePk=Dregole Piani Ferie Pk è obbligatorio +dpercAutPianFeriePk.label=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.tooltip=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.insert=Inserisci Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.detail=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.edit=Modifica Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.delete=Cancella Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.objectTitle=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.objectKey=ID Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.jasperReports.title=Dperc Aut Pian Ferie Pk Report +dpercAutPianFeriePk.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dpercAutPianFeriePk.jasperReports.tableHeader=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk +dpercAutPianFeriePk.tooltip.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk +dpercAutPianFeriePk.validation.required.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk è obbligatorio", +dpercAutPianFeriePk.flagEliminato=Flag Eliminato +dpercAutPianFeriePk.tooltip.flagEliminato=Flag Eliminato +dpercAutPianFeriePk.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dpercAutPianFeriePk.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFeriePk.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFeriePk.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dpercAutPianFeriePk.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFeriePk.tooltip.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFeriePk.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio" +dpercAutPianFerieH.label=Dperc Aut Pian Ferie H +dpercAutPianFerieH.tooltip=Dperc Aut Pian Ferie H +dpercAutPianFerieH.insert=Inserisci Dperc Aut Pian Ferie H +dpercAutPianFerieH.detail=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.edit=Modifica Dperc Aut Pian Ferie H +dpercAutPianFerieH.delete=Cancella Dperc Aut Pian Ferie H +dpercAutPianFerieH.objectTitle=Dperc Aut Pian Ferie H +dpercAutPianFerieH.objectKey=ID Dperc Aut Pian Ferie H +dpercAutPianFerieH.jasperReports.title=Dperc Aut Pian Ferie H Report +dpercAutPianFerieH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dpercAutPianFerieH.jasperReports.tableHeader=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H +dpercAutPianFerieH.tooltip.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H +dpercAutPianFerieH.validation.required.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H è obbligatorio", +dpercAutPianFerieH.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dpercAutPianFerieH.tooltip.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dpercAutPianFerieH.validation.required.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie è obbligatorio", +dpercAutPianFerieH.fkPercorso=Fk Percorso +dpercAutPianFerieH.tooltip.fkPercorso=Fk Percorso +dpercAutPianFerieH.validation.required.fkPercorso=Fk Percorso è obbligatorio", +dpercAutPianFerieH.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk +dpercAutPianFerieH.tooltip.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk +dpercAutPianFerieH.validation.required.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk è obbligatorio", +dpercAutPianFerieH.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFerieH.tooltip.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFerieH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dpercAutPianFerieH.dataFineValidita=Data Fine Validita +dpercAutPianFerieH.tooltip.dataFineValidita=Data Fine Validita +dpercAutPianFerieH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio", +dpercAutPianFerieH.dataInizioValidita=Data Inizio Validita +dpercAutPianFerieH.tooltip.dataInizioValidita=Data Inizio Validita +dpercAutPianFerieH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dpercAutPianFerieH.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFerieH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFerieH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dpercAutPianFerieH.flagEliminato=Flag Eliminato +dpercAutPianFerieH.tooltip.flagEliminato=Flag Eliminato +dpercAutPianFerieH.validation.required.flagEliminato=Flag Eliminato è obbligatorio" +dpercAutPianFerieH.theDpercAutPianFeriePk=Dperc Aut Pian Ferie Pk +dpercAutPianFerieH.validation.required.theDpercAutPianFeriePk=Dperc Aut Pian Ferie Pk è obbligatorio, +dpercAutPianFerieH.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie +dpercAutPianFerieH.validation.required.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie è obbligatorio +dconfigPaPianiFerie.label=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.tooltip=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.insert=Inserisci Dconfig Pa Piani Ferie +dconfigPaPianiFerie.detail=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.edit=Modifica Dconfig Pa Piani Ferie +dconfigPaPianiFerie.delete=Cancella Dconfig Pa Piani Ferie +dconfigPaPianiFerie.objectTitle=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.objectKey=ID Dconfig Pa Piani Ferie +dconfigPaPianiFerie.jasperReports.title=Dconfig Pa Piani Ferie Report +dconfigPaPianiFerie.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dconfigPaPianiFerie.jasperReports.tableHeader=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.descConfigPaPianoFerie=Desc Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.descConfigPaPianoFerie=Desc Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.descConfigPaPianoFerie=Desc Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.fkAmministrazionePk=Fk Amministrazione Pk +dconfigPaPianiFerie.tooltip.fkAmministrazionePk=Fk Amministrazione Pk +dconfigPaPianiFerie.validation.required.fkAmministrazionePk=Fk Amministrazione Pk è obbligatorio", +dconfigPaPianiFerie.fkTipoOrganigramma=Fk Tipo Organigramma +dconfigPaPianiFerie.tooltip.fkTipoOrganigramma=Fk Tipo Organigramma +dconfigPaPianiFerie.validation.required.fkTipoOrganigramma=Fk Tipo Organigramma è obbligatorio", +dconfigPaPianiFerie.dataUltimaModifica=Data Ultima Modifica +dconfigPaPianiFerie.tooltip.dataUltimaModifica=Data Ultima Modifica +dconfigPaPianiFerie.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dconfigPaPianiFerie.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPianiFerie.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPianiFerie.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dconfigPaPianiFerie.flagEliminato=Flag Eliminato +dconfigPaPianiFerie.tooltip.flagEliminato=Flag Eliminato +dconfigPaPianiFerie.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dconfigPaPianiFerie.dataInizioRecord=Data Inizio Record +dconfigPaPianiFerie.tooltip.dataInizioRecord=Data Inizio Record +dconfigPaPianiFerie.validation.required.dataInizioRecord=Data Inizio Record è obbligatorio", +dconfigPaPianiFerie.dataFineRecord=Data Fine Record +dconfigPaPianiFerie.tooltip.dataFineRecord=Data Fine Record +dconfigPaPianiFerie.validation.required.dataFineRecord=Data Fine Record è obbligatorio" +dconfigPaPfUoH.label=Dconfig Pa Pf Uo H +dconfigPaPfUoH.tooltip=Dconfig Pa Pf Uo H +dconfigPaPfUoH.insert=Inserisci Dconfig Pa Pf Uo H +dconfigPaPfUoH.detail=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.edit=Modifica Dconfig Pa Pf Uo H +dconfigPaPfUoH.delete=Cancella Dconfig Pa Pf Uo H +dconfigPaPfUoH.objectTitle=Dconfig Pa Pf Uo H +dconfigPaPfUoH.objectKey=ID Dconfig Pa Pf Uo H +dconfigPaPfUoH.jasperReports.title=Dconfig Pa Pf Uo H Report +dconfigPaPfUoH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dconfigPaPfUoH.jasperReports.tableHeader=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H +dconfigPaPfUoH.tooltip.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H +dconfigPaPfUoH.validation.required.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H è obbligatorio", +dconfigPaPfUoH.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dconfigPaPfUoH.tooltip.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dconfigPaPfUoH.validation.required.flagValidoUoSubordinate=Flag Valido Uo Subordinate è obbligatorio", +dconfigPaPfUoH.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dconfigPaPfUoH.tooltip.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dconfigPaPfUoH.validation.required.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie è obbligatorio", +dconfigPaPfUoH.fkUnitaFunzionale=Fk Unita Funzionale +dconfigPaPfUoH.tooltip.fkUnitaFunzionale=Fk Unita Funzionale +dconfigPaPfUoH.validation.required.fkUnitaFunzionale=Fk Unita Funzionale è obbligatorio", +dconfigPaPfUoH.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dconfigPaPfUoH.tooltip.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dconfigPaPfUoH.validation.required.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk è obbligatorio", +dconfigPaPfUoH.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPfUoH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPfUoH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dconfigPaPfUoH.flagEliminato=Flag Eliminato +dconfigPaPfUoH.tooltip.flagEliminato=Flag Eliminato +dconfigPaPfUoH.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dconfigPaPfUoH.dataInizioValidita=Data Inizio Validita +dconfigPaPfUoH.tooltip.dataInizioValidita=Data Inizio Validita +dconfigPaPfUoH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dconfigPaPfUoH.dataFineValidita=Data Fine Validita +dconfigPaPfUoH.tooltip.dataFineValidita=Data Fine Validita +dconfigPaPfUoH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio", +dconfigPaPfUoH.dataUltimaModifica=Data Ultima Modifica +dconfigPaPfUoH.tooltip.dataUltimaModifica=Data Ultima Modifica +dconfigPaPfUoH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio" +dconfigPaPfUoH.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie +dconfigPaPfUoH.validation.required.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie è obbligatorio + +## App +app.dregolePianiFeriePk.new=Inserisci Dregole Piani Ferie Pk +app.dregolePianiFeriePk.list=Lista Dregole Piani Ferie Pk +app.dregolePianiFeriePk.edit=Modifica Dregole Piani Ferie Pk +app.dregolePianiFeriePk.view=Dettaglio Dregole Piani Ferie Pk +app.dregolePianiFeriePk.delete=Cancella Dregole Piani Ferie Pk +app.dregolePianiFerieH.new=Inserisci Dregole Piani Ferie H +app.dregolePianiFerieH.list=Lista Dregole Piani Ferie H +app.dregolePianiFerieH.edit=Modifica Dregole Piani Ferie H +app.dregolePianiFerieH.view=Dettaglio Dregole Piani Ferie H +app.dregolePianiFerieH.delete=Cancella Dregole Piani Ferie H +app.dpercAutPianFeriePk.new=Inserisci Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.list=Lista Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.edit=Modifica Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.view=Dettaglio Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.delete=Cancella Dperc Aut Pian Ferie Pk +app.dpercAutPianFerieH.new=Inserisci Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.list=Lista Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.edit=Modifica Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.view=Dettaglio Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.delete=Cancella Dperc Aut Pian Ferie H +app.dconfigPaPianiFerie.new=Inserisci Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.list=Lista Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.edit=Modifica Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.view=Dettaglio Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.delete=Cancella Dconfig Pa Piani Ferie +app.dconfigPaPfUoH.new=Inserisci Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.list=Lista Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.edit=Modifica Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.view=Dettaglio Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.delete=Cancella Dconfig Pa Pf Uo H + +## JasperReports +jasperReports.logo=mice.png +jasperReports.date.format=dd/MM/yyyy +jasperReports.datetime.format=dd/MM/yyyy HH:mm:ss +jasperReports.pageNumber.label=Pag. +jasperReports.pageNumber.separator=di +jasperReports.footer.text=Copyright \u00a9 2020 MICE srl. Tutti i diritti riservati. + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources_it.properties b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources_it.properties new file mode 100644 index 0000000..bf22c41 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/applicationResources_it.properties @@ -0,0 +1,332 @@ +## Login +login.login=Accedi +login.button=Accedi +login.validation.username=Username è obbligatorio +login.validation.password=La password è obbligatoria +login.label=Effettua l'accesso + +## Pagination +pagination.Showing=Mostra +pagination.ElementsOf=Elementi di +pagination.All=Tutti" + +## Buttons +buttons.new=Nuovo +buttons.save=Salva +buttons.edit=Modifica +buttons.delete=Cancella +buttons.goBack=Indietro +buttons.search=Cerca +buttons.next=Avanti +buttons.export.pdf=Crea PDF + +## Panel +dregolePianiFeriePk.panelTitle.new=Inserisci Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.edit=Modifica Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.view=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.panelTitle.delete=Cancella Dregole Piani Ferie Pk +dregolePianiFerieH.panelTitle.new=Inserisci Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.edit=Modifica Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.view=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.panelTitle.delete=Cancella Dregole Piani Ferie H +dpercAutPianFeriePk.panelTitle.new=Inserisci Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.edit=Modifica Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.view=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.panelTitle.delete=Cancella Dperc Aut Pian Ferie Pk +dpercAutPianFerieH.panelTitle.new=Inserisci Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.edit=Modifica Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.view=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.panelTitle.delete=Cancella Dperc Aut Pian Ferie H +dconfigPaPianiFerie.panelTitle.new=Inserisci Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.edit=Modifica Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.view=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.panelTitle.delete=Cancella Dconfig Pa Piani Ferie +dconfigPaPfUoH.panelTitle.new=Inserisci Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.edit=Modifica Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.view=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.panelTitle.delete=Cancella Dconfig Pa Pf Uo H + +## Detail +dregolePianiFeriePk.label=Dregole Piani Ferie Pk +dregolePianiFeriePk.tooltip=Dregole Piani Ferie Pk +dregolePianiFeriePk.insert=Inserisci Dregole Piani Ferie Pk +dregolePianiFeriePk.detail=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.edit=Modifica Dregole Piani Ferie Pk +dregolePianiFeriePk.delete=Cancella Dregole Piani Ferie Pk +dregolePianiFeriePk.objectTitle=Dregole Piani Ferie Pk +dregolePianiFeriePk.objectKey=ID Dregole Piani Ferie Pk +dregolePianiFeriePk.jasperReports.title=Dregole Piani Ferie Pk Report +dregolePianiFeriePk.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dregolePianiFeriePk.jasperReports.tableHeader=Dettaglio Dregole Piani Ferie Pk +dregolePianiFeriePk.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk +dregolePianiFeriePk.tooltip.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk +dregolePianiFeriePk.validation.required.sequIdRegolePianiFeriePk=Sequ Id Regole Piani Ferie Pk è obbligatorio", +dregolePianiFeriePk.codiRegola=Codi Regola +dregolePianiFeriePk.tooltip.codiRegola=Codi Regola +dregolePianiFeriePk.validation.required.codiRegola=Codi Regola è obbligatorio", +dregolePianiFeriePk.descRegola=Desc Regola +dregolePianiFeriePk.tooltip.descRegola=Desc Regola +dregolePianiFeriePk.validation.required.descRegola=Desc Regola è obbligatorio", +dregolePianiFeriePk.flagEliminato=Flag Eliminato +dregolePianiFeriePk.tooltip.flagEliminato=Flag Eliminato +dregolePianiFeriePk.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dregolePianiFeriePk.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFeriePk.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFeriePk.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dregolePianiFeriePk.dataUltimaModifica=Data Ultima Modifica +dregolePianiFeriePk.tooltip.dataUltimaModifica=Data Ultima Modifica +dregolePianiFeriePk.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dregolePianiFeriePk.dataInizioValidita=Data Inizio Validita +dregolePianiFeriePk.tooltip.dataInizioValidita=Data Inizio Validita +dregolePianiFeriePk.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dregolePianiFeriePk.dataFineValidita=Data Fine Validita +dregolePianiFeriePk.tooltip.dataFineValidita=Data Fine Validita +dregolePianiFeriePk.validation.required.dataFineValidita=Data Fine Validita è obbligatorio" +dregolePianiFerieH.label=Dregole Piani Ferie H +dregolePianiFerieH.tooltip=Dregole Piani Ferie H +dregolePianiFerieH.insert=Inserisci Dregole Piani Ferie H +dregolePianiFerieH.detail=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.edit=Modifica Dregole Piani Ferie H +dregolePianiFerieH.delete=Cancella Dregole Piani Ferie H +dregolePianiFerieH.objectTitle=Dregole Piani Ferie H +dregolePianiFerieH.objectKey=ID Dregole Piani Ferie H +dregolePianiFerieH.jasperReports.title=Dregole Piani Ferie H Report +dregolePianiFerieH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dregolePianiFerieH.jasperReports.tableHeader=Dettaglio Dregole Piani Ferie H +dregolePianiFerieH.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H +dregolePianiFerieH.tooltip.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H +dregolePianiFerieH.validation.required.sequIdRegolePianiFerieH=Sequ Id Regole Piani Ferie H è obbligatorio", +dregolePianiFerieH.numMinGgDaPianificare=Num Min Gg Da Pianificare +dregolePianiFerieH.tooltip.numMinGgDaPianificare=Num Min Gg Da Pianificare +dregolePianiFerieH.validation.required.numMinGgDaPianificare=Num Min Gg Da Pianificare è obbligatorio", +dregolePianiFerieH.numMaxGgDaPianificare=Num Max Gg Da Pianificare +dregolePianiFerieH.tooltip.numMaxGgDaPianificare=Num Max Gg Da Pianificare +dregolePianiFerieH.validation.required.numMaxGgDaPianificare=Num Max Gg Da Pianificare è obbligatorio", +dregolePianiFerieH.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza +dregolePianiFerieH.tooltip.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza +dregolePianiFerieH.validation.required.numePercMinGiorniPresenza=Nume Perc Min Giorni Presenza è obbligatorio", +dregolePianiFerieH.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dregolePianiFerieH.tooltip.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dregolePianiFerieH.validation.required.flagValidoUoSubordinate=Flag Valido Uo Subordinate è obbligatorio", +dregolePianiFerieH.fkAmministrazione=Fk Amministrazione +dregolePianiFerieH.tooltip.fkAmministrazione=Fk Amministrazione +dregolePianiFerieH.validation.required.fkAmministrazione=Fk Amministrazione è obbligatorio", +dregolePianiFerieH.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk +dregolePianiFerieH.tooltip.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk +dregolePianiFerieH.validation.required.fkRegolaPianoFeriePk=Fk Regola Piano Ferie Pk è obbligatorio", +dregolePianiFerieH.fkTipoOrganigramma=Fk Tipo Organigramma +dregolePianiFerieH.tooltip.fkTipoOrganigramma=Fk Tipo Organigramma +dregolePianiFerieH.validation.required.fkTipoOrganigramma=Fk Tipo Organigramma è obbligatorio", +dregolePianiFerieH.fkUnitaFunzionale=Fk Unita Funzionale +dregolePianiFerieH.tooltip.fkUnitaFunzionale=Fk Unita Funzionale +dregolePianiFerieH.validation.required.fkUnitaFunzionale=Fk Unita Funzionale è obbligatorio", +dregolePianiFerieH.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dregolePianiFerieH.tooltip.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dregolePianiFerieH.validation.required.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk è obbligatorio", +dregolePianiFerieH.flagEliminato=Flag Eliminato +dregolePianiFerieH.tooltip.flagEliminato=Flag Eliminato +dregolePianiFerieH.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dregolePianiFerieH.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFerieH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dregolePianiFerieH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dregolePianiFerieH.dataUltimaModifica=Data Ultima Modifica +dregolePianiFerieH.tooltip.dataUltimaModifica=Data Ultima Modifica +dregolePianiFerieH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dregolePianiFerieH.dataInizioValidita=Data Inizio Validita +dregolePianiFerieH.tooltip.dataInizioValidita=Data Inizio Validita +dregolePianiFerieH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dregolePianiFerieH.dataFineValidita=Data Fine Validita +dregolePianiFerieH.tooltip.dataFineValidita=Data Fine Validita +dregolePianiFerieH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio" +dregolePianiFerieH.theDregolePianiFeriePk=Dregole Piani Ferie Pk +dregolePianiFerieH.validation.required.theDregolePianiFeriePk=Dregole Piani Ferie Pk è obbligatorio +dpercAutPianFeriePk.label=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.tooltip=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.insert=Inserisci Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.detail=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.edit=Modifica Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.delete=Cancella Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.objectTitle=Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.objectKey=ID Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.jasperReports.title=Dperc Aut Pian Ferie Pk Report +dpercAutPianFeriePk.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dpercAutPianFeriePk.jasperReports.tableHeader=Dettaglio Dperc Aut Pian Ferie Pk +dpercAutPianFeriePk.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk +dpercAutPianFeriePk.tooltip.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk +dpercAutPianFeriePk.validation.required.sequIdPercAutPianFeriePk=Sequ Id Perc Aut Pian Ferie Pk è obbligatorio", +dpercAutPianFeriePk.flagEliminato=Flag Eliminato +dpercAutPianFeriePk.tooltip.flagEliminato=Flag Eliminato +dpercAutPianFeriePk.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dpercAutPianFeriePk.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFeriePk.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFeriePk.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dpercAutPianFeriePk.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFeriePk.tooltip.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFeriePk.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio" +dpercAutPianFerieH.label=Dperc Aut Pian Ferie H +dpercAutPianFerieH.tooltip=Dperc Aut Pian Ferie H +dpercAutPianFerieH.insert=Inserisci Dperc Aut Pian Ferie H +dpercAutPianFerieH.detail=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.edit=Modifica Dperc Aut Pian Ferie H +dpercAutPianFerieH.delete=Cancella Dperc Aut Pian Ferie H +dpercAutPianFerieH.objectTitle=Dperc Aut Pian Ferie H +dpercAutPianFerieH.objectKey=ID Dperc Aut Pian Ferie H +dpercAutPianFerieH.jasperReports.title=Dperc Aut Pian Ferie H Report +dpercAutPianFerieH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dpercAutPianFerieH.jasperReports.tableHeader=Dettaglio Dperc Aut Pian Ferie H +dpercAutPianFerieH.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H +dpercAutPianFerieH.tooltip.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H +dpercAutPianFerieH.validation.required.sequIdPercAutPianFerieH=Sequ Id Perc Aut Pian Ferie H è obbligatorio", +dpercAutPianFerieH.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dpercAutPianFerieH.tooltip.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dpercAutPianFerieH.validation.required.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie è obbligatorio", +dpercAutPianFerieH.fkPercorso=Fk Percorso +dpercAutPianFerieH.tooltip.fkPercorso=Fk Percorso +dpercAutPianFerieH.validation.required.fkPercorso=Fk Percorso è obbligatorio", +dpercAutPianFerieH.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk +dpercAutPianFerieH.tooltip.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk +dpercAutPianFerieH.validation.required.fkPercAutPianFeriePk=Fk Perc Aut Pian Ferie Pk è obbligatorio", +dpercAutPianFerieH.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFerieH.tooltip.dataUltimaModifica=Data Ultima Modifica +dpercAutPianFerieH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dpercAutPianFerieH.dataFineValidita=Data Fine Validita +dpercAutPianFerieH.tooltip.dataFineValidita=Data Fine Validita +dpercAutPianFerieH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio", +dpercAutPianFerieH.dataInizioValidita=Data Inizio Validita +dpercAutPianFerieH.tooltip.dataInizioValidita=Data Inizio Validita +dpercAutPianFerieH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dpercAutPianFerieH.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFerieH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dpercAutPianFerieH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dpercAutPianFerieH.flagEliminato=Flag Eliminato +dpercAutPianFerieH.tooltip.flagEliminato=Flag Eliminato +dpercAutPianFerieH.validation.required.flagEliminato=Flag Eliminato è obbligatorio" +dpercAutPianFerieH.theDpercAutPianFeriePk=Dperc Aut Pian Ferie Pk +dpercAutPianFerieH.validation.required.theDpercAutPianFeriePk=Dperc Aut Pian Ferie Pk è obbligatorio, +dpercAutPianFerieH.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie +dpercAutPianFerieH.validation.required.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie è obbligatorio +dconfigPaPianiFerie.label=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.tooltip=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.insert=Inserisci Dconfig Pa Piani Ferie +dconfigPaPianiFerie.detail=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.edit=Modifica Dconfig Pa Piani Ferie +dconfigPaPianiFerie.delete=Cancella Dconfig Pa Piani Ferie +dconfigPaPianiFerie.objectTitle=Dconfig Pa Piani Ferie +dconfigPaPianiFerie.objectKey=ID Dconfig Pa Piani Ferie +dconfigPaPianiFerie.jasperReports.title=Dconfig Pa Piani Ferie Report +dconfigPaPianiFerie.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dconfigPaPianiFerie.jasperReports.tableHeader=Dettaglio Dconfig Pa Piani Ferie +dconfigPaPianiFerie.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.sequIdConfigPaPianoFerie=Sequ Id Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.codiConfigPaPianoFerie=Codi Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.descConfigPaPianoFerie=Desc Config Pa Piano Ferie +dconfigPaPianiFerie.tooltip.descConfigPaPianoFerie=Desc Config Pa Piano Ferie +dconfigPaPianiFerie.validation.required.descConfigPaPianoFerie=Desc Config Pa Piano Ferie è obbligatorio", +dconfigPaPianiFerie.fkAmministrazionePk=Fk Amministrazione Pk +dconfigPaPianiFerie.tooltip.fkAmministrazionePk=Fk Amministrazione Pk +dconfigPaPianiFerie.validation.required.fkAmministrazionePk=Fk Amministrazione Pk è obbligatorio", +dconfigPaPianiFerie.fkTipoOrganigramma=Fk Tipo Organigramma +dconfigPaPianiFerie.tooltip.fkTipoOrganigramma=Fk Tipo Organigramma +dconfigPaPianiFerie.validation.required.fkTipoOrganigramma=Fk Tipo Organigramma è obbligatorio", +dconfigPaPianiFerie.dataUltimaModifica=Data Ultima Modifica +dconfigPaPianiFerie.tooltip.dataUltimaModifica=Data Ultima Modifica +dconfigPaPianiFerie.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio", +dconfigPaPianiFerie.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPianiFerie.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPianiFerie.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dconfigPaPianiFerie.flagEliminato=Flag Eliminato +dconfigPaPianiFerie.tooltip.flagEliminato=Flag Eliminato +dconfigPaPianiFerie.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dconfigPaPianiFerie.dataInizioRecord=Data Inizio Record +dconfigPaPianiFerie.tooltip.dataInizioRecord=Data Inizio Record +dconfigPaPianiFerie.validation.required.dataInizioRecord=Data Inizio Record è obbligatorio", +dconfigPaPianiFerie.dataFineRecord=Data Fine Record +dconfigPaPianiFerie.tooltip.dataFineRecord=Data Fine Record +dconfigPaPianiFerie.validation.required.dataFineRecord=Data Fine Record è obbligatorio" +dconfigPaPfUoH.label=Dconfig Pa Pf Uo H +dconfigPaPfUoH.tooltip=Dconfig Pa Pf Uo H +dconfigPaPfUoH.insert=Inserisci Dconfig Pa Pf Uo H +dconfigPaPfUoH.detail=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.edit=Modifica Dconfig Pa Pf Uo H +dconfigPaPfUoH.delete=Cancella Dconfig Pa Pf Uo H +dconfigPaPfUoH.objectTitle=Dconfig Pa Pf Uo H +dconfigPaPfUoH.objectKey=ID Dconfig Pa Pf Uo H +dconfigPaPfUoH.jasperReports.title=Dconfig Pa Pf Uo H Report +dconfigPaPfUoH.jasperReports.subTitle=Gestioneferie-ms-configurazionepf, v0.0.1-SNAPSHOT +dconfigPaPfUoH.jasperReports.tableHeader=Dettaglio Dconfig Pa Pf Uo H +dconfigPaPfUoH.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H +dconfigPaPfUoH.tooltip.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H +dconfigPaPfUoH.validation.required.sequIdConfigPaPfUoH=Sequ Id Config Pa Pf Uo H è obbligatorio", +dconfigPaPfUoH.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dconfigPaPfUoH.tooltip.flagValidoUoSubordinate=Flag Valido Uo Subordinate +dconfigPaPfUoH.validation.required.flagValidoUoSubordinate=Flag Valido Uo Subordinate è obbligatorio", +dconfigPaPfUoH.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dconfigPaPfUoH.tooltip.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie +dconfigPaPfUoH.validation.required.fkConfigPaPianoFerie=Fk Config Pa Piano Ferie è obbligatorio", +dconfigPaPfUoH.fkUnitaFunzionale=Fk Unita Funzionale +dconfigPaPfUoH.tooltip.fkUnitaFunzionale=Fk Unita Funzionale +dconfigPaPfUoH.validation.required.fkUnitaFunzionale=Fk Unita Funzionale è obbligatorio", +dconfigPaPfUoH.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dconfigPaPfUoH.tooltip.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk +dconfigPaPfUoH.validation.required.fkUnitaOrganizzativaPk=Fk Unita Organizzativa Pk è obbligatorio", +dconfigPaPfUoH.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPfUoH.tooltip.utenteUltimaModifica=Utente Ultima Modifica +dconfigPaPfUoH.validation.required.utenteUltimaModifica=Utente Ultima Modifica è obbligatorio", +dconfigPaPfUoH.flagEliminato=Flag Eliminato +dconfigPaPfUoH.tooltip.flagEliminato=Flag Eliminato +dconfigPaPfUoH.validation.required.flagEliminato=Flag Eliminato è obbligatorio", +dconfigPaPfUoH.dataInizioValidita=Data Inizio Validita +dconfigPaPfUoH.tooltip.dataInizioValidita=Data Inizio Validita +dconfigPaPfUoH.validation.required.dataInizioValidita=Data Inizio Validita è obbligatorio", +dconfigPaPfUoH.dataFineValidita=Data Fine Validita +dconfigPaPfUoH.tooltip.dataFineValidita=Data Fine Validita +dconfigPaPfUoH.validation.required.dataFineValidita=Data Fine Validita è obbligatorio", +dconfigPaPfUoH.dataUltimaModifica=Data Ultima Modifica +dconfigPaPfUoH.tooltip.dataUltimaModifica=Data Ultima Modifica +dconfigPaPfUoH.validation.required.dataUltimaModifica=Data Ultima Modifica è obbligatorio" +dconfigPaPfUoH.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie +dconfigPaPfUoH.validation.required.theDconfigPaPianiFerie=Dconfig Pa Piani Ferie è obbligatorio + +## App +app.dregolePianiFeriePk.new=Inserisci Dregole Piani Ferie Pk +app.dregolePianiFeriePk.list=Lista Dregole Piani Ferie Pk +app.dregolePianiFeriePk.edit=Modifica Dregole Piani Ferie Pk +app.dregolePianiFeriePk.view=Dettaglio Dregole Piani Ferie Pk +app.dregolePianiFeriePk.delete=Cancella Dregole Piani Ferie Pk +app.dregolePianiFerieH.new=Inserisci Dregole Piani Ferie H +app.dregolePianiFerieH.list=Lista Dregole Piani Ferie H +app.dregolePianiFerieH.edit=Modifica Dregole Piani Ferie H +app.dregolePianiFerieH.view=Dettaglio Dregole Piani Ferie H +app.dregolePianiFerieH.delete=Cancella Dregole Piani Ferie H +app.dpercAutPianFeriePk.new=Inserisci Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.list=Lista Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.edit=Modifica Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.view=Dettaglio Dperc Aut Pian Ferie Pk +app.dpercAutPianFeriePk.delete=Cancella Dperc Aut Pian Ferie Pk +app.dpercAutPianFerieH.new=Inserisci Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.list=Lista Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.edit=Modifica Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.view=Dettaglio Dperc Aut Pian Ferie H +app.dpercAutPianFerieH.delete=Cancella Dperc Aut Pian Ferie H +app.dconfigPaPianiFerie.new=Inserisci Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.list=Lista Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.edit=Modifica Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.view=Dettaglio Dconfig Pa Piani Ferie +app.dconfigPaPianiFerie.delete=Cancella Dconfig Pa Piani Ferie +app.dconfigPaPfUoH.new=Inserisci Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.list=Lista Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.edit=Modifica Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.view=Dettaglio Dconfig Pa Pf Uo H +app.dconfigPaPfUoH.delete=Cancella Dconfig Pa Pf Uo H + +## JasperReports +jasperReports.logo=mice.png +jasperReports.date.format=dd/MM/yyyy +jasperReports.datetime.format=dd/MM/yyyy HH:mm:ss +jasperReports.pageNumber.label=Pag. +jasperReports.pageNumber.separator=di +jasperReports.footer.text=Copyright \u00a9 2020 MICE srl. Tutti i diritti riservati. + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/changeset/initDataDb.xml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/changeset/initDataDb.xml new file mode 100644 index 0000000..5df6b60 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/changeset/initDataDb.xml @@ -0,0 +1,16 @@ + + + + + ANY + + Inizializzazione del db + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/sql/initDbScript.sql b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/sql/initDbScript.sql new file mode 100644 index 0000000..29647af --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/sql/initDbScript.sql @@ -0,0 +1,9 @@ + + +INSERT INTO CLIENTE VALUES ('dottore','PPPPPPP','ciao@example.com','08111111','mice','DFO383AFA','pippo','www.ciao.it','08113434','bakugo'); +INSERT IGNORE INTO TIPO_ORDINE (`id_tipo_ordine`, `nome_tipo_ordine`) VALUES (1,'fornitore'); +INSERT IGNORE INTO TIPO_ORDINE (`id_tipo_ordine`, `nome_tipo_ordine`) VALUES (2,'ignora') ; +INSERT IGNORE INTO PRODOTTO (`id_prodotto`, `created_by`, `created_date`, `last_modified_by`, `last_modified_date`, `descrizione_prodotto`, `prezzo_unitario`, `scheda_tecnica`) VALUES (1, 'anonymousUser', '2021-09-15 15:17:04.766', 'anonymousUser', '2021-09-15 15:17:04.766','Pentola in acciaio inox',14.50, 0x89504e470d0a1a0a0000000d49484452000001e1000001f90806000000b6cf86f80000825a744558746d7866696c65002533436d7866696c65253230686f73742533442532326170702e6469616772616d732e6e65742532322532306d6f646966696564253344253232323032312d30362d3134543133253341323225334131352e3530365a2532322532306167656e74253344253232352e302532302857696e646f77732532304e5425323031302e3025334225323057696e3634253342253230783634292532304170706c655765624b69742532463533372e3336253230284b48544d4c2532432532306c696b652532304765636b6f292532304368726f6d6525324639312e302e343437322e3130312532305361666172692532463533372e333625323225323065746167253344253232767a6e49774663496e59374134333047412d545525323225323076657273696f6e25334425323231342e372e37253232253230747970652533442532326465766963652532322533452533436469616772616d2532306964253344253232734e3869355a3476387363586a5653744a6c62582532322532306e616d65253344253232506167652d31253232253345374c315838253242504b665362386158527046584b34524534456b5968343430496b63694c79703325324652253246356c6a535a62733358314c33765857636d724f496445496a66376c30412532466e54796a58486449636a36552532425a486e374a77544b6a6a253242682532464a3851424559773676344149253242657645514c4866673238357972376664466642707a71796e3850517239483179724c5033397a3454494d37564b4e667a7559446e3266703876666a4d587a504f7825324665316b787448383736786925324638373862634e4b34253246667452763871573874636f685a42253246475a667a366c332532424d544e4d304c2532464f645045664625324639657961654d7332482532467179465525324242504b7a634f7725324650725748567a6541754c39515a646639346e25324677646c253246653745353735662532466d527547494a304e715758555575316b35763276577a7a412532462532464c374b567663727238583746543925324231343841706d414d676a456a474e627066465344663266454b4b3970324b54253242663732427425324625324247506d4d635125324257754a7925324636555a4d4b31675857777a3938692532463762774978397958394d48647825324235634c2532466e67533037253246584e70365250353534722532425058512532462532425943506d623579507a73505a5a4470594733616633736c70795a3478546348612532464a6645654b3565757659396738425a5632334a444f3877253246393649466c655a70436c35376d59636d25324636737a4359566a4f505437765a33667325324631426f33786538754d2532464a4437386279793964534566756e795a7a253246755350323467666b764225324259643477332532464766343373667845724450743956666c58496b5839486f74253246532532464c37337837253242463262665833377a253242332532424239386a663866377671487a4c374169253242567432506d7677315451453562726c6f6d625a363925324666594d6f782532464e6671496b377731683025324631497a636f6e777a4c4d6e54334253303477635a703825324637683446397a3565665066636e505a4d786e2532464b584f674276784877644664514365733725324666687925324258426467424268414345644f73782532463563335a61677147375a6d5025324263336a4d695968597638663042786a253246335a7a75386838253242253246784833324c386c3825324678384d345443674a414c253246363238682532464664777a6225324625324275684247714425324250253246667566495149302532464c636938496468253242477342515025324265253246332532424d2532466450356a253246344425324676395738442532465554712532465365666958547a35763156554e66365762796225324233414825324278436334343379596b4158627433316d506636494b5a33684f5a6467253246556d454b535643432532424163432532426d386925324246253242677a696a7839377a384e253246372532424e54507025324679706c4a7635445a674a54396825324662357325324250787757572532425637253246386664322532426339253246253246764e66736633587325324634446b337954632532466c62707630746325324671687a25324638644a3338507862395a6c4e376b7a25324264253246774c7575796a49777a54253242556b72253242566f333843647a4830333347582532466e745454524a2532467a317a6b763471354d504633784d367a4f307a3566546a4d53336b62717a357568622532424d2532466a75792532464f576178774173395139253246366e785a7a743878563777757739397937366257664162672532466a386a2532424225324648345625324266354925324666542532463931645034253242253242697a78764441672532424149386265505070307225324647426172396f2532466e253246316f54574d682532467a71643733634d36702532466c2532465171446651655939775474662532466a4e4334762532425938585065336a5a7125324239735825324261657a6b66706664376a2532464448253246366a7a3331502532466170662532424e322532462532464379507834555a58346449754b504f25324251716a7a587348644b6b393844636635364f5777727525324225324634576755504a34686a392532467554514d4c31394258742532466651584236507179375952422532426b356c6459753639684d354c4a5148624b7449486862374963504964557847593553564a373634775432626267306d6b384769667078516a4462532532465453787a74564c5656336e556e466e756f3966754f376f52784f394c585a4e6a3046414325324244344335684565524c376a4b7432776c3545614247786f624a68767125324669755a4634506c4e796638734457317a77363734384c36503777467770796c547568374971444a354d444f6f56784d633758513471674d3064584e4c666a47544a6453533273462532464d6a43655a486479366a5939314e6776535448765534753433594f75686f50545976496e39705079554a4176344c453630656f4c5a5544526765756e35695235513672253242733757466549456f6858507078667a5a4d764a55525655597532616a336b25324267364270484b6261445a5434477452556f565a517643486e793738796b3276502532424c5276732532424c6e4d47685437786454356363734d6f36543468753243524339626370792532426e467135726b253242664c4f4b586f38524d33735a7662466c75785a69754e7a7a37654546506455793370487243575a253246694f63583547504b714638753672735951454e31786f30613746566f7077485433364644654c74536e546c5572537053784c646a4d6f637562435963443774735472514c4b5a4135366e4e4d7739644772664272324871442532424f454c53473764673865674572506c68726d7357796c6851613077664f556f5225324243346c4370594352354c617932253246316c6f7947495236665077564d4764486d66665a356d496978727265253246785137512532424b6e3351546737454c55487a54533432253246425861544c4a7777624e2532427036594a48253246787276384d594d585a7559724235637858796c4857253246714641464e3531456d32414557647a4353796b625379797357625865453358414a61654570333566384d5a6225324265774a35253242337a427462467668356e72694d516a37557562766e6755756d38565a726c33253246716d367572514e654f556c304f6a4963576a4450433566624a375735324a6e346a546c557a5070686c5772356c47253242253246574734326e4325324665704f496475496c423045527258543839706c336b496f7a2532466548644a6d4245344f4830253246516c595552613852387236666d643149326e71554e494847564a4575467735563755253246504461466c36794945426b71656374427775434a45754b6c4837566c51743965766c563925324644794e4d33312532425970667236785937776348253246703267417935667a356b6b626e6c6b253242306577646357472532427461327a6272627536384a4d4f4c7a6a6b746b6f79564f5556374e6a697549667243586d7265576f426e563247253242446e7737587a52577a7952746f5535565a6831512532466c614e77312532464853714e43436931596779304274454453586e7a49396f64316a6f365955434f734d744f7836394c6576756d64666172516e374f5546356173416d2532422532464645512532465745563450713141784645672532426339737652487a414166347244336777786533435a62435164547667495849696d7170366c33614133726274726451736961674a5055547a7843585a346f78564e6233764731684e57523047652532426a5a754e54776c556a643073464e59366369793763496555386d6d6775524a5563766b786f6561326b7234474649483163464433354354463052253242375625324256456e706b2532427677356e6874656456794965695a4773584855346e785777364b324b4d7a595948664a56792532464f746b4b425a4c6658716254427a4e555a4d636458435059413136704e61546a3043554f6372346d334e594d66634e4f7a697471435377444c4a505634586956495250336b5a41593738476b443974493250416a6e3374696a6d436f456c4763776d616339686858784c494255497367594769675235417639525771334a25324638686a64574c74664a4770356d7264634c394e7875533978307549796b656d4467653372432532426b35473573637a505945526c6d4c4f6e305247342532425055417531783133326b475a6c386465253246344d647a4d594675382532464852325448714f464167724746486773566831673465757a624f6b394253543245656253354179576e3377585a777463457359634e68397041434f354b37724668353574794a796879617549784c47472532466a63434336505a6a7a5a39677a643372495666576a345057454372253246615763306b346e5168656246413958516d5943253242326c756341383667515548394f59685573436b31334f614f706f566a756625324239756950724772506e6462382532464264754f395a56506c4e6925324225324279566a253242333932457656736337253246466d253246794a66253242656361426139534a78596656346b6f3741324850765634484f5354444e56356d61414132785a7831527156336f375072326358575054426539704d25324264414737733144327878537665435a56682532463373786731716845596e51362532466d5655586c327041554c745a746f57757644667471377a44764e4a573671766e4b7547386378754379323936656b334a37514d4153694a384767554f384a625858324f74647169306a644273706c6e716c37347679327a34586b5230797053665837485471477a2532466134754a474733487875544d7a6179586c6a6e5337657a365038586f393052456a35336d75253242444f467334444e716a6447354d4c45686a544e6b596d707a4c394d7054523377627938792532426334532532426f463951685765253242373031704c4a56426a4e6951393357467a67584259456b3141566c2532424774374e666d6f61467649724e54564678337959554b7838483647567657346c5832304b6b357265594d6452576a636757626567753872787358626253376348326836704372426463724538485961513872713425324275622532425a386377253246346a4967614349644541694d32614e7a45554653626b4c572532466d7577736f45467148727268495163516f62515733314770652532426256346d5476497442545962316f36353730674e3847314f417a65552532425348446b6d4346764b58687264324844497076544b5952686d725566446b484a667642485471654856316f59436c666f51524851627a5a796f774973414e38457876434d3765325739517a47394f6d4564495947763976486f625a556b7332755a36714d574e524b32526a376b773659764765742532426b74476671645a6f6b49444d4849756c326658355a4c69435953706c78624e4d723168555a356b566e677473536e5243343563507035324c4e52727a6a724c4637535a484a704f4250416a724764386938456d656d5746527572746b7443326a59763559754c5030315436686a576b6a6867447a693955544f6e39386a7970664448657555253246412532424442624245655436444a4930306c63704c46454f79306f486f6a49493638793539493467734b766567426a4a745a48717472624b564974654771613049776b58625958784f5379716f4567507a66376b6e5445253246496d6b4d504b5539776b48466e734a544f44767451305945727641326d547847316c55665164756d6f3456347148394c5536327a654564777459394470327832546373444663416969416a6c4f72584653436f503677484a4c3572547a3438436250634f4e5a71334c7a6a32725067437870526569596b44653669644b4f6f4b334e4f425a4461566342417a6c5874456e614e7851556a394b5377542532466534626f6b356957395576705a4b4a59646a5969566e587669364c523153674c597a754644566a776c6d396c55343148654d495a74374133596f444d566473656f4d6e767470746f4d68587a7870456971334768306a624b6e6648795742627a495656305768694e6f4e6f426e38726d79586f72624a4b544b44776970713457706a364c62253246457455336b76636a62494d38776e7531736c4234493771544f365958425a715239463575414b4733576a4b58576b33327863433851544b5a72306d6959512532466b46694a68686159484f72543662505834727350685a6845685a394c4e523132452532466d4f7a4a3757366a526f6b617379325133654773516f496864685a4b6645594934356d34465971646a6941553563746235754b6173494e6b2532425343513764586772543244786941326b46746352634835764163684944537577416a677a41646d5756754937645a3355782532424f526562253242693559555431317364356a637a3147305442664f316f3944614f65596937574c544e53654f37436c34684675526455587638475a53786b64456a686a4457656432556c7347616f7459502532463164434a696458636950574d504a474776706145574b7451355a316f584b54556e38624a3934427354563356675271545265506f5646505243587a534d4c61695a785775706e616130706a4e597a74393070784c4f797133526b544e47467152425a53704c4b65466d74435164496c716e673950454d253246686f6b3768746346354234727072346a36685857444b384867656a4b774e4f5058734949364634564a556c5968633464494b6c6534453663552532426148614a69466c33544562464756774475777761756f58327957736c6f66585045544b734d25324252636d4e78527a5a593070566748634f7936527a385125324250703250665632783238723669636a3356733377415551764234534a497056584e62446c5439735a756c4b4b474b30697a4f61386e72623146784f4233384b6661635779436439483238546c253242505370343356346a64473472546e684d474b71757836396e7a65655650354e4d727a593963686c5a477569436532584a6250416d4b587865473053737679534a6648706777634f535655787176794366446a6f307643546c6a6f6c5965543042357566597868362532424e4d796f4e4d6d33574143356758415537345a676b6353313425324648345263673348504a796b5968456d4c6e51253246334f7155585177754b6a724e7a6247253242456b4d454a313679767a334a487a4f5951366657626b3647726847516763747a4c6c465743586825324235396162786e436467574d4b467a46466b48437442756a4d306971596332377438387775496c4578356572746830724142746d44397a6e784b69346d66766e737244727367513735434737346563253246537033795654374134354d6a763067703652253246646f6e7556674857356a456825324243343632752532464e6d373337253246527577704f6e426838725959574a56365151616d356c71322532426274367869346b3750253246586b7a6d58356c494b506f67647358384a684a686279517171693870356b6650426b583649637654586f58347035435a46643759646972464b786b6630744b6544314857664143306679557444675235565771796f4d4b6c79615a5649517a374c666a435a6775386250427170417165757573306858505a472532466d75684f387448517868622532466c313837496a363657775a577862364652574d4543666e566a302532466c52315950397742565832374c727a547070394879306b307a483671673947646c754f51674f4f454e6f56554d4453583959704a62336b7a5756462532424d494c72593556665247765751724a253242595a365847657371384277515178694e556c78504e42516b7458454159253242627039494a4545435a64474b34764f7542444d7358716c5a493769515046574d4572325a686c6b486f68795450467971355a6c5150786b747945695156615a4c5352773277644b3361364e38526c52715825324236726668514353556c5142696648374b564770636164764b566c69442532425a6b4b69654467594355253246253242674c4d5a67704732314c6e36697173474a57697550545330587251634f673469504d46757265343755497a317a3033423534306f302532463478354b78575138646b554c42524c643178556c555a586f672532464f526b536e61724442556b38565070763825324655716b316f774658786d4e4b55794b674c6231523552716b306f49636c30754a5850547139524d52704d546b6370383374667730636e666d33473878785144425255473878314d6338524e584e726b6c4a355934766b756c6a49667145374832393846696b71306c725548736f533862714b73724551626c5a324174393335676b7677526f414a6b4a7a77592532424e464959253242686a754244696f6d4e6e34656c564c74756433656b39525262526f593936616c62565330456a56655a6c53253242766d716d3559315446527a25324668346576574a6b574b5868477358585443534f624c3630494f62746e6c4e49564d70716e336125324638636173594277253242612532466776587351624a57764e6f37475658793843635038304c79656d4d5078766265654d517a6c6c6f534d4746764a36794a34523369735479587a316a6377394825324250484d616a694364657136514a58354d4a424632563163755a444257436451623169317a4c4375687642717738314d694d545364426d386255655255423058444d776c4a6d70674f7a48707347484b79666763563239756936706e734c4c6f3750543556586e4d6f51577355536c7244444a5663573234443554566b4e65377025324266304c5a34496d7671556b5239616b7774657925324231316f51594558316e46394b704b58336e4279703735755731626152425970347a4b553973784b46583166394d53774f31546c636b38714d6f5954533835253246564959767252416543573957374b4f4263516e6946474e4c4a73764266735652507a3664326d4d6179374168356331794e58484e4e4f755447725375364c4b416173536943564c6b374779457457327047636773706a7a544e5a53742532427a6a5243594e455a746c4c674a7a346a6e70546859306a6e5a6234253242305942583256443054734530727359784d4e51384a4771436b4858576d6a35687032654d42645a495368504c56566b6252354b6c677035537a436b47524e4b4f5a4276584f304c47486675584e34504a43594e556544504f527665517a7642644e7173326a754b6e724125324264322532423879562532464a2532426c6a476a3551253242474b4e4c51667755576f356f5675767044767853486f792532467369527a376b6273473130253242516b7825324630615470736373253242356c7168305271253246566837484e4f50624939796f6e4556515257657850766348614b306866777664383457365131694e7835315a4d39597a7543436254656e5244586c744e474c473653417655617a5653392532425a38785268354c32584c253242655968684c655a5573515337304b48624e693276574571486359717a664c686859376f395a774d526f6b69754747714a33663752553441304c4a7a39676c4d52707937535977554b67346259497a5a4b79764d50526764324f616b4941614575386c526a496b436366616270346f35446b4539666d646b473839557a73754d37764e316b6a424851636157475178535a6d4e66475669797578706e7a644a38457337586c447a38496e6a74574a72673735495133346b7233656f506561796366726f484b714278526748537943627161334144253242555a4d716b3761476855574c253242393556624f4e6c48324f4d6a4b426a6a6c626a39684f46534b546c6a6b4d4b41495664694456642532425a7379787339364646655a674d785771356e6866484b4151517379527663744c3568475351513349716e794545724f35706e25324275676f51744676712532466872614f37315959474573596446645163484179617a4578634c6e3865376f63493548454e6f397351447732576d4f674a567774576258437772504d64553042624d303043336d52776a5447346a6555315659717a6f616f50566558366673584c7655382532464425324230436f71756f704d326f624a6e3037724d63394d484a6e3950516e73714143594c2532426243434d47535348435a757133793149357078474542305a38396c4466574568725549754e6f544b74704f4d346e6b537a444b506e253242435a426f565930745a764263556161446c4a5a784b71754c316a544e695866364c33665044745a756d616c774770505968716c58565363754556692532467343736d6b6559744b3436574f73385a446232724f4c487425324632346d434f766e68426a56454b6b4e594f6b656d65393732716e3674375a64364256654c507438686f7671747739544a494944527837507a68494f7070566e7a6f50323858347975537a31253242686a30754e4431457633424971354c4d396436334b75586766314d4d6d3262703542363646784c5141466c4b3354624f4663674e372532427376576f5a66564358443343616f586e47433642627a6d3543697633575944644a48464d74306867364f634a413977356e33466c7043387438534e737565714d664578344458434f4f4f70435577253246762532426c6c384350464d55345147596e5152586943676b2532466571365952323363253242773974366635776a43653567484354535959496e51253242347668446d25324270577a6a476e4d3158323425324631446c465675786a39596462443253474647797958317530415155714344694c253246624167413969665946624c73313666713667776a37626e514b32583075355545415a706a417a5a6237474e36366362327a4479496f4442616875253242374f76334c48547625324238526b6459356a315543306f583468566772354665727a7a7550777a417833676c394252484f7948386b31253242335537644275554150666f59645574796970516368344b5537477671364e494a6e636e735a394c4d7445484c67646c5a4d454f427a7733614f6a3166444b645a6a2532466b7842334b49535350253242494e5334674d30517469574241304f394b5842487458316174343647786b6d4a79696f69687650586b564c253242494962637934456e304755536f6e33534e4a384b676a623325324273396e68393548544377633449775566646a79694c6e5357456d637170526e344d3052716750373965367245415061586174333458547a666d6a335a647137735965487a7665776b34516d7a6e64386c50336d703866354e79556c5952426f644457776e5a436e453659597a68634b6442414d543869446b586d734e304779454c63686963644675475a7a3961662532423949253246376656545a6a424b565956317376304867694c3957434e306a44506d454f514c4d79484d536b5669534e427934327650655570532532464435656571566a5925324243546425324235694c4859703049545425324242734d3733516146714e36775538356234354c664d7176684e78634b78633863586c6c5159454b5652454f4b7763546d4b664b6f4834697463786561396a797076624972644e4947466f59474b774e5069307a5062435a4b6a3479597052777978554f59317a546b7a5570476b55424754475a7a50414c48684e696e682532424d6249684e5845386b25324643546e4875534d362532466f69463950424b444a394558424b4e6d6d724b71654b7662784747327636494978537a733368747a43396f543056786d446c486f744375586232712532466a4b506b7574534e335366536a6f55386957687a496f6d565677736759614c6c37394e4d63636938624f546953786f4674626e634c6c6b655743514967324d7070553553434b614b62565a783025324252614e48784c4d685576536b35594b7076666451526a536e774b5645593871544a7852795875427349394625324247376174774c66427044766c385370746f464e454151715872453850686c49754765692532424d614533577444546374776e72386a736d5344526d45677577386856576b514337656833684b3937685575366c57656c74376f434852706559795377337446796737253242376478704176715a51666f776c7a54574b327836706261666344764b366878686d675872415763423472433659417025324269742532466b4e74414a517a496c467357594b59467544456956524765564c646c4c6a4f45357967356e6156744c4c304e507078744d4c54754d3336313364397432684c68636a4f76484a587a4a387756547851423455643230704b4c415a536558312532426f6670685139316f736c4e47367a726e796553555264253242564b7a626c6b5756357672353567355130453562734b4f484465467239365537676f7231544e594d513741253242596a75475353663654253246465661626d324439336b50684137396570795337336f4957597870714a30715776704d704c6c6e58432532466a77656e47617a775569614a345657765569427473734e4b42573035574442426c344776587a6a37554a64556b766925324263384e514f7773516a496d5576435733706341564a7847566e534f423841433565676b634b38647376766a496874484c696d49676f415a505a445543485239307a6e51676433516d43466f4b3567556c627a32414966694a7676553177253246696639695230716b4a78517366727a484f65726825324659253242464d52795a67576d524e6758353946425071566a4e5250386470494276385737506671626e6c796b42253246535225324225324270516178566279785352656c6b756f626872714270753939633959526258686a2532426c784c382532426774693365304b43516f68554330507a694358646c253242394671686350684437253242567a3475676771756f4969743770336558597050494d535a4545757758335832554c685171367749657967694c7a44593125324253644132614e6d6242596a2532426173253246754766665438452532462532467748505a67715256327442327058305361424153317456534767675a5630583367794c356e6b253242343353526f714f34566434734669436f354770396b6a5068574d7848784b5a754a78353877664f6939414f3674676a38583176564f4f44786a664c4549335a3970496672565451444f565747484e505755445261624850522532466f253242624d47765377437547447a7576774b77577569307759445732546337253242766371356f312532464c46313149496a71344138446d6e6159587832434431593662573736565168392532464d534d754e42576d4551253246416154324b394a3478454369593136337a39535031786468664e316f4e6f476a37564c7050564772334e4d416f76344d364f364c613742624f3161585668795530692532423137376578354e352532424d6939726a746f486b67447036523752766d485832684b4c746f4d71342532424a4e703734326b6f77456f4655697337392532427834432532426a6e79696339456f2532464738673242706f54625254792532425a694537304648644a253246714872485175354c7750253246634f55397334544e3372335769775338474b45466d734b7a4c3745667a712532467747443850616450786845415241737a4a7853654b5271524f25324674435453453655754566573565596876596c3541796b6735304b6e45304f494f356f504c2532425348757372654254636e7535746539486c7a3859456e79483150634d253242654449426137443261473464253246336d48713633585425324225324265253242317925324653626b523268664a433525324255746379385a493473447241363525324266764b6270726739317a464e5a6a506e25324669356f7034392532427576476e7a61695757743463706b345a64625563317268714142253242733168753662357070684b3325324645776a685050334659384e5048656449467938756266656c414e4b42536b5674384749766950647a6176634f56425a77424c6a516c54306c6a6d6e68776230356a716f7747356544575461724b4b7a6e796730376a4d796525324637493238786a79614f6e674e2532427a4470396b66325325324670315a253242704933486d317825324255654665343972663145562532424a504d6b6239323831253242595261797625324638504d65695376253246444a4b637a427832613639624d70304a567157625a35313141457478537877492532426d35653342497569396a38756d557650784556346259575654437966704e302532466f46566f3777472532467834486f53354b77425549424e333078253242634574764e71646359796b6a414325324230415973584b675447435574796a253246624178683146516f6f33526e6d45656c3331594771356d67616b3030424f666b54476966746c5730374276545a6559745a41716d33754f573262534335646b597369495a455877383234376c435259553053724c4a704a46682532424f306a6e46343673456f7869316f437259716f57545a5435626a4d4958354d46306b574a49624b41347a544a4475517378626558253242596f64495669394f31766171326c64435051676674467850627238617263765146652532464130675359704352634f484b4447536434703948303875317236383862253246395825324634436350535a48726530514e5673756f737575546b59716465676670414d715045706f7844656e744d25324645476c7a36756f50486575315a3764655266654d4d387a7a676e644b574272347a4667366b6e464e42484f7874324653764b56684f456a5233456d73733043704c7a645a4238443853366f594874377977374643785a466f4c73786f674a544a5a70315777394e50352532466b32713064483547784d616e4d78384b436e56316b434172766b4a654762666f70253242524a306b68777a6a676d70576677695831416b4a4b25324234554c693825324653776a73377146616266325a6d795a6645495a43386e585076764e59395668544c6b7777716d505932574b544861454e7970684e6c526a68436b767535593369586a7349566d59504f4c61736f4d6353726b4a46465359446e78596d566c68735655736f594b35725530394a6465484c4e6470396c664350707854686771474c44332532423176304465774a5679546b2532425949757a6b55416a675a55347448686425324275776250415370367764594d6755595076253246253242623034716b5a6539304e4749703158694d45796c65314946664643347839356768616d4c6e6c4b4d2532466a7a4156434936326c4650472532425354524336655165326b4d6435334f517a4b53546f69484a6d39615a6e497138614c564c53704225324656596e636656426d66366f4c414f7931326e75434768655858486c78756d676635362532425744727a714e2532426b446e746c775130396b3025324638717066717435786269614554727278794e3547327a36364b5148426f4d6c31524e74495478324346632532424152716b6c5a7062644670557754253246344a716b4a5256617075633056374a366a53526751253246653464616c65325833426c636725324265425266594330315764774877637659716c70704d36324166316156624530556c4d67675961753070336878576b48685631737825324272566a714a36464a34644551304d6c7241337879373157757a68556d6c4c485270504d57445569465669253246526a7943253242747230617a6559696649356d45524e6b624e784e504f6a4c61683153784b77314d5525324658434e694d4f496a6741376b77683150524f57596f492532423148475833253242565751697938685452253246544f36594b393375494b347059465056335061426e253242422532464d6b564750547a4151477a544e424f43445a3349646a4469313474744b6a2532425338304325324273425066724a667258552532424b6b6b79787a6e50386e3446625875396b5838594e566b67706654686b364d5865684d773365536837714a6253496c614543794174336d756d25324263715a426a6f4864475543545125324250253246513271704c3459486b4b6471644b304c634571733579697a493669463744686b7569716f414b546632633658456950617570326d726f6b6a4a73317645396a7a43594738736f78366a68253242376b7a726e615459503379566e77253242764b64494b556c5467724172374d576b7135446d676e494a62476f6a34366d4d754b65716a7650424f324a7041384a6b6a36446c786f617341613255634648745756336f516b445562415253716970394c6a59356964464542644c676b4c773148336c4f66765175576f346530497a476c6f6754675065334d6c707a4e6245324b4e7461304c596e4a355a6d437437765164746a7878554374506f5142484a5430706f34734d584e4e74426b4d67565962304474473555335246697856335854704c53636363567a476b683779734c61713772415578676b73387a7149644a626477666a665751694b4b6c717855253242753854454c787979644376343450304653726c705a455a68416151636534676a51253246414d37426c4f7751386731754b62776765345870594b445a704b793734305733454662764b59253246253242726d364754346d443159487253737450644f774c5059796e764d5945414a474b473358444768493873386a52584b4d4651776132674c4c397a7956334f6858493478344d43647143635473253246636e516e614d6a2532426678386d47762532427042674939515136334d6b4871334c4737636c627637687a25324635632532465a74346f637a4555613869647833706d724a6d65747738776e66536d2532426f4a4241796236364a7571596b253246414564467a306846484e653349364c35336237383247596a7871474f5444346d68666a32464a3633357439457870564637774b446f416739564a4d3776553439565146374c6c424f6650696a62724a51584b54784a6b7925324242754c796246484856717036736869684e48672532423364525043303056577673354e446e734f3479745431466c4948343953795a2532467158683144425430487039726825324236554a6a7773556648666c4a682532463762476b33734e737532324e7a386872453761394b65303874734c66767a6c52513377533131674e545173734868626166394a782532465753706d42527238575a436c68475463427278414677464a756941253242586c78704778454a67774b6e4d73586f364d676637364b6a584d6d39436661554c4a66736c73574863733762776261506d3536744f69367a6d43725825324277504e487358614459716b797474714e694f6c7235663769463067445048566e693837346d377a477a3245253242526b395965354825324643707270363361324f253242734e4f32636571395a70566478656849667a41596c73386f6c64655a7a6b6f7475716c5164334f553954716354615269596e615a78306725324672796f544e49585a6354594f5a436f726c61744e5334774b7130344b63384543306449574425324239777177597a6d796f56496c786d66504e4a696931436a6d4c3473622532465274516d746b3234764355316f6d763179697432334773726846507453727a5072756a45533463764870796370413250647975784f716c46514a7a67646d734678584d6a784e702532464d4175645736704a455561645a367336712532462532466454755570474b574b495745734b634350674b6d766d79716a6e736657646e63384c794b7378446478446a476436704d544d2532424f4a50363043744c54764a6d4a507a6a635342744a576d36794c30677078745a62336d6d4f3759733467647a556b554a79253246794241415075716f4d3168477139346c7174414d62477547623652477644716b6330357a43505776434f3565476173314469764662686235564f684e416f7a3753682532464d6348696a6246617549494a4644504b3335664753743473356b714c3257632532424a61756c794c634436754e586862253242726c7149487056514b33536c3679347141554b326847574a736d716a30354a696a5a4555624241797735414355364579576131685064676b4a5a4455455451687334505a584a334878374579724c695a4b4f6d3169797048697056634b53303644504d386c567669325065454c536a646e50645579596b6b434b6a6d31454f7054705161315a5a5a50326c5159564735253242494e55634a737261396f6f796d73626d4d5452726a514c516d75494667344e683025324269365a713265314c3855464b4a614a357779583261624f6a69374154616b6b2532465162756b745537323536415439696c715579414834664a305963376461424d37517344787a253242346a68686f6778504b63575370593441326742396458625252544362715a7968626843785378314876486e3230253242584e334e546b4a555639486d6348356125324649303671463436645737734f79414977704a3641686f74595a6d452532464a3665506825324678524b4a4c74765933626f596b355a59575561704367774b71674d763165436663646b615264514558627445625359344e434f444c6a4b71766a4156385a476e4e7a4f4d79325a4d3971416f574b7833734544734c484a45746b6d394c5a6425324276546b69446142526d5166726b35624d6b51376e3647416d675731253242466d66395766526c6d7a686c4753547a4d444a3372537a3865447a6c4a776a564474585a376d37253242617873666354316535556e34494d6e6c68755367626251777138553059635263472532424e677a556a68364f71447a374f303557413544486353466e71494f34477242306d2532424f5154746b574d33556e515767707678395937566d563865724131782532423748365767736d5467384149364f457643314a484b4663784c48594433454963693070566a6f483370344264514e25324271654833736854647758536e394a6641754a474a306d4a764e73374e3372784355305156334f71253242466a67736d613563384773675477387538487a37707634734e6a59336f79796447554f4c4f716e4b67496d7438344c62433578727565634357435772613232374d596d767a396e736d5368574433253246584243734450647950533345554f4463395351706666657931546648674e4c483741415032466b43426c625957304f6d4c46674a48726c395873787a4b79746968397869324d33597754364e6a4343457a5476337141253242304a31334648696e4e73647854524d3668723639656f6c3765424b7669554236425a686e42794e56393779737173424c356e4956367068414f546e51746e4278774a356a4557313077586b6738314572316d33684c425533615250776773596147646b484979514a72723544364e422532424833374f73436c33384665675025324254707052774348424b303735437236635a6743794c484b7530723779517561356d3663385a3952464b475a4d58506f4130796d34657864585a6c706362776d7252455153676d6835366645495425324625324653416d727852726a764f6858614279463566327153566b6b6556717525324652766d7168397567344c754f526a6b436e59457672617749364373595a4e6d62646648446b394a59572532426241776244526c64253242736f6c6353486f4b4e744a694a424252737936646c6a476631514c4e7a47374a3575494f72716f70537a6c364c7531697537414248476a31535178384561453454366a48664c32366230424d5173483541696e4f79543644416763594865384d57376a577734625733315a515453567a4a3156484b4f4a654438563965374f41587751774c62797761377445576259764d253242626e6f3959533648776e6d486c4d547645647248793557516a5a556f737775533025324675454830344d374158744f536b6f3667334f3174302532426c736a467367426a6e2532426a4e72354a396b4b61424c7264646341363668646a3663644272654f4e67564f392532426d25324248353455447a776d6c79534f6151655a72384b454a454864556268395539485671646c25324254543171516873456a4c537a794e25324231783249585642634e495654543043784a4c656e39525a654f7476776e6a4d385533496b796c564445564548304452616c6b6e474a6125324677344271456656676671756d72766d373142694b4c44464d49416d44764157503131707231734b586f787070573733494c51686b347730766b6d6f4535425454776f6e6449417976694a756a354d4943783561476b344e6b5470683771566e55766e253246534f4e6a75387254504e34594e7446497671253246425a5a44484a4e43574576253242646b556e3573754973486a7343445067534a554d6d5239516c4278366a6f5375314e4e4755577041344e6e4278614f45376d4f3359253242746264667a7957457645333445554f6c305873314e4225324663776865366d47664f4a596a69335141644e394f733766366b5a795041757535735072354668644b4563365a696b6b62617a2532466b4b587430657262524e4a6e516a67496e4750776b4b766a782532464d47764172436c3256317350694e6f37766a2532424831433578536756775149683368452532425a4163394d596d66415174634a4225324249464736253246346e7857484a5a704b6f395331253242354c332532425943745069377a703361365570462532467638373049456f676c6e7a4e36652532463544515a4d615767524b61654a47666d7a367150614c4b525837797452417037782532424f4f7061554652515a62794467554833484e644f4d4433674b78546554684c66794d3333486d3254534d446c4c36417372765772516752784b653551665164366a306859755a584f316334445158794279776847356a335041447556472532464b474154785041634d7079484b78526a6c4e71456a776b484e50427643336925324650346164646130464c6542253242667a7142456f616c67436562492532427030696c6758253242325172513142493462613277366432695677595625324247444a78684939316a354425324270445130413674577a74596179325974586737706a52437525324637526d5a466e3177466d49744d4162646d59667a726f7354347676654a534c2532427477716d453659354f5134795862253242696e363641512532425344304347742532426a474e6b705a464244534577646c756d48733948477849525a65615a5a746a584a456d676556516d51733872645a4139584338324e4f52586551634c414d597a56554c6368364546594476383741506825324661357735566a50583974727957306c3450752532424473616c5233436851355a39556b4d334f48584b71464b6233376453634e4f77346e58777661784763643651786b65376c397247646678364e446844596832565a7978576d5164703665437279537938474950514a7a4f30594c6c4c31445557757a34454c634e57576677526b324c556a534e4f253242546f2532466f6470326b58686654474b516d38707956696870253242785337516b746336423032577a664b6b45493641467a7a7a37414a3679725673754170475839356968716b355142736e5237633754313663716a583469655150554f4d676a4f324c66424a5a794949664a61534c3938253242777a62454c6766757675504b66376b464a4a397455626165656d464b593133624f6d3361313073556f6c33566c35587a4c714932676b6d3536516379667a36725759355554696f5a6d326e7a436b537569317a334e432532426b59515832524965676d5a717a4625324258455253526861684b58614c354776645938436e4967385534543774377236724a4e4a57452532423149417251547846447248483641486d474a4a67526853424f2532462532423364634637434b456137686e5473337137454c6a79513253776f4f7a49523156756a6c72686f6b4b44314e78354e4325324279515a7368306771467665555a447844467a4e4e3441554e623333347a6c71453153336f2532427870745954355a6a6c6b50374469633338464c6577675645344c46707048714c634c42537672542532464d4b6d4d47386b7135333425324638304833614c416a55586856504632546c305034676639667445447375744c6f357053704b67417156454b6c7778344366774f43414b46743571364338365451755658354e686e4435705531387275306175306a253242316e755575376d675425324230504a506e4b656a5745705843632532467274734a504550674f68436872597630614b4434705875636c436a6e4a47776a6b675264764a253242717567774458596d6434486435556164484e4b706a33536c594a76616134716c72443279474e54314d73792532423639566e4c714a324f4c73464a72786d684d65666d534525324648384f7752524f327870375a324956703471563830513941727355794a743158525a734f476b353874356e5a754962554679734a4d4c782532427133614d4c7761416d4344753735714b696c44546f4a7825324636336747785453502532463779675357797777595579474a6f354170536e494a5a6566453049727668706e7454714f2532427965423376253242415166386e6f4866384832446538663879574454356677495725324662386633557a253246583446757072382532464a2532464825324656374e51354c253246627a306e3838664e4c58367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a3646367625324278617225324636597456253246324c5676316a314c316239693158253246597457253246575055765676324c566639693162395939533957253246597456253246324c562532462532465446716e25324278366c25324273253242686572253246735771253246784d517466682532464e3677363958253246346e253246416d25324635762532464539347725324648384679763250312532467a433350253246586c524b48253246747642334a45767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a44334c387a394333502532467774792532464d5063767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a443350333168376c2532425925324278666d2532466f57356632487558356a37462532426225324268626c253246596535666d5073583576364675583968376c2532425925324278666d2532466f57356632487558356a37462532426225324268626e2532463651747a253246384c63767a44334c387a394333502532467774792532464d5063767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a44334c387a394333502532463078666d2532466b253242437565506f667a65594f25324633253246786a2532464a44755025324673326a31253246364e6764667825324644465a6e7a46754c49436c65386a302532422532467836582532466f253246513637253242773676646458447341494e6c253246414a68653576767a47734162736d4d25324256253246656138766d7678383225324644503650676578486e76336d502532467750414e52646c575525324673765250554371592532424675594f6f4c25324276564a683244253246514b754b253246544b7651253246366468366b346e2532463025324644314f39675a3858467638445538253242624e4d2532466c7831755a4f33613546645877616b5244304a3065614b674b5769553178734e444b646a6e703564253246745a6849453870545031486c304778746156436954374876356e573464434c66705453583469253246703137515839366a486b503230703448614166304f784e36586935497641344450343047583630393879572532463736646466384539564e4d2532426765753957795a517835706548504a5772586468754e726a614a695534685169424a3935386943636f784f7657424558536d6a38496e363263526d72656a59544e4e663452484d4e78634c423048754237694f654f64557a523662414a5878504a4f65796d25324658764d306568463073724734414f395a354d52506c346b78345131625154584b473046335a642532424525324249357437346738786261596b6e253246656d6858426a72397837346f3572775365376d74514246706a67774b31326754636a564b7644563351315152396a4b7a323968527a3575305677423838364d55366575376a6d74576c57375177576d5939564e78253246723730696a6d57707077775139374b74387758772532424b797a3725324673623759304d4c31505853612532467a6f4d717256743435416266613034784a79486c4c5a696f3934536e4f4d366c7634346a4444794d675676563158646b486c534d466955436f79527353573933422532465338537044774e5850496437704637544869495a37426b59766f50615a30553775496c7a77414c55514c4f366c485a65354a597561554539547650306b7842726458686862385436514242394462456f546a6a6b33624225324247764230675542575334785a68614e66686a7238307150547557554e39692532425855704f7959703050584f43645543676873645771396d61554d4e51556e716b30425243784e696f7525324639383563575553253246675448716e41696e4a4865646c504e584270336c61384425324245444f344c366d6961584437464250736a4436336f3355534d766e56586271564232676b5837577278786d6d4d554d6470785772336d446f73545079382532464e5031323943356657356a4743524c52393925324641645a512532462532463675413634425350656b576f4346557950384758552532426d72656a3835306b4355423350436f4a4b334159706b554c6d364c627a7a5968793546346f3944446371483164253246576d65736463306e68383373384872545368526532386e5736326a58744556347765315564426951354e4c444a444130414a6742253242703078386563534334545352655962704b516b70504665436d795725324272576258794176736f76422532427a574549636e3450347941665547776c49794a6c55514d67304e716a52347a794a476542737a55657554354548774d7153503864694169735634544c69666c545957386b566c377a6d445838416553503448704a743653412532464b6e6461507951784755336942734f61456b47776f6756317766576c54632532426d54765241304d4d4432397a3336594154736a41514a34647631586b716f427059443731456b71774e76755043526541537931786462374f5772527670592532464e48757a4447784559636351592532467561494a5859704f44313538764c396d306a786c504d666230795378343967504649253242685045335a5772564e46734248614451465277706b52616675587150744e3153416747634b6c346654723375584e6e4679687356316569497147654b4e4b6b764a53587934576661695242707425324277665a7531646d54536c6c426f67433758495158426b614b7a627663695938417735385563576a6f775439327148417948656a35726a66636125324267724d51484e683631374b766f4a432532424f49517a5a3361397474714f2532424d5a6e764a2532466325324225324259706c4c634c445a62674f316b3178374c6b45253242776c325244666b4a765472717a6d335538587047444d45506b324358487735467659754142325859424f64685051426f7936416a57547650364a645632787366335a34704d754345746e7773554d336774646b526279664d314a65486a5a6156594f515949744e6c4c31337a253246436e7842364152726f7932377368505666523151614e663074586966554b626e47344a6c314f69646f323650526b73426b347472773946557a43357a396641564f714537337333316d7a46777049356e713935593355744e7859476177656c4d453666764842253246476c633651716f534a7348504936776e46635445353057464f7a4e754f7578724665253242552532425750516477626a656f6d377976636e32586c76394e7a3855306c41666a315749692532422532463868447363475158636449673279515866543137377a484675696138253246425a744f696f57496978354b7557424b625564356573376b447564657a2532465a68464d684a5a78676d716b477858576955253246637977684d652532465479594566253242636264636533477273383852684c5025324644667970316a4356547168347a25324636444b6f4e32614c4c42746e31424e6e586575524b4e436d2532464136556d594e764a7a6f3643537a6648494f354e466c75534f723351344b546d424832756a79424a787273363174517575794861716a734c7a68475a6b6e574958753258676b315a526b7554724136356a2532466c4b6b51646a697453366f34784825324633564539716469317336306433754c6c31474e34576f735164616d476f3053626559253246253246696e424c6a70516325324677417379504638694b72305164376330695978325659614a467a4c41546638674e7543574d5333636e2532464d503372557a61714167794b4a6e32484d7334746e7873676c656351253246704e72472532464861646a66575461657079646362363742644b463830562532424c49653337484e356674774c6e78576e72766342646425324632574f3738726b7158253246326a58696b6c6479765a314a685363316e2532426874313872333432586f47624f6c567a44506d6c3467685a4c655a6f347a746a444654717753374335777536524e4e694b7044796456564a704546375538644d656d39526e4632734f364c7170677a6347717377787768526e43786c4d5a664b67617748784957673959357a6c6e253242345352432532423242446c31793856647075333571553150435742335062683352513672572532466779664b77426531445a3939464b34694338393345355a644264683443465568716f356e654d664c386a7736315471327a6a6162504b4a474c55462532424525324256253242547a4776536d2532425541397a685a51695a6f304e6e616558664f6635325536694f4e25324632417868734e4a377664615238546c646f69345062484d4679787250554447656a253242565432516c464475376d38723663756b2532464a49324d71253242484355684448253242614c304844364d5231383671636e32436e2532425268703269503141334d253246504852744f3974654a6a314a52453477334f6e7a72694d784635666e786d55684d71713271376f3952344e58754c6555574737654b646c594a76416d45547a3053534e30253242694478306b556234413949414a6a586b744e576379513736486f65494b565878253246696342693767486e6a765578657a4a66494c55465762307644694a7559656475374a447868707239475a614a735a763255753472377834457539714d696f4d67455079786b3265377a6c624b4f556f6c56347125324676435769306f78636b557142563764764a6f7051706567634c307669387064567146364537477959554e5a747234414a4a67336969513037715374334174474454396c524e54356b5052616731784b717625324252547a5a38486f30346b76544348667a466c346a505862664d6c76705330726b5539324a6b3151577a6a486c4e54695a5338534a46384725324625324253783859373869637648504a4147695165675732566f596b4f6f534f5632397563424b654a303665794f4e5678735677346d6f5836646e68474a454e677a6572345a446b455a4f355445754845746b35534133672532424537624746796330436b57365479785335394361305245452532425971786e4b7165435879584b507a67527970796c725a6a4c7079652532466265516d6a65365275374c3442456b746d3731323473654473726a7234316725324665736a515757253242506172464d6a33495a77384c745364534c4c4a663259315137466f346778575070394a4e6645797354783151387a34396338756f54472532426a3346646b537337354d784131514d7a5435496e32387951597548345347474c6f3657795a72523451544f4d734747706433726e4b417159665534314e74395056366158556e36595165646e3030463665706542417337727841384633253246524b4d637158354b5161716a7676332532463276754f5a636d68354c7176305659426235594143743537564f336776546346344f7546577a326159417948306f54496f6268675233664536336f6f344a724d764f656b51253246414b32694663577639534b47766f34663673376d78584750306271665172787425324655657937504539346f654f74634f6247366157532532465835594b5465624d32426d706d39727872776a745533636a6d7a667a37627a43574975314c253242666f746e6a696d253246524d73553359397855325868444c676d4b376750384c744f7474534f4f386858337a4f4f5555375279316e50577256253246775959384b6e434f5472305a54756d736c436d6246516836757972316f7963774d6234614e324a62345473432532427145506c5525324246555636564e253242596b424678737652685471726d626f7a39306470374b4d6d253242536757773838736846626d3769333141647556672532424d63746b74686e5a345a6c6c326645334b346d617061746b7a39526e6c576c356d37564c61466c704d4c253242646f614d756151624f654b593337473954577a4e364e253246566a7850546c754c416443586c376268337579486725324232627a7867253246563368756a506c346d526961253242703657713242253242434c5639306e695a696f4834624b344e4f4455306a4255253242614863384d71757a6d36744474346d4856383056304f25324634537a357837457a476a4f6532773066774a396369643371557175426470383968626335666d7557507a6b744b774c4a71663574456d4a306151384564677a496142534c47394f306b4639553838455a677a543143363932567164564f5a5a64525263303745725235795a5769326330553774397770766e4a6979564d6458253242736473646e4a732532463854644d46336544696a533044536531596269756a316d646e553134717865747369644e666e51627a46524b58454631486456784d596a713770595561764942694c47773251253242304d726e424551684973645a53356e253246546a7a385069794c6f756f51253242465643777242325277717577634a6b4c54567750596d535269253242624a76636f504c37685539784a73506d5a37505832574b7677776f6c564c334b345a6162462532424d683356646f4143455255674e77737366646c4e74553679527647523830516a3655544865506525324238716e52366f3447306f5555764f5863374c7248554d4c6f3249424f4d636f4f756831533252334e724474415856756c597659344c38717665303759377553357a2532463653634b38416c693853696744455925324633624d6d6f34454b6845746b4138334563736d736a76575056796c383550445246566b4a644255513456713671394d77586447324668776850316f755846446f3231507975755a50344b4a6a4a4a5764464a4e735142696f6e5864427a59646c54594d6a596a5a744b506276536e75347670786651634f477a75385a5a4339253242477a754c4b553664593733693351303879543570764d65744d71565337576d6f4b7745363836796e784c37766a47475446323569773355316874253242746837517732713571794b747a4339375877792532466d6d48414b725865704636446a3663583749526c357468642532427259476d3752316d346d726b6e2532424d7157443332455339714a63622532423438785a696b41576d596d33597938746d68523855774d4c5a6a5125324236586639576f546a695457647a6a694d71516b63694c5464504755546c51334739524c32373432334e66455554336d5a314d4651415a4f50746f6c4d78343155366843646d6961442532464f794a4d6d316d5352434355684c75666e566c427968415670464f644b6a4e4e37677171653335545650764575477559733935786a47702532424a4f6c43566e4a37515644614761615349596b7361655558445a74506737734b7331614237626e50455a5679556d433631376e545a77453753546b66567159513969345930695a4a504f664b62415264466557765239624d35346a6b7a3145555248344c39695558335a53305678664d535a63452532465a6a736479645149784f63456b5852585632644a4a4f6c455a79696d73754231477a423647306834704752426855573257374a7052457947776a71626c7569253242615277474a3435314969455335796b4c3279334377794c5734653252253242392532426a55733469686d4a6a4578356b4a35717979463531467a50574f46526d494547436f6f394e7a7047527448384e4171342532466b7469253242612532465154636839496136414f516d58757a6d317453703355564a6c467a6e574265744e33704d57766d48514c4a456971474d4a66577465677642365876434a3525324262656f42586a6e35786c797a5a4379315050694d7a536a75323257636b5377774c3261336a5a666b7866754857525759755a64437333436c32624f52466375323238584652794e716f58774456755a4e65585a42735557323639646570735451354a666a386c684164377925324630323767454e4351574a6171626b3637645567337925324674714238555a6955783531796a4944456e6d31594939506367506d587a4835554f54394c536857655775634a71624f59253246787a4774385a2532425a337a4c763348373674476f31346f6d4a4e754b385036453479383032313841325837444e463973714c556a6662774e373168614146477667484957697141556b433879796f6d714f4725324655626756346233314d4d747857423530356a616c59783878714678776c72377936487265663756304652533076377452433725324673467a487930564f6f56534e4e36767a773941545175434d7348723156306256334176564b676d3663444662765261384f4d2532424651534f374f6277794867614844636f4a6b734a6c544f6751357148344f454a6f5249756830467147745731797773536e6442345070703075587379644879654358334264316925324647747631545a774f644e6a6d4357564c49466c78663576333250657a755333446a61427a5a544e67344467706674637734714f725949346637515470724f4653526376656f334470354f6525324634445051646c4f4d4b566a4f5a7439433842466e7370425951635857345a58714d45315867516b4c4773477465556c436d72485a7479367a426454466a6f6768456157586c504661487670644b7a4a47687974615a34464a4b493173746a7a75483950367539546165566c63727a536549595251762532425968464a49396b503863525a76534433526839745356474d63775331767076357a626d6841784f6a55253242516b6533253242634939377a616269714a416a542532464a61363675524d4653797342513546364152496c376f465050486b5054324f3175253242456c4849747349486e2532464a48756a7a7a597a36494759333368314163334b4e496e38506c6f4f62393773756d71764c714474356a2532464642784b4a7575714b6b46414d72633553734f456d77456e4150533471557141316c49726d71312532424d4f4e4f767764367a3254664d584f572532464872564251475351363477665530625465383035704a69495470684c5a5333526730413957574e636e4f6f444b534b3231535a6a54753966427863316b4f5a304b48623132704850762532425a66515443336e4f3747747a344c775a6b3625324242424f355966327164712532425a4a3969466a423630374a596d616e4331745039645337324825324243635a6a7578613339743342444e744c344561505a574e724842396c493034787272387447567a564f5a53477039426f686a796d4242476c7478684a424e6d6e76347a6d4839667a36462532464452656f782532465364525269526253745a3525324272596e47753634435a5249535177794d642532424e51665271417869634b5764794830483557556453636337594968737a48326b434456425a565935414967504d5847374d36754e44597063726c45463173784f514a787545545057655a627925324236784a4c78766d3233317876593464456b2532426e4c253246627249456870574e714c6a37757278506c6a654b67695845466a55726f71746a4e677936586275596f496b72744676477a314c575a43356c516d355966795352504c576c31655039726e58797a3241493347537a6a504277253242636f596e796647594c41414a467a506d773072696e66546b316551505a396c516a4367673859474b52444a63656e39562532466f69517a70655a25324670794c543278796d79494965464f314b5a6a694651534741466c6d792532426e36253246574678504a48586c53556a6754786642726944366176487a4a444175647368637832537a726e30766333344b4e2532466d6748536b6356614759426c72434939364f777871306938787a4f486d44677742735148765072763966333774356c5961624a79344f44796e444f4b536f7a6b6f4374574a6e38525978453734506a53767646385964544f6f7566783369545655685941682532425a25324642465a75646951617159556137464f79746769347743253246455235627544684f526d50487436687872634953367a76684852536a4b53794869675453397758333643344c514a32724277316e32645045634e25324243454a494143637141615a394754657425324661644e6c35333251513639745325324234436a25324644536b524f624c584e4f3867756c25324271427a4a7342544f38253246554c474956667a6c4a3972416e324f75474b4b34666f323265764333374f73516d345563583053486d733963534d6b6f253242612532466644583172674e4b684136494456422532423064584c4a52794d58696932577941306f67472532465138734b414f554969315972486b71434f5747716b567a5531764a33536f355a65434a45653376626332397167716d4e594b4841623841307a6f424342374453637463713341314d475a586c41676c794b6e6449657878734436685577553770506d737448534c5968424362467676487925324265396b58253242303137756f2532464473324d594668736b784c4838356d577a747844424a697833766d52695a64477150424536544a4225324237466c594253353264346a6f3259743446253246624543556f613858374572475a526e36455558476b5742562532464239746a58796144476c5432614d4a77463146664f253242797564594a6759694676514a2532463346374c674f2532423735486d314b64506b346a68344a6e6651525025324274596c43636c79786237345134644e63366f386d7a72706c43366b697759253242536d596c51516d683050525939376b31526a6b315339253242516232336b796e536e3277433838577a364c67506c4854307a6125324653525756304c56624c733649325545716f797a4d56476371366d7158694e25324663536869466442342532466859506453727173776452376552384d595356416a644d777033446f444b7438634e5770786a3371444c757675746d394c684c3755716d65736853515933743646637538586d253246436c6b5a686e675132427439306f697469707876424e466268312532426a534742564a414943535a68756e78253246756a717a51386432514364544f6b675a4c634832363075624a4341517852783155627237526742466945716c733642354d783545794e4d6939684c6f7a504179374b554e5036705a5a356c654f784b3136543431444c2532466d47646350376830516169765a6a4f424845794770566249543053385432355159793725324231546b4e374b69644e65414f57323871736b66786d597825324270446678714f6731454d64646e58775648414c484d25324625324645764b7258253246654c4251676a6938427431522532463166377a494767486e667539445773644a3074576568504271633825324625324251704539563171394e3754786751522532464841305857674f466b6b45357750386d456759304d465736467458764c4c6f732532464a7a663154666270765677253242626730515745624341316f4841253242364a75575639305649666b576d646c5a4b56336134567352703244476f414630497543704e4763644a76556d525053595a4d466850567153686c57492532463738536c6e4242785a4b6a6a727879705a4b7a37524d48744b4c75553041694b473934516364524872534a524436644d4c76504748775138735877253246586d7a4c54413066534b623041716854623948466675347364477a45567942766b794f587532742532465378334e76576c32755778375131664c4f6b306c4c79497a302532466e3738785574253242642532427a367a66315a686b53754e7a6b734e2532467679704a4164734c356b4c386f7a4b426339715857696131566e6139664d74534267417a4f50584b70736d316e543569485771644c25324631456c4554645a353941616138754447714b4c5a664537446f794a42356f6b553954514a25324232253242617131594f64744b4b4f504a4c7056365976344a61556e4b5a345038394c5154506158305734253242717765747874375131685753566e46437172686e253242384e314e4873566371577a3936496c326c694134567769486e6f76366539557931344c5673592532464c7142484273393138394f6d563161516233655958537867456b654e31617451763272386c3665657938564a6454504769365048506a34495757253246436e4d34537a495641366c6837353761534d776b5132532532467a586b7a6253446c4964586f78765438686e34253242415766723855644163334a796e6e47685941544439316e587546364e38586e796c53655425324665776f55535934714f30253246783554673530773148306e676b3856676e76384c524748567a253242794b5966324656596f6237665473486f467a55487a574b51564a31566f424a463638714b4c5a69253242574d7a6c3246666d756d545a756f50314b715643746250574f31396d33766e7430746674387148776d6a663172517a3754725147594456697061747a795a44645634253246706b4c485966506d5137435659575550664a74253246475a4b663445685052354e57523870644825324656253246696749387a38514b6e664a5a253242253242755277253246675a3135787031663373324d566b68253246474d793459584b7369553859704a556c6e534834627a36714e765435687a31694254497035306c6d506c4c58397570486658253246504349746e383330253246377337667349366e48745439507956586f305134424f313666527750525225324638395343436f373525324269624d6876635925324668587a30692532467371593258653753513744796177447925324241444c6d4c6c4d50704c6754624437504a5877436150526e34586f34376925324262364532322532467a7857496c4d446f5a6e396f4d77797562347643436e78764c68685a6434786b7078253246354d4b73653338635430253242336c38616a65306125324675613668714758533659744e6f3975635468586551305348583145453052596d5373596c44624f4533693663494256385a453356752532423571684137794d344c364246366a566c54342532423054377268737849306b43475567706670786e487976724f375377517771762532467350787a545a6341495a6a6c49746d41506b4e72424636787625324652496c6a73482532464a5a6d34646442384b3157724b6c7531784847572532427962443144676239537933455330417834775765443673546e435076507775335155596f5349355777782532424136615a47364c6548487769592532423373555542456f6431557052796f71634a4d4d50594f514f665a576b4979733645674d3425324248635625324651425a466d64504563696336566f68774c4a446a4439424d386541343279734846696d4138663959776a42316e5858466c462532463943706844417a33483038686642796775666874705965766e6161735a3038694642496a76476777774853314c436444444f4552647263726e7a44624b39615453633858354f4766656b504b6a7547764a5675545a645368696939783525324668395957475033344a624c3274586b79684d7948743725324669754f576c34414e436f7a44684a537264344a4c6e4177794f58433042425238646835415555744434577831376839434c64517639474263376c63523643457a4d59443571394b6646427376674169434c766a7255446c6f3744316e3975527a4350585771464374306b42354c33543277324153384b4d7a6951253242683746327642564e4d54784b4f3632592532467136707a52473453774e365934587071717664726a3674526d7936746d5269656632344b4977614777452532425a325450423056414e746a31474a476d6b6b3541307531574668253246765656336a373746344d58354634354e534b755925324675616f644165414d54583634504b514c687279693837455142253242333772793756596f7025324631515076615a4a515276766e507767473261437933576e584c3355507578495071485a384752394a466c51454e58565055514f494865584c765255742532464b64774b43627a55253246377247717561627353415a466832466b50766a6f4162614b44474a786262574561755330685368337a3847644b6c387434703256323668356d54415843253246672532466e684d32346f6a4762253242724b703773753061464271393674647231326c6d3249654e713668376d7972426f686c33537778713430477a7a73617a6b726735796b3738666749553578734e764538516f5a4a7445616773314f76393034253246396d7a536278456b31304572573834593238584a614c33694478656b43584251775335324a4a253242746a70336c647736766d6973466d7678436b3265703370253246532532467a35617971643854444a3772687a5a5a4525324670485969316b366259496f4b744330596a6d723170253242656c6a3136555239543731327335676b704556785372725064344846356f7058764c7442676d315861253242646c396b4d444562314f477a437a4b6a72357025324667324f304c556d4b546e466e4b766575774575746c6a4e4970577876763569307a642532466e454457366e336359684668355232567337475356253246576b477068626f53614b79434e3079575538376f32427a594e30553555313461453454253246766e755052624346614261587863636d63496f395a3767367532764c253242716d695661497168526d6d5478454c6278386f58664267535a7a4245524d646a69584a3236314f6b584f643973716d6a47304362623647687741764a70437137716b5155494667324c6a4530616d653430746e3644716c375a70766d4b54704e6d4f356a4b64424d7535684c64354948665a44595a62446f31506c776d7052455539646642417746644e467630587078483364786f7157426b25324279446578547a525342306e433468587442374c674e41637144743839367a524f397865723649697063376b756f7a4d455678356439783141316249554673556e743834326154775134326d43324b57764d547941496970766d72784138765739623766723063434a48765145786c3176564f785972576968347659705546744942704a4f7954666159364f4b552532464d6a71373078414b35635142434a705479614f54473161725273797a6f565653763858687025324633396162526d25324659776d676c4b3078253246573637724a73433356446f7656477751733058374149775146554d565638723561346b5579616570764f486330655a45475847634550643247326b6369713874514a334653787448326c4c504f644b7076304c54444b736c3858253242746c3162547565346625324268767151476f6f4d4d76504f474a715a38664c724236352532426f72653577666d47444825324230342532424d545a4344494e526e4e474e79316e59253246335453566e724e637450494c4147626f45253246395249546c45444f6d626c253242385a44654256436d6d6f594d2532464f566a7a453750473561464d3875704c5625324670683355634679766e35306d6a4c583871504d464262484f7a356d4b733771253242637442464f6a6f5a35664142717a6d704763546b446e7a4b506931716b56366e5763485279717356557a45335a25324676757955376d636a65377a42473857253242664b3254483345536a316c2532464d434e505866626b6e3067644b756b4d77636c465463624e4d7265384c467861363243673056544b374d51567853334d57416a59364225324246434e536f32344442696f2532464e497672626e5163364a765242695042423041353734584d566a7344545a774b35484d3833667367677a55706178494c374954387a6e5a4177417775547436477525324671466974586825324241584b627a426430675975253242644d444138384d4d343057665667414661696a694a5665383558253242454f594d46575436553144584d49426b38435376524a416538764f6f5663514e4a474e3462536858416c253246587531526d5a465a427a756565346b6d37656f416c3238722532466d4e253242447267546c4f306a78346f784b4566424c5047695a6676384c7076675641634b79704b4c71763438445a514a31374242335a3930576a3930465633253246674c3152535925324679344832714c6f2532424231522532426c6242646b597643366a725578426a754f6b45614b3269784432722532464a7169494b505179487235716e415968515269364c6a7a6764586737735235397577393659545525324265424d34614d614158704a696a666246423456575169324a7743556a6f557278646f6f6942636550564a677439253242783663373067514734535325324263394178424f353662436225324266476c625638306256734a32504c613652253246783125324643582532466f4139513557615136437a6f7257674c25324668586164564e716d367567794b4c6b4e5a42253242566e34512532424a4e6162576d44783279554f456c57784e6e4d50706a6266655a7742575863452532464c4e7535614b49746a514e4c537939655551527375694664622532467a744351736d513876376f55516d6a3948616a58253246787469453676674d517645796b4d6e456238674b722532424b34387152326d4c7546787432306b332532427651636c386e45427565304e37346c53794f6f253246464b387573756a56424c6d534945323071546457644b4f687a47467866737a4c6348506b437765704b4f645342684c4333305a6464674a61656244465564455735724a2532466d4b397049427458785a4367416c737048565032505862355625324267647975476657735163584e596751334b6233584250703073253246356c59676a4978325a76584b4c54374968487356324b6444304832624a64364c4f3963596c4847686a4b4b33397646664b506966424171566b6b346a4b644676304663533943744e4c37456f4873666525324262722532466166514839324f50435071394b62726c46775078253246737137797666577165795742764f436a4125324675634e75466e4d253246687245614f6b564c454c4f696b7a7752642532424c483133526f746830743566597730426425324251326c624b746d25324647755a45396a584c3854394f46394f615139677525324251476b54496352544d7952615933666f7748566c7a63466561466e646a4d386d59374e546c71426359357769614a706f6b4a6e6d7a776451552532427736594f444d5834734b74732532427358785948253246555673767062556a4544566646717425324276694879487055556741253246447554632532425a6352784d774e473552452532464e626f6e754466697330616e587572315a5347347a424e487945416477526f425225324255586474326f45447a3453354d4e6767763775387338647673326c315062466b44476a6b6f624f63557a25324255614e3241532532426a5964326b46615a766c3559665a4d79525a324a5759415976787353397443343725324677654e31654b576a634a374562675450654f35343069476c55336956794e5a784e525165414125324668537349534551435273564774393165576a6b7a78544d386b54797a463656334d486e63546c76534b6f6e376561636b483753765555563045704433773042484a4276753466693143636d42614e467058644672647679776254336b666e71715a304156253246584a6d6f4541665a413150772532424a66513448794b5a7472445359374b6b4c467a253246366236416674253246466c794c73396451736d756149714f5879504563624e72656675394d472532466f673363766a497a67495469333349422532464c7a517a786a6f57466a63624959426777566d45546f534c446b727a775433675a32522532463764634f65715562556649253242685834757639795a7772447064614c784f75707a393453476a726637673458476d7a5074646e75517943433949334c374a4c656772774e672532424d754a4f395234347970577a7925324662624151324a5338654b773849743237766748464437586479365a736765554359714c524674784d4954685332715834654f52744e594f48304c30576a686b674141617325324667616648686848334f494150467358794b75796c3935317a72327725324269343662443925324279743468446657334444692532426d53766b41377750364e4b67647665426b42505a68546679674a317441344a426c543074676138714174523679414865447569334e47522532466e393059797449635a47354570795571396d57754461566461375a4252726831716153253246494231655762674c304a686834714a54707a4771566b794e4f4e465475546b4867545869767838504a5275427a337251253242253242336868597176566e626e6730437a44713353587a66786351324b796830526f3575454d5151614a466678354f666a30396a783677314e6941525a6e4a6b316654306d68253246667a4a4a346525324232334e4a38724150716e324e365876314d75567a4c5931784f734b4a466335486a656548303057666d6d36354d6663436c4762664e35727a6d4b6147724f47253246413779764e6e525541746c777953375763573530346d396a5a4d6b746b655a5a53615242714f4a456d58443358565338433654566a57434d48774c4f5149654e44475a535425324673684958574e374a4d41566e253242644d25324225324677376d3962625951476c62464848506b7a63745150676c4d555369546546794c4344753567716e4b4468566833384d6f624a726f71626a707241372532425368546d615437253242356c3666424e6b4a4f4438535135506442713949756c655458304339576e504b76673261735330624c6f3648336931594654624645784449546361583246795162494a30434e522532464b34457357513648687355743067726e4139704b6b6e337971654d59796f715174596e75394c454d6532794b6e484673253242253246496d544d6c675934696b663730314c76756c5571444b46784b5158415251693567354c6e436b56576f2532426c794241414b74376275644c5533493262413963394576326c6e7839467241797464373858744a4555664f316e6a62746768563643506c5257625434436c682532466352634f2532424f4b6e3376645634766c6c4a596c414442633774253242486558566756576a49314b3665426b3635634f7a524159317367365551516f43614c587576374b76316c48497338457625324678694e427635436e3478473267797731427830442532462532425a6774454f3734353662584a4a253242516c48356e374345327074666c324363333562526e54444d46334739624c7665495238584d6d79586a354c6770486d656e6261736c3531366d4c4851683125324241354d3550594c6a7646625272623769776c62336b4854484e434c41253246506a39564b71524b637163667435386f314d704f4953784f357757676f48774e50415365564a6c474a7063536f6f6d36797655356344426e56316249474a4851335453746a4d646e575033585536744d4353637a517347304f386a4c6c53794369336956393144466a524f623979724475796f49467a664b743177464b7134757251533861523546655449614e56616b4a485949253242632532425643486b4f515533786957385950744845385565325a673941304667396367704d345831537569453248426f5a32595634667251504b366343506b4865336d4b796c7a4f4349646273717938374e3464346a6945764f753830784b66544664774b5674577958484144784c673053253242365272663249787a5179306d42326972315238744858655525324245676125324656323849622532466d56786857555850576d3830253242304c6e7272675459763658456c663054777462313768397735704b4b703144656e2532426f62595373347535524e676656684c73546e7552344a6e714825324637486170494f4170347531437662626b786a486d453962773176674f576c77575065756477744d505a495271645731756c7366686e55544c76475a4a7154764b53776363367644334c4c5049714b5376597553787a41626b645956253242766225324646443041645849514c5a3034453578536834595243545758494e4876514d686a454225324656733254613935394b5852414870614e424e4130574967717941463557786e5a4a544a38637045696871306c4c42374b4a437063346b52624f377831774468353145537537515877375142305a495856786573793743794a714f546d46724544395449455653644a4e424964765662314564454975574b5971394651505a4f416765584156574874737061475525324630795056327132417569664a4c5556703178666d6c646131496e3646664c476253307a715a49476a6d47726a72374325324667543943634a676a7654346d5457253242714779737958694f4234376f6e794e7435376a42787065583330316f31647870643552493644634e566468696d315475784d41706f384e7662504a312532465038774d48347a253242366c62707268585259695271464f5849765a3637663577536235613371714a6861336d434c73746162546558565a5a58637049766b65734d342532463231583337774c655525324641714379574b7a4c435045387672395933334369416234654a6e6857343946677643614d6f79327a73336c6c766661686e586f704d30554f413776736139327976626f3336716b6c346e6a5552597633503042444139585834253242637033434b4f7a655a4d51545331334a35566f5737525265646e4642306b756d702532466a4c556f717972426f6d436a656a316475253246463767426542737044753767734753253242796f54424f49364b463666483850485738484172694d59575639594c644c76514d5530654a58484a537a4b4f423475545262493557626d4e55332532423144783765445752787a546355327a253242354478356c565138496b4f6f36386f6c586a5a364f756b253242543136635139253246584130707a63506c47336c68344c5377766a323245504c4b7567746f6a5636253242727870523271397a693176576f37336f7a6c59774f444748424836614635374e69384a62586d6d424378366b6f6d5a46642532464b70515777384c6e6a4963416e59344c614a3855657038764f674b644378516b44676f39694b65456625324238253246335872353047366d634552757662653441347630395a78664678666d6d567369784230536234253242783953253242307239546530725176355025324646395676784c3433796c2532427866394a786138493976253246357a656e2532467856253242636a714425324659436b36253242762532427a464233356579584d66314f4b2532466f71334f496e5825324642393759376f455271526636397a396d375851366458566a78677336502532423977447a35497a4261387463502532466c6f5a6265376263357625324658586d25324225324671554948663833363650253246357158724f5a7a684f666e335872704f4579516145253246253242636f6e55632532427464712532423366667255373973347257456679253246634375492532463166312532466f253246555725324249663146763633366d33662532466d714e646250455038714d4f6a665748714d253246427442253242444f7576337a7262325468723850346434674838643847345a39704546446b763578424950253246624950776644514c3144786f452532424e25324662564f627657775438623434513747253246376d66797a4c514c31337862686e326b52634f672532467a7949415838593462763953514a3731725051787938455625324677732533442533432532466469616772616d2533452533432532466d7866696c652533459471022b0000200049444154785eec9d07981445fac6bfdd9dcd39b084258b80082288a2e279e209ea194f319ce1383d338a87f10c441573e22f8aa7a772660ce7e9e9e96156444c8882020672d865239be3fc9faab5c6ded9d99da999eaaeea99b79f679f859d8abfef9d7abbaabbabe3bc5eaf9770800008800008800008384e200e26ec38735408022000022000029c004c184200011000011000014d0460c29ac0a35a100001100001108009430320000220000220a089004c581378540b022000022000023061680004400004400004341180096b028f6a4100044000044000260c0d8000088000088080260230614de0512d08800008800008846cc23f2e790eb440000440000440202a090c39f5742dfd0ad984df3ae50f34e090df6869242a0501100001100001bb086cfaf8233af2857fd9557cb7e54a99f061d7dfa8a591a81404400004400004ec22f0fefc9b61c276c145b920000220000220d01d019830f401022000022000029a08c084358147b520000220000220001386064000044000044040130198b026f0a8160440000440000460c2d0000880000880000868220013d6041ed582000880000880004c181a00011000011000014d0460c29ac0a35a100001100001108009430320000220000220a089004c581378540b022000022000023061680004400004400004341180096b028f6a4100044000044000260c0d8000088000088080260230614de0512d08800008800008c084a10110000110000110d0440026ac093caa050110000110000198303400022000022000029a08c0841d02ef6d6ea1d6d22a6a5af513357eb48a92c60da39403f6a2f8826c8a4b4e72a815a8060440000440c0240230619ba3e1ad6fa4ba379653fdbb5f51ebcf3ba9a5b8c2576342411679061751ca6f4651dab107517c7686cdad41f120000220000226118009ab8e86d74bad9535d4b2a598ea5ffe986adff894a8a535782d9e784a9d3886d24f9d489e013d293e2f8be2e2e383e7430a100001100001d7128009ab0a5d6b2b35acfa911adff98a1a57fd442d3f6c256f7308e6eb577f9c279e12f72822cfc881947af87e943c6e18c5257a54b512e5800008800008184400261c4130bc8d4d7cd6dbf8fe4aaa7efa6d6add5a1a5269f1b919d456554bd4e60d9aded33397d2cf3c82527eb71f25e466505c4a72d03c48000220000220e00e0230e130e2d4b2b584eadfff9a1a3ffd9e5abedf44ad95d544c1fd94d714171f47b9775c4815b31e276f5d6368b5c7c5517c662a79860fa0e4fd8751dae163c933b017515c5c68f9910a0440000440c04802306189b034fdb095763ff032357efa1d51184bcdacaad4a3f6a7bcf91750c54d8ba9ee5f1f4bd46e49ea89a7e4317b52d68c532869f880f0ca402e100001100001ed0460c21221a8fbef0aaab8e151891c1d93c667a4528f97e691a7470eb5965551c9c9b3a86d775dd8e5e5cefe13a59df09bb0f323230880000880805e02306109fe4d5fff40bbcebd432247c7a46947ee4fb9b75ee0fb63e5bcc554fbef8f435ecaf6afb8e0e12b2979ffe161b70719410004400004f41280094bf06fd95146c5c7fc4d2247c7a4b9b75d406993f7f7fdb1e1a36fa8fcaa07c3ba8b9a15d2f3b5f9e429ea11767b90b1238167dff82f9d73e34cfec77d860ea5a76e9b4f43070ea44fbefe9a0e3ff73c7af7b147e9e07df70d1b5b38e5945556d29f6f98494b972fef50efe337df447ffcfdd161b74536a3b51d91721075d73734d0d577dfc3ff7be79557d0cab56b23e6cccabcf7c9a7e8c253a6505a4a4a87f253535264bb8df420603b0198b004626f6b2b6d3fe862a29610efc2b294cd6eaceaf5bfbb3aec8ee56d6aa6923fdc482d3bca255af14b524f3cf559fe20c52524c8e7458e4e04d66fdc4867fded7abaef6fd7d0b08103b9f10de8d39b9b83aac13b12133e68dfd174fdf9e7f176cf7fe4517ae59d777d27094e8453b49dd535ebe28b7c6d89a46e7f1356c199b159fef52a7ae2969b283f272792e6212f08384200262c89b9f884eba965cb2eb95c714439b79c47e9478def948feda4557ef543d24bd2094505d4ebb55be5da81d45d12102613c860ace6599093c3cdfaace38ea1a59f7cca67a8d63cc2ccbf59bf9ece3bf924dab47d070903f53761abb14d3ae8a080c62166a056131675ccf8d3d97c36dcd50c5e18f6bc8716f199fd11071e486f7ffa69a7193e4bd755fd029830377662c2fa6435392b3b5697d5a8455b45dd820b3bb961477733612b4b96d63a0367ed117589b6ffef93e51d56321e9d3b9bfefee24bbc1e7132d55599e2ef5dc5155f1d10b08b004c58926ce9b47ba971f97752b93c837b53cf17e7f9f2789b9b292e31d1f7ff5d7f9c474debb64895c9ae05b36bc238d410b01a22334feb0c3890091f306a244ff3cabbefd1bdff7c921b5bbf5ebdb8a908935ab771235f5e15261da81c66a4271e3eb1cb65d36026bcdf88bde8e687ff4ef75e7b0d07619dc18be55db6742deaf8ecdbd5bcadec602713c1ea67e9ac6d386cff719d968cfd4f60c44901334d71d22278056a933049eb72b4588d38e398dff3130deb0c97717de6f53738ff2d3b77f27e9cf8bbc3f9ecdc9ace7f395aa4b59ebc88d8091e81e2ca2e49e00001bb08c08425c956def60cd52e794f2a57d685c751e685c7fbf2b0c79c32cf3fd6b7345dfde45bb4fbfe9742dabc43149276e204ca9df567a9762071f704acb32bebcc2b90798a41bfbbcffc0dd49a9619b5300036c833e362c6e2bf8c1ac884032d475b67c3e224825d1bb52e5bb334a2ce2fbffb3ea4fa19076bbb85395a67e6fe337c6b9ba74c3ac267f6cc4cad4bd0f32e9d46b31e58c883e27f4d98fdedafb7ddd1ed92bb355ee244a73b13b69e3031e681da1928ae91dc0780ef1c08042300130e46c8eff39aa7ff475577bf2095abc773b32869683f9e876df4517ce28dd4e3991b2969687ffeb7e60d3ba8f4ac5ba8ad3ec4cd3b8828f3921328ebbc63a5da81c4c109045a2216335aebcc4ecca6ba9add32c3e9ce84dffffc0bdf72aa6895f56630f1b7ae6ecc124bb3a27e66bc73a75d42b3173ee8333566c2d6eba356137e71e9db21d5cf0af3bfceeaff7f3b4cd8ff24c51a3971c2c18c97dd80c566ffe2a4a03b13f6e7d1ddc94238d7ef83ab0b2940a0330198b0a42aea3f5849e533da07ba508ed489fb52de5d97b4ef6ee5f5125fcefef47bbef355fe4357f0973478bd5eaa9cf90faa7b63452845f234b937ff85d27e7f60c8e991508e8075b6595a59e95b8215cbabdd99b0984dc9cc84bb6a5da099b0356d30d3097526dc55fdfed750ade9c41dda769830ab27d01de9fe3773d53534846cc2a1cc8403c5153361b9ef0e52cb118009cbf1a2a6f59b69d799b710b5b605cf999840bddeba9312723279dae6f55ba8e4f45faf0df778f27a4ada7b10ffcc5b5d473b265f45dec6e6e0e526c453c1c35750f2d861c1d322454804fc9778fdaf410a43e8ce84c70c1fdee19ab0b85148f535616b87acb35b71b22096a3add75f271f7c1037abe2b232a96bc2d6ebbbc28cc48981b87b5cd423ea6566c71ef5b2ae1cf4cccfe74bed6255c17a9d9af5c77f39da7fd9db7f162f66f8fe8c23bd260c130ee9eb82440a09c0842561b66cda49a5e7dcce5fdcd0ed11479476f478cabdb9fdb11276ecfefb6b54bde855dfff33fe3499b22f9fe2db03baf29627a9f6e50f83de299d9095c667d1897b61cb4ac9f075995cccb01e7de9659ea6abe784bb336166524edc1d6ded8475b99ab5b9303f8fe228ce776d595c370de7ee68c1c4ff6e68567fa0958285375c4f0fbff022b13ba0c52cb9bbbb8e833d271cec4e66568fe8f3c03e7d3a18396be37f173d482f2d7d9be30a7477b435c6fe779c63395ad5370be5042300130e46c8eff3e61d655476d1ddd41aec31254f02e5df7511a51cfaebe60ebbce98474d6b7fbd0b3a718f3ec466c3e2cd488d9fafa5b2cbff8fbc0d4dddb6cad32b8ff21ffc2b7906f6966c3d92db49c0df54fcefc6b5b3ee4065fb1b895dcfd0766758fee6e63403d40702a61380094b46a8ada29aca2ebb9f9abedbd46dce84be0554f8f44c8acf4ce3e91a57aea7d20beeeeb08c1d97104f79f75f4a29078fe269da6aeba9f4bc3ba939c8e34a8943fa50de82e9e4e9952fd97a24b79b80f5c62e5697ffe34e76d76f2ddf7f76cf3e53b5db95b51e98b09351455dd14600262c1951669465573d484d2bd6769b33e7a67329fd98837c696a9e5e4aad9b4b3ae549e8d78332ce9aecfb7bfddb5f52f935ed1b1e747524ed3398f2eebf8c12b233245b8fe4200002200002261180094b46c3dbdc4a15373e42f54bbfec3267e2e03ed4e3f959e16d29e9f552c91937753b1b4e3e686fcabf771ac525fdbae1876437901c0440000440c0000230e130825071eb5354f7c2078173c611655d7a12659e13fee6fab52fbc4795b73fdbe5e61d69bfef78c357185d40161000011000010308c084c30842f53f5ea7dd0b5f0998332e35897afcf37a4adca3a8fdf3d6566ad95519b49684fc6c8a4bf4f0742d5b4a68d79f6fa5b68ac07760679e7b34377a1c20c06eb6da5e52a2f44513fe54d9cd55626b4c999722f85f1fb7e37a341400026e2700130e238275ff594e15b31e0b983375f238fecee038b6390711d5fd671955def66cd05ab2a69d48197f3cc297aef2a6c554fbaf8f03e6cbb9fe2c4a9ff2dba0652241741360e6b8e0e9677827a79f79067feda21d473826cc1e9d62bb77b15dbc98713343bef5917fe0ed4676040865ba9a004c388cf035ae5843a517dfd729279b05173e379b3cfd0af967defa462a3e750eb56e2b0d5a4b42610e15be348fe2d35379dad6eda5547cda5cf2d63674ca9b7fff6594f29b7d82968904d14d806d60218e0ddbb6f95e2f284c332b2383c473cfd659a8d880433c3b9c919e4633ce3e8b6f34c25e98c09e7766263ae3f63be8c60b2fe0555867c281deda245e5e51555d432ffcef7f9deec216cf335f77fe5f227a2773744714bd8b450230e130a2debc613b959c3cbb53ceb449fb51eeed17f9fe2ebbc5a5ff569495739ea0da579775aaa7c7f3b32969cfbe61b41c59a285007bfce8a6457fa73f9f783c9f695a679dfecfe65a97acd9b3cb57dc7917dd73f5553c9fd877395413663b5e5967b4ac6c7688fc7d0a0b03be6b98b549d46bd78c3d5a628b7ec41601987018f16eaba9a31dbfbdbcc3ce56712989947bd3b994fabb71ed25b6b551c5bc7f525d0013edaacad4896328f7b60b7cd7861b96afa18a6b17515b8d65361c47d4fbfdfb7dcf1f87d17c64890202ccd49e78e5559a79d105949a92c277b062af1914bb76590d8f2d058b57ffb12d25adb36636ab65ff0fd584fdaf09fbe79f30660c7ff5a0f510cf2b07fa2c0a42812e8040440460c261e2dbf9bb2ba8b5a2da973ba17f4f2a7cfa06df72325f8a3e6926b51657845c437c5e26153e378b120a72da7dbcbe91ca2eb88b9ad66cfcb59e9c74eaf56ee7a5f0902b41c2a820605d12161d127b54fb5fc3b59a307b93103bd8bb77d9216bc2e21dbd62999b95c1eaf53771d12661c05dcd90a32218e80408444000261c26bcd2736fa3c6af7ff2e54e3d721ca54efa6516cc5ed6f0c336aa7ef835e9d233ce9e4449a3f7f0e56bf8f0db0eb3e9a45183a8c7e2eba5cb4586e82110e8fa6a77d770c399095b978f1939714d98bd3061d9ca95bebbb1bb32719647b4935d67f69f1d474f34d01310888c004c384c7e75ff5d4155773c4b6d55b5ed257812282ebefd8e687678dbda885a4278d3925ffd719e78a2f8f880e5c467a450f615a751da898784d96a648b060281ee34b62ef9ee3762af0e3752594d38d835613163b5beb5a82b13b6be46d07f268c25e868501afae00401987004949b37efa49a475fa7868f57535bb0b72a45504f7c561a251f3882b2ce3f963ce2f9e308ca43567713103743892565d11b669cecda2fbb4efcc033cfd2bdd75ee37b3c485c1366d78fc552f6a4830ea249071f483575f57c79dafad6a23bae9c415fac5ed3e9ee685617bb996be9f2e5c4f25f70ca147a6bd9329a77e9349af5c042dfddd55dbd8718cf0abb5b7b68bd7a0230e14899b6b652f3861db4fba157a9e1c355a1bd6738d43ae3e32879fc5e9475d9497cf30fb19947a8d9910e04ba2380d92af40102fa09c08415c5c0dbda4a0dcb5653cd13ffa5e6ef3793b7b139ec92e3923c9438ac1fa59f3989d81dd330dfb05122a31f01ff5dacc4cd5c00050220a087004c583177f696a5c615df51d5edcf52ebae2ae9d213723328ebcad3f8661ce23588d28520030880000880802b08c0846d0a93b7a1916a9e78936adf5841addb767578a6b85395714409bdf329ed887194f197dfc37c6d8a098a0501100001d308c0846d8c08bb43ba6d5b29552f79976a9f7997c8eb0d585bfac98752c619475042ffc2f05e7f68631f50340880000880807d0460c2f6b1ed5072f30f5ba96ac18bd4f4c57a7ebd985df74dda774fca9c7622258f1aec502b500d088000088080490460c20e4683ed80d5f4fd266a786305a54e1a4b892307fb76d872b019a80a0440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c2100133624106806088000088040ec118009c75eccd1631000011000014308c0840d09049a010220000220107b0460c2b11773f4180440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c2100133624106806088000088040ec118009c75eccd1631000011000014308c0840d09049a010220000220107b0460c2b11773f4180440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c21e01a131e74e86f0d41866680000880000880801a021b3efc808e7ce15f6a0a932c25ceebf57a43c9f3e392e74249863420000220000220e03a02434e3d5d4b9b4336612dad43a520108304d6ac5943071c7000ad58b182468e1c198304d06510881d0230e1d889357aea120213264ca04f3ef9840e3ef8605ab66c994b5a8d66820008844300261c0e35e401019b08ac5cb9920e3df450aaa9a9a18c8c0cfae0830f68ecd8b136d5866241000474138009eb8e00ea07010b01310b167fc26c18f20081e82600138eeef8a2772e22609d058b666336eca200a2a920100601987018d0900504ec202066c1e9e9e994909040adadad545b5b8b6bc376c046992060080198b021814033629b009b051f78e0819493934377df7d379d7df6d9f4e4934fd295575e49959595b47cf9725c1b8e6d89a0f7514a00261ca58145b7dc45a0acac8cfefdef7fd3b9e79ecb1b1e171747e211fec71f7f9c8e3ffe78cacfcf7757a7d05a100081a00460c24111210108384fc06ac2ced78e1a4100049c220013768a34ea0101090230610958480a022e2600137671f0d0f4e82500138eded8a2672060250013861e40c0400230610383822681800d0460c236404591201029019870a404911f04dc410026ec8e38a195314600261c630147776396004c3866438f8e9b4c00266c7274d0361050470026ac8e254a0201650460c2ca50a22010309a004cd8e8f0a071b14a00261cab9147bf638d004c38d6228efeba82004cd8156142234120620230e18811a20010504f0026ac9e294a04011309c0844d8c0ada14f30460c2312f010088110230e1180934bae92e02306177c50bad05817009c084c325877c2060230198b08d70513408184400266c5030d01410100460c2d00208c4060198706cc419bd74190198b0cb0286e68240980460c26182433610b093004cd84eba281b04cc210013362716680908f808c084210610880d0230e1d888337ae93202306197050ccd05813009c084c304876c2060270198b09d74513608984300266c4e2cd01210c07234340002314600261c63014777dd4100336177c409ad04814809c084232588fc2060030198b00d50512408184800266c6050d024108009430320101b0460c2b11167f4d2650460c22e0b189a0b026112800987090ed940c04e0230613be9a26c103087004cd89c58a02520e0230013861840203608c0846323cee8a5cb08c0845d1630341704c22400130e131cb281809d0460c276d245d920600e0198b039b1404b4000cbd1d00008c4180198708c051cdd750701cc84dd1127b41204222500138e9420f2838002024b972ea52953a6d082050b68ead4a9244c78f1e2c5347dfa747ae1851768f2e4c90a6a4211200002261180099b140db425a609a4a4a490c7e3a1d4d4542a2d2da5828202aaafafa7e6e6666a6c6c8c6936e83c08442b019870b44616fd721d81db6ebb8d66cf9e4d4d4d4dbeb6272525d19c3973e8baebae735d7fd060100081e00460c2c119210508384680cd821b1a1a7cf525272777f8bf630d41452000028e1080093b82199580406804acb361cc824363865420e06602306137470f6d8f4a0262368c59705486179d02810e0460c2100408184680cd8667cd9a4573e7cec5b560c36283e680806a023061d544511e08444880dd0d7dde79e7d1238f3c426c491a07088040f412d066c213274ea4f7df7f3f7ac9a267200002200002b61038ecb0c3e8bdf7deb3a56ca70bd562c26ce301f6b364c912a7fb8bfa4000044000045c4ee0d4534fa5534e3985ffb8fdd062c2d104d0ed0240fb41000440c06d04a26922a7c584b12faedb248ff682000880805904a2c5471c37e1683a83314b92680d08800008c40e8168595175dc84a3055cec481d3d0501100001f30844cb84ce71138e962504f324891681000880406c1188063f71d484a3e5cc25b6648ede82000880809904a26165d551138e0660664a11ad0201100081d823100d133b474d381a960e624fe6e83108800008984bc0edbee2980947c3198bb93244cb40000440203609b87d85d53113763ba8d894377a0d02200002661370fb04cf311376fb9281d93244eb40000440207609b8d95f1c3161b79fa9c4aeb4d17310000110309f809b575a1d31613703325f7e682108800008c43601374ff41c316153960a1a5a6aa9b6a99a1a5beb6877433935b5365052420a65a5e45172422aa52766514a627a6cab19bd0701100001171230c56764d1d96ec2269ca194d66da3659b5ea39fcabfa18afa62aa69aca0566fab8f55425c026524e7525e6a4f1a9cb70f1d3ce038ea915624cb12e9410004400004341170eb8aabed26ac0b8cd7eba5f2fa62fa60c38bb46cd3abd4dcd6c8a591e249a78ca46c4af6a4527c9c875adb5af88cb8a6a992d84c991d89f14974f080e3e9b04153283fad1711c5699215aa0501100001100885800913be50dae99fc67613d6b544f0ddae15f4d2ea05b4ab762bef73617a3f3a6cd0293420772fca48cae126cc66c0ad6dad3e13de50b1863edcf83215d76ce2790ad28be8d451336878c1fee1b0451e1000011000010709e8f29b48ba68ab09eb383369f3b6d1f2cdffa125dfde435ef252617a7f3a7cf06934bedf519410ef09ca8a99f2675bdfa4777f7efe17338ea32923a7d321034ea4f8b8f8a0f991c0dd04d6ad5b47a79d761aefc4f3cf3f4fc3860df375e8a69b6ea259b36675e8e085175e48f7de7b2fffdb8c1933f86ff6ffd4d4d44e20962d5b46871c7288efefa3478fee544757f458bbde78e30d5f1deea68cd683803d0474adbc46d21b5b4d580790cfb7fe8f9efde60e6a696ba6d1bd7e4ba7ef7315a52566123b430af5604bd9752dd5f4e2b7f7d397dbdf264f7c229dbcf7749a30e0f8508b403a971278fae9a7e9acb3cee2ad7feaa9a7e8cc33cfec60c2cc48599afcfc7c12a6cad29d74d249dd9a30cb73e79d7776305d66ea2fbdf45250232e2b2be3ed98306102cd9c39d3a564d16c10b09f808e895fa4bdb2d5849d5e1af8b6f8137af4f3ebf90c78bf3e47d02923ff4a6949996133aa6faea1e7beb98b56ee788f9771fefef36954cf096197878c6613a8afafe7465a5555c51b9a9d9ddd6156cb4cd36ac2223d4b3b7ffe7cbafefaeb03ce84c5ecfaeaabafee60eafe3444ba55ab56f94e0284b93ffcf0c3fc6f62e6fdd5575ff966d5471e79243f316087d5acc549c2bc79f3b8798bff7ffcf1c7b471e346dfc986989117141474327bff3e9b1d41b40e04884fb8d844ca2d876d26ecf41949abb785e6be733a5536eca27d7a1d4ae78c9d1dd2f273b040b11bb79efefa36fa62fb52ca4e29a059873f4389f1c9c1b2e1731712b09a256b7ea0996b38261c6816ec8f4718fad9679fcd67bcd659b2bf395adbe93f03bfebaebb7c270a6fbef926375a61dc2fbffc323df9e4933477ee5cbaefbefbe881071ef019f7c08103f9098735bfbfa9bb30a468720c12d0b1021b0966db4cd80910ec8ee6d5c5cb6963c51afef811bba12a37b5274d3ff07eca4fef1d3697daa6dd949e94e5cb5f515f420f2c9f41bbeab6d2a0dc9174e941f7f23ba871441701ab59b29eb16bc3d6d9abffac30d4e5687f13f6bf366c5df6b6ce86bb9aa1fa97c7fecfcc95fd5ebb762d4d9b368d2f712f59b2845fc366e53cf1c413b468d1222a2a2af22d695b97defd67d86cb6cc0e760d9bfd9b9d18e000013710707a02182913db4cd8ee25812fb7bd43cf7f7bb7efb12206223e2e81fe76e813d42bb37fd85cb654aea7155bfe4b53465ddea18c929a2d74cbfb7f222fb5d1c5e3efa2bd7ae08ee9b0211b98d1bab4dcd58d56816ecc124bbdfef9ad3766599781ad66669dd11e75d4517c2978e7ce9ddc40bff8e20bdf4cdc7f261ca81dc2b0c5c9c3d4a953e9adb7de22b654cd7eb319f3830f3ec84f2ad8ac97992b33de5b6eb9856eb8e1061e11d6efbaba3ade0e3623fff9e79f3b2cbf1b18363409040212b0db7f5462b7c584ed3c13a969aaa21757df4f5fef789fdabcad94959ccfafd30ec8d98b8ab28650bf9ca161f3d951bd911effb27d19fbb283eee33774598f7f7c318b56edfc8026f43f9e4edbe7cab0eb4146f308f8cf4ead2d1433c1eeae8f7667c25d5d13b6fe5d18a3a8cb3adbf537e1ee96b7453b366cd8c0bb70fbedb7f31930bba62c8c9acd90c5b27a5a5a5aa71bca583fbffbee3b9e7fc48811b819cc3cb9a245410838b112ab2a08b698b05d00d8661a0f7f7e1dfd54b68acf7ac7154da2d3475d459e84c48878b0c79a3657aea587565c4df52d35fc39e2e907dd4fbd32077628973dfaf4ec3777f2bf1565ef4953c7cca25e19fdb0994744f4cdc81ce84e656192279f7c3237a2704d98f5502cfd0a9315773cb3592a5b8e1e376e9c6ff9db7f562c734d98cdc0455de286ad40d786c5f5eed2d252dfac583c5a653d21c152b419fa442be408d83911946b49f0d4b698b05d4b01ec4ee54f33112a770000200049444154b7bc4ea99e4cfee8119b01c7c72704ef651729d81d74eb4bbfe265ae2e594e8d2d753c651cc5d38507dc46230ac777c859d75c4dafac79903edfb6945abdcd949e94cd9f419e38f854fe18130e77121086286e4e124bc96256c9ee2466c6c69673ad3766597bdbdd4c58a40b34db16cbd92c8d7599995d8f66cbd2d65938bbbe2b8c955dfb15cf1c8bbfb1c7a6d8e17ff2e07f97b4f50480cd8e7bf6ecc9ef28158f5e89cfc5c98328d79dd145ab6395805d3ea49aa77213b6eb0ce49b9d1fd1a35fdcc837cc3865e4157470ff63437af6972d5957375650795d31edacd948d58de5c496b44bebb6d386f2d554dbdcfe388aff71ccd0f3e8c8a16707fc8c5d377e61f5bdb4b96a1ddfd0f2d8e1e7d3e1834f0fa93daa0388f2404035013c97ac9a28cad341c0ae1559d57d516ec27674bcb1a59e1ef9e27a3e6bddbf68329d31fa6f9410c20cb8a9b591febbfe715ab5e3432aabdbc16faaeaee604bdceca7a5ad89d773f698f61b56021dac4dfffe7e117dbce9154a4c48a63f8f9d8d678855ab13e5394e40ccc6fd67d78e37041582408404ec9a1046d8ac4ed9959bb01d4b00ecd1a37b965d42e4257ec354dfec3d83726868a9a37faebc855617b73f6a11ca519056442c5f4d53050d2b1847d30ebcbbdb6c6c8bcb7f7c7923ad2efe847a670ee2d791d912350e100001100001fd04ecf023d5bd526ac2769d797cb6f52d7aeaebf9d4376b4fbaeca0fb29358477fe7eb4f1dff4d29afbf91dd4a11cec66ac03fa1e45effdbc84cf98f7cc1fc30d3fd8515cb3991ef87406d53456d2f9fbdf42230a0f0c96059f8300088000083840c08e9559d5cd566ac2767578c9ea7be9e38dafd098de13f9b26fb07da0d90c75cebba75155c3ae90782527a4d1d143cfa1377f78c2f7dcf1e85e87d15fc6cd0d9a9fd5f5cf9537f1ad2dc7f73b9ace1cfdb7a07990000440000440c07e02764d0c55b65ca909db35f57ff4f31be99be28ff8cd4f278eb83868ffcbea76d2dc77dbdf8413ecc84ccaa3f3c6dd4c6facff07ad2bfdd297fcd861e7d3e43ddb37f20f767cb2e9357aeedbbb282fb537cdf9dd73c192e373c309f86f8611ce633aec0ee53973e6f0ad2155dd5d6cbdab992114bb5cb1bbb955d7c7eea8661cc41dd386870ccd03812e09d8e54baa902b33613bcf381eff6a2eaddcfe2e1d3af064fe5ac16007db6672f63ba7749bcc139f4443f2f7a54943cea2afb7bf471f6dfa972f7d52420a5d32fe6e1a9c37325855fcf375bbbea0852baea4f8380fdd77cc3b21e54122330930e3d9b66d9befc50de2719f850b176addba511830dbc94abcd98919e4471f7dc4dbba79f366a5a60f1336539f68953c01bb5668e55b1238873213b6b3a3afadfd3b2dfdf1691a5eb03f5d3cfecea0cbd1ecf9df79ef9e4165f5db03f69a5d5b3e65d40cea9735941efeec5a5a57f6eb0c98651898bb374d1b7f37257b3abf13365081eb4abfa2859fce8009ab52a5a672c4b3bebff9cd6f3abdc29035e9aaabaee2bb4b8d1d3b963f33ccde7624f67d66663d7d7afb09223bf3b6be24813dd32b5e96f0dc73cff976ae62ef2ab6ce6ed9cc96bdc189cda0adef3166655a0dd7ff396666cc6c430febccdbfa4cb2ff3b8fc54b2258dd975e7aa9af3eebbed5ecf9e5ae9e89d6141e540b026111b07382185683fc322933613ba7fcdfeffa8c16adb8867aa4f7e5376665a7b46f4ad0ddb176d7e7fceee8e6b646ea953190fa660da1fe39c3b8c1b2ad2ebfd8b694df84555ebfb343313d3306d0b963e752efac41c1aaf07dfee1867fd18b6beea3c2f4fe74e3c42743ce8784e61110bb4d5937d110adf4dfbc83ed36c58c77c182053c09db6043cc98adcbc362630db6accd0c9c19b97891029b79b383edc8d5d576945d9d1c58e959eb63ed126db1d6274e220299b0d8954bccb4f10a43f3b48916854fc04e7f0abf55ed399598b0dd671a6c79f9de65d3687763195d74c0ed343c849727b4b5b552434b3da524a6f10d3ed85151bf8bdefbf979fa70e3cb01ef9ade237734fd79bfd92199bc00cfeebe667b4a7f5bfc311dd4ff58fae33e57471a13e4d74cc0ffdaabff4b1aac3365665683070fe6db4e0a4366b3587f13b65e5f6566cb5e8e70c92597749889facf4cfdcd5f9867203cfef5b1b72a59b7a164f53ffae8a374f3cd37f39733b0174958eb63655a67d2aaaf316b0e29aa8f710276aed4468a568909dbdd4166746ccf66f676a3de198368fac10b3abc6ad01f02bb6379d6db5368afc203e88cd1d750795d096daffe8976566fa4e6b62662ef08f67adbf89697ec250dd9c9f9d43b6b30f5c91c4471bf1876a860d94b1f1e58fe577e57f5f9fbcf0fe90421d4b2914e3f01eb2c54bcbbd76a865613eecac4d84cd86a8ac284d9f7c66adcc14cd87f99bcab9930db2b5a5c2bb6deb4c5f68beeca84d9ecd97aa20013d6af3db4401d01bb278a91b45489093b31d567cbc637bf7b16b5789bf98b1bce187d6db7fb35b3571de6a5f6a44121de5c150ec496d6665af4d9b5b4beec4bbe81c8a507dedbe9cd4be1948b3c7a08301364aff563aff7b3ded12c4c532ce70a33b41a349b09cb9a70a833614623d03561f677669c871f7e78876bc2fea62f6eb2f29f098bebd862391d33613dba43adce1070c2a7c2e949c426ece419c6e75b97d2f3dfdec567b2fb151d41c70fbf90b252f2c2e977c479d89698cfaeba93bedcbe9412e393e9a2f1b7f30d3e70b89b80f51a2deb89f5ae643113667f1777245baf09cb9ab07833132bafbb6bc2feedb0de1dcd66d8cca0d94c56d41fec9ab0b81e6dbd06ddbf7f7f7ead5a9c60e09ab0bb758cd6772660f78a6db8cc233661273bc65e39b8f4c7a7f89dd24dad0d9497da8b4ede7b3af5cb1ecab78b646f320ab69147b8a0583e66feec5587ec050eec9dc6bbeab6f27da34fdefb323ab8ff7191148dbc0611f07f4e58dc012d66beccc4d81b8dd8219e21f65fbeedee1aad985933e3b55e7fbee79e7be8b3cf3e0b7877b4d588d9eb0fd961dddfd9bffe4077478ba56976d316bbb3dbbf3eebddd1ec33f67fff550183c284a68080140127278c320d8bd8849d9ee2b36bb95f6e7f97bfc5a8beb986f7b520ad0fe5a5f5a2b4c42c4a88f3c8f45f22ad97d8ab0cab1acaa8a4760b7fc903bb9e7ccac81934baf7a17895a10449b7261526dcdd0d5291f40dcfe646420f7941203801a7fd2a788b22bc3b5ae799057b3de1ebeb1ea375a59f53554329b5b43587d25f256972527a5051d69ef487bda751617a5f2565a210f309a8366151dec30f3fcc3bcfdeedcbde21ecff8cb0f964d0421070070127576e432512d14c587787d8acb8a2611755d417d3b6dd3ff24790dada5a42edbb74bacce41c2aca1e42ec6d4bf969bdf96b0f71800008800008b88380ce8963578422326113a7f6ee90025a090220000220a0838069be15b6099b7846a123a0a8130440000440c03d0474afe0fa930adb844deb887b248096820008800008e82260da04326c13366d4aaf2ba0a8170440000440c05d044cf2afb04cd8b4330977851fad050110000110d049c0a495dcb04cd8a40ee80c24ea060110000110701f019326926199b0495379f7851f2d060110000110d04dc0141f93366193ce20740711f5830008800008b89380292bbad2266c4ac3dd1976b41a0440000440c00402a64c28a54dd89429bc0941441b400004400004dc4bc0043f93326153ce1cdc1b72b41c0440000440c0140226acec4a99b0090d3625786807088000088080bb099830b194326113a6eeee0e395a0f0220000220601201ddbe16b2099b70c66052e0d016100001100001f713d0bdc21bb209eb6ea8fb438d1e800008800008984640f7043364139e387122bdfffefba6f1437b40000440000440202202871d7618bdf7de7b1195116ee6904d38dc0a904f1f81e6e6669a3a752a2d5ebc98121313f53504354b1140dca47019931871332614ae6a084cd855e1926becfcf9f369eedcb9346bd62cbae1861be43223b53602889b36f411558cb845842f6633c384a338f4292929d4d8d848494949fc370e771040dcdc1127ff56226eee8c9bee56c3847547c0a6fad959f9bc79f3b8f9262727d3cc9933311bb689b5ca62113795349d2b0b71738e75b4d504138eb688fed21f71562eba87d9b03b028db8b9234e5dcd82f17d7367fc74b61a26ac93be4d755bcfca4515980ddb045b61b1889b42980e1685b839083b0aab820947615099e17a3c1ecac8c8a09292122a2c2ca49a9a1a62776f36353545618fa3a34b889b3be388b8b9336ea6b41a266c4a2414b5e3edb7dfa62953a6d0030f3c40679d7516892dd99e7aea29baecb2cb68c992253469d22445b5a1185504103755249d2d077173967734d606138ec6a85afaa47b5fd428c76b5bf71037dbd0da5a30e2662bdea82c1c261c9561fdb5531814dc1960c40d71732701b45a96004c589698cbd263307759c07e692ee286b8b993005a2d4b00262c4bcc65e93198bb2c60306177060c717375dc74361e26ac93be0375c3841d806c4315889b0d501d281271730072945501138eb280fa770783823b038cb8216eee248056cb128009cb1273597a0ce62e0b189635dd1930c4cdd571d3d97898b04efa0ed40d137600b20d55206e364075a048c4cd01c85156054c38ca028ae5e8e80828067377c611717367dc74b61a26ac93be037563507000b20d55206e364075a048c4cd01c85156054c38ca028a997074041483b93be388b8b9336e3a5b0d13d649df81ba31283800d9862a10371ba03a5024e2e600e428ab02261c6501c54c383a028ac1dc9d7144dcdc19379dad8609eba4ef40dd18141c806c4315889b0d501d281271730072945501138eb28062261c1d01c560eece38226eee8c9bce56c38475d277a06e0c0a0e40b6a10ac4cd06a80e1489b8390039caaa800947594031138e8e80623077671c113777c64d67ab61c23ae93b503706050720db5005e2660354078a44dc1c801c6555c084a32ca098094747403198bb338e889b3be3a6b3d530619df41da81b838203906da80271b301aa0345226e0e408eb22a60c2511650cc84a323a018ccdd1947c4cd9d71d3d96a98b04efa0ed48d41c101c8365481b8d900d581221137072047591530e1280b2866c2d111500ce6ee8c23e2e6ceb8e96c354c58277d07eac6a0e000641baa40dc6c80ea4091889b0390a3ac0a987094051433e1e80828067377c611717367dc74b61a26ac93be037563507000b20d55206e364075a048c4cd01c85156054cb88b804e9c3891de7fff7dd787fbb0c30ea3f7de7bcff5fd88b50e60307767c4a365dc504d1fe350d74461c25db0c120a8fa6b88f26408407f32b490d67402d0334c585aa3108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384838a70e9d2a53465ca145ab060014d9d3a958468162f5e4cd3a74fa7175e7881264f9e1cb41c2400817008407fe150431e530940cfa14726ceebf57a434f1edd29535252c8e3f1506a6a2a95969652414101d5d7d7537373333536364677e7d13bed04a03fed2140031412809e43830913b670baedb6db68f6ecd9d4d4d4e4fb6b525212cd993387aebbeebad088221508844900fa0b131cb21949007a0e2d2c30613f4e6c16dcd0d0e0fb6b72727287ff878615a940203c02d05f78dc90cb4c02d073f0b8c084fd1859cfde300b0e2e20a4504b00fa53cb13a5e925003d07e70f130ec0489cbd61161c5c4048a19e00f4a79e294ad447007aee9e3d4c38001f76f6366bd62c9a3b772eae05ebfbeec66ccdd05fcc863e2a3b0e3dc384a585cdee863eefbcf3e891471e21b6248d03049c2400fd39491b75d94d007a5664c237fde742bb6385f235139879ecc39a5bd075f5d09fb1a151d63093f5a7ac93bf14043dab266a5e79a1ea39e4e568269a93f79f6e5e4fd12225045efa7c01852a1a25154a1602fd4902735972d3f5a71a27f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e63d6845bbd2d54d7541556e4d293b2293ece13565e5333c98846471fa26dd082fe3aaac874fda9d63cf4fc2bd1581f4f63ce84d9e0f7f9b6d76875f187d4dcd618d6772b29218546f5fc2d8d2b3a96e22921ac324ccb64fa20182d8316f41758f9a6eb4ff5f7157afe9568ac8fa73167c2effefc04ad2bfb4cc9776aef1e13e8d081672a294b7721a60f82d13268417f306146007aeeac83581d4f63ca847754ff40afacbd57a9dffd61afaba857c660a565ea280c266c3f75e8af6bc6a6eb4fb53aa2c184a167357a8e1913f67abdf4c277f3a9ac6e9bd2ef5361fa003a69c4351447714acb75ba30d30741b70f5ad05ff78a365d7faabf8fd07360a2b1389ec68c097fb7eb63fa60e333217d97d213b3a9c5db4c8d2d7521a53f7cd0d934ace0a090d29a9ac8f441d0ed8316f40713b612809ebbd643ac8da73161c28dad75f4ec3773a8bea526a807f6cf194e7f3de8ffa8a9b59ee67f700eed6e2c0b9a272d319bce18358712139283a63535014cd8bec8407fc1d99aaebfe03d904be16613869e83c75a46cf3161c29f6c7e895615bf13905c5e6a2f62b7c86fa95ac73f3f6cd0143a79efcbf8bf1f5c710d7dbf6b055f6a1e5ab01f6ddbfd23d53455062c674cefc97460df138347c7d01432a2d1d105370f5ad05f70c598aebfe03d904b013d633c158a897a13ae6c28a6e757df4c6dded64edf92bd0b0fa273c6cea1a48464ba67d925b4b1f2bb0e26fcd067d7d277259fd221fd4fa0d3f6b982763796d3a215d7d296ddeb3b959510e7a1d347cda2ace402b96fa321a94d1f04dd3a68417fa109dc74fd85d68bd05341cf184f63c6845f5fbf903657ade9f4edd8236f1fbaf4c07bc8139f484d2d0d74c747e75371ede68026ccccfa82fde7537c5c3cd53655d19d1f5f446575db3b953928671f3a6acf8b42ff261a94d2f441d0ad8316f4179ac84dd75f68bd083d15f48cf134264c7873d56a7a7dfd839dbe194909a974e361ffa4dcd442aa6dda4d0f7c7a056dddfd43a7e5683113661f8cec7930fd65bf9bc813efa19fcb57d3bd9f4c0bf88d3b7ef8742aca1c1efab7d19094a60f826e1cb4a0bfd0c56dbafe42ef496829a1678ca7516fc26cf979c9ea9ba9a2a1b8d3b7e2883dcea413f6ba80d863230f7dc6aefbfeba7987f59ab0d584592113079d4a27eddd6ebe8f7c7e037d53fc71a7b2f352fbd0a97b5f4f7171f1a17d1b0d4965fa20e8b6410bfa9313b6e9fa93eb4df0d4d033c6d3a837e16f8adfa1659b5f0af86d983df1192a482fa235c59fd2a2cfafed90a63b1366cbd1330f7b9a0ad2fbd09ae2e5b4e8f3bf052cff37034ea39185bf0dfe4d342885e983a0db062de84f4edca6eb4fae37c15343cfc42fef613c258aca1bb31a9a6be899d5b3a9b1a5bed3b7213fad37cd39fc39fef7c7bf9c4b5fed7837641366097f3ff45c3a7ae8547e1df9eab77e1ff086af644f3a9d396a0eb1df6e394c1f04dd3468417ff2aa375d7ff23dea3e07f4dcce07e369949af0f22d2fd1d73b033f92b4578f03e892f1777201cc7df70c2af5db41abbb9930cb33b2f060baf0805b79fed9ef9c46e5f53b037edbf6eb73241d507482eaefae6de5993e08ba69d082fee4656abafee47b143d260c3dcb475f46cf5139137ee9bbdba9a476534072a37b1d4ae78dbb897f76fdff4ea4eaa68a0ee926f43f8e4edfe72afeb7fb3fb99c7e2cffbac3e743f246d3e5072fe07fbbe5fda9b4b36663c07afa64ee41270cbf523e7a9a72c888464713dd64c2d09fbc424cd79f7c8fa2c784a167f9e8cbe8392a4df85fdfdf493b6b360424b767fe189a7ed07dfcb3db3efc0bdf80c37a247bd2e8a411d3a8aeb99a5efdfeefe4a5b60e9f8fed7d389db3df6cfeb71b96fe813f3b1ce828ca1c4ac70fffab7cf434e590118d8e26bac984a13f798598ae3ff91e458f0943cff2d197d173549af017dbfe439f6f7f232039b62ff4ad935fe1772fbfb87a017db031f0cd5b5d613f75e40cfacdc013a9bab182ae5fdaf50e59e3fb1e4f637b1f251f3d4d396444a3a3896e3261e84f5e21a6eb4fbe47d163c2d0b37cf465f41c9526dcd4d6c0f78aae6bde1d90de8c8317d2e0bc91b4b37a33ddfae1546af3769ced76853c2d318be61cfe2ca52666d0f2cdafd333dfdc11306946520e9d3e6a3625c6bb672f6919d1c84b32f21c6e3261e84f3edea6eb4fbe47d163c2d0b37cf465f41c9526cc90adddf509bdb7f1a980f4c6f49e48e7ee37877ff6fabac7e8cd1f16874479ea989934aee808f27adbe8f68fceefb4942d0af9dd1e7fa6a179078454a629896444a3a3cd6e3261e84f5e21a6eb4fbe47d163c2d0b37cf465f41cb526ec252fb11b0a76d56e0e48f0b203efa3a10563f8861d2f7fb790dedff04297a4e3e312e8e41197d1a183fec0d37cbce9557afedbbb03a6ef953188feb017bbb1cb5def1796118dbc2423cfe1361386fee4626ebafee47a133c35f48cf154a8246a4d98757067cd4ff4afef039b6556723e5d31e141ca4febc559acddf505fdefc7a7e8c7b255be9bb1d8bed2230a0fa4a3f79c4a7db3f7e4e93654aca1ff5b3e839adb1a037ed34e1e710d15a60f0cfe2d342c85e983a0db062de84f4ee0a6eb4fae37c15343cf184f63c2845927dffef931faa1ec8b80df8adc94423a7fff5ba85ff650dfe70d2d75545eb793efe6c236f6b0be2398edb0f5c4ca79d4d0521bb0bce10507d2c4417f0afe0d343085e983a01b072de82f74a19baebfd07b125a4ae899f88e85184fa374b30eebd7a0a6a9829efb762e35b73505fc7624c427d2c441a7d0e1834fa3cce49c80694a6bb7d39b3ffc93566c7d9388bc01d330b3fee3a839c4eebe76e361fa20e8d6410bfa0beddb60bafe42eb45e8a9a0678ca7313313661dfd72fbebf4d9b6d7bbfd86b0f701b3678807e4ee45d9c9f9fce6abf28612da50fe2d5f8266d7f8ba3bc6f73d81c6f63e32f46fa161294d1f04dd3a68417fa109dd74fd85d68bd05341cf184f63ca845bda9ae8d9d5f3a8a68b8d3542ffea044e99955c40a78f9a45ccc8dd7a983e08ba79d082fe827f2b4cd75ff01ec8a5809ebbe6156be36954df98650df38fe55fd0d29f1e93fba68498faa82117d2a0dcd121a6363399e983a09b072d1671e8af7bdd9bae3fd5df5ae8b96ba2b1369ec68c09b390ff7bed3db4bdbae33695917eb9fa660da5e386b9677bcaaefa6bfa20e8f6410bfa83095b0940cf81f5108be3694c997069ed667ae1bbdbbbbcb94ad690e3289e4e1d793de5a5f691cd6a5c7a98b0fd2181feba666cbafe54ab231a4c187a56a3e798326186ec93cd2fd2aae28eef100ef70b36b6f7641adfb7ebfda3c32d57473ed307c16818b4a03f3583968eef87ea3aa1e7ce4463753c8d3913667739af2e7e9f5615bf43d561dea8c536fa18ddeb081a5978a8eb76c6c272b4eae154ae3ce82f302fd34f02e5a21c3c75b49830f41cb99e63ce840532b6a96457cf0e07fb0a79e293822571dde7a60f82d13268417f910f5aaefb72056830f4fc2b94581f4f63d684a3e18bacb20f3061953451962c01d3f527db9f60e9a3cd8483f537d63e97d1334c38d6d4d1457f6544a30319062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a3676d26fc9f97fe43d74efb1b27f7e4ab4fd2d803c6f07f3f74cf227ae08e0768d8dec3e8ee87efa28af24a3afbf8b33ba4310b7768ad69a86fa0db67dfc1135f3bf71a4a494d0998f1abcf566ae9af8c6842ebb1da54aa072de80ffa53ab50b9d2a067395efea9a3693c35c2842fbde652baf88a8b48805df2cf253e131e34645064d142ee9008c4b209437f2149c4d644a6eb4f75e7ed3461e85975b4e4cb93d1b376133efa84a328333b8bcf0e776cdb41575e78150d1e32887efe7143c099f0861f37f034ebd6aceb308b16334826403693164214336b96f8d43f9ddaed2cb4abb495e59574cdb46b69d97bcb3ad429da32e1b707d3b20f3ea1bd47ef4d6c27ae048fc7570f2b73e5e72be9a6bbe7d1a2fb1ef6cd84df7ee36ddf4a8008315b11608775e6ef5ff7ed0b6fa3634f3e565e154172c8884679e5211468d7a005fdfd0a1ffa0b41888a9240cf184f8594b49b3033cba5af2fe586bb66d51a7af5c5d768c26113e8df4bfeddc984993933333c7eca71dc8884c1ddb1f0766edaccbc84f9b20e5a3f67ff6779c7ec3f86cfbafd0feb32706e5e0e37fa732f39878ef8fd111d969199793ef6e0e3bc6dec60e946ef37da67ba6c9993f581b5c95ae739b227dd81000020004944415417ff39e072b430f282c2029e47f4830d88a2bfa2cd762e55c7aa09437fed27b5d1a8bf65cb96d121871c42f3e6cda3993367f2ef637d7d3dcd9831833efdf4537afef9e769d8b061fcef81d22af2db80c5d865c2d0b3fbf4acdd84ffef8905f4dce2e7b9b16ed9b4954a7696d088517bd1b34f3cd7c984999a6fbeee66fe77ff656a7f83123348abe932831406da557e5687f51ab5304966c8ccf8c5ff6fbcf546b29ab5989d5a3fb7ce6a599f025d1316b36f31c3b5f6c37f561cea759070068f583561e8affd1e8c68d45f2c9a30f4ec3e3d6b37e1479eff3b2d7dfd6dee1bdbb66ce366cc0e6196d61bb3b66fd916d4448581fa9b272bb33b13b65e8f1626665d9ef337363668b1e567316316262cca29ec55c8b3b0a56836c3653762f99bb030dc091327f034397939643561fffec284a787737e11308fb8310bfa3b9ba03f65b20ab920bb66c2d0b3fbf4acdd8499d131b3b1de296d351fab09fbcf0cad8a979d09b3a56f51a775095b9835fb8c0d4ed3ae9a4673af99cb97a6fdafc506327aabd917f4c8a731078ced70d319fb9c5dff6607336576139a75e68d9970e071ccae410bfa83fe42764e8509a1678ca7424e4698b030577146fef17b1f079c09fb5f23b5ce6c033dca24734dd85a56efa2debe59ebe5d74da7fb6f5dc07931f30c744dd8dfa0ad378f0983f59fc57ef7edf7fc1ab6ffcd625613c635e15f473d3b072de8efd747e6a03f854edb4d51d033c653a34c58984d51bfa24e46e76faec1ee8eb6ce2a5927ad773cfbcf78fdbf23d6b4e2396576ed38d8ddd1fe262c0c972daf8b65667f137efca127f8b538ebc1da37fe90f1ddde1deddf3f554346ac5e13b6de0007fd417faabe4fc1cab1d384319eb6d377cb78aa6d261c4ca4f8dc5902b166c2ced2456dc10898aebf60ed97fd5cb509cbd68ff4f61290d1334cd8de58b8a67419d1e8e814062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a367d798b0ff1dcad60d0664f0b347305e7bf1b56ef790eeaebc48f3fb97cdeef67ef0ae07e986f937f0cd3a741d32a2d1d146dd8316f4676fd44dd79feade43cfed44319e12b9c284c50028f68c66c1b3eed1eca4794134aa87a3d0cad33968417fa1c528925430e148e8c9e5859ee57885935a46cfae3061365bbcf5c65be9ba9baff3ed192d8474d18c8bf81ece6c363972cc28ba63f61d1d5e83c84c73d13d0f51e9ae32fea285238f9b4c6fbdf63f129b70b0ed25c5f3bad6e788c5a6052c00ecef6c4f6bb65907db6483cda43332d2f98622d619b9ffd69781f6a0666f7f127958d9e2ed4ce1ceecc31148a03c32a25155a74c393a4d18fa93895478694dd75f78bdea3a17f48cf154a8c315266c35b7409b55880d3c261d33896f11c966c95faef8ca679ad6973e8899acff4e58cc5c45badcbc5c6e8ecce0fd5fbc2076ba121bdeb30d3ed8c1ea65ffb69ab57f79d6b73f8974ecf58d588e0e3ec4e91cb4a0bfe0f18934054c385282a1e7879e4367156e4a193dbbc2840508ebec94fdcdfab206eb4c99cd926fb9fe16bae4aa4b88edb8b5e8de451d5e90c066b2c284f71b3f96ef09ed9fc77addd8ba04cd4cd85a9eb8a67bd5acabf8fb828f9b721c8d3d600c09a1b3f2d98b1eac466b9d59b17ec084834b5da709437fc1e313690a99412bd2ba4cc80f3db7df9783f1d425d784037d69ba33b2500c5598b0304d6b1ef672073193666f3ff23761ab410b13664bd6b7dc309fcf9e9909b383cd8cfb0de84b7dfa1575306e6b5d30e1d0864413062d6b4ba1bfd0e2166a2a9870a8a4ec49073dabe52aa36757cc849909aef878055ff215879869321365d784ad3361aba0d84c38d0acb63b13ee2a4fa033377ecdf9de4574d3ddf3301356abe30ea5e93461e8cfc6c0fe52b4cca0657f6becaf017a0e3c138ec5f1d415266cbd094bcc3259b0c43557f695b1bed7d7ff9ab0ac0987724d582c85e39ab0fd0316ab41e7a005fdd91f6398b0fd8c450dd0b3fdac65f4ec0a1366c8fc9fd3b4bee5482c09676465f2f7f3fabfa45cd684d99b93c4f56756cf1fff7c3abf7611e8ee68ebab0865ef8e668f56897eb13e8a372ed92f91ce35c8884647fb749a30f4677fc44dd79f6a02d033c653a129d79870775f02bb37bcb0ce76557f194d29cff44150f7a005fdd9ab54d3f5a7baf7d073fb1325d17ac8e819261c4005feef2cb6ce76211a3d046269d082fef468ccc95aa1e76b88ddf41aad47cc9970b406d2c97ec988c6c97689ba4c1eb474f088b63a4dd79f6aded0b36aa2669527a3e7a898099b85df9dad91118d8e1e62d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a7695098bbb8fd97ecf915ed4b7deccf5f38f1bc27eb39275e38dde45bde9f6d977f876cd324b16ddb74646343afa65c2a005fdd91779d3f5a7bae7d07360a2b1389ebaca84c5ce552c7c97ff6d7a44affe537547b55534ecd126b71ea60f82260c5ad09f7dea365d7faa7b0e3d0737e158194f5d65c2ec51a1f1878ce7bb67b1ed20d99ecfec1083a3ff9b8dd8dd776c66ca5ec2f0ec13cf117b839178f142773361568f78b392d894c3ff3965b64de53917ff9997cf9e4d66cf13cf5f700b3dbf78896f266cbdcbd5ffd9e5671f7b86b7fd8d57fedbe1ad4faabfeca19667fa2068c2a005fd85aa26f974a6eb4fbe47dde7809e2b7d6f9063a462793c758d093313bcffb6057c065c515e412f3ff3324dbb7a1abfcd5d6cace1ff66236192dbb66ce31b61b07c627b4b1678f1e204eb72f4db6fbc4d5b366de5cbddfe2f67102f7bb06e8bc976d7122f8bb02e470f1e32888b2cd09b93c49b9898c18bb734a958628f64a0307d10d43d68417f91a82b785ed3f517bc077229a0e78709e369bb665c63c2d6fd7bd9b5b985772ea493ce3889bf5f58ec372a769ceaca3c5987c54b15ac6f361226ecbf9f74575f2beb127457262cde717cc3fc1bf8b2b9ff7ed6d63731b16d3685f1cb7d95d5a5367d10d43d68417feab416a824d3f5a7baf7d0f3af44637d3c758d095b978845f8c4ccd7fa96233633eeeaf582c14cf8c2bf5e40b3ae9cdde14d48a22effd7288a6d33bb326196cf6ab4ddbdd909261c7c88d33d68417fc16314490a987024f4e4f342cff2cc6472c8e8d915266c9d458a8bf5fed774fddf196c7db39158f6e8ea1dbfc166c2fe1b9eab3873b3ee670d130e2e6f9d260cfd058f4fa4296406ad48eb32213ff47cad6fb213ebe3a92b4cd8fa5624b1d599d518d997eaece3cf26ff371b896bc2ec73f6f2851ddb7604bd26fcf8434ff0efa8b826ccae21b36bcf0bef7ad0271ad69ec71e7c9cee7ef82e0af79a304c586e28d43968417f72b10a27354c381c6ae1e5819ec3e326934b46cfc69bb075f62aee861630d8924ac9ce123af2b8c9f4d2d32ff13fb3bb8dc55ecfecffecee6576d393ffddce5ddd1d2df2b03b9ed9218c9d09f7da697fe37f9b73e76cfe5625f62e637163d5aa2f5749dd1d0d139691b4be5719427f72710a37b5cca0156e1d26e5d37552093d3ba302193d1b6fc2a120f3bf262cf208c131b314ef210ea5bc584c23231a1d7c740d5aa1f415fa0b8552f7694cd75fe43dec5802f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9ea3c284cdc2efced6c88846470f4d1eb474f088b63a4dd79f6aded0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a367291336ab9b688d6a02338f7d587591caca6383168ee82660b2fe5493879e551335afbc50f51cb2099bd745fb5ad4dcdc4c53a74ea5c58b17536262a27d15a16410084000fa832ca28900f4dc7d3461c201f8cc9f3f9fe6ce9d4bb366cda21b6eb8219abe0fe88b0b08407f2e08129a183201e819261cb25844c29494146a6c6ca4a4a424fe1b0708384900fa739236eab29b00f40c1396d2183b6b9b376f1e37dfe4e4649a39732666c3520491381202d05f24f490d73402d073f0886039da8f91386b137fc66c38b88890421d01e84f1d4b94a49f00f41c3c0630610b23eb599bf83366c3c14584146a08407f6a38a214330840cfa1c501266ce1c40cd7e3f15046460695949450616121d5d4d410bbbbafa9a92934a2480502611280fec204876c4612809e430b0b4cf8174e6fbffd364d9932851e78e0013aebacb3282e2e8ebc5e2f3df5d45374d96597d192254b68d2a449a151452a10902400fd49024372a30940cfa1870726dc052b61c2a1a3444a10504700fa53c71225e927003d771d0398304c58ff37142de84400831644114d04a06798b0b49e211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a067987050112e5dba94a64c99420b162ca0a953a79210cde2c58b69faf4e9f4c20b2fd0e4c9938396830420100e01e82f1c6ac8632a01e839f4c8c479bd5e6fe8c9a33b654a4a0a793c1e4a4d4da5d2d2522a2828a0fafa7a6a6e6ea6c6c6c6e8ee3c7aa79d00f4a73d0468804202d073683061c2164eb7dd761bcd9e3d9b9a9a9a7c7f4d4a4aa23973e6d075d75d171a51a402813009407f61824336230940cfa1850526ecc789cd821b1a1a7c7f4d4e4eeef0ffd0b0221508844700fa0b8f1b729949007a0e1e1798b01f23ebd91b66c1c10584146a09407f6a79a234bd04a0e7e0fc61c2011889b337cc82830b0829d41380fed4334589fa0840cfddb3870907e0c3cede66cd9a4573e7cec5b5607ddfdd98ad19fa8bd9d04765c7a16798b0b4b0d9ddd0e79d771e3df2c823c496a47180809304a03f2769a32ebb0940cf3160c2cd4d2d545fdd4075d50dd458dfc87f37d53753435d1335d635f2df49491eaad8b59b5a9a5aa9a5b9855a9ad9ef56ca2ec8a4b21d15e46d23624f6bf19f362f15f6cba7922d6514171fc79f19e63ff144057df2a8aa7437257812c893e8214f12fb9d40997919e46d6ba3e4b4644a4e4da2e4b4244a494da294f4244acd48a1d4cc144acb4ce17970441701e82fbae219ebbd819e9d55802b96a32b4b775375592d5557b09f3aaa2eafe1ff6e6d6da38a9d55c49e744e494ba2e4f464caed91454c441e6692491e4a4cf650629287925292283e3e8e9b6782279e121212289efdf6c4fb4c96b8d992efff565366611106cdea6d6d613fadfc775b6b2b6f4b734333af9bfdb436b7526b5b2b35b213817a7632d0440d758d14171f4f7d87f4a4a6c666cacc4da7ccbc74cacc69ff9d959fc1ff86c32c02d09f59f1406b2223003d47c64f756ea34cb87c67159f95966eaba48ae22aaadc554dbbcbaa29a7308bcf20d98c32252db97d66999ec267996cd6e9a6d9259b853343aeaf6da0fa9a46fe9b99337989f7bda1b6919b714e8f2c2aec9fcfff9ddf2787f27a66ab8e3dcaf32300fd417fd1f4a5809edda1676d26cc4c76e7c652aa2aada6cdeb7650f98e2a3e0bcc2ac8a0f4cc344acf4ea38c5f7ed89270ac1c6dad6d54bbbb8e6aaaeab821579555ff32f3afa3bcded93460af22caca4ba79e030b60cc118802fa0b0c0ffa8b40541ab342cfeed5b363265cb6bd92b6acdf413b36eca26d3f96506a7a329fe1b2191e33dcacbc0c8a8f8fd72863b3ab6e6b6ba3eaf25aaad95dc757092a4aaaf875f0a2213da9d7a002ea37ac3715f4c935bb131a5b07fd45061ffa8b8c9feadcd07364444dd2b3ad26fcf3b75b68eb0fc5f4d3aacd7cd9b8a02897f27ae6f0ebb689c9899151446e7eed99dd6c56b1b392766d2be7d79e07ee5d44034714d1a0917d639e10f467af04a03f7bf9fa970e3ddbcb5b979e959bf0e6b5dbe9fbcf7ea60ddf6ea55e030ba857ff1e94df27979b300e7b09301366665cb2a5948a3795d21ea3fbd3b0fd0751bfa1bdedadd8a0d2a13f7dc180fed4b3879ed5330db544a7f4acc4849b9b5be89b0fd6d1ea4f7ee04ba26cb6db7b500f2c2f871a6d1bd2b16b7bdb37945075450d156f2ea35113f6a491870ce5778a47db01fd9917d158d29f6afad0b36aa2919767a79e233261f63cedf2ffaca42deb77526e8ff69b86d89dcb38cc2250575d4f9bd76fa79aca3a2a1a5248e38f1e6d5603c36c0df417263887b345abfe5463849e5513b5a73cd57a0edb84d77db981be5cba9a7a0f2ca43df619604f6f51aa72023faeda489bd66ea30927ec4743c70e545ebe5305427f4e91565b4fb4e84f2d1522e859355167ca53a1e7b04cf8eda73fa186da26dae790e1cef414b52825c0ee0cfcf6e37594919746134f1dafb46c270a83fe9ca06c5f1d6ed79f6a32d0b36aa2ce9617a99ea54d78c9ddffa5c1a3fa5361df7c677b8ada9413d8f8dd16aaaeaca563ce3b4c79d9761508fdd945d6f972dda83fd594a067d544f59517ae9ea54cf8c3973ea7b48c34beaf328ee8205055514d3b37eca249671d6c7c87a03fe34324dd4037e94fba73413240cfaa89ea2f2f1c3d876cc2ab97ada72deb76d2de070ed5df53b4402981d59faea78123fad0880387282d576561d09f4a9a6695e506fda926063dab266a4e79b27a0ed9849fbfeb0d1a317e4fcacecf34a7b7688912026cebd0b55ffe44a7cc384a4979761402fdd941d58c32dda03fd5a4a067d544cd294f56cf219bf03fe7bd42874d39d09c9ea2254a09bcffe2a7f4a759272a2d536561d09f4a9ae69565bafe5413839e551335ab3c193d876cc20f5df52c1d72c238cc84cd8ab592d6b0579b2d7bf54bbaf8ae3f2a29cf8e42a03f3ba89a51a61bf4a79a14f4ac9aa839e5c9ea59ca84d9f687782cc99c60ab6ac9aa0fbfa7ad3fee34de84a13f551137ab1c37e84f353166c2d0b36aaa669427ab6729131e3caa1fe5166653af013dcce82d5a1131811d1b4af8eb247ffa76b3f1260cfd451c6ee30a708bfe548363260c3daba6aabfbc70f42c65c2c79c3b9196bdf625edb14f7f18b1fe7847dc829d9b76117b33cbc1c78ea5d71f7bcf781386fe220eb95105b8497faac13113869e5553d55b5eb87a963661d6cd6f3efa9e5a5bdb68df4347505c7c9cde9ea37669026c8797afdfff8ebf4e72d484613cbf5b4c18fa930eb77119dca83fd510850943cfaac93a5f5ea47a0ecb845937b7fd544c6cdfccde830a69e89841cef71c35864560dd573f53c9e632da63f400ea33a8d057869b4c18fa0b2bf4466472abfe54c3b39a30f4ac9aae73e5a9d073d826ccbae9f57ae987951ba9646b19e5f5caa181c38b282d2bd53902a8292402b5bbebf94b1bca7654f0f73b0fd97700c5c5755cc1709b09437f2185de8844d1a03fd520fd4d187a564dd8bef254eb39221316dd64d3f18d6bb6d2c6b5db28bf570ee5f7cea5de037b508227c13e1228b95b02ad2dadc46e1228dd514115c555346078110ddcbb6f97ef7876a309437fe67e09a24d7faa49073261e859356575e5d9a96725266cedeaae6de5b4edc79db463e32e2ae893cb97ab0b7ae7524a7ab23a2228292081fada062adb5149db7f2ee1b35ec6beef905e3c0ec10e379b30f4172cbace7c1ecdfa534db03b13869e55d30eaf3ca7f4acdc84addd2dde5cca67626c469698e4a1823e79dc10720bb3282925293c32c8e523d058df44ecc1f0d26d1554baad9c5a9a5ba9f7a01e9c7161bf022952d162c2d09f54d8234a1c4bfa8b085480cca19a30f4ac9a7cd7e5e9d2b3ad266ced6e75452d956e2fa7f2e22a3e5b4b4cf6f0678e0b7ae7507a761a65e56560f9ba1bbdb1e590dde535545b55cf395694eca696e616bef4cf4e6a0a8af22833273d6cc546a309437f61cba153c658d79f3a92ed258563c2d0b3ba2898a467c74cd81f5f6d551d559454b59bca8e0a6e30a9e9c994d3238b9b32fbc9f8e5774242bc3afa8697c41efd626c6aaaeaa8b692fdaee59b69d4d736f2131536cb656c98f1a667a529eb4db49b30f4179a54a0bfd038459a2a5213869e438b801bf4accd84032164c6c3ccb89acff87e31a2aa3acacccd204f5202a566a4506a7a4afbef8c647e9d393925893fefea96a3b9b1991a1b9aa8a1b691ea6bd84f43fb4f6d03353534f37efb4e4072d2282b278332f333f809899d47ac9930f407fdd9f97d0a56b66a13869eddab67a34cb82be1d65537505d75bdcfacda8dab91da5adba8bab296d8d242726a12ffc92ec8a4d6e656bedc9d9894f8cb6f0f25a526517c5c1c5ff28ef7c4f3df09ec77423c7f5c876d3ac27f8b9ff838f2b679f96358be1ffe7fa2d6d6566a6d69e3f58adf2c4d537d133537b55073630b353735f3df09890954b5ab9a1b2fbbe6c0ea65335a560f3b91683fa1683fb948cb643f7a1ef18209773d6c427fc12c25f2cf4dd75fe43dec588213268cf1d41de3a92b4c38d8178099313338f6c3ccafb1bedd0085113263f42426f0255e669c6d1603cdc849a3cad2ea4e869bd73387ca8b2b3b19734e8f4caaa9a86b377061e49e043e536d66e69fe4e97002909c92488929897cc6ce4e12e20d5d5a377d10d43968417fc10844feb9e9fa8bbc87e69870b0be603c0d4628f8e7327a8e0a130e8e0429821190114db0b2ecf8dc6413b6a3bfb156a6e9fa531d0fe8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dbbce84173c742fddfdc01d1d889f79ead934ebdab99492127cb7a92fbefa8cb66edf42271e7b7297516b68a8a779b7cfe69f875aae5912906f8d8c68e44b8f3c87298316f417792c039560bafe54f71a7a564dd4acf264f4ec4a13fe62e56774ff1d0b2937278f2a2acbe9f26ba651dfa27e410df3a70d3fd2a5575e44179e7b314cd84fb332a2d1217793062de84fbd024cd79fea1e43cfaa899a559e8c9e5d6fc20c3d9bdd9e7cf609f4d293ffa671630fa057fef3125d7eeda53c2a2386ed4d0fdcbd88f272f3b8597fb0ec7dfef72b2fbd86a65f3c83ac339bdf4e388c9b7b6a4a2a9f0957d754f3b4afbef18aaf9c3d060de17f0b948f9d1408a3ff6edd1a9e4eb4c9da4ef66f5117cb63c221231a1ded3575d082fed4a8c174fda9e9e5afa540cfede332c653a2a83061eb0c77d4dea3e9be07efa67937dcc2156f9d256fdbb1adc34c9899f7cbafbdc867d0e2b3a3271d43179c731137e195abbeea60e062b6bdfabb6fbbcdc7ea6565fefdf14524664de515e5beba8f3ae2f7c62d779b3e089a3c68417f915b94e9fa8bbc871d4b809e7f5dbd8cf5f134ea4c585cebb5ce86c535637f13165f0bebac96cd9085090b3365d79a59790f3ff65097676fd67c4f2f7992fcaf53fbe767ff7ff9d5177dcbeaaabfe4b2e5993e08ba65d082fe6495d79ede74fd85d7abae7341cf184f853aa2ce84fbf6e9c797a699095e7df9dfe8cefb6fe37db5ce76c5356161d4cc40cffee3543e6b1e37e680a026fced9a557cb9db3f1f5bde164be302b03063362bf6bfa14c2c958b2519d55f7499f24c1f04dd3268417f32aafb35ade9fa0baf57ee3761e839bcc8cbe8392a4cd87a4df89315cb7c4bc0e2da6e2013f65f12ae6fa80fc984ef9e7f3f3df5fc629fb15bf331131687b8618c5d83befff607f89ffd67d2e185d79e5c32a2b1a705dd976ab209437f912bc274fd45dec38e2540cfed33618ca751704dd8ff71a237df7ec367761515e5be5971a099305b8616d76c3ff8f83ddfec562c47b365657663d51e838774b8b66cbdd66bcd679d4d5b67c5ac8cdcdc3c5c138e60243375d082fe2208aa252b4c580d47d952ac6320bb49147a96251838bd8c9e5d3913eeee3961eb0c942df71614f4a038a20e773d8b6bb6679d3695aebcfe726277328bb4fd8afad135975f4777dc7f6b87bba3ad77335bef80b6e6b31abdb83b5adc85cd42655daac6ddd1726237c984a13fb9d885925a66d00aa53cd3d340cfed4fa2f83f51128be3a9eb4cd8f42f975bdb67fa2068caa0e5d6f89ade6ed3f5a79a1ff4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac4490987d00000a2d494441549aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e8d995262cee809e7ed10cbe57b438d8e61b9bb76ce67b428b5bedd99dd0ecf0dfc18adda9cc9e293e78fc04fe1893f52e66965ed4c1fe2deee2531166d1ae938e9bd2a1ed2aca8ea40c19d144524fb8794d1ab4a0bf70a3d8753ed3f5a7bac7d0b39a3df3a3613c8d5a136686cc0eb68da008d401fb8df7bd3d893d1fc70c989beca27b29273b87ef372d5ea8c04c3ad0df23fd324683682265104e7eb70d5ad09f5c9461c272bc54a60ee5a4127a96232ea3e7a835617f644c449f7db9826f5fc98e7b16de45a79df447621b7ab09738646464d2e48947fa66a7cca40b0a0a68f9679fd0f557cda4ff5b741f5967afc2c4478e18c55fc62066dc6c772cfffd83d9b36f6c230fb651b978061933613951bbcd84a13fb9f8ca0c5a72259b991a7ac6782a94193326cc4c931d6ca99a6db6f1fccbcfd215d3aee2c6c84c989969696929ff9c9d19b23da799512e7ef6713e43663b6389a56ef139db9bbaabbfb3b726cdb97526cdb9ee262aea5de47b6b124c38bc41d1ed8316f4d77ddc61c2e17d2f54e40a6526ec5f0ff4ac4ecfae3661f16e602b0eff6bbbec33b6b4bc60d1bdbe6bbbd6a515f13ac3334ffb132dfac7426eb83ffdfc23bf5e7ccc51c7f95e8bc84cd56adcec7366d8d6ebd0d6765867deec2d4ca21e987078c38689260cfd8517cb40b960c2ea58ca9664dd65d03f2fc653599aede965f4ec6a13eeeec62c818e99dfcc9bafeff40a42763d98ddd425cc91cd6a1ffac742be44fdfa9baf51ff7efdc9fa6e62f63208b184cd3e17f9593dd65721b27da259b9fee60c130e4fcc229789260cfd4516536b6e99414b5dadfa4a829e319ec6c47274a077f65a9792d94d58c21cd9b562f6f287d2b2325ab57a25fdf5922b39a3fb1ebcdb77c3162b8f7dfef3c61ff96b12c54d5c02262b7bd62d37f0bcec7587e21a3466c2910f766e1cb4a0bfd0e30e130e9d95ea94a12e4743cfa19397d173d4ce84fd97a0ad3363b1942c96aad9356166c2ecfab07817b1781983d584c58b1b8e9e740c5f8a16b360366b663763590d9e2d5f5f7ae54574d38df3f9f56676f3163bb01c1dba90ad29dd66c2d09f5c9c65062db992cd4c0d3de7f17b73d81819ebe369d49ab07589587c0dd9b3c2fbee33969212137d77305b67c2e2ddc0271d3f857fce446235e1408f17f95f4f11cbd1c2e099a9b3835d5bd959b203261ce698e8b6410bfa930b344c588e97cad4a1cc84a16739e2327a76a509cbe15097dadf94654ab69a3d5b9e36ed90118d8eb69b64c23afacfea84fe7491575f2ff40c3d0b55c18443fc7e8977015b67ba2166e5c960c232b43aa78df5410bfa8b4c3fa6e5869e3fe397fe309e12c1844dfb766a6a0f66c29ac0a35a4ec074fda90e53ac9bb06a9ea69527a3e7904df8e5fbff47e326ed635a5fd11e45043e5ffa0d9d7cf96445a5a92f06fa53cfd4a4124dd79f6a56d0b36aa2669527a3e7904df8f9bbdea011e3f7a4ecfc4cb37a8bd6444ca0b27437adfde2273af58aa3232ecbae02a03fbbc8ea2fd70dfa534d097a564dd49cf264f51cb209af5ef6036d5abb9d461d34cc9cdea2254a087cbb6c2d0d1ad997461c34444979761402fdd941d58c32dda03fd5a4a067d544cd294f56cf219b30ebe2c7fffa92925292a8d7801ee6f4182d8988c08e0d25d4dcd242879c3036a2729cc80cfd3941d9d93adca43fd564a067d544f597178e9ea54c9875f1857bdfa401c38b60c4fae31d710b766eda455bd66fa7932f3f32e2b29c2a00fa738ab4fdf5b8517faaa940cfaa89ea2b2f5c3d4b9b30ebe23bcf2ca7daddf534fa90bd282e3e4e5faf51735804dadada68d5476b292b378d269e7e605865e8cc04fde9a41f79dd6ed75fe4043a96003dab26ea6c7991ea392c13665dfc61e526fafcad6fa867ff1eb4e7be039ded356a0b9bc0fa951ba8745b398d9b3c8a86ecdb3fec72746784fe744720bcfaa3457fe1f5beeb5cd0b36aa2ce94a742cf619b30eba2d7eba5cfdffc9636acde4ad93db268e0f0224acb326f372867c2616e2d6cd562d3da6d545152454346f7a7719347525c9cfb5730a03f7335676d59b4ea4f357de85935517bca53ade7884c5874b1ada58dbefe702dad59f603e5f6caa6bc9e39d47b600f4af024d84301a50625d0dad24aec2681b29d9554b96b378d9cb0278d3e7438c527c407cdebb604d09f79118b25fda9a60f3dab261a797976ea5989095bbbb875fd4efafeb39fe8e76fb75261df3cea39a00715f4cea594f4e4c849a0846e09d4d73650d98e4a623708b025e74123fbd18803f7a0a2213d63861cf4a72fd4d09f7af6d0b37aa6a196e8949e959bb0b5831bd76ca3ad3feca09f566d214fa2870a8a72f92c39b7308b3fea842332028df54dc41e0c2fdf5949bbb655506b730b0dd97700f5ddb3270d18511459e151901bfab33788d09fbd7cfd4b879eede5ad4bcfb69ab015597971156d5db793b6ff5c42db7f2aa1c4640fe5f6cca6bcc26c4acf4ea3acbc0c2c5f77a331b61cb2bbbc866aabeaa9bcb8925fdf6d6e6ae1b3dcde837a50bfa1bd384f1c8109407f912903fa8b8c9feadcd07364444dd2b36326ec8fac725735156fda451525bb69ebfa62be8c9a9699c26ff04acf4ce5c69c919dc67f2744e175ccae24d4dada46b5557554535547b5957554bbbb8eaacaaaa9bea681f27ae570b3cd29cca25e030b28bb005b8886fb5584fe029383fec25594de7cd0b37bf5accd840321ab2cd94da53b2aa96c5b059517efe63714ed2eaba1acfc0cf22426506a7a0aa5a425536a460aa56624f3ebccc9294994989ca8f71b20517b73633335363451436d23d5d7b09f06aaaf6ba486da06629f5557d451767e06651766515ecf2ccaef934b057d7228a74796442d481a0e01e80ffa0b4737a6e6819edda167a34cb82b31b365d8dd65b55453514bd595b5545d5e4bbbcb6b892d295414efe6d74293d393b941b359624b630b376d761d9a2d7b27267928293589e2e3e2f89277bc279eff4e60bf13e2f9e33a6cd311fe5bfcc4c791b7cdcb1fc3f2fdf0ff13b5b6b6526b4b1baf5ffc66699aea9bf8127173630bb534b39f564a4c4ae0b3fd86fa266aac6da484440fe5f7cea6b8f878caca4ba74cf6939b4e1939e9fc6483fd0d875904a03fb3e281d64446007a8e8c9feadcae30e1609d6666c8669475d50dd458d74875d58dc42eb2b39f869af67f7b923c7c66ddd2d4cacd5198249b75b2a5706eb4cc647f31de1e7df369d7d6b25f0dfa1793ceef9dcb978785c97b92dacd3ea74726b534b5f01381e4f4244a4e4dfafff6ed200540180602a0a72afdff83c5de45161641999b5092ca34b05470dbe758b7f6638ef5a9fd7af6dbd6d3697e6fddfc7defccbcf1bd80797e773a7e11c2ef92d98d000102040874048470c751170204081020100b08e1984c010102040810e80808e18ea32e0408102040201610c23199020204081020d01110c21d475d0810204080402c20846332050408102040a02320843b8eba102040800081584008c7640a081020408040474008771c75214080000102b1c009f0d85e2e8a834b040000000049454e44ae426082); +INSERT IGNORE INTO ORDINE (`id_ordine`, `data_ordine`, `urgente`, `ragione_sociale`) VALUES (1, '2020-12-13', TRUE, 'dottore'); +INSERT IGNORE INTO RIGA_ORDINE (`id_prodotto`,`id_ordine`) VALUES (1, 1); + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/update.xml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/update.xml new file mode 100644 index 0000000..224a9d8 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/db/liquibase/update.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/logback-spring.xml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..22ae306 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/logback-spring.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + %d{ISO8601} [%thread] %-5level %logger{35} - %msg %n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDconfigPaPfUoH.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDconfigPaPfUoH.jrxml new file mode 100644 index 0000000..91670f4 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDconfigPaPfUoH.jrxml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + <band height="50" splitType="Stretch"> + <image> + <reportElement style="ImageLeft" x="0" y="0" width="130" height="50" uuid="79c0050a-6efd-3db7-90ad-018dd464a978"/> + <imageExpression><![CDATA[$P{REPORT_DIR} + "/images/" + $R{jasperReports.logo}]]></imageExpression> + </image> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Title" x="130" y="0" width="295" height="30" uuid="ca96c0ac-fcf5-3541-b7ac-e86070619cf7"/> + <textFieldExpression><![CDATA[$R{dconfigPaPfUoH.jasperReports.title}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="SubTitle" x="130" y="30" width="295" height="20" uuid="6dcc62eb-a64a-37fb-9bfe-5c73d0523d57"/> + <textFieldExpression><![CDATA[$R{dconfigPaPfUoH.jasperReports.subTitle}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Date" x="425" y="0" width="130" height="50" uuid="d885da46-eddd-3ef2-bcb0-1df558b21ccf"/> + <textFieldExpression><![CDATA[new SimpleDateFormat($R{jasperReports.date.format}).format(new Date())]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDconfigPaPianiFerie.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDconfigPaPianiFerie.jrxml new file mode 100644 index 0000000..3939615 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDconfigPaPianiFerie.jrxml @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="50" splitType="Stretch"> + <image> + <reportElement style="ImageLeft" x="0" y="0" width="130" height="50" uuid="8e4bac62-372a-3e91-a408-3e10f1dd315a"/> + <imageExpression><![CDATA[$P{REPORT_DIR} + "/images/" + $R{jasperReports.logo}]]></imageExpression> + </image> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Title" x="130" y="0" width="295" height="30" uuid="982407ef-e14d-346c-a60a-2f203973488f"/> + <textFieldExpression><![CDATA[$R{dconfigPaPianiFerie.jasperReports.title}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="SubTitle" x="130" y="30" width="295" height="20" uuid="d5a0fdab-8831-3b81-8656-eeb0574aba2b"/> + <textFieldExpression><![CDATA[$R{dconfigPaPianiFerie.jasperReports.subTitle}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Date" x="425" y="0" width="130" height="50" uuid="ac9a9a08-b8f3-3cef-a0bb-b8f3170d2909"/> + <textFieldExpression><![CDATA[new SimpleDateFormat($R{jasperReports.date.format}).format(new Date())]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDpercAutPianFerieH.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDpercAutPianFerieH.jrxml new file mode 100644 index 0000000..6e978b7 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDpercAutPianFerieH.jrxml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + <band height="50" splitType="Stretch"> + <image> + <reportElement style="ImageLeft" x="0" y="0" width="130" height="50" uuid="cf8287a5-6c80-38bd-bfc1-ab1062626621"/> + <imageExpression><![CDATA[$P{REPORT_DIR} + "/images/" + $R{jasperReports.logo}]]></imageExpression> + </image> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Title" x="130" y="0" width="295" height="30" uuid="0bc08f9b-b56f-34fd-9831-96c525d3cd5d"/> + <textFieldExpression><![CDATA[$R{dpercAutPianFerieH.jasperReports.title}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="SubTitle" x="130" y="30" width="295" height="20" uuid="ae8e567d-c4a1-383c-816d-8d57be5436fd"/> + <textFieldExpression><![CDATA[$R{dpercAutPianFerieH.jasperReports.subTitle}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Date" x="425" y="0" width="130" height="50" uuid="7150c263-9128-3f58-8d95-c06376c631a2"/> + <textFieldExpression><![CDATA[new SimpleDateFormat($R{jasperReports.date.format}).format(new Date())]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDpercAutPianFeriePk.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDpercAutPianFeriePk.jrxml new file mode 100644 index 0000000..b13539e --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDpercAutPianFeriePk.jrxml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + <band height="50" splitType="Stretch"> + <image> + <reportElement style="ImageLeft" x="0" y="0" width="130" height="50" uuid="a8772db0-bc11-39c3-8105-48597565a6aa"/> + <imageExpression><![CDATA[$P{REPORT_DIR} + "/images/" + $R{jasperReports.logo}]]></imageExpression> + </image> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Title" x="130" y="0" width="295" height="30" uuid="b362a907-3030-32b3-83e5-44b0383409d0"/> + <textFieldExpression><![CDATA[$R{dpercAutPianFeriePk.jasperReports.title}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="SubTitle" x="130" y="30" width="295" height="20" uuid="1c8d9c25-aa32-31f2-be5f-f34886425b9b"/> + <textFieldExpression><![CDATA[$R{dpercAutPianFeriePk.jasperReports.subTitle}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Date" x="425" y="0" width="130" height="50" uuid="4a07a05e-bbfa-3118-8257-ec5dfdac6166"/> + <textFieldExpression><![CDATA[new SimpleDateFormat($R{jasperReports.date.format}).format(new Date())]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDregolePianiFerieH.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDregolePianiFerieH.jrxml new file mode 100644 index 0000000..0c87a62 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDregolePianiFerieH.jrxml @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="50" splitType="Stretch"> + <image> + <reportElement style="ImageLeft" x="0" y="0" width="130" height="50" uuid="20161c7e-afbf-3499-8978-c7fa11720922"/> + <imageExpression><![CDATA[$P{REPORT_DIR} + "/images/" + $R{jasperReports.logo}]]></imageExpression> + </image> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Title" x="130" y="0" width="295" height="30" uuid="13cbb588-e462-3bba-9ded-50cedc26f0d9"/> + <textFieldExpression><![CDATA[$R{dregolePianiFerieH.jasperReports.title}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="SubTitle" x="130" y="30" width="295" height="20" uuid="e9a119eb-f20d-385d-941b-ee1573408868"/> + <textFieldExpression><![CDATA[$R{dregolePianiFerieH.jasperReports.subTitle}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Date" x="425" y="0" width="130" height="50" uuid="c4fd5b41-982f-33ae-b40a-d4159e851786"/> + <textFieldExpression><![CDATA[new SimpleDateFormat($R{jasperReports.date.format}).format(new Date())]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDregolePianiFeriePk.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDregolePianiFeriePk.jrxml new file mode 100644 index 0000000..e2d1d93 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/DetailDregolePianiFeriePk.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + <band height="50" splitType="Stretch"> + <image> + <reportElement style="ImageLeft" x="0" y="0" width="130" height="50" uuid="a8167081-1b9a-39c9-aae9-c5ca96c1c060"/> + <imageExpression><![CDATA[$P{REPORT_DIR} + "/images/" + $R{jasperReports.logo}]]></imageExpression> + </image> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Title" x="130" y="0" width="295" height="30" uuid="eb7e9ac1-9c72-3de3-b058-924f7058af22"/> + <textFieldExpression><![CDATA[$R{dregolePianiFeriePk.jasperReports.title}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="SubTitle" x="130" y="30" width="295" height="20" uuid="2c763a61-3471-30b1-8c12-f2327ac036a3"/> + <textFieldExpression><![CDATA[$R{dregolePianiFeriePk.jasperReports.subTitle}]]></textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Date" x="425" y="0" width="130" height="50" uuid="0882659e-bd1c-3833-885e-3a8e050d7f7f"/> + <textFieldExpression><![CDATA[new SimpleDateFormat($R{jasperReports.date.format}).format(new Date())]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDconfigPaPfUoHForDconfigPaPianiFerie.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDconfigPaPfUoHForDconfigPaPianiFerie.jrxml new file mode 100644 index 0000000..4835e85 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDconfigPaPfUoHForDconfigPaPianiFerie.jrxml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDpercAutPianFerieHForDconfigPaPianiFerie.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDpercAutPianFerieHForDconfigPaPianiFerie.jrxml new file mode 100644 index 0000000..6ab01ae --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDpercAutPianFerieHForDconfigPaPianiFerie.jrxml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDpercAutPianFerieHForDpercAutPianFeriePk.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDpercAutPianFerieHForDpercAutPianFeriePk.jrxml new file mode 100644 index 0000000..7591ada --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDpercAutPianFerieHForDpercAutPianFeriePk.jrxml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDregolePianiFerieHForDregolePianiFeriePk.jrxml b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDregolePianiFerieHForDregolePianiFeriePk.jrxml new file mode 100644 index 0000000..a2bdfdf --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/ListDregolePianiFerieHForDregolePianiFeriePk.jrxml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/images/mice.png b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/images/mice.png new file mode 100644 index 0000000000000000000000000000000000000000..742a5d14b113cabf9cd8cbe48c0c96a851f1dbdf GIT binary patch literal 17703 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 A>;M1& literal 0 HcmV?d00001 diff --git a/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/templates/default.jrtx b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/templates/default.jrtx new file mode 100644 index 0000000..75262f7 --- /dev/null +++ b/GF/gestioneferie-ms-configurazionepf/modules/gestioneferie-ms-configurazionepf-web/src/main/resources/reports/templates/default.jrtx @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDammtiPianiFerieForDpianiFerie.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDammtiPianiFerieForDpianiFerie.jrxml new file mode 100644 index 0000000..08f845c --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDammtiPianiFerieForDpianiFerie.jrxml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDesitiRichAdesionePfForDrichAdesionePf.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDesitiRichAdesionePfForDrichAdesionePf.jrxml new file mode 100644 index 0000000..33305ae --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDesitiRichAdesionePfForDrichAdesionePf.jrxml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDesitiRichAdesionePfForDstatiAdesionePf.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDesitiRichAdesionePfForDstatiAdesionePf.jrxml new file mode 100644 index 0000000..18d5ae1 --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDesitiRichAdesionePfForDstatiAdesionePf.jrxml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDperiodiAmmtoPfForDpianificFerieAmmto.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDperiodiAmmtoPfForDpianificFerieAmmto.jrxml new file mode 100644 index 0000000..5f9962a --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDperiodiAmmtoPfForDpianificFerieAmmto.jrxml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianiFerieForDstatiPianoFerie.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianiFerieForDstatiPianoFerie.jrxml new file mode 100644 index 0000000..94ac581 --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianiFerieForDstatiPianoFerie.jrxml @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianificFerieAmmtoForDesitiRichAdesionePf.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianificFerieAmmtoForDesitiRichAdesionePf.jrxml new file mode 100644 index 0000000..3f9393e --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianificFerieAmmtoForDesitiRichAdesionePf.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianificFerieAmmtoForDstatiPianificFerie.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianificFerieAmmtoForDstatiPianificFerie.jrxml new file mode 100644 index 0000000..26a9739 --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDpianificFerieAmmtoForDstatiPianificFerie.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichAdesionePfForDpianiFerie.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichAdesionePfForDpianiFerie.jrxml new file mode 100644 index 0000000..c0b137e --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichAdesionePfForDpianiFerie.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichAdesionePfForDstatiRichAdesionePf.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichAdesionePfForDstatiRichAdesionePf.jrxml new file mode 100644 index 0000000..b50342f --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichAdesionePfForDstatiRichAdesionePf.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichPianifFerieAmmtoForDpianificFerieAmmto.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichPianifFerieAmmtoForDpianificFerieAmmto.jrxml new file mode 100644 index 0000000..5729ef2 --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichPianifFerieAmmtoForDpianificFerieAmmto.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichPianifFerieAmmtoForDstatiRichiestaPfAmmto.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichPianifFerieAmmtoForDstatiRichiestaPfAmmto.jrxml new file mode 100644 index 0000000..252eb25 --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichPianifFerieAmmtoForDstatiRichiestaPfAmmto.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichiesteApprovazPfForDpianiFerie.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichiesteApprovazPfForDpianiFerie.jrxml new file mode 100644 index 0000000..5176c3d --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichiesteApprovazPfForDpianiFerie.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichiesteApprovazPfForDstatiRichApprovPf.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichiesteApprovazPfForDstatiRichApprovPf.jrxml new file mode 100644 index 0000000..1aabad1 --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDrichiesteApprovazPfForDstatiRichApprovPf.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDsollecitiPfForDrichAdesionePf.jrxml b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDsollecitiPfForDrichAdesionePf.jrxml new file mode 100644 index 0000000..2194097 --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/ListDsollecitiPfForDrichAdesionePf.jrxml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/images/mice.png b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/images/mice.png new file mode 100644 index 0000000000000000000000000000000000000000..742a5d14b113cabf9cd8cbe48c0c96a851f1dbdf GIT binary patch literal 17703 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 A>;M1& literal 0 HcmV?d00001 diff --git a/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/templates/default.jrtx b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/templates/default.jrtx new file mode 100644 index 0000000..75262f7 --- /dev/null +++ b/GF/gestioneferie-ms-pianificazioneferie/modules/gestioneferie-ms-pianificazioneferie-web/src/main/resources/reports/templates/default.jrtx @@ -0,0 +1,30 @@ + + + + + + + + + + + [''/] + + [genFieldElements(aClass)/] + [genParentFieldElements(aClass)/] + + + + + <band splitType="Stretch"/> + + + + + + [getReportResourceTextField(aClass, 'tableHeader')/] + + + + + + [genHeaderTextFieldElements(aClass)/] + [genHeaderParentTextFieldElements(aClass)/] + + + + + [genTextFieldElements(aClass)/] + [genParentTextFieldElements(aClass)/] + + + + + + + + + + + + +[/file] +[/template] + +[comment]------------------ Fields ------------------[/comment] + +[template public genFieldElements(aChildClass : Class) post (trim())] +[for (aProperty : Property | aChildClass.getFiltrableAttributes())] + +[/for] +[/template] + +[template public genParentFieldElements(aChildClass : Class, aClass : Class) post (trim())] +[for(parentAss : Association| aChildClass.getParentAssociations())] + [if(aChildClass.getParentClass(parentAss) <> aClass)] + + + [/if] +[/for] +[/template] + +[comment]------------------ Header ------------------[/comment] + +[template public genHeaderTextFieldElements(aChildClass : Class) post (trim())] +[for (aProperty : Property | aChildClass.getFiltrableAttributes())] + + + [getReportResource(aChildClass, aProperty)/] + +[/for] +[/template] + +[template public genHeaderParentTextFieldElements(aClass : Class) post (trim())] +[for(aParentClass : Class | aClass.getParentClasses())] + + + [getReportGenericResourceParentTextField(aParentClass, 'objectKey')/] + + + + [getReportGenericResourceParentTextField(aParentClass, 'objectTitle')/] + +[/for] +[/template] + +[comment]------------------ TextFields ------------------[/comment] + +[template public genTextFieldElements(aChildClass: Class) post (trim())] +[for (aProperty : Property | aChildClass.getFiltrableAttributes())] + + + [getReportField(aChildClass, aProperty)/] + +[/for] +[/template] + +[template public genParentTextFieldElements(aClass: Class) post (trim())] +[comment][for(aParentClass : Class | aChildClass.getParentsWithoutOwner(aClass))][/comment] +[for(parentAss: Association | aClass.getParentAssociations())] + [if(aClass.getParentClass(parentAss) <> aClass)] + + + [getReportGenericParentTextField(aClass, parentAss, 'objectKey')/] + + + + [getReportGenericParentTextField(aClass, parentAss, 'objectTitle')/] + +[/if] +[/for] +[/template] + +[template getX(index: Integer, aChildClass: Class) post (trim())] +[((index - 1) * getColumnWidthForRow(aChildClass))/] +[/template] + +[template getFirstParentX(index: Integer, aChildClass: Class) post (trim())] +[if(index = 1)] +[((index + getAttributeNumber(aChildClass) - 1) * getColumnWidthForRow(aChildClass))/] +[else] +[((index + getAttributeNumber(aChildClass)) * getColumnWidthForRow(aChildClass))/] +[/if] +[/template] + +[template getSecondParentX(index: Integer, aChildClass: Class) post (trim())] +[if(index = 1)] +[((index + getAttributeNumber(aChildClass)) * getColumnWidthForRow(aChildClass))/] +[else] +[((index + getAttributeNumber(aChildClass) + 1) * getColumnWidthForRow(aChildClass))/] +[/if] +[/template] diff --git a/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/main.mtl b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/main.mtl new file mode 100644 index 0000000..4a00067 --- /dev/null +++ b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/main.mtl @@ -0,0 +1,33 @@ +[comment encoding = UTF-8 /] +[module main('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::mice::voila2::acceleogenerator::reports::folderUtils/] +[import it::mice::voila2::acceleogenerator::reports::reports/] +[import it::mice::voila2::acceleogenerator::reports::subReports/] +[import it::mice::voila2::acceleogenerator::reports::listReport/] +[import it::mice::voila2::acceleogenerator::reports::cache/] + +[comment] + Author: fabio.memoli +[/comment] + +[template public genReportsMain(aModel : Model){isMicroservizio : Boolean = aModel.isMainMs();}] + +[consoleMessage(getInfoSeverity(), 'JasperReports Generation')/] + +[genReportFolders()/] + +[for(aClass : Class | aModel.getEntities())] + [consoleMessage(getInfoSeverity(), 'Report generation for the entity: ' + aClass.name)/] + [genReportDetail(aClass)/] + [genReportListForDetail(aClass)/] +[comment] [genListReport(aClass)/][/comment] +[/for] + +[if(isMicroservizio)._not()] +[genJasperReportCache(false)/] +[/if] +[/template] diff --git a/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/reportUtils.mtl b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/reportUtils.mtl new file mode 100644 index 0000000..50753c2 --- /dev/null +++ b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/reportUtils.mtl @@ -0,0 +1,195 @@ +[comment encoding = UTF-8 /] +[module reportUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] + +[comment] + Author: fabio.memoli +[/comment] + +[comment]------------------ Folder ------------------[/comment] + +[template public getReportFolderName(oclAny : OclAny)] +reports +[/template] + +[template public getReportFolder(oclAny : OclAny)] +[getResourcesFolderName()/]/[getReportFolderName()/] +[/template] + +[template public getReportName(aClass : Class)] +[aClass.name/] +[/template] + +[comment]------------------ Generic Resource ------------------[/comment] + +[template public getReportGenericResourceName(aClass : Class, name: String)] +[aClass.name.toLowerFirst()/].[name/] +[/template] + +[template public getReportGenericResourceParentName(aClass : Class, name: String)] +[getReportGenericResourceName(aClass, name)/] +[/template] + +[template public getReportGenericResourceTextField(aClass : Class, name: String)] +[''/] +[/template] + +[template public getReportGenericResourceParentTextField(aClass : Class, name: String)] +[''/] +[/template] + +[comment]------------------ Generic Field ------------------[/comment] + +[template public getReportGenericFieldName(aClass : Class, name : String)] +[aClass.name/].[name/] +[/template] + +[template public getReportGenericFieldParentName(aClass : Class, parentAss: Association, name : String)] +[aClass.getTheParentPropertyName(parentAss)/].[name/] +[/template] + +[template public getReportGenericTextField(aClass : Class, name : String)] +[''/] +[/template] + +[template public getReportGenericParentTextField(aClass : Class, parentAss: Association, name : String)] +[''/] +[/template] + +[template public getReportGenericDateTimeField(aClass : Class, name : String)] +$F{[name/]}.format(java.time.format.DateTimeFormatter.ofPattern([getReportStaticResourceName('datetime.format')/])) +[/template] + +[template public getReportGenericDateField(aClass : Class, name : String)] +$F{[name/]}.format(java.time.format.DateTimeFormatter.ofPattern([getReportStaticResourceName('date.format')/])) +[/template] + +[comment]------------------ Report Resources ------------------[/comment] + +[template public getReportResourceName(aClass : Class, aProperty : Property)] +[aClass.name.toLowerFirst()/].[aProperty.name/] +[/template] + +[template public getReportStaticResourceName(name: String)] +$R{jasperReports.[name/]} +[/template] + +[template public getReportRelativeResourceName(aClass : Class, name: String)] +[aClass.name.toLowerFirst()/].jasperReports.[name/] +[/template] + +[template public getReportResource(aClass : Class, aProperty : Property)] +[''/] +[/template] + +[template public getReportParentResource(aClass : Class, aProperty : Property)] +[''/] +[/template] + +[template public getReportResourceTextField(aClass : Class, name: String)] +[''/] +[/template] + +[template public getReportStaticResourceTextField(name: String)] +[''/] +[/template] + +[template public getReportStaticResourceDateField(oclAny : OclAny)] +[''/] +[/template] + +[template public getReportStaticResourcePageNumberField(oclAny : OclAny)] +[''/] +[/template] + +[template public getReportStaticImage(filename: String)] +[''/] +[/template] + +[template public getReportResourceImage(filename: String)] +[''/] +[/template] + +[template public getReportStaticTemplate(filename: String)] +[''/] +[/template] + +[comment]------------------ Detail ------------------[/comment] + +[template public getReportDetailName(aClass : Class)] +Detail[getReportName()/] +[/template] + +[template public getReportDetailFileName(aClass : Class)] +Detail[getReportName(aClass)/].jrxml +[/template] + +[template public getReportDetailFile(aClass : Class)] +[getReportFolder(aClass)/]/Detail[getReportName()/].jrxml +[/template] + +[comment]------------------ List For Detail ------------------[/comment] + +[template public getReportListForDetailName(aClass : Class, aChildClass : Class)] +List[aChildClass.name/]For[getReportName()/] +[/template] + +[template public getReportListForDetailFileName(aClass : Class, aChildClass : Class)] +[getReportListForDetailName(aClass, aChildClass)/].jrxml +[/template] + +[template public getListReportFileName(aClass : Class)] +List[aClass.getEntityClassName()/].jrxml +[/template] + +[template public getReportListForDetailFile(aClass : Class, aChildClass : Class)] +[getReportFolder()/]/[getReportListForDetailFileName(aClass, aChildClass)/] +[/template] + +[template public getReportListForDetailParameter(aClass : Class, aChildClass : Class)] +[getReportFolder()/]/[getReportListForDetailFileName(aClass, aChildClass)/] +[/template] + +[template public getListReportFile(aClass : Class, aChildClass : Class)] +[getReportFolder()/]/[getListReportFileName(aClass)/] +[/template] + +[template public getReportField(aClass : Class, aProperty : Property)] +[if(aProperty.isBoolean())] +[''/] +[elseif(aProperty.isDateTime())] +[''/] +[elseif(aProperty.isDate())] +[''/] +[else] +[''/] +[/if] +[/template] + +[comment]------------------ SubReport ------------------[/comment] + +[template public getSubReportFieldName(aClass : Class, aProperty : Property)] +the[getReportName(aClass)/].[aProperty.name/] +[/template] + +[template public getSubReportField(aClass : Class, aProperty : Property)] +[if(aProperty.isBoolean())] +[''/] +[elseif(aProperty.isDateTime())] +[''/] +[elseif(aProperty.isDate())] +[''/] +[else] +[''/] +[/if] +[/template] + +[template public getSubReportRow(aProperty : Property)] +[if(aProperty.isNumeric())]RowRight[else]RowLeft[/if] +[/template] diff --git a/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/reports.mtl b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/reports.mtl new file mode 100644 index 0000000..4eb3ee4 --- /dev/null +++ b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/reports.mtl @@ -0,0 +1,170 @@ +[comment encoding = UTF-8 /] +[module reports('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[import it::mice::voila2::acceleogenerator::reports::reportUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] + +[comment] + Author: fabio.memoli +[/comment] + +[query public getReportUUID(arg0 : Class, arg1 : String) : String + = invoke('it.mice.voila2.acceleogenerator.reports.javaservice.ReportUtils', 'getReportUUID(org.eclipse.uml2.uml.Class, java.lang.String)', Sequence{arg0, arg1}) +/] + +[template public genReportDetail(aClass : Class) post (trim())] +[file(getReportDetailFile(aClass), false, 'UTF-8')] + + + + + [genSubReportParameters(aClass)/] + + [''/] + + [genParentFieldElements(aClass)/] + [genFieldElements(aClass)/] + [genSubReportFieldElements(aClass)/] + + + + + <band height="50" splitType="Stretch"> + <image> + <reportElement style="ImageLeft" x="0" y="0" width="130" height="50" uuid="[getReportUUID(aClass, 'Image')/]"/> + <imageExpression>[getReportResourceImage('logo')/]</imageExpression> + </image> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Title" x="130" y="0" width="295" height="30" uuid="[getReportUUID(aClass, 'Title')/]"/> + <textFieldExpression>[getReportResourceTextField(aClass, 'title')/]</textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="SubTitle" x="130" y="30" width="295" height="20" uuid="[getReportUUID(aClass, 'SubTitle')/]"/> + <textFieldExpression>[getReportResourceTextField(aClass, 'subTitle')/]</textFieldExpression> + </textField> + <textField textAdjust="StretchHeight" isBlankWhenNull="true"> + <reportElement style="Date" x="425" y="0" width="130" height="50" uuid="[getReportUUID(aClass, 'Date')/]"/> + <textFieldExpression>[getReportStaticResourceDateField()/]</textFieldExpression> + </textField> + </band> + + + + + + + + + [getReportResourceTextField(aClass, 'tableHeader')/] + + + + + [genParentTextFieldElements(aClass)/] + [genTextFieldElements(aClass)/] + [genSubReportElements(aClass)/] + + + + + + + + + [getReportStaticResourceTextField('footer.text')/] + + + + [getReportStaticResourcePageNumberField()/] + + + + + + + +[/file] +[/template] + +[template public genSubReportParameters(aClass : Class) post (trim())] +[for(aChildClass : Class | aClass.getChildClasses())] + +[/for] +[/template] + +[template public genFieldElements(aClass : Class) post (trim())] +[for (aProperty : Property | aClass.getFiltrableAttributes())] + +[/for] +[/template] + +[template public genParentFieldElements(aClass : Class) post (trim())] +[for(parentAss : Association | aClass.getParentAssociations())] + [if(aClass.getParentClass(parentAss) <> aClass)] + + [/if] +[/for] +[/template] + + +[template public genParentTextFieldElements(aClass : Class) post (trim())] +[comment][for(aParentClass : Class | aClass.getParentClasses())][/comment] +[for(parentAss : Association| aClass.getParentAssociations())] +[comment] [if(aParentClass <> aClass)][/comment] + + + + [getReportGenericResourceParentTextField(aClass.getParentClass(parentAss), 'objectTitle')/] + + + + [getReportGenericParentTextField(aClass, parentAss, 'objectTitle')/] + + +[comment] [/if][/comment] +[/for] +[/template] + +[template public genSubReportFieldElements(aClass : Class) post (trim())] +[for(childAss : Association | aClass.getChildAssociations())] + +[/for] +[/template] + +[template public genTextFieldElements(aClass : Class) post (trim())] +[for (aProperty: Property | aClass.getFiltrableAttributes())] + + + + [getReportResource(aClass, aProperty)/] + + + + [getReportField(aClass, aProperty)/] + + +[/for] +[/template] + +[template public genSubReportElements(aClass : Class) post (trim())] +[for(childAss : Association | aClass.getChildAssociations())] + + + + + [''/] + + + [''/] + + [''/] + [''/] + + +[/for] +[/template] + diff --git a/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/subReports.mtl b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/subReports.mtl new file mode 100644 index 0000000..20d0494 --- /dev/null +++ b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/subReports.mtl @@ -0,0 +1,196 @@ +[comment encoding = UTF-8 /] +[module subReports('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[import it::mice::voila2::acceleogenerator::reports::reportUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] + +[comment] + Author: fabio.memoli +[/comment] + +[query public getReportUUID(arg0 : Class, arg1 : String) : String + = invoke('it.mice.voila2.acceleogenerator.reports.javaservice.ReportUtils', 'getReportUUID(org.eclipse.uml2.uml.Class, java.lang.String)', Sequence{arg0, arg1}) +/] + +[query public getAttributeNumber(arg0 : Class) : Integer + = invoke('it.mice.voila2.acceleogenerator.reports.javaservice.ReportUtils', 'getAttributeNumber(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentNumber(arg0 : Class) : Integer + = invoke('it.mice.voila2.acceleogenerator.reports.javaservice.ReportUtils', 'getParentNumber(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentsWithoutOwner(arg0 : Class, arg1 : Class) : Collection(OclAny) + = invoke('it.mice.voila2.acceleogenerator.reports.javaservice.ReportUtils', 'getParentsWithoutOwner(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Class)', Sequence{arg0, arg1}) +/] + +[query public getParentAssWithoutOwner(arg0 : Class, arg1 : Class) : Collection(OclAny) + = invoke('it.mice.voila2.acceleogenerator.reports.javaservice.ReportUtils', 'getParentAssWithoutOwner(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Class)', Sequence{arg0, arg1}) +/] +[query public getColumnWidthForRow(arg0 : Class) : Integer + = invoke('it.mice.voila2.acceleogenerator.reports.javaservice.ReportUtils', 'getColumnWidthForRow(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[template public genReportListForDetail(aClass : Class) post (trim())] +[for(aChildClass : Class | aClass.getChildClasses())] + [file(getReportListForDetailFile(aClass, aChildClass), false, 'UTF-8')] + + + + + + + + [''/] + + [genFieldElements(aChildClass)/] + [genParentFieldElements(aChildClass, aClass)/] + + + + + <band splitType="Stretch"/> + + + + + + [getReportResourceTextField(aChildClass, 'tableHeader')/] + + + + + + [genHeaderTextFieldElements(aChildClass)/] + [genHeaderParentTextFieldElements(aChildClass, aClass)/] + + + + + [genTextFieldElements(aChildClass)/] + [genParentTextFieldElements(aChildClass, aClass)/] + + + + + + + + + + + + + [/file] +[/for] +[/template] + +[comment]------------------ Fields ------------------[/comment] + +[template public genFieldElements(aChildClass : Class) post (trim())] +[for (aProperty : Property | aChildClass.getFiltrableAttributes())] + +[/for] +[/template] + +[template public genParentFieldElements(aChildClass : Class, aClass : Class) post (trim())] +[for(parentAss : Association| aChildClass.getParentAssociations())] + [if(aChildClass.getParentClass(parentAss) <> aClass)] + + + [/if] +[/for] +[/template] + +[comment]------------------ Header ------------------[/comment] + +[template public genHeaderTextFieldElements(aChildClass : Class) post (trim())] +[for (aProperty : Property | aChildClass.getFiltrableAttributes())] + + + [getReportResource(aChildClass, aProperty)/] + +[/for] +[/template] + +[template public genHeaderParentTextFieldElements(aChildClass : Class, aClass : Class) post (trim())] +[for(aParentClass : Class | aChildClass.getParentsWithoutOwner(aClass))] + + + [getReportGenericResourceParentTextField(aParentClass, 'objectKey')/] + + + + [getReportGenericResourceParentTextField(aParentClass, 'objectTitle')/] + +[/for] +[/template] + +[comment]------------------ TextFields ------------------[/comment] + +[template public genTextFieldElements(aChildClass: Class) post (trim())] +[for (aProperty : Property | aChildClass.getFiltrableAttributes())] + + + [getReportField(aChildClass, aProperty)/] + +[/for] +[/template] + +[template public genParentTextFieldElements(aChildClass: Class, aClass: Class) post (trim())] +[comment][for(aParentClass : Class | aChildClass.getParentsWithoutOwner(aClass))][/comment] +[for(parentAss: Association | aChildClass.getParentAssWithoutOwner(aClass))] + [if(aChildClass.getParentClass(parentAss) <> aClass)] + + + [getReportGenericParentTextField(aChildClass, parentAss, 'objectKey')/] + + + + [getReportGenericParentTextField(aChildClass, parentAss, 'objectTitle')/] + +[/if] +[/for] +[/template] + +[template getX(index: Integer, aChildClass: Class) post (trim())] +[((index - 1) * getColumnWidthForRow(aChildClass))/] +[/template] + +[template getFirstParentX(index: Integer, aChildClass: Class) post (trim())] +[if(index = 1)] +[((index + getAttributeNumber(aChildClass) - 1) * getColumnWidthForRow(aChildClass))/] +[else] +[((index + getAttributeNumber(aChildClass)) * getColumnWidthForRow(aChildClass))/] +[/if] +[/template] + +[template getSecondParentX(index: Integer, aChildClass: Class) post (trim())] +[if(index = 1)] +[((index + getAttributeNumber(aChildClass)) * getColumnWidthForRow(aChildClass))/] +[else] +[((index + getAttributeNumber(aChildClass) + 1) * getColumnWidthForRow(aChildClass))/] +[/if] +[/template] diff --git a/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/templates/default.jrtx b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/templates/default.jrtx new file mode 100644 index 0000000..75262f7 --- /dev/null +++ b/plugin-version/it.mice.voila2.acceleogenerator/src/it/mice/voila2/acceleogenerator/reports/templates/default.jrtx @@ -0,0 +1,30 @@ + + + + + + + + + + + +[/file] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentHtml.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentHtml.mtl new file mode 100644 index 0000000..382591b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentHtml.mtl @@ -0,0 +1,122 @@ +[comment encoding = UTF-8 /] +[module listEntityComponentHtml('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils /] + + +[template public getListEntityComponentHtmlFileName(aClass : Class)] +[aClass.getEntityMSFEFolder()/]/list-[aClass.getDashedEntityClassName()/]/list-[aClass.getDashedEntityClassName()/].component.html +[/template] + + +[template public genListEntityComponentHtml(aClass: Class, aModel: Model) post(writeAndFormat(aClass.getListEntityComponentHtmlFileName())){ +ids: Collection(OclAny) = aClass.getClassIDs(); +attributes : Collection(OclAny) = aClass.getAttributesForPresentation(); +childs : Collection(OclAny) = aClass.getChildClasses(); +parentAssociations : Collection(OclAny) = aClass.getNotIdentifyingParentAssociations(); +microserviceName : String = getArtifact().substituteFirst(getRootArtifactId().concat('-'), ''); +}] + + + + + + [splitCamel(aClass.getEntityClassName())/] {{ 'header.list' | translate }} + + + + + + + + + + + [if(aClass.hasCompositeKey()._not())] + [for(attributeId : Property | ids)] + + [getNaturalLanguageName(attributeId)/] + +
{{[aClass.getEntityClassName().toLowerFirst()/].[attributeId.name/]}}
+ + [/for] + [else] + [for(attributeId : Property | ids)] + + [getNaturalLanguageName(attributeId)/] + +
{{[aClass.getEntityClassName().toLowerFirst()/].[aClass.getClassIdName().toLowerFirst()/].[attributeId.name/]}}
+ + [/for] + [for(parentAss : Association | aClass.getIdentifyingParentAssociations())] +[comment] [for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())][/comment] + + [splitCamel(aClass.getParentClass(parentAss).getEntityClassName())/] + +[comment] [if(aClass.getParentClass(parentAss).hasCompositeKey())] +
{{[aClass.getEntityClassName().toLowerFirst()/].[aClass.getClassIdName().toLowerFirst()/].[aClass.getParentClass(parentAss).getClassIdName().toLowerFirst()/].[parentId.name/]}}
+ [else][/comment] +
{{[aClass.getEntityClassName().toLowerFirst()/].[aClass.getClassIdName().toLowerFirst()/].[aClass.getTheParentPropertyName(parentAss)/]ObjectTitle}}
+[comment] [/if][/comment] + + +[comment] [/for][/comment] + [/for] + [/if] + + + + [for(attribute : Property | attributes)] + [if(not(attribute.isInID(aClass)))] + + [getNaturalLanguageName(attribute)/] + {{[aClass.getEntityClassName().toLowerFirst()/].[attribute.name/] [if(attribute.isDateTime())] | date:"dd/MM/yyyy HH:mm:ss" [/if]}} + [/if] + [/for] + + [for(parentAss : Association | parentAssociations)] +[comment] [for(id : Property | aClass.getParentClass(parentAss).getClassIDs())] + [if(not(id.isInID(aClass)))][/comment] + + [splitCamel(aClass.getParentClass(parentAss).getEntityClassName())/] + {{[aClass.getEntityClassName().toLowerFirst()/].[aClass.getTheParentPropertyName(parentAss)/]ObjectTitle}} +[comment] [/if] + [/for][/comment] + [/for] + + {{ 'label.noElements' | translate }} [aClass.getEntityClassName().splitCamel()/] + +
+ +
+ +
+ + + + + + + + + [if(aClass.isReportEnabled(aModel))][/if] + + + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentScss.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentScss.mtl new file mode 100644 index 0000000..4801312 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentScss.mtl @@ -0,0 +1,26 @@ +[comment encoding = UTF-8 /] +[module listEntityComponentScss('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] + + +[template public getListEntityComponentScssFileName(aClass : Class)] +[aClass.getEntityMSFEFolder()/]/list-[aClass.getDashedEntityClassName()/]/list-[aClass.getDashedEntityClassName()/].component.scss +[/template] + + +[template public genListEntityComponentScss(aClass: Class) post(writeAndFormat(aClass.getListEntityComponentScssFileName()))] + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentSpecTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentSpecTs.mtl new file mode 100644 index 0000000..05ead4d --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentSpecTs.mtl @@ -0,0 +1,46 @@ +[comment encoding = UTF-8 /] +[module listEntityComponentSpecTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] + +[template public getListEntityComponentSpecTsFileName(aClass : Class)] +[comment][getArtifact()/]/fe/[aClass.getEntityClassName()/]/list-[aClass.getEntityClassName().toLowerFirst()/].component.spec.ts[/comment] +[aClass.getEntityMSFEFolder()/]/list-[aClass.getDashedEntityClassName()/]/list-[aClass.getDashedEntityClassName()/].component.spec.ts +[/template] + + +[template public genListEntityComponentSpecTs(aClass: Class) post(writeAndFormat(aClass.getListEntityComponentSpecTsFileName()))] + +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { List[aClass.getEntityClassName()/]Component } from './list-[aClass.getEntityClassName().toLowerFirst()/].component'; + +describe('List[aClass.getEntityClassName()/]Component', () => { + let component: List[aClass.getEntityClassName()/]Component; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: ['['/] List[aClass.getEntityClassName()/]Component ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(List[aClass.getEntityClassName()/]Component); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentTs.mtl new file mode 100644 index 0000000..431794d --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/list/listEntityComponentTs.mtl @@ -0,0 +1,97 @@ +[comment encoding = UTF-8 /] +[module listEntityComponentTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils /] + +[template public getListEntityComponentTsFileName(aClass : Class)] +[aClass.getEntityMSFEFolder()/]/list-[aClass.getDashedEntityClassName().toLowerFirst()/]/list-[aClass.getDashedEntityClassName().toLowerFirst()/].component.ts +[/template] + + +[template public genListEntityComponentTs(aClass: Class, aModel: Model) post(writeAndFormat(aClass.getListEntityComponentTsFileName()))] +import { HttpParams } from '@angular/common/http'; +import { Component, ViewChild } from '@angular/core'; +import { PageObject, PaginationUtils } from 'blazing'; +import { BaseComponent } from '../../../../shared/base/base.component'; +import { [aClass.getInterfaceName()/] , [aClass.getInterfaceName()/]Dto } from '../[aClass.getDashedEntityClassName()/].interface'; +import { [aClass.getEntityClassName()/]ApiService } from '../[aClass.getDashedEntityClassName()/]-api.service'; +import { ButtonService } from '../../../../utilities/services/buttons.service'; +import { Search[aClass.getEntityClassName()/]Component } from './search-[aClass.getDashedEntityClassName()/]/search-[aClass.getDashedEntityClassName()/].component'; +import { Router } from '@angular/router'; +import { extractResponse, extractTotalPages, navigateToPath, getPrivilegesEnum, getPrivileges } from 'voila2-runtime-ng'; + + +@Component({ + selector: 'app-list-[aClass.getDashedEntityClassName()/]', + templateUrl: './list-[aClass.getDashedEntityClassName()/].component.html', + styleUrls: ['['/]'./list-[aClass.getDashedEntityClassName()/].component.scss'], + providers: ['['/][aClass.getEntityClassName()/]ApiService, ButtonService] +}) +export class List[aClass.getEntityClassName()/]Component extends BaseComponent<[aClass.getInterfaceName()/],[aClass.getInterfaceName()/]Dto> { + + + public [aClass.getEntityClassName().toLowerFirst()/]List: [aClass.getInterfaceName()/] ['['/]] = ['['/]]; + public [aClass.getEntityClassName().toLowerFirst()/]!: [aClass.getInterfaceName()/]; + public totalPages: number = 0; + public spinner: boolean = true; + public [aClass.getEntityClassName().toLowerFirst()/]Criteria !: any; + public pageSize: number = 5; + + public privileges: string['['/][']'/] = getPrivileges(); + + public get Privileges(): any { + return getPrivilegesEnum(); + } + + + @ViewChild(Search[aClass.getEntityClassName()/]Component) search[aClass.getEntityClassName()/] !: Search[aClass.getEntityClassName()/]Component; + + + constructor( + private [aClass.getEntityClassName().toLowerFirst()/]ApiService: [aClass.getEntityClassName()/]ApiService, + public router: Router, + ) { super() } + + + public paginateTable(object: any, criteria?: any): void { + const options: HttpParams = PaginationUtils.setOptionsForSpring(object, criteria); + this.[aClass.getEntityClassName().toLowerFirst()/]ApiService.get[aClass.getEntityClassName()/]ByCriteria(options).subscribe( + (data) => { + this.[aClass.getEntityClassName().toLowerFirst()/]List = extractResponse('[aClass.getEntityClassName().toLowerFirst()/]', data); + this.totalPages = extractTotalPages(data); + this.spinner = false; + }, + () => { + this.spinner = false; + } + ) + + } + + public searchWithCriteria() : void { this.[aClass.getEntityClassName().toLowerFirst()/]Criteria = this.search[aClass.getEntityClassName()/].search(); + const object: PageObject = { page: 0, pageSize: this.pageSize}; + this.paginateTable(object, this.[aClass.getEntityClassName().toLowerFirst()/]Criteria); + } + + + public navigateToView(id: number) : void { + navigateToPath('/pages/[getMsNameByArtifactId(getArtifact())/]/[aClass.getDashedEntityClassName()/]/detail-[aClass.getDashedEntityClassName()/]/' + id + '/view', this.router); + } + + [if(aClass.isReportEnabled(aModel))] + public printPdfReport(): void{ + this.[aClass.getEntityClassName().toLowerFirst()/]ApiService.printPdfReport(this.[aClass.getEntityClassName().toLowerFirst()/].objectKey); + } + [/if] + + +} + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mainAngularMS.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mainAngularMS.mtl new file mode 100644 index 0000000..16d03a3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mainAngularMS.mtl @@ -0,0 +1,100 @@ +[module mainAngularMS('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::angular::templates::list::listEntityComponentTs/] +[import it::micegroup::voila2::cartridge::angular::templates::list::listEntityComponentSpecTs/] +[import it::micegroup::voila2::cartridge::angular::templates::list::listEntityComponentHtml/] +[import it::micegroup::voila2::cartridge::angular::templates::list::listEntityComponentScss/] +[import it::micegroup::voila2::cartridge::angular::templates::search::searchEntityComponentHtml/] +[import it::micegroup::voila2::cartridge::angular::templates::search::searchEntityComponentScss/] +[import it::micegroup::voila2::cartridge::angular::templates::search::searchEntityComponentTs/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::detailEntityComponentHtml/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::detailEntityComponentScss/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::detailEntityComponentTs/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::tabs::tabsEntityComponentHtml/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::tabs::tabsEntityComponentTs/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::tabs::tabsEntityComponentScss/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::tabs::tabChildEntity::tabChildEntityComponentHtml/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::tabs::tabChildEntity::tabChildEntityComponentTs/] +[import it::micegroup::voila2::cartridge::angular::templates::detail::tabs::tabChildEntity::tabChildEntityComponentScss/] +[import it::micegroup::voila2::cartridge::angular::templates::dialog::dialogListEntity::dialogListEntityComponentHtml/] +[import it::micegroup::voila2::cartridge::angular::templates::dialog::dialogListEntity::dialogListEntityComponentScss/] +[import it::micegroup::voila2::cartridge::angular::templates::dialog::dialogListEntity::dialogListEntityComponentTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityModuleTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityInterfaceTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityModelTs/] +[import it::micegroup::voila2::cartridge::angular::templates::mapperConfigTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityCriteriaTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityRoutingModuleTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityFormTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityConstantTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityApiServiceTs/] +[import it::micegroup::voila2::cartridge::angular::templates::microserviceMenuTs/] +[import it::micegroup::voila2::cartridge::angular::templates::microserviceModuleTs/] +[import it::micegroup::voila2::cartridge::angular::templates::microserviceRoutingModuleTs/] +[import it::micegroup::voila2::cartridge::angular::templates::assets::i18n::i18nEnJson/] +[import it::micegroup::voila2::cartridge::angular::templates::assets::i18n::i18nItJson/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::angular::templates::translateConfigTs/] +[import it::micegroup::voila2::cartridge::angular::templates::entityGroupApiServiceTs/] +[import it::micegroup::voila2::cartridge::angular::templates::security::privilegeEnumTs/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] + + +[template public genMainAngularMs(aModel: Model)] +[for(aClass : Class | aModel.getEntities())] + [consoleMessage(getInfoSeverity(), 'List Entity Component Generation for Entity: ' + aClass.name)/] + [aClass.genListEntityComponentTs(aModel)/] + [aClass.genListEntityComponentSpecTs()/] + [aClass.genListEntityComponentHtml(aModel)/] + [aClass.genListEntityComponentScss()/] + [consoleMessage(getInfoSeverity(), 'Search Entity Component Generation for Entity: ' + aClass.name)/] + [aClass.genSearchEntityComponentHtml()/] + [aClass.genSearchEntityComponentScss()/] + [aClass.genSearchEntityComponentTs()/] + [consoleMessage(getInfoSeverity(), 'Detail Entity Component Generation for Entity: ' + aClass.name)/] + [aClass.genDetailEntityComponentTs(aModel)/] + [aClass.genDetailEntityComponentHtml(aModel)/] + [aClass.genDetailEntityComponentScss()/] + [aClass.genTabsEntityComponentHtml()/] + [aClass.genTabsEntityComponentTs()/] + [aClass.genTabsEntityComponentScss()/] + [aClass.genEntityConstantTs()/] + [consoleMessage(getInfoSeverity(), 'Module Generation for Entity: ' + aClass.name)/] + [aClass.genEntityModuleTs()/] + [consoleMessage(getInfoSeverity(), 'Interface Generation for Entity: ' + aClass.name)/] + [aClass.genEntityInterfaceTs()/] + [consoleMessage(getInfoSeverity(), 'Module Generation for Model: ' + aClass.name)/] + [aClass.genEntityModelTs()/] + [consoleMessage(getInfoSeverity(), 'Criteria Generation for Entity: ' + aClass.name)/] + [aClass.genEntityCriteriaTs()/] + [consoleMessage(getInfoSeverity(), 'RoutingModule Generation for Entity: ' + aClass.name)/] + [aClass.genEntityRoutingModuleTs()/] + [consoleMessage(getInfoSeverity(), 'Form Generation for Entity: ' + aClass.name)/] + [aClass.genEntityFormTs()/] + [consoleMessage(getInfoSeverity(), 'ApiService Generation for Entity: ' + aClass.name)/] + [aClass.genEntityApiServiceTs()/] + [aClass.entityParentsApiServiceTs()/] + [for(childAss : Association | aClass.getChildAssociations())] + [childAss.genTabChildEntityComponentHtml(aClass)/] + [childAss.genTabChildEntityComponentTs(aClass)/] + [childAss.genTabChildEntityComponentScss(aClass)/] + [/for] + [if(aClass.hasChilds() or aClass.hasOneToOneRelation())] + [aClass.genDialogListEntityComponentHtml()/] + [aClass.genDialogListEntityComponentTs()/] + [aClass.genDialogListEntityComponentScss()/] + [/if] +[/for] +[consoleMessage(getInfoSeverity(), 'Menu generation')/] +[aModel.genMicroserviceMenuTs()/] +[aModel.genMsEntityModuleTs()/] +[aModel.genMsEntityRoutingModuleTs()/] +[aModel.geni18nItJson()/] +[aModel.geni18nEnJson()/] +[genPrivilegeEnumTs(aModel)/] +[genMapperConfigTs(aModel)/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mapperConfigGeneralTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mapperConfigGeneralTs.mtl new file mode 100644 index 0000000..ee7bf4d --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mapperConfigGeneralTs.mtl @@ -0,0 +1,27 @@ +[module mapperConfigGeneralTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + + + + + + +[template public genMapperConfigGeneralTs( aModel : Model) post(writeAndFormat(getMapperConfigGeneralFileName()))] + +[for(microservice : Component | aModel.getMicroservices()) ] +import { mapper[getNaturalMsName(microservice)/]Config } from "./pages/[getArtifact()/]-[getMsName(microservice)/]-fe/mapper.config"; +[/for] + +export function configureMapper() : void { + [for(microservice : Component | aModel.getMicroservices()) ] + mapper[getNaturalMsName(microservice)/]Config(); + [/for] +} + +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mapperConfigTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mapperConfigTs.mtl new file mode 100644 index 0000000..7b24314 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/mapperConfigTs.mtl @@ -0,0 +1,39 @@ +[module mapperConfigTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] + + +[template public getMicroserviceMapperConfigFileName(oclAny : OclAny)] +[getRootFEFolderName()/]/mapper.config.ts +[/template] + + +[template public genMapperConfigTs( aModel : Model) post(writeAndFormat(getMicroserviceMapperConfigFileName()))] + +import { BzAutoMapper, IMapOperation } from "blazing"; +import { inizializeMapper } from "../../shared/base/base.helper"; +import { convertIntoDate } from "src/app/utilities/function/helper"; + + +export function mapper[getMsNameByArtifactIdWOMsUpperFirst()/]Config() : void { + + const bzAutoMapper: BzAutoMapper = inizializeMapper(); + + [for(aClass : Class | aModel.getEntities())] + bzAutoMapper.createMap('[aClass.getEntityModelName()/]', '[aClass.getInterfaceName()/]'); + [for(attribute: Property |aClass.getAllAttributes())] + [if(attribute.isDateTime() or attribute.isLocalDate())] + .forMember('[attribute.name/]', { value: convertIntoDate, operation: IMapOperation.CHANGE}) + [/if] + [/for] + [/for] + +} + +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceMenuTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceMenuTs.mtl new file mode 100644 index 0000000..fc574ea --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceMenuTs.mtl @@ -0,0 +1,82 @@ +[comment encoding = UTF-8 /] +[module microserviceMenuTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] + + +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::subjectAreaUtils/] + +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] + +[template public getMicroserviceMenuTsFileName(oclAny : OclAny)] +[getRootFEFolderName()/]/[getMsNameByArtifactId(getArtifact())/]-menu.ts +[/template] + + +[template public genMicroserviceMenuTs(aModel: Model) post(writeAndFormat(getMicroserviceMenuTsFileName()))] + +import { MenuElement } from "blazing/lib/components/menu/menu-element"; +import {getPrivilegesEnum } from 'voila2-runtime-ng'; + +const Privileges = getPrivilegesEnum(); + +export const MENU_MS_[camelToUnderscore(getMsNameByArtifactIdWOMs(getArtifact())).toUpper()/]: MenuElement['['/]] = ['['/] + +[for(aClass : Class | aModel.getModelEntitiesFromMainSA()) separator(',')] + { + label:"[splitCamel(aClass.getEntityClassName())/]", + expectedPrivilege:Privileges.[camelToUnderscore(aClass.getEntityClassName()).toUpper()/]_FIND_PAGINATED, + path:"/pages/[getMsNameByArtifactId(getArtifact())/]/[aClass.getDashedEntityClassName().toLowerFirst()/]/list-[aClass.getDashedEntityClassName().toLowerFirst()/]", + basePath:"/pages/[getMsNameByArtifactId(getArtifact())/]/[aClass.getDashedEntityClassName().toLowerFirst()/]/" + } +[/for] +, +[if(isSecurityMicroservice())] +{ + label: 'Security', + iconClass: 'fas fa-lock', + children:['['/] +[else] +[if(isNotificationMicroservice())] +{ + label: 'Notification', + iconClass: 'fas fa-envelope-open-text', + children:['['/] +[/if] +[/if] +[for(subjectArea : Package| aModel.getSubjectAreas())separator(',')] +{ + label: '[subjectArea.name.toUpperFirst()/]', + iconClass: 'fas fa-stream', + children:['['/] +[for(aClass : Class | subjectArea.getEntitiesForSA()) separator(',')] + { + label:"[splitCamel(aClass.getEntityClassName())/]", + expectedPrivilege:Privileges.[camelToUnderscore(aClass.getEntityClassName()).toUpper()/]_FIND_PAGINATED, + path:"/pages/[getMsNameByArtifactId(getArtifact())/]/[aClass.getDashedEntityClassName().toLowerFirst()/]/list-[aClass.getDashedEntityClassName().toLowerFirst()/]", + basePath:"/pages/[getMsNameByArtifactId(getArtifact())/]/[aClass.getDashedEntityClassName().toLowerFirst()/]/" + } +[/for] + ] + } +[/for] +[if(isNotificationMicroservice() or isSecurityMicroservice())] + ] + } +[/if] +] + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceModuleTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceModuleTs.mtl new file mode 100644 index 0000000..3431b2a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceModuleTs.mtl @@ -0,0 +1,44 @@ +[comment encoding = UTF-8 /] +[module microserviceModuleTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] + +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] + +[template public getMsEntityModuleTsFileName(oclAny : OclAny)] +[getRootFEFolderName()/]/[getMsNameByArtifactId(getArtifact())/].module.ts +[/template] + + +[template public genMsEntityModuleTs(aModel: Model) post(writeAndFormat(getMsEntityModuleTsFileName()))] + +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { [getMsNameByArtifactId(getArtifact()).dashToCamelCase().toUpperFirst()/]RoutingModule } from './[getMsNameByArtifactId(getArtifact())/]-routing.module'; + + +@NgModule({ + declarations: ['['/]], + imports: ['['/] + CommonModule, + [dashToCamelCase(getMsNameByArtifactId(getArtifact())).toUpperFirst()/]RoutingModule + ] +}) +export class [dashToCamelCase(getMsNameByArtifactId(getArtifact())).toUpperFirst()/]Module { } + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceRoutingModuleTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceRoutingModuleTs.mtl new file mode 100644 index 0000000..36f1155 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/microserviceRoutingModuleTs.mtl @@ -0,0 +1,58 @@ +[comment encoding = UTF-8 /] +[module microserviceRoutingModuleTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] + + +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] + +[template public getMsEntityRoutingModuleTsFileName(oclAny : OclAny)] +[getRootFEFolderName()/]/[getMsNameByArtifactId(getArtifact())/]-routing.module.ts +[/template] + + +[template public genMsEntityRoutingModuleTs(aModel: Model) post(writeAndFormat(getMsEntityRoutingModuleTsFileName()))] + +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + + +const routes: Routes = ['['/] + { + path: '', + children: ['['/] + [for(aClass : Class | aModel.getEntities())] + { + path: "[aClass.getDashedEntityClassName().toLowerFirst()/]", loadChildren: () => + import("./[aClass.getDashedEntityClassName().toLowerFirst()/]/[aClass.getDashedEntityClassName().toLowerFirst()/].module").then((m) => m.[aClass.getEntityClassName()/]Module), + }, + + [/for] + ] + } + + ]; + + @NgModule({ + imports: ['['/]RouterModule.forChild(routes)], + exports: ['['/]RouterModule] + }) + export class [dashToCamelCase(getMsNameByArtifactId(getArtifact())).toUpperFirst()/]RoutingModule { } + + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/pagesRouting.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/pagesRouting.mtl new file mode 100644 index 0000000..6bc4946 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/pagesRouting.mtl @@ -0,0 +1,41 @@ +[module pagesRouting('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] + + +[template public genPagesRouting(aModel : Model) post(writeAndFormat(getPagesRoutingFileName()))] +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { HomepageComponent } from './homepage/homepage.component'; +import { PagesComponent } from './pages.component'; + + +const routes: Routes = ['['/] + { + path: '', component: PagesComponent, + children: ['['/] + { + path:'home', component: HomepageComponent + }, + [for(microservice : Component | aModel.getMicroservices()) separator(',')] + { + path: "[getMsName(microservice)/]", loadChildren: () => + import("./[getArtifact()/]-[getMsName(microservice)/]-fe/[getMsName(microservice)/].module").then((m) => m.[getMsAngularModuleName(microservice)/]), + } + [/for] + ] + } + +]; + +@NgModule({ + imports: ['['/]RouterModule.forChild(routes)], + exports: ['['/]RouterModule] +}) +export class PagesRoutingModule { } +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentHtml.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentHtml.mtl new file mode 100644 index 0000000..67ab1e2 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentHtml.mtl @@ -0,0 +1,106 @@ +[comment encoding = UTF-8 /] +[module searchEntityComponentHtml('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] + +[template public getSearchEntityComponentHtmlFileName(aClass : Class)] +[aClass.getEntityMSFEFolder()/]/list-[aClass.getDashedEntityClassName()/]/search-[aClass.getDashedEntityClassName()/]/search-[aClass.getDashedEntityClassName()/].component.html +[/template] + + +[template public genSearchEntityComponentHtml(aClass: Class) post(writeAndFormat(aClass.getSearchEntityComponentHtmlFileName())){ +attributes : Collection(OclAny) = aClass.getAttributesForPresentation(); +parentAssociations : Collection(OclAny) = aClass.getParentAssFromAllModels(); +}] + + + + + {{ 'header.search' | translate }} + + + + +
+ + [for(attribute : Property | attributes)] + + +
+
+ [if(attribute.isNumeric())] + + [/if] + [if(attribute.isDate())] + + [/if] + [if(attribute.isDateTime())] + + [/if] + [if(attribute.isString())] + + [/if] + [if(attribute.isBoolean())] + [getNaturalLanguageName(attribute)/] + [/if] +
+
+ [if(attribute.isNumeric())] + + [/if] + [if(attribute.isDate())] + + [/if] + [if(attribute.isDateTime())] + + [/if] +
+
+ + [/for] + + [for(parentAss : Association | parentAssociations)] +
+
+ [if(hasPopupParentSelection(parentAss))] + + + + [else] + + + + [/if] +
+
+[comment] [for(id : Property | aClass.getParentClass(parentAss).getClassIDs())] + +
+
+ +
+
+ + [/for][/comment] + + + [/for] + +
+
+
+ + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentScss.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentScss.mtl new file mode 100644 index 0000000..29b1b3c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentScss.mtl @@ -0,0 +1,26 @@ +[comment encoding = UTF-8 /] +[module searchEntityComponentScss('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] + + +[template public getSearchEntityComponentScssFileName(aClass : Class)] +[aClass.getEntityMSFEFolder()/]/list-[aClass.getDashedEntityClassName()/]/search-[aClass.getDashedEntityClassName()/]/search-[aClass.getDashedEntityClassName()/].component.scss +[/template] + + +[template public genSearchEntityComponentScss(aClass: Class) post(writeAndFormat(aClass.getSearchEntityComponentScssFileName()))] + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentTs.mtl new file mode 100644 index 0000000..a4e6ec3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/search/searchEntityComponentTs.mtl @@ -0,0 +1,232 @@ +[comment encoding = UTF-8 /] +[module searchEntityComponentTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::utilities /] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] + + + +[template public getSearchEntityComponentTsFileName(aClass : Class)] +[aClass.getEntityMSFEFolder()/]/list-[aClass.getDashedEntityClassName().toLowerFirst()/]/search-[aClass.getDashedEntityClassName().toLowerFirst()/]/search-[aClass.getDashedEntityClassName().toLowerFirst()/].component.ts +[/template] + +[template public genFilterSection(aClass: Class, attribute: Property, parentAss: Association, isParent: Boolean)] +[if(attribute.isNumeric() or attribute.isDate() or attribute.isDateTime())] +const [attribute.getAttributeName(aClass, parentAss, isParent)/]From : [getAngularType(attribute.type)/] = this.search[aClass.getEntityName()/]Form.value.[attribute.getAttributeName(aClass, parentAss, isParent)/]From; +const [attribute.getAttributeName(aClass, parentAss, isParent)/]To : [getAngularType(attribute.type)/] = this.search[aClass.getEntityName()/]Form.value.[attribute.getAttributeName(aClass, parentAss, isParent)/]To; + +//[attribute.getAttributeName(aClass, parentAss, isParent)/] +if([attribute.getAttributeName(aClass, parentAss, isParent)/]From || [attribute.getAttributeName(aClass, parentAss, isParent)/]To ){ + [aClass.getEntityCriteriaName().toLowerFirst()/].[attribute.getAttributeName(aClass, parentAss, isParent)/] = new [getFilterType(attribute.type)/]; + [aClass.getEntityCriteriaName().toLowerFirst()/].[attribute.getAttributeName(aClass, parentAss, isParent)/].setGreaterOrEqualThan([attribute.getAttributeName(aClass, parentAss, isParent)/]From); + [aClass.getEntityCriteriaName().toLowerFirst()/].[attribute.getAttributeName(aClass, parentAss, isParent)/].setLessOrEqualThan([attribute.getAttributeName(aClass, parentAss, isParent)/]To); +} +[/if] + +[if(attribute.isString())] +const [attribute.getAttributeName(aClass, parentAss, isParent)/] : [getAngularType(attribute.type)/] = this.search[aClass.getEntityName()/]Form.value.[attribute.getAttributeName(aClass, parentAss, isParent)/]; + +//[attribute.getAttributeName(aClass, parentAss, isParent)/] +if([attribute.getAttributeName(aClass, parentAss, isParent)/]){ +[aClass.getEntityCriteriaName().toLowerFirst()/].[attribute.getAttributeName(aClass, parentAss, isParent)/] = new [getFilterType(attribute.type)/]; +[aClass.getEntityCriteriaName().toLowerFirst()/].[attribute.getAttributeName(aClass, parentAss, isParent)/].setContains(this.search[aClass.getEntityName()/]Form.value.[attribute.getAttributeName(aClass, parentAss, isParent)/]); +} +[/if] + +[if(attribute.isBoolean())] +const [attribute.getAttributeName(aClass, parentAss, isParent)/] : [getAngularType(attribute.type)/] = this.search[aClass.getEntityName()/]Form.value.[attribute.getAttributeName(aClass, parentAss, isParent)/]; + +//[attribute.getAttributeName(aClass, parentAss, isParent)/] +if([attribute.getAttributeName(aClass, parentAss, isParent)/]){ + [aClass.getEntityCriteriaName().toLowerFirst()/].[attribute.getAttributeName(aClass, parentAss, isParent)/] = new [getFilterType(attribute.type)/](); + [aClass.getEntityCriteriaName().toLowerFirst()/].[attribute.getAttributeName(aClass, parentAss, isParent)/].setSpecified([attribute.getAttributeName(aClass, parentAss, isParent)/]); +} +[/if] +[/template] + +[template public genSearchEntityComponentTs(aClass: Class) post(writeAndFormat(aClass.getSearchEntityComponentTsFileName())){ +attributes : Collection(OclAny) = aClass.getAttributesForPresentation(); +parents : Collection(OclAny) = aClass.getParentClasses(); +parentIds : Collection(OclAny) = aClass.getParentIds(); +attributesFilter : Collection(OclAny) = aClass.getAttributeAngularTypesNoDuplicates(getAttributesFromClassAndParents(aClass)); +parentAssociations : Collection(OclAny) = aClass.getParentAssFromAllModels(); +}] +import { Component, OnInit } from '@angular/core'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { DateService } from 'blazing'; +import { [aClass.getEntityClassName()/]GroupApiService } from '../../[aClass.getDashedEntityClassName().toLowerFirst()/]-group-api.service'; +import { +[for(attribute : String | attributesFilter) separator (',')] + [attribute/] +[/for] +[if not (aClass.getAttributeAngularTypesNoDuplicates(getAttributesFromClassAndParents(aClass)) -> includes('StringFilter'))] +, StringFilter +[/if] +, getListForDropdown +} from 'voila2-runtime-ng'; + +import { [aClass.getEntityClassName()/]Criteria } from '../../[aClass.getDashedEntityClassName().toLowerFirst()/].criteria'; + +[for(parent : Class | aClass.getParentClassesNoDup())] +import { I[parent.getEntityClassName()/] } from '../../../[parent.getDashedEntityClassName()/]/[parent.getDashedEntityClassName()/].interface'; +import { [parent.getEntityClassName()/]ApiService } from '../../../[parent.getDashedEntityClassName()/]/[parent.getDashedEntityClassName()/]-api.service'; +[/for] + +[for(parent : Association| aClass.getParentAssociations())] +[if(hasPopupParentSelection(parent))] +import { DialogList[aClass.getParentEntityNameCheckSelf(parent)/]Component } from '../../../dialog/dialog-list-[aClass.getParentClass(parent).getDashedEntityClassName()/]/dialog-list-[aClass.getParentClass(parent).getDashedEntityClassName()/].component'; +[/if] +[/for] +[if(aClass.hasPopUpParentSelection())] +import { OverlaysService } from 'src/app/utilities/services/overlays.service'; +[/if] +const PROVIDERS = ['['/] + [aClass.getEntityClassName()/]GroupApiService, + [if(aClass.hasPopUpParentSelection())]OverlaysService,[/if] + [for(parent : Class | aClass.getParentClassesNoDup())] + [parent.getEntityClassName()/]ApiService, + [/for] +] + +@Component({ + selector: 'app-search-[aClass.getDashedEntityClassName().toLowerFirst()/]', + templateUrl: './search-[aClass.getDashedEntityClassName().toLowerFirst()/].component.html', + styleUrls: ['['/]'./search-[aClass.getDashedEntityClassName().toLowerFirst()/].component.scss'], + providers: ['['/]...PROVIDERS ] +}) +export class Search[aClass.getEntityClassName()/]Component implements OnInit { + + public search[aClass.getEntityClassName()/]Form !: FormGroup; + [for(parentAss : Association | aClass.getParentAssociationsNoDup())] + [if(hasDropdownParentSelection(parentAss))] + public [aClass.getVirginParentEntityNameCheckSelf(parentAss).toLowerFirst()/]List : I[aClass.getVirginParentEntityNameCheckSelf(parentAss)/]['['/]] = ['['/]]; + [/if] + [/for] + constructor( + private formBuilder: FormBuilder, + private dateService: DateService, + private [aClass.getEntityClassName().toLowerFirst()/]GroupApiService : [aClass.getEntityClassName()/]GroupApiService, + [if(aClass.hasPopUpParentSelection())]private overlaysService: OverlaysService [/if] + ) { } + + ngOnInit(): void { + this.inizialize(); + [if(aClass.hasParents() and aClass.hasAtLeastOneDrpodownSelection())] + this.getParentsList(); + [/if] + } + + public search(): any { + let [aClass.getEntityClassName().toLowerFirst()/]Criteria: [aClass.getEntityClassName()/]Criteria = Object.assign({}); + + if (this.search[aClass.getEntityClassName()/]Form.value) { + + [comment]ATTRIBUTI INTERNI[/comment] + [for(attribute : Property | attributes)] + [aClass.genFilterSection(attribute, null, false)/] + [/for] + [for(parentAss : Association | aClass.getParentAssociations())] + // [aClass.getTheParentPropertyName(parentAss)/]ObjectKey + if(this.search[aClass.getEntityClassName()/]Form.value.[aClass.getTheParentPropertyName(parentAss)/]ObjectKey) + { + [aClass.getEntityCriteriaName().toLowerFirst()/].[aClass.getTheParentPropertyName(parentAss)/]ObjectKey = this.search[aClass.getEntityClassName()/]Form.value.[aClass.getTheParentPropertyName(parentAss)/]ObjectKey; + } + [/for] + [comment]ID PARENT ENTITY[/comment] +[comment] [for(parentAss : Association | aClass.getParentAssociations())] + [for(parentId : Property | aClass.getParentClass(parentAss).getClassIDsIncludingFK())] + [if not parentId.isInID(aClass)] [aClass.genFilterSection(parentId, parentAss, true)/] [/if] + [/for] + [/for][/comment] + } + + return [aClass.getEntityClassName().toLowerFirst()/]Criteria; + } + + public inizialize(): void { + this.search[aClass.getEntityClassName()/]Form = this.formBuilder.group( + { + [for(attribute : Property | attributes)] + [if(attribute.isNumeric() or attribute.isDate() or attribute.isDateTime())] + '[attribute.name/]From' : ['['/]null], + '[attribute.name/]To' : ['['/]null], + [ /if] + [if(attribute.isString())] + '[attribute.name/]' : ['['/]null], + [ /if] + [if(attribute.isBoolean())] + '[attribute.name/]' : ['['/]null], + [/if] + [/for] + [for(parentAss: Association | aClass.getParentAssociations())separator (',')] + '[aClass.getTheParentPropertyName(parentAss)/]ObjectKey' : ['['/]null] + [/for] + +[comment] [for(parent : Class | parents)] + [for(id : Property | parent.getClassIDs())] + [if(not id.isInID(aClass))] + [if(id.isNumeric() or id.isDate())] + '[id.name/]' : ['['/]null], + [/if] + [if(id.isString())] + '[id.name/]' : ['['/]null], + [/if] + [if(id.isBoolean())] + '[id.name/]' : ['['/]null], + [/if] + [/if] + [ /for] + [ /for][/comment] + } + ) + } + + [for(parentAss : Association | aClass.getParentAssociationsNoDup())] + [if(hasPopupParentSelection(parentAss))] + public show[aClass.getParentEntityNameCheckSelf(parentAss)/]ListDialog(): void { + this.overlaysService.dialog.showDialog(DialogList[aClass.getParentEntityNameCheckSelf(parentAss)/]Component).subscribe(data => { + if (data) { + this.search[aClass.getFormName().toUpperFirst()/].get('[aClass.getTheParentObjectKeyCheckSelf(parentAss).toLowerFirst()/]')?.patchValue(data.objectKey); + } + }); + } + [else] + [if(hasDropdownParentSelection(parentAss))] + public get[aClass.getVirginParentEntityNameCheckSelf(parentAss)/]List() : void { + this.[aClass.getEntityName().toLowerFirst()/]GroupApiService.[aClass.getVirginParentEntityNameCheckSelf(parentAss).toLowerFirst()/].get[aClass.getVirginParentEntityNameCheckSelf(parentAss)/]ByCriteria().subscribe( + (data) => { + this.[aClass.getVirginParentEntityNameCheckSelf(parentAss).toLowerFirst()/]List = getListForDropdown('[aClass.getVirginParentEntityNameCheckSelf(parentAss).toLowerFirst()/]', data); + } + ) + } + [/if] + [/if] + [/for] + + [if(aClass.hasParents() and aClass.hasAtLeastOneDrpodownSelection())] + private getParentsList() : void { + [for(parentAss : Association | aClass.getParentAssociationsNoDup())] + [if(hasDropdownParentSelection(parentAss))] + this.get[aClass.getVirginParentEntityNameCheckSelf(parentAss)/]List(); + [/if] + [/for] + } + [/if] + + +} + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/security/privilegeEnumTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/security/privilegeEnumTs.mtl new file mode 100644 index 0000000..2b8157e --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/security/privilegeEnumTs.mtl @@ -0,0 +1,41 @@ +[module privilegeEnumTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::common::utilities/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] + + +[template public genPrivilegeEnumTs(aModel: Model) post(writeAndFormat(getMsPrivilegeFileName())) ] + + +export enum [getMsNameByArtifactIdWOMsUpperFirst()/]Privileges { + [for(aClass : Class | aModel.getEntities())] + /// [getEntityClassName(aClass)/] + [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_PAGINATED = '[getPortNumber()/][i/]00', + [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_BY_ID = '[getPortNumber()/][i/]01', + [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_CREATE = '[getPortNumber()/][i/]02', + [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_UPDATE = '[getPortNumber()/][i/]03', + [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_DELETE = '[getPortNumber()/][i/]04', + [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_PDF_REPORT = '[getPortNumber()/][i/]05', + [genParentFEPermission(aClass, i, 5)/] + [/for] +} + +[/template] + +[template public genParentFEPermission(aClass : Class, index: Integer, offset: Integer)] +[for(parentAss: Association | getParentAssociations(aClass))] +[camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_BY_[camelToUnderscore(aClass.getParentPropertyName(parentAss)).toUpperCase()/] = '[getPortNumber()/][index/]0[intSum(offset, i)/]', +[/for] +[for(childAss : Association | getChildAssociations(aClass))] +[camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_BY_[camelToUnderscore(aClass.getTheChildPropertyName(childAss)).toUpperCase()/]_OBJECT_KEY = '[getPortNumber()/][index/]0[offset + aClass.getParentAssociations()->size()+ i/]', +[/for] +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/security/privilegesTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/security/privilegesTs.mtl new file mode 100644 index 0000000..f579c35 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/security/privilegesTs.mtl @@ -0,0 +1,32 @@ +[module privilegesTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::common::utilities/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] + + +[template public genPrivilegeTs(aModel: Model) post(writeAndFormat(getPrivilegeFileName())) ] + +import { ObjectUtils } from 'blazing'; +import {setPrivilegesEnum} from 'voila2-runtime-ng'; +[for(microservice : Component | aModel.getMicroservices()) ] +import {[getMsNameUF(microservice)/]Privileges} from '../pages/[getFEArtifactForMs()/]/privilege.enum'; +[/for] + + +export function buildPrivilegesEnum() { + const privileges = ObjectUtils.merge( + [for(microservice : Component | aModel.getMicroservices()) ] + [getMsNameUF(microservice)/]Privileges, + [/for] + ) + setPrivilegesEnum(privileges); +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/securityConfigTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/securityConfigTs.mtl new file mode 100644 index 0000000..19a8117 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/securityConfigTs.mtl @@ -0,0 +1,46 @@ +[comment encoding = UTF-8 /] +[module securityConfigTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + +[template public genSecurityConfigTs( aModel : Model) post(writeAndFormat(getSecurityConfigFileName()))] + +import { AuthGuard, SecurityService } from 'voila2-runtime-ng'; +import { environment } from 'src/environments/environment'; +import { APP_INITIALIZER, Provider } from '@angular/core'; +import {getFakeProvider} from 'blazing' + + export function securityConfig(securityInstance: SecurityService) { + return () => + securityInstance.init({ + config: { + url: environment.authUrl, + realm: '[getArtifact()/]', + clientId: environment.clientId, + }, + initOptions: { + onLoad: 'login-required' + }, + }); + } + + export function getAuthGuards() : any { + if(environment.securityOn) + return ['['/] AuthGuard ]; + } + + + export function manageSecurityConfig(): Provider { + if (environment.securityOn) + return { + provide: APP_INITIALIZER, + useFactory: securityConfig, + multi: true, + deps: ['['/] SecurityService], + } + return getFakeProvider(); +} + +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/sidebar-left-component.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/sidebar-left-component.mtl new file mode 100644 index 0000000..072acc8 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/sidebar-left-component.mtl @@ -0,0 +1,59 @@ +[module sidebar-left-component('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] + + + +[template public genSideBarLeft(aModel : Model) post(writeAndFormat(getSideBarLeftFileName()))] +import { ChangeDetectionStrategy, Component} from '@angular/core'; +import { MenuElement } from 'blazing/lib/components/menu/menu-element'; +import { MENU_HOME } from '../../pages/homepage/homepage-menu'; +import { getPrivileges } from 'voila2-runtime-ng'; + +[for(microservice : Component | aModel.getMicroservices()) ] +import {MENU_[getMSAngularMenuName(microservice)/]} from '../../pages/[getFEArtifactForMs()/]/ms-[microservice.getMicroServiceName()/]-menu'; +[/for] + +const MS_MENU_ITEMS : MenuElement['['/]] = ['['/] + ...MENU_HOME, +[for(ms : Component | aModel.getDemoMs()) separator(',\n')] + ...MENU_[getMSAngularMenuName(ms)/] +[/for] +[if( aModel.getDemoMs()->size() > 0)],[/if] +[for(ms : Component | aModel.getBusinessMs()) separator(',\n')] + ...MENU_[getMSAngularMenuName(ms)/] +[/for] +[if( aModel.getBusinessMs()->size() > 0)],[/if] +[for(ms : Component | aModel.getNotificationMs()) separator(',\n')] + ...MENU_[getMSAngularMenuName(ms)/] +[/for] +[if( aModel.getNotificationMs()->size() > 0)],[/if] +[for(ms : Component | aModel.getSecurityMs()) separator(',\n')] + ...MENU_[getMSAngularMenuName(ms)/] +[/for] +] + +@Component({ + selector: 'app-sidebar-left', + templateUrl: './sidebar-left.component.html', + styleUrls: ['['/]'./sidebar-left.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class SidebarLeftComponent { + + public privileges: string['['/]] = getPrivileges(); + + public MENU_ELEMENTS: MenuElement['['/]] = ['['/]...MS_MENU_ITEMS]; + + +} + + + +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/translateConfigTs.mtl b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/translateConfigTs.mtl new file mode 100644 index 0000000..7aad9d0 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.angular/src/it/micegroup/voila2/cartridge/angular/templates/translateConfigTs.mtl @@ -0,0 +1,34 @@ +[comment encoding = UTF-8 /] +[module translateConfigTs('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] + + +[template public genTranslateConfigTs( aModel : Model) post(writeAndFormat(getTranslateConfigFileName()))] + +import { Observable } from "rxjs"; +import { TranslateLoader, TranslateService } from "translate-ng"; + + +export class LazyTranslateLoader implements TranslateLoader { + getTranslation(lang: string): Observable { + return TranslateService.getTranslationsFiles(I18NFiles(lang)); + } +} + + +export function I18NFiles( lang: string) { + return ['['/] + import(`../assets/i18n/${lang}.json`), + [for(microservice : Component | aModel.getMicroservices()) ] + import(`../app/pages/[getArtifact()/]-[getMsName(microservice)/]-fe/assets/i18n/${lang}.json`), + [/for] + [']'/] +} + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/.classpath b/plugin-version/it.micegroup.voila2.cartridge.library/.classpath new file mode 100644 index 0000000..0908753 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/.classpath @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/.project b/plugin-version/it.micegroup.voila2.cartridge.library/.project new file mode 100644 index 0000000..5693b1a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/.project @@ -0,0 +1,50 @@ + + + it.micegroup.voila2.cartridge.library + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.acceleo.ide.ui.acceleoBuilder + + + compilation.kind + compilation.absolute.path + + + compliance + pragmatic + + + resource.kind + xmi + + + trim-position + false + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.acceleo.ide.ui.acceleoNature + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/.settings/org.eclipse.jdt.core.prefs b/plugin-version/it.micegroup.voila2.cartridge.library/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..c9545f0 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/META-INF/MANIFEST.MF b/plugin-version/it.micegroup.voila2.cartridge.library/META-INF/MANIFEST.MF new file mode 100644 index 0000000..e1fe7cf --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/META-INF/MANIFEST.MF @@ -0,0 +1,26 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Library +Bundle-SymbolicName: it.micegroup.voila2.cartridge.library;singleton:=true +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: it.micegroup.voila2.cartridge.library +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: it.micegroup.voila2.cartridge.library.formatters, + it.micegroup.voila2.cartridge.library, + it.micegroup.voila2.cartridge.library.javaservice.wrapper, + it.micegroup.voila2.cartridge.library.javaservice;uses:="org.eclipse.uml2.uml" +Require-Bundle: org.eclipse.emf.common;bundle-version="2.22.0", + org.eclipse.emf.transaction;bundle-version="1.9.1", + org.eclipse.uml2.uml;bundle-version="5.5.0", + org.apache.log4j;bundle-version="1.2.15", + org.apache.commons.lang3;bundle-version="3.1.0", + org.apache.commons.io;bundle-version="2.6.0", + org.eclipse.ui;bundle-version="3.118.100", + org.eclipse.ui.console;bundle-version="3.10.0", + org.eclipse.emf.mwe.core;bundle-version="1.6.0", + org.eclipse.jdt.core;bundle-version="3.24.0", + org.eclipse.jface.text;bundle-version="3.16.500", + org.eclipse.uml2.uml;visibility:=reexport, + org.eclipse.acceleo.engine;bundle-version="3.7.11";visibility:=reexport +Bundle-ActivationPolicy: lazy +Bundle-Activator: it.micegroup.voila2.cartridge.library.Activator diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/build.properties b/plugin-version/it.micegroup.voila2.cartridge.library/build.properties new file mode 100644 index 0000000..98bec33 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/build.properties @@ -0,0 +1,3 @@ +output.. = bin/ +bin.includes = META-INF/,\ + plugin.xml diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/libs/ant-1.7.1.jar b/plugin-version/it.micegroup.voila2.cartridge.library/libs/ant-1.7.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..704717779f6d0d7eb026dc7af78a35e51adeec8b GIT binary patch literal 1323005 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

;oqN%G4$4Z*$08)hlj9;9#fB{ow#c4;TTx)70U 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

}-!3o>}6ZQkYEpqklPe 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ξgICw;NggW2eaF+G0H!k_iv%~6h1K-2{w`z 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

SpfE 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�?D=mqxppHs&9kIu9 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 nUU5{B<)AE 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�qH<+|CP$jMH%(X-&)@i&7o+~cE5y9@f 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�HqVYrxr)KP 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 z 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 m`YZ8YI}v{nd*l3{h=1!#D9XUV{(>U^Je+?R$-Z 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

nLku2^YX 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�*D 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

W*e(5nLci4p%dAwg1!*^WZ#O6 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�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�{Ylw$=}uE7J#(KSDYAO%@e8TrCE zRAVmw^-uh&U-tOEsC)deI43jmUcjSaqSZL0MVV5dfBQB0Z*7Nm0iOLr4$GkIWWIojXo_Y7+jR&t_Mf%Y)4M}J|^Q*&` zQ{A_4(&H5m6>KVTY<#@)vhqmP)Aed%yl`*QcHrvv$MlTwtRY<73j&I*Au|be)~~6e zKsN96`5%YB7CmHrzL9+OjrfND+l)?)HNA;?7QE}@lP6+!KtmQscx?EgZQ{(O#>xa} zreLfO5x!s+V&x|J+#o2+>RmWjUKkfa9z82Q0KZ0@aPQggt5}v90O=ZfpnXi7x2J6n zx7o!m5Y%(e^(ALVD7J=0Dt2&=PH4+xe@@l@&Oxq8&**Z+o00}4GL{+T7zw)EwNL*l zIHJREmc=4qNkR1C_1nG!nb&AyGru#sl1)JAdR&D`6GK?RDNEGPzxMU_%Ufx+UMWVF z@H2~Lqo}HJ&dw-ztqT_mW)oS9F$rqjglH7Edl7%x-a~qz^Jk`>VR=8x(*BwL?2uTM zJXUa}enf-$yGEY3J&T%H*cVL!O6L-+b9>sb^S!N6tNJYiN2*fqj?{;(EW%V59w2S| z%7-PMgqHMiEMbwpzeiyiRu))c^XH8I<4VYnII8d25zANtB0ZxqSnj=TgwEu=U#e`R zW+#`i_(ev3U;dr)mE#)Jnd%y4>f>jnq6;wq8+3DA88t{_;u^#kG2B z2{4uP4;H!>d%AzTlQ?i*rStDOXr49Q_%QoDfHazTp}{f|b2$p%4|*c91p zIQa|{^#a%%uF62MSX)}DMSCeghd6-KcYmBRAIy|peX}(xJ4;;K81MPDf^&;oc9x{J zBOd>&Bbzl7BQ@>lviUt`C2vFIW zjvFR7`Sj;k>?kW5tqIWCplY%Vhrg_Ur~X_E7QWibbKDq`TR<#y{&$Wg|UK!gl{9 zN0xHuU8q~oj#2Vy&JLKxXAGux@m=oS#5w=)oAGkCB+04*wbSp4?*`Awhr4sUwFpkz zBHZ9RD8rUHgkXZ}_n>z@=h(vuIpbQfXMVwM^*hAFd^uI%*h{}q{+V;`Vb`2;wrPpA z0=4V+av6VavA2E3dD&Qf0^~CGZc%MgcX*RY9w~upXLdBNmvW65SndU+p)`TE5rda@ z8c>Nq7CE(3I~-7lbU6WdeOv+%_Efvu*>h^eIB4J(f!2G%;>-@>4bzMXM`*uEa2QCD)YJI;9*|kg#)hcfhYBpM!W_`f5?A|Ou^s? z5Cqjsvi;Jqj|{CPW!>iB;n23uEc$8R0h{=wBGh79s^QHpv`hC(&V)2@F&|MVIjruX z)tnK_*|3|eot2}%KY^=a>MP$IwyL{7d9UJsXJ{{D&Vj#II|U8UqMEK!A!+#`Xro_5 z>CQfCgkOYSUQ};=nWA4&I+fX=k79^fgpaGYSj(d#PF`AX=budA7(_gnm=f!lPTbee z*3Bh{ZJCs;B`l9^HJ$7ttoY3WH$}rSV=7}M-^21C`NyGI5p}Ei-k2AMp<3gMY&AlmQR|fI;ClwTL z&Tq@+l!FIs%5C|HBUzm6Z87{%Z(WRY7aOeOV!Une@LRfaydCUeEGZ?*Aw{+VpECYT zO|AZupSC4hbAm3N?eJizlrFFT3IjuP7n0U%%$llw_|eNe|}O@$P;m68~+6h!yZ6V5Db{ zzGJLPcO*vX5bJQ2$?_do;6#ov90p(ccJW==c3B-BS;E@_zx(?n`)m90#icSu56H8| zXYnVjS!eJp&;N9>x?;aqYkk?hyGNn0{dtnM(PR3SN}Sn5hWfXwSLuZri-XQ;1tDK? z{Wta*TEA^~%;(lqTD9(?vzkzp!@TP6w0^xjX$##=Qr<2_7X-y=b*TO-p0M%{FkP;Q z1Mx19^zsdX?WVSSb!hW^x5V`Ji1^R`fIb^Yb#DBo>s4K`k$XL*|Kc{QeI@c`;P z*z1vRESz>nn}!K}+4gG*n7fw2mT5p#&3nVoIueSe1F3^^tV>4Hs-b+==b7dj_ZL)93~g zSY5a9jK@E|LEDYTAzt=?Vx9;u;t-xR9%^cN(9cX)Xv3)Xce-u9C1ide80jfcAt``0 zDT+8QkAuJHm1vpc+EdiBZ?aP2SJROQJ#2YZa?Fh!f3d+3>gQoGkCUq7zM(qAFv>2Qn<|K^C#YOtkz>|# zf|6RRovcgv!~-2syzX_+JPnnDH3Tk)!MaIdTBhVGqlT{(Sm7 zrIuw~nD`L6oBZcD!K)5OY0U{gBmBkRB)2j$W=V7#%DZ(F7!Wwv8eRU#Px~VL-~A=@Ff z622j1QEmMn$iYLh*bEX}lel$H_lDLpT0+xN%^Wxu>o&01lsPe-m%WP>?Y zD|!3v3%FbaDw6T-gW7;Ij5-4&sxL7%b#q2iUqaQbb{5pGgtKC_etvDoJ^xHtd@iMb z$=I6f|24%wWc`+XDQ+p82`fSKHAt$rqo=~WPGsSE9`lg@KG8pFmh1|*b@<(V?9#$@ zo7g>g1>borV3T(KSmNtr_m}EUpEq`GA_|hF?1idA%uFA>ghOo6a`QfK9TRZ~G~`i2 zjZ^ihqZdJy!dYG?$`aHKDWt=!n~nV;jtS>9Gv;+wrRd{&{-VxK{0E}uwxbj{^k%xj zM!oNc*!^xqdMM&ZJAP{2Y{>qJ!VTkH z(TxZFV;n3nHSX!tZtg)r;Jdq>``vNgHMA@W&Q>ZS^2aP_^@JiwsYkl%OuB3p&qcb{ zjT+HI5at4=Gl0h%6qtPWG#+u7&^C+G-$=DWt&+PwZK+QY$vYZ^5u7M^kY>zaPXr`3 zr`x<^eX+j*jOmlVObkxi*+W)R~oFR|NCb@H!* zUAGavwgqX+#d2`9g~9n??7rp=-FRYxVD!c}M;iJ;mUHXW-QXri}z-2F`zBMRQ zjcF=+C#pfIH@{C+kXb{R-OjDqyKz54@_u+LXxo+S$DQ|`J^?7-$y35hpv zsJh)h3g*g|wgpXnX52o1ojF=Eg(4M`dQMp%GG6HENB(K6j5l3X{MK*F1y_*xuFN~B zetht{k?MBUHXv*8+V-S~0~?V+b#7zakw#Ee^S-?DEs?-HE1xu075I1B+X&4sshK3oZ|CVdxABjFKeKv8-EYh zHN3K>u2uRxbwBZ=4e^ikfq<)ytk@ID3$!)W@e}{*>rjtadYJc(f^!^4}$ zLCs0efJ~#C&FWKDBm4l2YwzL#nu=7*Dve&VqX#KUYy+F33bE0TIxFOWmp5a z^5WGRM4?R<*YTc^%S9qaWSw431UX=t%l$vgd0I`jfkkjt4~lsxdWQz>Ej1!0wx7nSe60Zc!9TNycS83Gd31+uaON+LOy%J?))b?HFeTXY(@Selk9(+enX84-D@KtV+`ATW zsv9vXkb@fVEk5BIE+Nle1vQ{r;GgM{#^!%=57f*Lq2j`Z0pTJa69 zUseC(Mm<>3LvuJ;3ll0-v4}ydXh(7&wK&2zyhobt2ofT%zCx{dM0TLDphYs=M0P;2 zP)Dm!4iciQE=HOK26f#(oq0TdxB|zns``0BN=+NQkVu z7xD1Fa$n$wAm68_&=k$$`!y8^!P(*#X&t8>M0z`5^jbShnc$ zod~+rqBK1B>xN{6frIoiU3#m%rlc~;ZYB@E$vN5&A?|)phiH8?y!j59aXOdv&#Ib3 z+O56WSX@=j^HoWk!{ZYD@$#W_EU#&2!nsPE^JSnK)g?|l$nJ=xepaK*=&y#HXx!py zF`ux}1XIBj_U|s^^}8&W zHJFO@1oc}&-HK)e<&5Rr3tK-H)yK}N9@rOnh)BL!k&7sb@p#{omXq?Yz@TW4r@l;UNKV(L&z7;0}MV5|x$Lvh^-F2eoL)Mp}C4W$OLw(~` z2}bIobpwL2sfb6f4pD-o%Crx$SM%pq{}@!n&TMR~9a%&c(@Y|rbjG!q#Ro-dE^??|+nk6W4s|!UbaqSo> zQSlv0ZU_0A`YYdFBF6m0pL@93S~x-zd$GbszNpz!G9|nddzwOAu81!FAYB?UNZ%Hr&{5aMP z6C54eE%81$KipH1`KARtBmI6SSdv^EgOO?#v~6gSfx$H$Y=covL&(LdP4WB9zU5G{ zk17v-{g&JTPOueGy%Wc_aWOc-MoiF&WmMj)8o{6C)HIThpZd9evKA?`X(Bn!QRt-O zch?soX{M90zvCZ$2!T>(6{&F}LX6U_k@3go@`D3<*k?`1w?#4ml=0@+Th5qg}TVY zgVN3n&$5(TJ9U{-ET3Tl+$|`=vJkML$ZKSr7nyQoMM{}xX zB~R+)aDo0=ZubUx^2YPKIx;i+^)&+=ed^~nl^UZ*tfe!a<_-j}K#$KBcIvuNUcHXC&A zdleO5rs=b$=;Vq2NPoB68T1tAe~}A(w%hg_JF$6}E8u53wu6`UdkDWOHHrG^#M!M^ zNQ%_+&C_SHOLm+$wT%qr4b07zmGI04{B5Hpo%{yW6$pOeui4mo1eFSBrDc6LmBzIZ z)5r1#&QDEV1*o(CJP?ba8ioaV$&(jtLg8k$SH%XEkGpLR(x&zOlRLA>9z$XPl}u2l zVbY$a15UCBTb*G9P&uM5tAZ&HZe=KWV8~|A;b2EQfKs_>1ocEYuphPNo8_9F6U&IH z*RU+8xOEI^2(mH3T@XCb748)a9c>sB^ylFl*ZS)xmvMe0bmZO#W?}Z9v%_nVyZ$QG z0o2c7rNI+HmeyTB{Wk13sY7-LV@$buO;0+luxNNT4LW$QB|%8Kh7(DljeqbOVqvPr zU8xGs_GCvlHqi1uP}#R>&&Du5E>xavWgBQoEjFB!Bl}m3K8vpv{N-Z|nShDNWc%#> z#|Te>qeiD-oMp{{%B6f1akX5QyQi!9xYt_To6`0H%<->p$1_FPzlz+-pTE7%gtlnO zgYX}Dp;Y?JAW1ZsS14SP0U{0ceFdUL0%HOZmH;938)<%wu%lu4u)R?5$J$RM(EuukUt7c3LR`71h0}o%rWd!13W1~{tZEC3BG9SUEQK^&(LUzPw7<{03)c961eI9#&~3ZHyN2V0eWg&$bU?;l?E zf~9e1PU^H#rKKTzb_HGm1UMH-rLDPHzPIdx6IB@MXXVQ80z@WBJB@XB4YJ5@X7W=4 zJnduFxa%jYq*e~*g1l~o3RePRcH!nEV*lp8Yuq)!quIWF{+9SNjZK*!TKf{(`AcYr zfk0h|9$=dS3APvnZ)7M#h2o%rX@R-`C=N3C4+94Z$P)!@3e+V8%)E%ipn$;)98{oR zLGV?EGG1sTI`~mWHxM9%1Y!<>2d5C*2tm&TptY2sh2H?r(nu)PwK*W=rFZaAz@b0{ z03bvIia`Q10TFBfAq-FqD%hTZgBGNY1SSC@-T;IsLEAy__ka{kSaA>>1)zroiTET(+4TYmKK=`1>C@?2fuqqJY z2JjSz8l%JhA%Pua5MqD^I?yL1@O2P8hGE|f(0~p4gaI~@LFfZKUl4-?lEi{}>8m6! zF{toC%WMI9?ReldeIoGYGcJrp7aROV2Jvze;eP{*5#afPG4%fc78Aoh7~qKml0=5( zp#4u^aY20v{u@{nK*T%1B|p>`AJlHf4i>_LNnn7VFu+2;0hgvPG2FhypvU~5xWWJ* z2mLp$kfC<~kSQ8CHv~Q|gV#DC$7W+my-VjSHbXHAfk$4pAc|qR|HzI z26)y1b-6>~i$&kG*OqjX;ZIhS`}V( z7 zHdU&wp`g6+>Y|_$_3;C4v9u%Oh!d`jlgX=cr-Kp5VoS9`Lw7z(FlfUrUr@nKiGD!O)|a2^b>DL$+vg|Q6$0<`lN zpqacdB_50*2p-C?j|COOfyD;HHyQSc0G`C4Y!vVdEhRDR<3W8fK$4iSmv4K#LGU_; zeR;qoG1Qk5)Q$o(LkCxd!bN}xlN92a6^611pzaHs4)TM9Dqq7Co+v;uWyG*mRPb>q z9G79A3E)Wt^2dWoA%k;+;k-ZuGvJc!KTvFn3^o8Ft{L_*0iO7vM=V$X3b-=}ZVp5^ zGwgcr(2!%ocQD{;$S)OvN|rQs{` z_=o%r^{u7Z?NsQCl8BXmn(c=|_Id5(>a}x4H22(szsz!Rj_^MQw=-7Oi@=1g`s*iG zlm9h{6wqG%tzTLViCr`ah6^*4eJTQ73Pbm;05fw89F2J3%5o_D;W-2z!okP^0C}Q; zfeaj^ps--L3xEt6CKd{JVki@b?jyr|gW<0LGt{6{(}PJUm~&t%&akRj4?oDC}E2)9254^^YVJK2rPgQF(?KFYz5TifKp+?ret(6 zpu=cjBL>K8XeJ))Oa?&;&_jaZ0CkC=nK-cGU^pcMgaw+34zmq~H#0z_pvGG4;8P4R zHU{_`1{n1>U?x8jnt5jq5UN!9pUj8@Xdniy5c~(M#DNG?1_(FQ7!xKO1pfj=umBn; zL7$MpCP2g^1B4p7NC5K+g1?NV8h}dxbP*SJrKh5s2-K|w>P7+)dHf)BJtFY*3rX6( zkmQToe=#E}cmRmN23%r6eepoq7~r^2_zP7|Gwd7v=a7pG%0>tC{^yYUf(IO^FBzyE z17?N^-T@+(81}POzEL>>g!&jDa3G?ZAB2B>E2u!MY4yPABR+gy*g4yX9$f!5yh=6k9iNC)yga_Qly~<9fBIKJdJ- z@ZvYUZeG>YOkyX!LnqRmG}0q|$WvTt)uTXUU7&{Ck@*DMeVX9xlQfmxbGX}4ntjWo zNv1=mEbftk{kKOd?xts@gCptSvt0YSNAE?*bLiE=bD`B$r_8OV?-bCZ-!gxPR$uJ+ zq`;e2xMkgCQcqFnZVa3q;Ek}@I(eH`z~U|r;fpKqI&Hd0?>yb=9rro2Oqdc9qEs9$ z#8X#qgbACK``c;966sw$4jL_9Gad7sJ}R-77h>|(!p0Gfvk6p#uZRDxYxsYVrLP(L^7wbUV;-uO6;)=R2x{uc#2rtVzQ-!L<;US zM1pgZ-%`cIrjKHI>boangvETP$Q7+^*5Z;`d^_pc)z1Q?wTF2gAC)d+9`!;VzE5=) z=vGynw-Iga=wqMp$#jUsAER#FBi}yBND&MYBAuZI`w_=$Vw{BrKfGm-Mj4DlJ1Yo! z_{boQF<63f>nbCKKUji#dnzM^JE&PfdOL)1_73B$*(P4I61Ik(eoF}8Ja0vcrC~_L z?K=xHLGmybDPzsdO(2PGKK z!?;M@%HpTPzO&B?sVWI6mBu~c4u3{FK4{>9SY+t`3JwcfH&-qIqU_52XE6jGi_Z4m zuBoTdQ18}m(xC;@dW@bjpmb^2dLDl88bD?dC#YSFm8R;Lzkui<+OZzFKlXS|hg%i>I?gl#o07JV z+iu2++Hah6YIYz4i0j!5nqOqMDPjBJ5+QbokzFnguiz9}_oG zZz>4?R7n-z#*TkX*u*vdcau0P+5u~bt+KD%46I){#iw=gQ;ncqo5UWte$iDS>V;fW z>9?9>a#whzy)>A1BgMM_UL%Mp#91lS{@_%nsrnE0MWC?=MOB|$*WW(z&TU+(uyeUC zZnea}y*cb-6KQQjJhH48@n#Fwg8CqxY(LI|`5>|^3s#2VgOKB=j(k}H3b(@ef-oA+ zEm6klFdAO#;&_s)6RG3sRP*s_lB?A*T-9SYmA zHcl;MtQ;K<|8u>v$jX*fr?ZIqgFO3+Ze7Fv$6w^X=@MPoxpeF9uI}Eq;d0h#fj2!& zn{(W+8_b*HRUZGHciwwO{divYb{U&83WYHv(g!Kk_3iMQv)fBE1yUiR_h3}JK*(Nn zf!7!a$D5#VZ0ybcfm-n!JDeC7g8a#`Kgs(v@_S=7$(w3LemkO>$0K=PvNP%zGUTtt zStq^hglXM0ij&4@e1|hs?Xq=t@v(Mf)>hJPm#^7IAx%reo5e&LMzNEq}) zoA(Ty=p?x~MtLL*ev-@! zAn6}hwjL6#uL4?M?eeh3UsPQ}UrP|m`w&H*@RR-#V(a;w`Oh!OR(uUcHs);~agK82 z79jKGJN;z9jyzlUz(vJ5iP%f-*fDYG2x31V{kzV>@$YH7k>?I~W1lku+yWf5zvkl0 z-z;io-1Ds`eOIii14cdLRc?6(g`%6n#~KW4&2DzFmn1Ufdh zLh%K*>AGKEW05y2IwyQVi&|zf-1@&5F8<5@|GN8MovQ~WL*)Mvak<4={NL;O-&}H8 z05MfNifMo2erTAN39RgAwLg9^RKF`n(_JtfRAT(HC(2|Z-zuxRZzFuMi&N**J8{rE z!5Pr>RkOfvVjyZ@;H)MbECnx%Jpb})oAB+h!`tCp%jC{3w!pBLCzpbUP?YRBqvCS9 z-(E9z)28_ITn5y_<1?w1E)7=Y?`ao!46v3qacu5Qi4Lg^D7=2nq&)8J_ka5FZ~18d zmqRnm$J9X3c{}nC@W*Of6lbcp_pehW1Bo~<{J;M1dvCSoK1$6BrIxg4-@cg>&Dl}e ztb0%C7t5K%>taJj&29d%&CavzG-pQEzS5~)0%%+!y=~)Obh((NTQ$M3=QN}H+4R*J z#$|X=NoKTHk>)Wi*Q$W)%YVHYTDhkRe^@c3FG1pHX4k83PB9|SStgs3Qf&^5WT|Rj zO_PT9hZ&nV)5@C9*eCQrj6X^d(?T&H-cOfSISBu1{yU*H_nvAyQ_;#4w{*gjnyfi> zN@9-Rc*|JB`=|aCWRA9e)w5);oyeOy$F2Dfdzy-g;6#*~#j4KOO3Ghk%M6iyY1?7#x0l9H;QSTo_r#;TFE@tb37^uG_!aVfJm`zc6(GUWftO=|F38LT}|z z=h_id4c``*{v z5)Qa$`!5L`c6@Wun|aa$9Nx|Ubbwec3kfAPMppZpw!EYSv&|w`YwD7{yk^S@3oENa zt*@nGDO%hTsQ3Y}Y*-IZ;rRPZSpKZoQwB+h`U<=v5C5t3Fd{NEOGagL{Hz(1$a>b7 zXo>J7Qn=-dJ|lUxz4LaM*CN@xhmE(Jtuq{KW}8u)Wb>Ox*fe#4tC=8+b?zV3h zypvnc0L>JHX0uv% zRUlc28S}P92e*K}Tgltr5`oR+uY_BGs;z0Z zIH%3??fjcz&cAZpp({`Si&<|{(RCoTXpN!zi!q2FgV?3PMztgndv^==Xqp19t3HVUYGFSe$1pIEvmdBZ!;2=B0MPn zrq0V}cpyvlM}MuqSKb0SENTxiH$Z)?oReyo7aPpSlMpN!mNmIqBFlftCclu6m6d8| z&nl4Qs}WEdM<;=*Saj;g;d<#W>^cb~qs8CS!PDExw!$A(MNEI`l{k-NN(EGLKYz$o z>+9c+75>dE=c;fb36a@r&UpG6Q+<#`>jZ=B3I(kP3eRt`t0jb6yq~DFZ$uE!Dd>Rl z)tbk9L6)$eXAEbkYPmj0vp#6OK6qFkR%QgJID|Rdj|mK7;Fk=0xSW6Fvg-9E6g-#j zl=P2jow!{@d;`5s`dKXSK-Fycm7*}2x6t%(dM9rch)^51aI zL)|pPzX6e>OZqK&`q3G!;Or)02RPlMv<=#}>>3X`yO=IqpK<+M0+)}bqMPgu7*G3` zj4ndH>)N^54!rudErbmSPqLT9E}X6lhY^3LHq)OSd@k91DVnYkj~6%425Z|vja|vGIa7yyzPnFJFF+A9@;HiXfv{$x7PQ}+?t|yW zPmvnBalMi)ThHt^@zx-Xoisv(57u3A!;<5U>P~q)I_sr2>Ca+ax^JV`^UV~^pCGj^ z)0elO%EBweUzQJe-_*rbq=_cEHoBPCL4~=b#WoS?a(MU@v+85Jq`&p2{!u134gNI_ z)GPQ1w3g8L#PaTrI=KAT-%I%H{OW=Iulwb>@tvz-Yr)KYEMapyyRzd$Ip608M8{!8 z1Ygj5CmPL;KmueZlyajFbDTR;0sX7eq&rfP?<=*=nL^ph4ZO}Nq2lJYcJorMeAjk| z+lu~pWmg$XybrJK8E`LnV^rqj{>i3tVyw}-?na3iXmy=NFz=hR6QR4525?gt<3 zou$xjn4f&p^wj+!?mgl6%fP))^mO}nQT)~CspG@1^XMzG*Tb+lZ<~nCC1CJ#D~~n( zgRQikse$swQA_pJe0BCO1DuPY@%Gkk1L2J={qMg;=Z-VO*fQwG)XEvfeI<{!Hk8(m z=VtN<$MyAG`S|Zd_6W-VaH}iHm7vc%4*I4q)NX&I@J&=!uhx=Z77eFfG?LhrXB1Ga z<`X`yD|CiSbCjH-MQGc|SfYJE;Zt*L>QvTNvsqLj+VfNO6wjpDOs{HBQ+}K`^<0?( zea0*7*iW3ZPH+rwDh*aNo;%|=I8D`ceQRx0I+}9VEPSTM?2wFFuLUiq=sa6Jn>ThI zSvDD`UlQgvq9=2&MLPc64%vP9&2lzvZ3r$~be);Die_Bb&uyHf@@-Q6w#$3VxaPLt z+jnghKfV~n5LmJgwAFXWgVAY7&Uq06y|;>L1U(v~X^6 z30nA|H06F5K$^A+nzZt+K$z{?Ea}VRTh!3_-I^|HR-`>-u~;)K6~Cs+4sj4YcEjNA zJV+0~>AmHGOL@8lqpV8vbNlLrr_kjM+^W?xecL zT>k_45C7{@BezOT_{Wd^ivJgW1K-Z0z)^$p(e!TmWsdu0HT#OK`sCoUsJ zEiEM?L>&4fC?S+QWqvRb9~oL&sz6%^9YndoXh;O57@C%WI=Xz_r;fTjvd2gh{cG-O z+Wv(R3%RfNHa>pC61Z(?nFn~Eo~@b76TGAT@zlyrHea^B>uMpdtuDP_7hpc8-Mjb@ z9VQ^_XU=Bh%l0YYXTDOBD!?{b`8UBuHhO?zl$G$0rEOLt?d=Rqd3=nF`3ke z^A|pgKfv9X33Nwp0iX=9uIMZ8EbgwZw4BI^UId27Rwj~X^m-y=Vug-C8N&!`E|Dy z&9-d~;95F>hCCs$avyCY=%lAxj(%9thD4yiGVIV>CO1DDr~s?2oP~w4zk|28v4zLW z`11aFg=lrc1Py8eX$;r95gF9baO84Bg=pgv>{6p-oXp&0n+PKa1Dm~^gGCU=Lqjgz z=6F0WH{18>UyM;xDeP1Ma#Je_ZwDX-CGq7(h~#)oasuObdL~j=RxsA$Lz639L@`-} zD$KfM$tlttA?ckp^*2aE2Tnx@+tNs;31}Q^G)|6yQc*3RS=H556%Khs*Htx< zht5dNHb+qKr+}@L0SS;GIU-jREpi$=H92!OOvTfi@D~Zx?U3`Cs9_)yhtqwmICu5* z^1ylKxhO2psYW~YNWZp%?6F7(dP8hA$@w8%lWTQ7ctg%rw=cea7DgH*v)LT1Ch>=g zk#$98rbavJ7*J3UO4}gFH!=viLN6>@#G}cz!H;8ylah|3E#FB^Vinu$L5CcZ%7vB3 zpWt9z)_cEx>xyN32%-FY(M1Etc)yZb#@Vw4KEc>xV^g@jMm z!Z0(J^T=w!E3%ctx^!fH8)*c{W5UqxFHxyETs9fxD|a568ok_pM1tu^WC9%a z?FCy<^N1=>L3|f_~UJNCiuac(z=BLVG4IKD@j)Qca|+c(;f2 zL_sD2Np4krYyd{cv=L#3fu!FNhS|i~9i=9Br-+1&1;O>^x@iQg;euVY$UODVh~)8i ztJM#FcsW8XV_jn6?;;cdys7XUlIKgOC>V zasru2FV%(I(&nu(lu<`&2Bz#F`?&ay_HGLu8V~VmJ=V914h@qvaSd(Oxv@OqoSbUV zigqh0Q+AzhErYm{G@=eNluz(?Vhw-)zW_!B!|v0H~|h3x`wi;`VUz2ofJId)03 z3#FF&YAXwKfc6AwPjcFp=V@yCfj%!=jWXfcT`_|u_{C3wDH(n}ltzLu``B5Wq5AEh z_`33C%`i}^Ty8Fk?wp((x&s0C6R?-`mFWQwP5gtsXGK&udyB#c7z?M>0yADzic3X? zngje|r>~Pabg;`g>FB8jj=(%%xJzc-II-YY;X~s^QX{ScXU5OQMMHhnC|oL0x5FGm z6@7NJhJsItTmrH1M_F#SzS?ILz00Mk1zf382OPoN5PJX4P8SkR*FXKw&^nU~dioxM z3(kUy*4QI(U`Zp*SIdXp&KBKLnH{4r({nE*IHm}`sEWfGYM|Vu*184+JabDS@_*R< zd6tA&r1{!|W6}7wWXRoCn@2?_4hAT(dSb_VI~hLp52 z1ij^KN>kMyi^;Pd+Z9W7CqQo^p|Q@>l)@A9tH%vz)d4J?^2NhjlTY}P%ypHde-lgi zVa;M&P^Zh#$LuLGBx&Z_%pm$gE7J5vHpUN1T{upa9rdfSHA`y0Bbxu7U`#uL45_PV zM!+Rkomx`gI7nmL*JgyV zLQ|`@}39?vrWL|g&AU*J?!Cm#c znr08_!ISlic$z{^{Htx-qR4WNegM{g`5Boky-(3@N(0f@=lBX5@&PQNlsnP}nCx}j1yT6`hEU1@=^bQt zM_v+<`ECM{r7`Ip4E9?d5|w#hWRc`Eaw6EQ_?$gd_AwEwq?{u(;l~QJt>BX;%?FC!wps5sinc?nP|UZ3NZ`BCKO6iiEXaIcv7{5mxo{oz?JKiNK?FW zh@(A4B!!o$QlKe-_mxlTdExY#nGsEQb3A-VI~$OteLB2h>f zVnaFe;>hOzsY${X%2Byth-nvyQQzYWv;T(K23IzKR_2%SjU~pt47Czw7yLFYD2y!c zCgLf~&hsr8P)C;Xl1L!S!+l%Bf+OuiGl5u${m+{y;;iFP!r*fD|FkG0Cv)djk!KLT zwKQQ0ZK$45#U4eXln&s)7euI@FvYOKz8zpf5liPKQ9x$+&ow3tv2;EX17rp`5*eW= zCM+?!oCM;?TG;O@Lx#v&XAvUdX5Mex{yoH<129p+R`S#+GM^U0ZZT*{;0yNu-NPot z0)c`QrkLk{#@FBq5fskoB5%H*W|SkQ*ef@QII{hJ4mo0pz48|15&y>dZk|3vWP!cV zuV5?BZ*#tN#J^8N;UE^ikP8K=?<2q$K&ar6#p3^KEg}rDh#Y1mWC6nOtA5f)0^J6Q zg+rSLDKja)(>SwumOfM81arKQoy^m)-ekt!X=S+?6?uJER(cCF0V^C!4d7SX?j|Qc z_4H?HnOYy_K0OdUAhrCQ*(> zcj#s{bv+PdNhO@7Ykl*5V|_m=E00Ax_C#?85Pz!wdK@q+=>KySA+-22(f98w_}}`w zsy^FtM$N`&jYl!yQE)o1wCoj7>2(cH$Z$RMnLn2@b-`Xv)> zUQh`gZt(=`Ki1mpKV14_ljD@7QRU((ni-lTUIlr{pcLhrl}65%Rsv(1D%J(?9g>^H zv@3U{I>xyI$X3y5n!7UPslSzimw!EbptuZ=ZBFJ_|8t_U4~3M%Lp$>)bg(Nx;r=KW zX%mXyD-ld*cUNx9l~^prCQDc=;I3j6TY4N2Q?6#2%m~mK@Q^Qn#cn)V}>E8+GtsPZh zNp)TNIRQar4_Uvsjfc$EBU2gOVrd_kq~xja`J5ueR4_K=h8TIwBYab z{*nikyim{{4*h7e%)ig1MiVM|)UqTPvB}grlCN`$!S)<>akqipn78N{Kz?SFa*R-0 z?Kk+xLLG>oi?Y5HlvA9^cInLhqY+~<+kmv{xlxYe0{f6t)8yDiqCiV?=d6=8@2GJ1 zz*WxQoI3)7QEfbj2VQ5I>cR0Mx6oX~60!!Sh6GE(6KWPYgG==ykW8lINZBG7H$?yG z4LR<3By7KF12t9cbEc|Qf?Daw@p%IGHpb<;QK07P;7%oG+Ht;i>_OHu7L`$CPT+|; zH4@75 zG}&7dv^6BwqTCS!}WL@Uh5Wj`sabkqg9G znpT(RJLd+cBv~&pYKa({OoM|ux5W_=JS|i{+P_;iOLTNo3qjrbbEWz>?y~2{pR;t# z8S11n{5Kw8v)*ew262xHb;VPFGCF3)RX9u&HD8h%<%GPuD~ej@5H3 z^yiwi+!i;_3A)$#8mM7!)S2^VEAZ@y7TDvOZgfoa*(z!?>9cB$CYJSY=_Ds|+tMqx zH^1{@TMmzFKq|P;5lK>Vy&IXE%?e(N3Z{{@=cGN2DT|SmasycNnQ5zndOuHki>We5i?8mB&+a92>O)lD0P#KYJn>-vN=g6%9EVW{}_Ln9uVjDYcHJoQCW!hqSdU3Sh84)doKnrDM zo#n;-OLptV1_OXW&vFyE4Wk(?T4>9F+^b>iNxEEm75JGjok5jOaqN3o!mNv-$=YdX zEfS)zWDYDctDp`Jt1Z^B6a~?^beT9lxkJy!*3RR4kMbqt4k;cNoMMgH@&*01i9&Ec zpXO$#>SY}D9Gdpgk?h}#Ah{>Ma;sy`+UPV)g%zi3tKm4im5dgG>-l7)$9d;|Lg7(} zyPGq|P$bN&W2R)TWPSm@7Rz6-B%UuY-S0<~M`zp1;h17!DH|Js-3qp*mI7LiDdxyj ztX~kjBxB?RY=gcbPPwI&6&EWh%pK$f%sH~`2tAT+E38|7i=J>Xla*-RJlciGBVp9j zZ(7nAZ?rLCDp1jIAtKyKI7_}Z%+a8xM6zg}@B@6)`V;*uSbuG5@lBjqX4;Y)26^z= z>vrqd3z8~XFfwq4c|esdRqJD&N*C5L6}l&4576YU1xq~&D{{?jsIq^T{w5w!!y_O6 z9jJb(YAWzU#uUNK3aw$H7fmjfA_H5NnI+B0gnnRHD>$kF9L>~EF7}xPgTYU3?wTy` zvKH>0QZtvtE&4Hh)O`&Mr65=`RH)^=Du=|qMC}1C^+7~!+pp;9?M%ziI__tPB)OsW z1Sx%zR+tyGjuakwZLQ)AmD9LfYJSz~b}M1if%8oC)m(A?RP9xt1!db1pRsxCFRR;|1P4sPCLk>ZC@|73L_bkWHpX zE1}Qrc95f6<5DwvKxe}UXG@ik$kg^!RT1fFR2KA0Z+G-m0*C3@WbY*B;q^=i1>-U6 zJG&Onlov-N_Bq;7Pfz>_>GM`Bg|B!FGR}OGj_AXBh;Mun z(>0E{S0ogkOT?91yXk9t2Sco!8}uG*w~YYYs}lyMb(_}YK45VmREgT$QPXsp8k3q- z8@lgVFg_o8aGgPgUhRG80z-p4$G0xHUS<+QF`iB{rNs^8Q#TADR zs(WXqB9FKlBfLDw7Wj4(sNYaRg>xeR6iC48;m+>oR%Wb}b61@sXULepPg$tVO~c6EU>qrPzgbZSN|AtT_Vpy!2WrBd zo-se^xHvk;iRPL&O@2U9!k221vBmcqtxUy&SN748-ITKgA8Pej!A8lP=$4%21_{~p zVmeBoPDi49^EJmUCKV=KGaS?CgsDU=>}pJ^Pa)0fb6P`f+qqs2KNU_( zq4~L@&$sF{X^V-qVFoD!%sJDG*>3nyG-n|6Y;h45%51dgSKY))nfHyf0* z1>(Up{%|HwB%3R;CmlG zExSV33(*#Ij9_?XC)*>l)eAe-nB*PiL*3CK+q8u??SeENBp)Rmy$L;21SV1FKlV#H@*@ zV?YBZ>mEY99!Ub~DD#Rj1FyG1UTY^2m2H}sS+Zj+&s>{6F3F1?8q_$MesZWElNlV% z27woE0U$lyWtx33Tv{IC<{|D~M;{Ad|E55tqhmZ)*`*tQb)FpozWz8hfz1~jud>3y zn9-9BaFQYkBLe$pPEG_Cp_h}vRKJY;-1nY=&XV^~QFx;X*d|gKKB3Cat&4Z-9Vc%1 zrpqC+GFi?TSa-w8;$y{gCTc=~I_ZvsCxP3-(EH9)hn|ilP?!iYy{j;V@xhi z!^ln(UY-lxQ8fC5Z~A3&Bgwj3U0hw>Tv}-c{Ao2H{#VBBi365;D|uRg0?K9u!r15C z;OPl0NW(bK{D#&DuXj)RFMa19h%V?4WL2!7i8$GSF)fvz`K@?*fv=<64LodlBa!9i zMZ=4#ww+QSra;bsnaV$q6Nl+a1iADqwHf+M2ZNTyjGf%l!jvI_xvhu|(xe&8M7!1r zvnF{+3l+wkfb=^<$xI>!N;X^ti!BnnOdn=E7sDo!*Hjl9p0d*B&d~I_-gzo^3`MK( z#>%6aVRl3)?hJquOQ4BN*-D6&@>{BAH2> z${Zb^`({LHATqD3riJw@hh$(c<-iC;DSaZwvHHrAEM|t}iabA6R^TiBXXHo2NnYvN z=hAfUD<|3hWnH^jCO3DrCxfto>>j>G+B8gJSH`3jcdE78NuFbG5`FE{@!L-~Gsv-f z-m!Z~gObA_j^`xS-UkdV?^8$27Lz`Jkl(aaA&&Ha@BJ{n&!ZmIEdN^6C4r^H!HiTe z4vQ;t208b04F->hmV&(9?V`k^c}M?bQ5u!P#foyd8rWin#!LxI&F@d>$M$K}c<#q# zvRVG;NH#@*ga2D>isNS4bZWde`7wemq;&tz+I-$q&8e>k4AMX|!#V*@<7b!AItNwA zglZ==R#(2@xNcdCclt(8duByg0@sE!PdS`}0C5JzBael1+UU)=vRZLr1JLL#2R+-`aJk9%OjH2R7Udg{9Xwcjw21`LLrrY;i!{{I0C)`vXb$ssM z(9F3Fs%2!ghY0*=Z-Hj;Y2*H+&zn#nV(zSe_J`|ocnMlGIlb>8Js2clSNpHm=N%1E zt)Q*xmH)*KTDIt!-ff{t24U%3v`IoY-8*My$s=8Uq~)~#GF z*zfl5!Uc26p=t6Ic&Ov#Az2)&5zm6T{^%BA)cR)*vOS zgcLSSfviYds62%orLilFuGG59payDdT76uoJ%t@rfuu-Xs4{A6dVNSJ0mT*hJ_M>q zT768YKE)NKadYT4MQkFo#vmc;OGsf8hW(M6${jpU}P*l>fIr+Wnc6{AkgVdgPb{BM~89SM=Tb@bQ>w zs4XNRnLdS=TZhHr!gW^2SZS>bKd0-=h^eb42BB`d&E5JU2T^>D9^C!f7k+R3sXOdronK=wwW(fLdpcobziMso)+btU}pt zOuKEV2+{Oj4;$ibu?W%heeN=jen*U%t@-o6xC?}ip|1^jU7hkqj(ydNdUek~a}z?f zBOW^EU()a+x(I}fsjazs;a_=!#9P;<-*FE=!xAp(*X=u(Un1}$y7q*P?bmwVW$b$+ z#gpj~?Ku};it<}@{yK0@xisas=nxz+ZM|gUKWP^nJG5F$_nLP1iyPx#YxA1+^ot*3 zsZI96zkG*@Kh*2nbMC(6;>T?N>OTZuqv2O@`x`eVUCZW`b43Y0fX-C_4ZAHS&b%T| z5AEwrgzfebDWaoivMhJ^kUXZVS6Q~+=)Ss1!5mKjdO z<+d451m2bzMFifq8AgO>*8~T?gG=%XzJo{dB~SO5yu*=GO!n6Bz6MuE*pR)03tq(L z_K^qTt$Q*b&(=QWCHK}jB_4P8ocztnoj=#c^gftFW7v?sLu1^~wu1{(gwK{4RfNy> zkw4;V#{?sy?Y0?G#K*Ro;SOQrKjR0bfsms;|A#+>E?UHjm*Y*K0AWc3)bT3bhfblL z#Y9i=hu&ZKDC5cmZ(77-?nj|Qy~~Mp5D&S(K8X|Z+>WqOLc#6nAJyYXv zl{19sc}>tFRV8uZ$Wk@bHCNU*A^QsUhNb|Ca6AKd1ppLr{WYQ#T z@Ulu0WALibB;XQcG9`%fx-jQ0#`c8GY&$JOD1l9&zftULja|m~7rxJhqn;->Ww!rgz9Ksz1+WHlN zy8B3T_D-WsY30Dps3BLVsHZJy9j_bGYyL|q$vN-EnWmtpCp&UKe$Qlopgj3XQzrc5 zmZ$`vHGzLlLuGG60#;x%YS)!1^Lj)0#M>k34frum0sNRa211R?%rQ3pZpz*|+7NYk zy`sS5{}{(qWY{?0P<-(sBu4@el1A`DjjIA9Cg6aQ$%BZ9f2BhfjMhl*2{hmuq0 zhn`cIhnQ1lo@0Ot39t-3=G3|*@f2s|8lYi)3{bfD25K_ib?3Xic9%cBbQhER7-&Fx z8+>z(7^q7C3{)Qk>gdn}9KX>o9cd|mZ7HyGo0GnCe3KCEghG)pwg=M zFKRq~B3fMmBAQp9U$iYi(@EjEvB_khVhR?29&Me^FS=WRpz1Gx0(G8`pl0u*Z^7rm zo66hNBSs0Zu44NUA@0dnR@b|?$YAcZIp!4V_mXQ8CBVNJOyK8&F)+`%^%RSD_K}X^ z=~Kee%fIXx`18znF3+vu6kY%3EvEM6Q{M4Dr}UEF@(hz{{-Y=K=9Ts-A$`%ZJGS>g z{hZGrj__IM?9_nn?~ZLzAK>~ac5Q&(fXep3eptr~kFBl^=JFuUNT4T?e&W&utjB?K zdNak`C%eIU=cIamGkE5%)$Djj!>+fDL-)#lD9vZHab?Hj3bQVv=Fxit(-FOEcN2L1 z>R}YoO|ZeXqi}_B3vor@Xz8)M8RmCEV@cKReD%$i4!iSZL*`id`!}E3^#MTzrI+in z+ATK66rXVJ8H1XocgzZ|V^rs|ZfWg{Mun#rR{3UkdU?xE$%XN)%d`6J%0l5u>FyccIl@^_e8iV(=%rS*TZD3>20{?@YGvW z^Gdkj;r(+J(M!>4&Z}>A=jkio@9MAk$LvR$$E44wNt{WVg)*mXMEPhMP}xEDUwK+u zY`I5TgE9fVxUxPyhB8ZMwBdxNo! zjTmk$AFxwR$AgZxr!t8s!qmA`rYCJ9%VXJNI$uIZzc@Bf2xynPxTAa`6*^xX zGo@c#%;*agw`W)z3-tKWq~XB?fBk`?Zz71tviOslUN^Q&t}~)@-NEo%<6D2sHr8D? z4Ike@W3z?oG>_Qq=bAA~pX{T3$%;cDOKocvs`vhc>k}iJTL#QXLEh5wbrhS^abKxc6-8uuK>BbJyEXN6dljVKG4)2)=m>6zo#_e@M8QioyIk|dnKtl{yb z!12i)yfT}^J*DxuMSc&i4a4mwB043x1+f*=6%^w+Ct@$gK9Ms>J1&L~lVB>MN`szD zz9+ETAy7$oo*zAoU?q{rm!X_1jx9QWdWw*T{VId7(yEbGycoa~_rEPfI}>9E`kskW z?dQ^}fs`blqt7R#6E-8CV~af)hOKe&p^jiB-fjI>YJyuw)f{iG_dXmAZf(STfbSsN z7;0`8+Ey%kQlBI%^dcXy;cKLDo5@6p!{I}KX5hn#a%YMX1IS4bCFFR|X<+FI3-$2( zut{*5$-Y{mqy6?~)iejy2;;c5Fypuy3o&lmk`F{f5s6#4-N{V10=T3+Nh1uYd>PVK zohugiYz@zLuPXad;oR3XT4HQ&ZdZq_u0-VG2<|`B-3lM5#A2BN{g`LNOp}D!;;u>N zUShj7C3MOGHOr#m>Fi;;dzeGAllch096)6Nq%r_h833zT63u+dpL~i;$XqEDv1Ah| zQhzCmC1dPNkfI4WY(8!O}Vg0PQsbrHDwq1|svq#DwDas$G zlul)pPt%KL>jE*&c)ZtPm)~Thh&6>_wZnGYIbzAH3WB!+QSK$Qf_Lh3w%|1rTbvL& z;BH9qjLACiZpgBYur}Zo6MXi>8zBs+boWIY34SH{?8`QS^-}TeqjwM~ByVGryk-;< zvDxi&4Pp8haLMTYiK9FVVVQ=D6LeKF6GR>xddt}hN(;P+(&pI z#HYG79sT^_Pbs;_^gv=U6W_2q$7~8DHhAFa2=omCJkm|4?P{?U$}}t+4TsaoqO1VNjuZCi-re?IsXd<{eu(nMThv#Wu@pZnf@2dJF#!U zTyZGu2;R(Cn%97YSzNilOsQP$8}ziiUanyfb_Ap~TKm6_{M$-bznj8n zH|LvCoejGvDHii$)w z%lwC&F4oRK^nK*t+7t%QOdxGy`&4{Kt7C*}Q{3kXSVQjZTEq^5`mlQzho-UPhJKEV zW092*kclO>Kv+E3#)tK#P1F$}2Gn5ny}13cHJ+?qCr(rxcmPT1pni}+2Vg{ZLqgKP z5$kJ17p00Tv!Z{fpns$~MK$7U(9-RBn^ROP*A7Sl80<7Oh7^u@ zy@a&E;_2G@mnLgE*Nei=VxI#o&)BH#f?>Jy>4bzK_@(kzaw(GnNGasDjyB=(%Ohz> zVEYq7QJ`$alT1ixG?Gk~BC)j3usCtdhJe&qO#`arR4%vdO5|1KdK%WS9a_8SSj2VoiPGCM z&STQdCw=-X9Ck9CCjo)8R&vqv5ATYt@ZtredUFsY9I<$#sc4MhuqRQw4I|?F#rS%2 z$thptq0v{+SzZ{LC9vDW;Z})7Dspxv~DXu6}2h zizf$9QMhd#z<05@O}$uS*X=VHYuDWK)6SV^DvkFr2iL?;T}9)h`Rw%wggHM?Oj+Ch z>5~f!3j_|fDt0ziuSMjy&RIFoG?t&stkobxk)GG^oba{@#-9fC5S8Tl z21lCFt_raFo0{Re#kvN4n(=&N@3`Z_nXKRys!ZK`6j4>U9@acTddS>~0|-iXp?ii< z-fQOhUS4zO`MPVyFqZk!@OLl0Z{a@9kUDqB-XgjNt$dJnCOiuX?4>pl%Dp)?%VX)% zl)`l3!~Ut2-39)l6Lq&U%NJV%8WHG%@_r$$@WJU6c^@kGz?AO@mhXtEIigl_;jCl_ zv#t3f%YKOR_aLkD{divrVva@(=FfsXJTuCWSyE~d%}**FqU1#A| zY&(-uo1p#^X|b~MpoIsy?7ggXc^R%_Sn^Z0rB^H<(Z&z>MZ5A2|5skqHlRKGtG0?G z>7NmMEUW2J_4|R7t&{JhnZZ^+>dkGShn5>XZF=GlgSN&EG9|G#l{sz4h^i)QMj2it zirn}l!jPQ!kqb}!=6>hq07dF(i|$S4L#PZ@jc>fi zOy*#FGE6YzOzrx26TtwewVpKby+AKE33l5|T|*{LhI`Lw>?XpbBC^rDyNCE2*lD)B zSPamivKABJ1Dqg#s3%JFxfyDpE^+V+y#^<+@)WfMDvaLYa9x@DWS1 zUa;tL_S5Ts_`LLChw z7M;%`44i#ZmMVx~w&RD~cygxBR}>-xAY< zfVkMU2lLL^Ew?*R{l*D-<+(5VF6b-qGqCOqMb+!=x6E zu7$mr*FF&}e9=6CO2OD5U2_^>@Z$03!okizQ3n5Dolo=@FZ`B2I5zj-HurE=;(eiT zXKnMz{t>@k1mFvP3SkOFr7p)ahkb$jzr&?0>>4vpHfDXr{qn%A9aeI~Agj-2S)Wtm zo@Vy~*`JyQtz*OMp1X2N;gQqfx3Id;C>Y^_XXqX6R*7N4)A1dcH+gi@QM0+n4cKmJ z>%|;mG#DKpnd%f@{d}Ic=Hfy1YO7;vY(TWwzSIQ~MEniwbg-oh;<74Q(?Hr*R1mfp zxDYwAe0SS#a>Q5vc*t{4&)4YMG0^UP>tw4wr?C-FT*dBuiBCo3un* zHqx@jnA{d@qnbg^m{4o@_YmzW#%hB@eWLgf;VJ=QBX)DYmRHtupr@ANpN!|=Ic@wL zmVyH`5$fh9jTm;IY4dkS$#R+iESUKaNiBvms?Ge@q20L`^2q&^B(${)? z7a~0Qm-?;FwKlUl7OE}0`tMa>8E6g`1jji}WS7NdDRK2c{e0c~rEki)YOKV>&*U8A zD*%ehJ(jzz$agTbUkN^Mt%rq}mvk535?35+Pn$E<@vOppTf}hU^37W(Vd5zJW<+da*(jCg|$Gd6|+XkfBD_*Nl=1b*0 zi=LOJcF})E=be3*^8xK{HFfC?4OVrB^9Ex@J(&3tR3dnsFoo;rXVb6+SlO^NcDV3H z;>^J_fdD&7dNT@a7Rv!#PQ2AdmG+pKpxkOux>nleeZU=Nc07(9i0=R<$|xhr%({88 zfUb=63|yF1p`3`x&4U$)+8-7I42AV|a=8rIQhfuiA%f zxmNV(!yI!LOwgZ{o&{ChYji}kg;3TjK>)B{upJ^Xab0z2%c^xdd;jpwB zCOTSe*~W4S2rPj{d7K*wM>(}*HP`-9-WNvWD0&%Zx0x9Dr;D*zn>otq)K-%RT{}OX z#YU za$pP?vT+3{H)9$Uzrtvb>OpL41GmKmOm^EyTvD6{KN4j&GF3 z9fJ4itHy{nY?m4yfAQ~q(-jaZHLB0@!a?M(8cs^F zIATtYBz6sbcc5$*_JA@=Fj@V;qAOIm{Oq>U%4eLD-FmK*<*pV7ubb%#@snf+QI)D# zZ9^4@qkx`GO5DnOtwtP0*jxe(aqYPJBBr@7?Mk%|>)xDV_ghaB!4-SP- z+HIsEpy4%0(Q)d{rIGE+rxiF3(~h07iM+m19fzyIWhv=s-JV`{bK8?P`}AVM&K#~s#Uk94*|MkAKUg?GL{KdZwW{IL=-x)))5;f7r>8ysbWBd0!9pjHzI zxX^1?s|hZ#LAX-G8q~cQDgPtOjH(B_OTu5l7;d;c#f(c&5$z4w7Qro$`1)EI-~HK? z=(6%4nHB{rQSvyq7NLCNq>a4-q)4d)?RAGS;=ijS`%!$b`*arBU>yBwLceoanL)FF za(IDOF(Bsm{a0S2S`3bw)kZo;(bWI-zesz>DA8i3P4u*F+qP}nwr$(CZFirxyHDG; zZQGuHXMWv#zdJK)X04=>O6}y&-m8+Gs(R{PFW_D;;$9D=Ytf3}7oaa_@j`x^jlaf| zC|bczpnV6@7aH;C{EA+$3kdaBbwzXl)F`s`W4a)59+|3_*#?0v;?&7)SyZN2!f5;^ zP3;PaNknM1VTV|ttOu3uwpH&xWZ*^~H6GJ3qx{y1@q^pnarlQD;P-WBM@knl)A3N* z`%fcYIWNUk5dP}6ab6a>(8f!3T|xj0)sLO(>JWdOY(|ocB>Z`~aUKW&~iAJ?Do$zT#9u2=gBU%4vI2;Cj9 zMj39v@=2mi!UytNIWP3-{2`r4*MI9g>bCA3k-MfFdZwbbH|iYgw&9)BySN)9ugY$q z^_&Zxa64pYiAbH@Tm14|Y_J-aqj8Th6;<%D8G2~qC(C~@PvErSpUG*zyv+!HuT3Ie(>Rivb3e>n$bQC~_ zAdE#acLCi)MrkZ7Gse4=V@yqxXv+lk?gl%)HYWQqAt5QYj(W>Pl%IKG`C`^%b$m_> ztDZ&Et}D7)yX%Rp<=#EYd04f3dwggay~~B7W%#`MY88`g8|!xFA{fFAf^jqC8@?C& z+7`M(+wK$0?<5y2l(dPH=o}-R?rXy$9~GkVI8ZbbE7N=`U(gDIMU$#c+6soMnbp2| z8Kh>RqaR0;ZM9fr0JR#7yZk9MNHd$FDP(JQ2J&!*(lt1VRF>muw$vJeOr{=6xE&qt z(+iEkvth2)7^$1ABCH!p#Cqr(U{Li^5nij_4x~QpL1MPm5GmK$6ki+eomZ~^ja=ZB z>r|^gMb^w^tuTM~=|jUJD#%=qo2r^G-1SStf@y|`T8=NS4%-RWfa96F|33NweBwWY zY1v}xxh}W{?IRu`CXD`EZK>h5Nx`;B(Y8r|QcX|>6|8@3XF>a~*6~;KOZr)D=r3nO z`+e5w-IcLmXUs8f6IlVb=SBNFHCg}F9`&lNo4-m-gzz9TyB;Ii;2M=!xK$ZFYpZnM)GQg` z+PS}QEg#wZH12E@#3;8>PQ84snre}iY}GV1?y}Bm64WBpE{23MSIzxMt_5fyq=5yF zHC}BUh|8L4$evpscJNWhB4O7RS3Txgw_L{}VmD+^C2uFwx2)Xdg3{vcS%s>#@VHF2 zO1V!{!q5`=qzc*c>1oB;QaX_~tTYf>l{J(qt-0Bo3;Iwh-TlBgX{~OpI_GzZvbwE5 z$Qhz$eRT&{W;ia1aPN#xWdH}kM2t;fP#V03cr3*(+7AdpCeE(VFM%kVY9ARKf+(9Z zOJ(sNjLz@1Gq2Y)cYaqU zusA9iL$AS-(l~#B8{&b4I^I4o7>OjCc+VK3OkACOPZ`1oaXPh5Sr8lOEVxc|-%Zjz zEf|YtMB)N{`MC0sI%gR|CB)Hq@GfhAx$hG!yC)Lj>>=kxpg+C>L|4l%I?jm8|w zWjEFR8Z1+DFRBdY0%Bt_N!4fItXQ>{v$3#7CGWIV{YuEFcaC*mw zM0LLTCM)r3cblkHYinM-B5N;D8w_2O@XmGRJZ6I_2UZd-3>|2_c$`t9oJ=lU?lb)~ zJWKhFoHuy$H4zIENFXxR-v!;IARn6^gM3rJ=@%LQkg9|BBTwL`n@EIUPQbU#GeWCs zgl3ITSH(0q)hoE__8*U7xQMK>Ob!du8jB2=kYzycx8`uyK&LtkQ5-}n4WpDrQ^{he zWi!^Wn`k?Xx9unYKLs75ze9I}6bBJX!$@V(WU?4?*^IgDCfp9=?*CIk#JUc;ZYPnT zpAZr^PW!9gdhmCZofPT%AbC>+byEa3qDcjQ4z-g6ofL^gi*kZ*>YH)C2>^zLhWI^o z)TsJIiE*F_Lx!z};5cphgT}`>z`qR5ckgsB#*P{x0l80n_a*rLsNBuP0pSruFry~a0a@s$yZDcNP)+YIF*kMT!;kK4{h8jm3QhD z`M8%tGM9WZ7s0$E9&__191V46evS#7u+}p_-Gr`q(`68{6iulIG$e$`WUGg#(+31xhm9;fM_b2PGZm!T!f%YP=q@& zBCd|V2Mj?b$u7}9hA5j*C*NOz_)bjyUl~SD#MMa+{<|_su@4BQBG#tZQ$egrytRa= zO}N#BP?K`c30{$M2MU7$3+Uyl(`=dl+wOG5u7Q88fsV~SeS%i9@an}dk!1cMS8&A_ z)ABsn=3c8h2No%vlRw)$8bozph{^S`a6mRI$7yDr#Sf4M!^eywL)mU06;FhO zoZ);@`Xe#v|4(=9f8&||*CH@#<2+b3$vuCLimP3?&Mdpq z9viOl@0P*D6J5|G8m~!-s=dThUHB-PaPfzh!(@(XcgX!lu#RrjT^qAwyU|t8kOsXx z-S?^Sq|d-ydgi1-@20zf!u4RtCfuI)r$SyUX4+HHF}L*>`c;rj^OoLF1K!b?|AxsI z#uW(TiAC@Rzmx5b^p;=Rx@aNl1Vr9L6fY$5omt$X&ZP4u&%=m z$XSLn!0QLA#_J>!YbBU_)=X%~RW+Dwe4@&DY2mXnL!=a|D z_M{SHx`D~nW;OmtF6eXJUf>(y;l_1t?~!iDDNCIUFc8*>4(XLeAuWmjxL8o*Rzmvw2%_d9FrK?;EX|Qp(&bNNYXaD5K&pr z9dc^9-RIMUVmA#Xo>=pYT7mC0JrUomdnOsRu-|9UY(FyOB8e({%!E_k)NLI37PKB- zug4zJcM8!xTGGF5Quy6IORlCrWNv=gSdq{1p$W6&?K0*+e~6^y4sNZG8_O{PLoS-;hdv*Ok?%LKZ#RG8!Qu9{?l-mFFL z5@|7bn>-A}f&10Vgz;H3LDZ+fPq9ukm8=^AxADdNdEx4m0&UZa!MK)l48@YrgTp#k zjnoTIP>G- z(l+Rf)3)l&`&-Y$f8B6Jm}TQND!ZZEu+cKpB>}qb|Y<3aQ^9i`pwx zf7zu)=U=4{zd>9yH}}Jg`MX2MIR4ZYCbWCM*A~tRl|KWOKZhw?#pSQV6|UnAm^-5v z%_X77l51K!+iWa>vVEP2logzhx<{2_` z#?GBGMT?TrWBUB|fJKYwetRKvr&iITJK0Q_Hmrqnt)k5DvZ6(D{h~!djF>*(J;J{( z3wD{&{NBwKRcChVKXHCv#LRqb*l;j8Tq`?ovr89fM61g`1c6(hJ7RTsv&nLW6hGmm zpGcYaGv?zxhQJ>%M5{OGec!#{&ukPet)xs>HsZ})G#Pergi)7QW0YQCj!9ia?OWRs znt0DKR}P0fUVv|_+hN&tWSNAkC!)Y!JK_2_ z4K|E{T{gmXY{tM^!3fr!xP2}9z);?bR}*zo=5b>rP1QeMi6H~{-N-{}cDP7m%3*8s zn;!F#0!!OytSuztIA7jrJ(PS?%YEr8n`pMGcg|Z29)M-{Yg)^(aB5#9R81+^YdbA zdf9Qnga0(kbo80&*mYZ}3wl3rRCYg$bb0=|f1Z)$ufFmVy7-vu^}rLJ0cIC@!8Lz# z^hEj4Kem(!B=X>xt~2E?@&cl+Htw2wv2Gg71Ux;@+4u0^xo(W~@qPfa8|Fdht(Ntg zJrln6^8$U>&4l(`qSz1X$`D>cNzi=^5zloCN7V0>JT}xSy>F~g0bOM!JAas(wE1K) z&UXuqHSCl{x7?`SUo}VW`0{61_^E4{`w6#i`pRoq_$jx~`HE{;`Dw42`w6ZY@@cav zDYjrvIJaW`*7}bl#x0s*#x2afgK_D{OR!?IJm{=C)bU`K7e9GkueKqnDqh;^_qL|< zgLxv~Bvl`6%_j$osgV*EytHL+ZOw=OQ)Vvn?pbe+-H&MCvL|WonQxT+BhNVSi#g*G z-?%a;kr0e%2{uLhe0CHC7OH*OfP{_X@=!J`$l94*X6)FOXl>J)IE%%)R+^O!eay63 znl&Qb`uS|E6kMi3wFWWl$M?ikfp$Rd#41sM?{Y>5PGPvV=k=xz7jjv*cI$8^f5#w) z<01@vS_c!(ndb>Fb@-hu0S6(UldvFR07M4cHr$yxq%;Z{~7GAT`e)Y*Es~U z_kR;|q7dHwZyh#%>Q6MO7hQJ2wD);7%Zlx|pxG`fLMA~- zn3K10-#|~yw@H8fDsaEDv|@#o?4T4Sh++8T*YV?Iq!EBg5$XE6>N<5NJiM*w-~mY z$Uj313d>+nc*bDQDIuIwMFMVd6w00{-e%88`68G^bWE1DZiNQ0d>zj z+n|894@%{b8ptkuGUJy*-y`oV`bBB=W~C78p_qQdFN+RaFAVP?)v146bB23#+++jl z13FWNL!ZdST&ZjaJd@Lcy7x?BprgGp(9t<06*EJR=Sm5$lafsf)H26%x|=UC4kqe} zOFYOmoa!A|I#QZbdGPR?vdCx(@DOka_PA&H2*-6HH;>p)gad9mSyMgMN4qw8)fx__&2qeFhNIXfQ(-pYpd1-N;0eN}n4>cx=6Lm2qCp4SZksmR=5jM_`^ zR#(m%MAiZV$##N3U?T9CKq4;32{Fe>w$n5Rg(qMju!t})vIqh+I4C>>=-?m1+o#FL zsVf{O06p)Xm!Hp`FtfL(sp;iMWi>UGvdZ+UmUTVcE52HcfyJ_~lf`eOrXOt#sZbuR z#DF|{5DpFuFhw?4Yx3ms=4gxwImUFNi^&8ECuGjW!f5`yj4t)cGa^Ds|o2QrgMh)CqXWngwJQoVl2` z$jEAs)rx_6Ky%bGZBetW+G=lFm!?5;ZFowbfMI|p0>f5h(%#B2bOWBQg61x9Jz!_; z7ZwE;-o-UIds;SrWGy58m{xvv4FxfKE5E#vi(!r@zp0Td+2uJ9a(Y{SZVjxGT`yR5 z+IMz(4X=X(jIh&*9WjR}eue|_$T?OJB)dq#-~?THk^`0J2s^A2;qM-H+&Md0;rld* zd6*M}=TJNFl@qN9Sa#NI*0jwj(TS|{*c;?~-y3DenY3sRm!8l|PG{X#I~I}{-im#9 ztQP0Xp6fK5J>7{fcl<8=2>|!{8>#NKH&m?y?yy#l*sZ_`*DKA5g7^9xE$<0;Xpen& zSS?rFLDn?VtJ{f$_s$z{P&OWY2iS*{2fE{i2ilG4 zH#V+Ok35`f?_OC{{~Q_nT>sS)z=>{3`%B#bGdL*LXP&<4Tomj}4}#b)UHb+;2tqHV z_*FiTkS?-Uc52`@c7j0)!Qcszy7KreDw4xJN+^%^OyCP}Is2I4Ky9-EayE7HF&L!W zLsJMjhl}8{b{atu+c5cv4I1U+ZRAS(k>JWrx_%~Z#L9<%x74+eEU)l=qMvzkur z@U`vkpL@t@Q9CL7j(201ZlP+EJ^i|jfe!a{^=UCN>7T4TstjNRzDyroxCNBscKWsG zShsJ@p0l!ChkI)EqKo_9pN`L!-2grKJ;7a~lCt8vXbme868?ps+|QtQ|9%qz%$WKS zuV~9><`vjIC+Ac1rF=zrQwf3iB36lvs^k;$Vg)K{6#HZ8rcpKy}W@2ghK<9tMiLbOmh;TeU?+aM{sjYO5qxlTQ+3+Q}>I$ zozwIP8}PAc3b^1V zZhw%{>|q2jad8L#!Tj{|Kkb2r9uiLekHv1>=|(-6DEwtVV33>I#U3sLg2*VC10b3ZaGQoT3@9y$h`deIx3QMAxA` z^z&Y#ZTBh|@J$n8_d@g&XsfYDV?o*-5buH8QeY3*1ShrC-V$8Xc?Xk$m)$Y%8U5pb z1+ImkrnlWwD)qOIl|be-8i&YZQUO;*>efF8*JHp5hLU#MBV5pX&BP$}9*{=pHZg_R zVUP-zn#A1mGVQtrYE)?(zC`vlb%kKd0P3eX4(Eqv>9Y&&oP6ounXK*SIi?GI3I3p_ zGF+y*x8{#Ff{LVV2{$jc-~_;xaVbM*V|9ykFmh^WJ+nxCMLrk~Rf@*K5@)detHx$L z*j8U@I~wj_M6wl+a4-znK|nMd<8oRWiO!a~B7?$UOI?&j34kM#w8~XXoM@mU_e?j{ zW`L_=c4IjVleBE|LrRjdCIOQ?ik%NSKJ-rnCRy0>y)q?$kaV&%2gV3@dePKpdbyu@ z4~rr6tnkiF74NG1FYj7mOl2+azt=RLxw|CDf~Qjh>)Ri@>+G26qG!HltIh#Ty-24)I5=?LCo?f zb)+XmtAcJr8)ntNL8MVGbJF#=n#8R9or9vMF!cA}44S_M#sT#qrU zxL=g6{H;T==utWL*{dLMh+GGKhHBhGm$4_2JhzhdWZUBQQL9il$RGPg`%$mSt8jTp z9|v}W0I!wo;5+bPyIK44-g4N(_WSa~zra7l4$MhP*fWO+WK1Q4XVM%Fp*2Qk80#b4 zeO9KJ#*mFKr>SRw6r8DJX@y1^+#RM%vbV>JZhaPH?nUpk>{q~cs6_!dWB_gab&KmAb zw^Z0U515d{fS>Z~CoI;I3QnFerf%E&8?vmO-%|p$z^4f4pgEI75o6uB4G#< zNAbnG_CSgZTFLAFgH?f0MYH3lxg%vp^$R)Pr#Yqk2K^e`F$jMJi$?khuGq&(C;Nth z8Um{u4AGB)8W2T8a#D0j!U*?8Ix&vsrkBb{{!<&pK@<=Q2{rkr)=3F)&S_N<59E}h zKqDg?alQrolT8+)BpY^KHu!zd?>HHrtV9RYrw=*fz1~uM`ge0?mSg=4w9W&xDUQL> zX5H7{5OC(;cZ49{mE=cIBc$A=420~I%%87GJhf1xP+n2N86SDBbD`Y?`8^ z&}y^|sE-gC5RMcfUtTT)jgg^lJw4q`CGg-RRj`(=2N_C5)>5#RsfQVALEccfim!4PGn%p^G#|94 zfP9Pvy4e9n>`JF7B0HAIkrUv_UPhQmJ8719#h7`31%$>?Mx;u6VYaj8?6lYll=CDr zf)?>}nFY${CNs#_aZ03B`@s;l<fVr?F?R^0b|G z%`P&PL~B^McjaJ;=F6$oD@DV!MIt5xan4t?7bAh_=r(fbLu2P z*Z{U8_|I7|3*_Lm%AqWm8UmLAP3G{fms0tV^((O#%`qjbx^@=Q25^m-PI2s3JA9+~ zl_z)9qIp(ny>?W%j;8eGJfdM*Dq?37Gu3NQ#ycLPCP8EKc70aPRb%1wGv;1r` zETZ;BLAe!Bvb~KUhmM%M?h4nSYgg2^TUVTHCojKVn{0tp4cr{eirA^yip68rg%Na( zTwPB7f(xirO{2Pt&ajUT-!4E+m3#38ChoyIQk>h?5R^9Dts=xNC&U2{V$h2OH7|j~ zD^bKqo;a(wM8knqBG3=<&>kNN*|!uTdKoce2iYb}YOkGupK56OKAaTGnp^Sur9%bmM}>0Q zSLE)BBF}T=Bes{8<@k0=BD;X)kc1-FG)?mfp&}S<-eLk3q04@58mE&^NsTsL1s0p~ z`E(2kyTEy$OoFGwLJ3+s%KRVOYG(P?EiY)OEW^(B5Q>(ptQnAUJWe)~?a-_gM!NwS zxeTn6(&EV&CnTlg;dTd#2iDEgXum{`dace%xm6e-5LgiGfJCoY1+^4`sFi)v40g z^j`KDJbHi=s?u4s25@LS7}iG|rG^A_S-b}V&J>WAZiAkw(iqF!oeFARxo^Rd??~(| z&{@w2kJMq$_+B2mA6;o)+|D%R!=RQagi3l2ZQ; zOwG*-a?eW)oVSg&xn)Sp9+mfDVxKg>W>^WqmI~tfs+Nb3oAXh-#fEFf;;l=wU!z`I z@L@n?F+mHNv575^$>+_*lZW{wEU1%HhXqtD2p1De`Ee{L7n4eVVLL&aQcMNJELfdW zj(h)D06?dr_FG#ZP$#1fAX-3JC#Md$T7VEsRT-o;f$F9$_X$|=WXH4ihs~3|s;@)u zNNDYfSx{{zw)ExAyADdx5rsWcA{OhA3wYw7q&ydn&+{s4c>=K{KNpeC11zd?hI5LC zDVUv+W0L0ZM-?ZTXFT$*Q|1WPN|eoU&6k}fJEP{LOc#92o24i4jwC*UJR?C%=Yqji5pmvnf0^0^n0sQ9yG?lbRL^ptc6v7UY2Zyo0;hLQ-D5nxmu z#AYmZzVN*cy&d0ICmokU;3EcnjEImvA*^2mAMgg?D4|vm?+g(ArHn_7sf6xE-;BjmZwvK*(vMZi_DiDI0)UOyHQ4x@NVX1=u*id5*vz6AlXUvVn#t zI1Ea&p^hio4cfE8mPb8|j^CCurFHcgJ#f{M89ijjBjD04vS0mu2Ln-xPPn(5j9(-V z;2b>pRk#M+^q6Y_!y95v9%(t;=)K~@RX zf^i&4R;koNzZ_ZEiC2Q*jymjRYrsy9-WjHzQ`W5UGNxQ3sbsURd}@NX*(Cc}Yl^q6 zb@buYB3U;!Qm0&#e>3NdtVmH7GsLDWV2+S2bnu4m+IyuEno^V!gf*a~Mh zGgvH>7HecBn%anZ?m`uVktX1-Wq(#bKvGL( zy@6>|(=F+`M?OnAI=%F=kg`*_NO3qknkQ3<$}nL3kQlFd9oD}LT`>)BB45|U4^pJ? zP;NY>sc(EoGOt}Y^$|Z4miN$lZ((4>upH2sX9cpDnG(KKRD(4_3FP6?=)A+~tbmWN zZ$tNr8)zFbn2yNY|Aas|F%-^b8@T&hxyfEK9-3?+n3`GCQrB|)wo~cs9iJ9;o-*Bn z`=O%6oic(HkjD?~ONj6)A-qfW%K-X%P$Ilz$ZO=vJg#D!lh1?<-xC@-rXt|9WS-Wz z(Cg^JQ60k6NoD03q zcj+aI?%c1lzq)qD9iwP7g6E=aH1zI31OH6EyI~l&rxKUs7L-?5sjALnBdf2O7+k8Q zFEBstmQsFLt2$z1V=4=1CQsPd!Fk+qbph3aXBT#>yL zvBe!ohE$MO6t%@1c!pq**%UX09hin_kXscuMIE??aFF#1%WXjUe_@CnZu6}2Kz>lr zALuNT|8`WiJJP-A!3=khVjS1beSLVUet(r|xLm6L_%dxI%vzXN%&%%{Fq-~7lHvn= z$e7UJHOd}hGDMzAV(?LOng}}$Qp5cDxRZiX8oxDpN+Mi0gw$DCxJko(<~RsU)Mh7b z8#48dq97tWC|0g|wPv)hoQXQ*>@<<6g4nHcPSL+mo5QQD;`5mggIB(gms|4BRq$C_8n?}Olj=zWCDEa0(Trr6 zIyR|3fR&croZ`B?y}g@lT73|w0W{Qj1QI!_|}hK5KD zP!G&q+2P36)s4Cj%>^UKZrjJah>P~#YQme7~6Ap%^4xv!h1bj+QSoS^2DACWKx5FxV z`EF2%dlz!b9e>38IC;(Q4CpG~5Vb=sd;V{j?F7Ftqk9~7f*%mQakssOPd4qen?AXF zA9s8{eprzBV*Eo@`tbsK^49*sM98pQRrkkeLm?JqF3Z1z1-Ow&PpZJonh0~sLm{SA zh?%vc<~fChLXl`b<-l_sB*ESC`*R>9U>&80!abDjvp3^Nr!9$aT*;rS)yTa9CHS%A zA@+re=zJB#yJacD+9DKz7Zf56LM7<7zey^1k`Z4;N{DgGllzTQ=G`k5L1*O057s0> z{)u`(+9~A@*OH^$(fl+rjaE%euaI;y zZJAH>5V08eSK4HYur4rg8l5AkDVZyGZfHBshJX~j!TyL#sg3Tq3F%zpmT6d5_aY<|f+Nqu~K&y1z zu#w_%X=}pUsi)D4tAN^YLn*a(FwXc4Wy0Ylq0y(Sr0UQ^9@e&#%;q7#y^nE(ldHCU z@HPJ7E&k?D_cwcAiVE)@B{}ZZEP3IxalFi%=7@Snn`6XHnfJhpJnx|^h3<83Jnd8Y zh?`IAEi$iGdsmGL?agI;<pT1&=cmRog0D>bxJRM;q?UZ;wI}6*Ro-@$ z_{c1)^3(ExvS$r&{H7&v9IqvDJg>!Z+(rxKD7HG&aYj|C-Oj3zyRKQeZ&}pD=1OIH zS?|b(NF~cA(6UuV0jCATGTWy9yvarZM5}>v{kf8ML#xu5tFXi7rV@99W6A16^l8mk z{;LJcve#7$W(~-45w~`D!>NknQe-jvdEZjki=x@Tt0Pmtwt{p$X_4?5)>6TXtvUTm zq`A$gZ}?vFvi}eBpV^(&R(8Ir1x7bLl(eJ^G8P zIrA%1bHG=r+NP&ux&EhMx$&oZ*^PZM6gKTWTSx_qL(tMljJG+0NWtd3JfGD`Ss~AD zQ6Y;fS4oRgv+@e(YB4r8*V0VPuer*IyRY4nZUnM9&Zu^M#ev^v&O!O=guVLN&ASxV z-n$moc~c&Y<69n#>$+lK|MEP%?ce!m8{m0)+y41!8`%L2A{)K5ON|K}!|WzH1fJ0c?5W!M5VbU{~#Q3|HB7TxSh! z_=k$lDX>cdldR5V@)C(`YsX@Sn$9tGA+1}gq8j@|B~{MSqRKSpx#bDeIi{JHOLb#a z$Ml+#&JA{~Z2K3qT~NnEh1D?^O93koM!i`DuaodMgN7{EUTr-tk+c&E2Md zaggIMUK}(xMUkFD6tWW^r=qO}04u6`DslXJzijz#=q+;Dk&p77HT#UqY!45hR$J_Q ztC~LGe+Dz?nGb)Luq{O-w%2JISeCY1?Q>a@tLp;wXt!ObOV1l^)%<1+iRo9Z345m5 z2=(4j>S>Ag-jJfh5hH5fUT^gd*Isz8q4K6_n|NBPeF|;djCyZ&sf)cRTk`i)o7k*b z>P5xxLC;_6UB+E^0BY7-MYZyRYSLTX4oPe8TW9f-akL3{o$5yW8HF*?jJML`SFlCj z`)AlAqDG=3CPiMI*Q12Zvj_1^rl^SHbN0sNrcHJ_0<%)izD1vkRgh-M&tqHc3$C*# z$^b{5iVz9!F)OPB9hFlj$)urDZZ9~AO6XI{%n&1&{2d(b3Y23YbAsb=$mm5nS2sF% z1=V0t%4}uD#k;uGTj9m8tOusC1!e1k_qxc2UykdKeJ((rj~l3Xt|c$P1KqsXT2Su^ zoVe(gAM{S^tR~0r_e2b>vLiQD0WdI`b2pG~^givbXc)7VNBB7Z0U>1Ez{RGSN9int zmN_s6hV#^z$PHYOEWShAKhT((szT8`B@8)$t%++u$~Oe?SvkW$W~DtrIa zxx4KB1aK3mG&0p|p$8+oD63v6zMe$}wMib(uO0d^A?_IiYT_s zl7^zCa5d8qE7FFdrD!$4P%JWs+_iKy#854Ai`=zrHK;JPOe)LzTIlCmN+BvcTcZD1 zfnx2jZEOu4$*c}rQAJ9z;9HdV%8k&%&%bzEfMcmg!S)H4vS3>bWf81A5=-8NO>m~2 z!E%2(D%TB-UuO%Vyp{_A#u-f_<~9^GgKN06WL04?B&$#Yp&<18#NR0mcuohB*bM{Oo=phh<)PgF14MZ;Cs?vW ztAK2)dXDLuwLG?yrt;=Ge7&tRKlZvt<7j2ibY3QG;rr{+w7q&E%c6fj_(wOhG53}) zWt+O%m%deMNp3g@kE2V&Q|IAl>CyB$S9seC!Q)2eunUg-x_j5*B`Cg=@6Zj-fB!n* zw%7|^*#Ryz^V;APSl7)?#IEi4 zo4(FD{l|r&u@9J*Y0Lyf72KJ0W;YNXVCLugYDQ8RdkKi7XE=ud;JZs=HeH8 z(IIyrdL8HB^g`Aa^C7KzHr1vfP5MjMpk?faEi7gqA5Ay4J6sAoO5Q~dxoo%w55ttK zWt+1p$KBz~XkE^YxG_pL$Y0Eg`*_JYT7 zwsr*g0)e*D^vgefEwkN#Nt=9whmyJ0*Blt8zqNm=NRrZUEb~A(#2nCvY2nCXo(naz zvAI4>Vs#Q*y>P;iXBGK4R&GZ7f!p=h3l5wC5BFK)XN}=%d;Qq(1!f+cFH!V0g1LXD zc;!>jb4up6(~pGb1XXyeM~L#piU- z_sEbl2AR?w5%lx`ax zDbf!R7a1Y@*p5;K_5m6OP(p3k3DRyMFv4lS)xlIRt;0SH+myGk7(MN+cfW$WFad7= z5r}NDKXXKZhYkVz3B3mieK!jDhYAGecl@+*Xpo-X@`DFqWIO=mHxPn2a^SfS!FwQb zz?@!%vkORYU)&t}ZDeH9kB5O7xtsQDNnkY|_x*UeWV_vDbb`6w;Sb3C4!MC0M#yCp z;4d-)uUT4>AbWI5@ZZcJdu&SZwwZyqNGQSg_L*9uBjgV>Ge^q>CyrpI>93+vJMlBn z3pf&ahx9|-xiTzq4`X5vPe{=Y{@wIEBlbMb|6k+5qAbev*rW|%3j;wEIMTY7$t$g% znb6lr1r2V|dtT|0;v+HQ9+hBlEjdEBq3~-Y(jFBM2)CSIU>UXYt+Ib)ZlwH>5{T}d zau84Mx&7b+wfAlXK%Tp0zlI#s>*hi>xCYnj)B>)p7bkvJ852UCt@z_3zptEJ^1uSr z((R+D3y;q%RBm@UO&@G7ngW`f-{J_|Q)(ecCv4`vI$7(IHpZLq6mu{baHbbW+h81p!P z7|zkY-~-7rMu)6~XlFi-tz3)@onIU_G9Z1dX^_DLhNC~OPb zQubLRHz=<2UlE7WScn}HXb(n&Xwj%rW0vhVx22yB+}jkU&HhS31&PBO?v|8 zbD;*c{iGHz-DYQ)mYjU&P{ZG`mSG54)9#Z=jx{mI=?Lhtw zekfa}^-E0^+(A2;bH@}}@ZBQY^5r;an^<_`FwfZwL^YN$e0Wrrtj#3tt<8&OYD(#+!@Vgj&iG8Fh8-|gidK;u-l=)cc}>6 ztAY)EP!oGv@k`jrkY81UsC2m$q_zSq-mwOIZi~*YZlJGwW(kVfF`b_K;DUN3>36qs zP(Qc$%WSLOMz+#mKmSJHZp+?Av@&fzxeDxFMFQKg9TJ?rxQZFr$t90$K%v||$3kc* z&NgKtELeuN0Vxl3_v0|bvEoX))hX;PYibS{KBn*g3o{i7cSG(xBW*O&Ylg8qvR~KX z)DZhi(Bnad1V<(#PGrY75Bep61&wb*55BqG7eBxS?C23D=x{?%euD#>(nXY?=|;@_ z7)xkFpLy#C{rDUk0Q2@ReIuNHk%R2S>yT^FOq!``#qFkiVnOSk;H7qB z7!#rA5bfE4Ma`iR@s5&(*P{2%U>0R#o0|3AKyY5Nq=r`%l#d7SBujLeBfH8KROd#D zaJRPmG#yaxMvMG79aOmeCcKHpPjVwjcpkOOabt*nt^-)~Ps$+E4P%n1ZMG9T)l;os z^M;b}xXK7SXo@r{ErVLOze{Y$6@e+q@;8txyseGFA#9$B)pd&)_!nXN>-OitCCM+B zza_upkpVJw&Ta*%Z=E05iU{E^4f(DQoXEeC2wkoKNH4hp!tFQ(k{b=>2`^ZllP_qP zC*N36j~@Poe|m);z-XQ`MJ3x%=G8BR>xW;QrYytAl*W)Kn*BIsNI9uxM0gU(-+H$l zKjO)d6%%-!%zb`#1ksUe@g zMhXz=IhY?)0bKcz6eQh9obFRW1^FE5N7r&o->djnbW7GvzCi!IRSClBKCjz&p}u@s z@+a!fyv?muog`R0D0N`h#|&d@OM;fk8t$sa3ZsqB`rxOl#^0Wzu%vg@WR=nFm~W)i zSulQRb6^eb%zWQ7LcV_ACH<@sd)3Li?F86!LkfS-6r|N->VF|7KeK``@vbgtsD)X4 zY!2z}cBP+P!5x0*gy(Gy!|0BsA6dajeeLL#)SHZC`OE0RwQ_j%dore6EhKq)SK>Q9 z9KhWh5W{Q=SuSHrX)H|zw5j9d@*IRte0xP?d-p_CeIfjNEu+4Lw%LtF5N3yu{0I}+ z-`ywQ#|B*a7Ak17LtlP_1zYW1lwWN}?R*;(rrQk>{DcINMb^i;W9+`h2J#HQd6ESQ z=CiO@ZU>ruI~9HBBbzB>KWZHav?=C^gdB>vX+b&ONsV>jf%(|qUoj~hAwBJi9@=#0 z)_@X95TsOahQ5XE9X#g*QFMYJIztw%3m$2QkZ?96KiUc$`H?C}vBOw?tpy9?O_g6^ zM?(CjilEbg+4261RlB2!exoIJ=*2VnXyaef9aFd53c>ouI&unYHFAG|Jd*e!Y-USw zI+HW!^HMVy^^;tKsC7INOmyg5y@tt+I6!8S$3W8bgs|hE3hHiz) z8m5A$4}|wEv&LqN;RF+lfyJiG1NHTi83m1sM2S|YlC7s3en-Jpuo0@K943jHrfkVy zOEjX6s-|oKtfd-pN8wVq6|F@YnMdhTxD~I(8o5XDQal%wU1=>I6ubcZUy5Ieh6zzh z=RQi5vc(*^hA~mhm9j-0*@ih${wigc8d`zu`507{J+Yma@ydTxKl7}a^1$=4=R&-k zJ>1XzT`rov5Y1zc=eu!z?|K+{V3=@1-!W_AeZXT7?X^@oVV7ODw@Q1HU3|>So%k#{ zdzby5vd;v3i1wQKEy{eAz%%t)rur?W{&ZIFvhY1*ot&~a&wQ4&zsnx~T+$N*re3@< z_be)xRS~*q>-iGl#U(gDBT$sLM*?|6WBg-Z$l9~0@to6Naig5Q>5hi}oHID=o42pj z^UxM^L;YEG^UH3pGa~D)XGF3`x-ImE>3aVI5B^rSf6$kIPq7EvBj!e&XY>VG@B9O^ z_UQJx6k8~C~5V^2V%HtpMl#f53Stvh$G-oSrvU<-QTCBD)7uWleXKZEoC_%o2ahW9Cd0~EITVb0&fg@yn9wm8Ixz4|)L zPxAlucrPE~_bthY*3fH7$eo4OK>QMHM~FP;a6t9cO2<#7Y^T9sDwryxX~1wiQpjwI zWjNt7kc=5Z+4x)847p^ATt-tMz2OgoDWc(o(Lge32&FWnvKm536`72tbb3P^gQ;(- z%-g)lgnTmPDqadDJ8gOcgLDZEOS;p;d`3eCgDJG(gxWyzRR|^bZ)H6~8P603(hP=U z)`4W*5Xw$SJI>QO?5Xw4bf%OuKN#{lTD2`^W8Cy?%-Ds3J?XPe)#+@u-aEJ*?q)YY6EsVyX@q z&0B8W5f;j$e)zyQwnG0uVwHz~pv_13jrkA`X_0-zIG>?nEcbJoi?{PS)7iPEHDuA6$L_`fzcm- zOU%&|4E6;;fJ1aKaP9?j0`t?rff{HM{MrQJG&Cnb$ALNu9Sr=umCGmS!lwW&1qn4q zv*lykJStl!6Za@;l_VY;H13uKPeKyb{@bH^QD+>pVz^*GOOE4ln(jXlAu%Zo$XTpY zgx~ltSsuP&aFo2lwGboasA-D-Yj_#@@D9p{!lm?`Xw(-49DpPAKqYFCLavk}_&_GA zkz%HVBiv|eOmy@O1zkZ$!Vz(J7$r?XN6Ha%_*f*SmgJE0WQ*XZtfx~-qgv?180(J^ zGo_+M(>)-DeddkRJmvodn^{MqoU*>?! z;%9)*gP9sN{{?-U78v>}WI*}NS%Rb}L0KsyM=#_-%nHiEe}5)pVM!%`PKj_wgD z3DY%|{QJ^`3S7^y0@RH$_Lq0YNuaMxRv&gbb_?c1+b?50b%WeP+m0lCe5VJuZPOcZ zDK9gct_TYNM|V?Ra(0I|oe<^DSa;E_4Y>C`Y^UR2!|7zRP%=zH)QqUphj-qLD(OGodSe=|B-9W0Cg4Pc_Ooy}L_`l{ zh#9RBV_mW$C%+LhjQ?P8z{&o)5pL{*nB#PSdI#kT5e$qsu-Jovf%k!01Ti-h+{0m{ z&Fi1&^VGn7jY?00u48vdNKdbgjBE$Rhwuw%46JnEbO7=D{Ry)Q!oIJzr{0F!hRVF^ zG0MWpE|cUO%dUjaN(@_hI?b8Q(pizFmXw&qR{td9O;!^)JHV=uagJ5xHO8s|`5tBH zrW2g9u832~WXHWr+zB4YFS)r*X6qi_w5_|~<}VEA)b4^HJV*c$8^qHDzmYFK2lo{O zhk=1&=r9MC6pS_b`ENp(T8u9Be8|hN!+C%gcXZvXVns)YT9j@jeFP6 z$x+iua-XFZ9_QZ)p?w`%7iJZ#J;cQzdB2zg-5N#@ zJX>&OKS>*+4R9}*_CSt7Wjfw#+Ij@8JNj;!pB>%&VNAX4#|D>*&E67(=EC<&@{8h?(#*ZuU19?0$P%i@S z1Z?$RmpRlyP$6DMPJns?D*AWI-0I*f&@bb$Kq2zk`UA_X9T3iuabn&f!t>|*0TxaU z7@24|p=O}sg{b|E7RC-V8;CgJ&!D4)ApMc2)q5n5ehy4r$k{~C3h2-=|2psq*c!Cv;H`q>=@_XM|CJS1*{ zS)Xthrl(-bn|~VXYu7uX2P)OAyu}wRD?zc3mnHbp{=-G_><^ynDz=>_t+Z+9l%%`C zd8NNP!|14$uu#2#q)`3*XEj9{K0(n|u#v1s9bQ4%RIrh*#~sf7Nj#8r%jw(AyX}I; z>Xqv6{?GV?s~*V-7N%yh`U~a@?ly5pHE80K~@)d@dDZZK$gTj*lJYul1J*$LE|_=|jwn zcxmHlgwf>sEc=Buo_@2X-Tu^ia|Qn_Nrrf}e;lzft9J@tSJHssr}|M{4%?91bcBEt z>@}KQ0(mX(PZ=h?9J8CpFc$C9w}EwBKhuI7hKx3&e< zaR|0gaPw;7f{;DXxqFPa5WB$&x1d{aen9TQrGF4U5#ECE0T#C`6R4jUq~QF5#lhwZ z>wD&9LbuK;?5|)}XrD;UP`Tn)LHYo_erOAWTOur^uIMm`e`3_RkN)I$JcLT)ZRr~DUTxkpC{0d!$H7fKRV~<$ZRTrlqi=Op1&h3uH$f#WeAV{eFHUq z%e9;!$12TD7xO_pj38eWkk79w#;&a-S2)?Hb4c;qaEdQ(WiXY>L`MZ-n1~{q-3PU z&KAJZoDA+6+pEkc^Cbh)JtDHe60wipA2C^zqu(yZ&;JeYThsq9$4j@-qeoSj>HXW$ zSIoQ+PVLDL=kr^gKi*2x8LM7rvAAZ82d>hrh|QVa_N0Xur$0nHSyf(gybR!JSHz%1=+uX3$6TKc!v`}-Gm-c)XaW;Z@W@4xE!6Znhrcp3jCENs9R0N_Bug2V?C z8@vgKbYN$JganL_p=SmW0W7C7=VZ*3EzlmcEZCeGSi(7xGADfyGDou^X$|~mQItBjl!dMG79KwS(epX30l@GtV%%}_Q z#)&ibhvQz~9VGe-IjKWX<={C;mBxR02o)-<6Y9XD&X^r+jW9D#8tUw5JK$-PHt=S% zI{0SmJ^*$p)0V%DNN3_64!tS7FXHXf7SXNHR>sSyGo{Cv+%9s5z;N` z5!0>g5!7w%5#?*)5#}r65$7xC0q_;}Nbq&`sQ0z^i2S;`Rr>JWH+@dpKYo7LM}58- zq`u-0SLa^4#R{kGT0#6>>wE-P>yGl<-hm{9or@}jox38umE%0Dl`Av6m6I#1mAfO{ zodY~X-w6i(#w7->_aGh5Z<&!g`%(kfZ@QkfYcc`HZ@ZrRGtAijHUC!Sm3BYl)^NZ5 zc2g+&77^h4iVHA*Et})_k-EW{kZkpBuU%k(cenz{?ZKUKWYAI&}h?q{d}{lb2atU`7HX% zy>4NeeX9#nI-(^A`dP^;-b8PrxJpi&?834=HDa@Vi8_^~Un_>eN*q4lil6gvCH~jvWB&gY@30m^WF>C4ALqNX zWM+=jcVtfxL*Gwp1nW&coz9yI5@Yly)x4N>!c`i}pQ@beY2;uj>loSaVZ&%{c2T_f z-zg?P*h|~}Wxe=mo+=|XaUHPI!;~7U?Ci5ooapvt7}4l zcvz<~13oX#1G}}nHmw?bHJCj_YP_V60XS-zNAm#dkl;rod=iL41t3xW&Xq81L!pG? z7m4b(Pe2;Oqm0Z>P@+JhjJ+3~$PXDyDzhk}slcHOw-TQy97!lu$de#tA-jjkL@Ey} z5kCj4C%jvD76EJFTSl;nX69EXl$^#&Fh9y2dAcy&|9U4$44Dzr0?ZOu&o@h8KWZ1z zc3@kEXGnNYiE|l?7eT{`b{upi*tIznanoU*1x|{*@7*W#ysnQ$xA_&}`_VD|W{-p! z$srPU$Qx7OVPJxZkAWFACMvvp9mD7%U_z^niW$TvI=qV;1MOmF0wWhMIUr83d<`CR z`IIyP=R?nk?2Vop*cCTB2uY4W$zr;m@`pARlx?-c)n z@FJEaQGAh%f7t9MtugUDnoyD6(B7MW{KsOv>}5fz>PIDHi9PL$;=7_HF?v#A?Vf7A z_gtODd#+m1WA%{oK!MTDt&9!137+6yw>kHuyp(adYn-?$%^ zc8=BRYI&D(5;yzYyi29V2Z7c}@=twZ?Uk~rq79x+%-eH3S(q)RS$K~&_L;|ICo&r^ zYZ;N48TN>W9xR@tHSia-hl&u3VqlpG&x*@To+`l6;-=ojMhz{7?Dy!3yzY_bZ&_uz zA0kgY0Xjn==ut!zc%}w&$>Cs%*j14mhQ3SCSp|X~yjY=M^Bx>%(~$fk4}DJ-davB? zpa+F-e-NhQk1T*uBGE)R3qlp@EeuuoG6Sf@qw~=VL=`737?+5(e#yqAib)q7&)uIc zTDUe5ZQxbM#EDeq8_!pq+B9Lkvuc4b&vT{6v-N#j7-ti2fc}kTlih|6&SO~J2RY&D zioX#95%zq&ewX@i^$5KIxG&={1l?F>`y69y*@gOTX!wpkFvlZULzxRrby@T`JrszQ zWx@OvVV+I2nTfQLn?vhx>%B8Dj~*H_q*imHt<>B#F&jY<6w(=~fZ(ZY<(L z$>Fl7HJ}r7Z5?C1__rmxzTwPlqYcJvgGrvadbX)waFLh62xH=DweNRH%wU(!YM0J( zS(@kqT8Ae=H-w?|p`b`N95Ia1RrnwQ*W3w&^LP10#*Ds$WdW8gm`)RG#5@~;=w=X- zEkv$`_pLa$0L2Dk!93lqN)xwA+;c$Ye69ld2Ku=;gh19Qf(1S<)K}r4fr$%8Onh8e z^L%|BAs3vR_~>BPJfs5)7bKl%X<{5NtY5TTIDcW|e(kBxQ4F0}%_-7Cd0IixylI(; z3uy(uZg6gNjks(QlU(Fmd7L{Oc(k3-deD4_Tcg*E_X^@S|!IXJ*W^ zn7**RxH}+eeszBMl<(2@5$K)R3t>ANZ(!y$YYp2MI=nFa4tc)SQRop@hsz6wJtDU+ zwt)N&dS2N>;E^R4;|parCijQd`LB_Z{wzD{0Esf8%$~PmC_~(htqA-`;S(Vlrp5tc z6#zlVgJM^F)*N{___fFDaqqc}<6i+^-4@WICv9*-@GT#Dttms4aF(QHfZvt&=`8#b zT5_b8r46Q&InQ*+!i-gPPW@%z1V%8Ktw0eN<8ttMJaJymk#nxk%^1x<$S>{1*X&+% zzlRnU_TIF&>CMHhE}n-h_oDW8_Y?NszGDwi{t@F>(%f+UL)+h@n+eQ2flIF( zC{gYO7F{7uLz86|T|pBgm1Rm@*vkYN7zGhj=78R6l)(O zHpDJkc$hTT_Nr##=fmAZ)I+?1ybE>}eG>&YX3rF2$Kk*mlU-mVh-og=l$7Ta`AHWuZ1lg=mpVTjiN3wyvWsrUyJ1kh0Q2Th(eQU`v$2HWZp=$D!H(g{rM7{wnCPC8EsvW8i8;eZhd}Zh=WZz=_nF&k@Hf}jFgah3TX}!rggOO z`vvZ5=ZhqC!9_%ihJ7*ZZ4##1H3&3UmgI4ZhT3&G%$bjcpg9EKA(1qPN>ei=M*m** zK5;yi{>?^BME*jAzn-8Y9Km-x(ITfR!mk3E*IdwrpU|r>(PHpNu0j4<2s+gcIW?3n zkZn}3(brVqmg*SpOx-T1nD4e6v;ih`RY2POt?5aE`EbKcM3qJ(YAP`z z63eAG`{xus$j(folOM8u zGxf;KMCLkG?%EyN$sgJ2g=TzuI(;jTtDPG@X;M<+Xejjv%~a;PM(#Qnj5GI7qh_LZ zt}4Etf#8hf7-Z_viU|P3mZA`RoHCfd)QFM}o4G-rZ6qiT{lMv+=4!E}ifYs{rE#4m zB240VAT?z(V>n{?WXxhHkr{$8b20I>W=fYjYcWVm?~gN|VY%(IsfK7)dV9X z(9XriiC);=*4Exm#opS~PQ}x~)S1r3!^L@Kc6xgD@c7;d#@Xf0Jt&*SKS+W&q)tp9fdk}`BN{IA2&Roiqr;6U&# zjq=aed8qrSgY5aGU0i(+dw^-|?K4gypDa8Tf;(E$XF~Szu%I=NP%Pz zx%IA9>Ol~3%U+3Ftfg)A4Y33~;5+f(H^9b-o-o5A1iK==qkJ2%o;EFkdqk-+ld9s# zi>$}tzwdKgAwGq5(a=fthC{yR@sgMdbBcY49 z8>e=#Ms`W43#1P*^e>RbQR=}?Gx8!TFu$>ZHY3w)z^m4cNvQnAQsSH7FK> zKM^fwkMhH3;~8aw{9PTGedV25-tRkCS7)6i|Bu_8ARR2eDd66*X6^xRAeaMFhnhEX z{;4*|_mNx20m8}rI|yul^_@Y!e)$$v8!?u$&Ig{_)fcZ+P&oG2dry(n-9vcGDczcBb7fzXUerf z$A4-__j-Lylt&kR%_CJarTb+7l}Y?}SU7ffK)vY0^EJ|q?y7cBsLga{0`f^ri| zj=>iM7d#UM$Mt9lLN!s1^3zTuFCxfuh^f%iHE`WZ*^JUJM6irRab3>VPw2%M4~)R& zz9*10c+8UMVJAKJ?0Hd7yJ;ct&Nb0RYNydr;W zD127&0&H`L9G7RJJo$y!Ue)O(UDWdts$h*1ioQLBHcpc}ojExv86_%0y+N{nf{2PB zw--6I+AdyYG0SyIGzmaGX}JC+j#8dFN*>_-+H&7SCxOTt=lmBNoeSk8`4-<_k7F-C*#BWW`y0Vhir=1vvt&Lk~!3(@X(qkodw3H!zomo0x(paxz&aFUp` zBzUW5RQKr0hk;Oqz6IZ50m|=kPTpY1$%-6TWxa$0XO&kS3~Z4TuCZaTAWVGbB5NU~ zVuc};d%8r!vDJi-H81@OOm8#xU$a17!F@?SdZb9xpU3xFi&Xqv@L8$GYAva$A7VvC z{6F(%(g@&|E6iYu48H^w0()GgX!D?fcZ*Ntibpph%g|0^;X+NuRwdUZh(C26dmI=N05dgVCxpr@mu!!?S`Kd?E{9fSDrd{c6d1qo|R$XyFCH2|Y;aIy91Rb}0!?C*ST zwh#pqox25Y8Wu0Egbw}hW(+UEo!#P{*+ zU;6Le+F5^lx_>%))#}cC`@Nl=N5`AT7p>Ax{Z&UFlclBc<7uV6xt^Ik<0BP~4WotE zyeSu|rDUtV`BvRdipv)%PqbGn)WgARL^cw?hj>aZQqsa3GsW!VNg6OF##>hs#*Eia z`z=YkPtc>%7j9DUy6Sl&naq4HE)OLNqV@@Lj)GicvY(R<+dDDhw3It?n$J+hjXV!x zE-7UF;bvnW6BjPY-0fXf6}VbG7VJdW&$jZ;xEC*uI~VTBCaq7Zo|4trEf-sLHXf9v zF0#l!Zvq##|2YYh%gV1mpY%(*C6(BG6WC)*YrY#dUgp20T$XNMT#h}w2^W>xT<>-; z6J2+@COhVxc;v@)Za8CL1G3vESN_Iet7w#F8@8Y(GYcC|A(keiM|jd8nkTDAcn%?2 zI!`!?dC)kBZ3IDOBgO#qBt^?ciOXk*Y?lN0I6@gH~AHbEW!%D*CKq3ZaS!evM|AL81I+K%p-> zDGi{(O8&A>ddj3SK%2(tK~}kP$ouhCRgBrqC>3PkR7xqp`U$+Bp_+fau zhq4rz2C?Y53(L&Hv{*R2Cn5YGWK;r;uw^>~Afd9$?c1JkB^p7kA7^-OVfxTuH+FC= zAXE_cV#L>7ZBPklv8o(58h=q&&>VrQd5#GN4s{Z@^noghwp_vEEFt27)Ma|Rfwd(@ zQ8^qXNJj!iAr*!5+CUeT32;fWQDXdwf}+u5nno(p3?hCTY1{;6k=~NmyBBj!jIRke z)L5_F^RB~kg>_)NrqyQxc2{hqIW!!Qg%y|Rll6$#HVJB8F|70->b#&MaMew=@!n2Q zxXeU%EH*}}gvQ3??Lqlw)c>-G`}Ga{5gPdTjwm-I2&sJM5t!xO6t@`=8GwecwZLHk zHi=r7q}F>wzQei}*>64|!-2^vjP1fsEf+o~Ag4X3PZxmU0fG;0qmxL+*S`Pj?dx;hyt|{X z2aIEoq|nK7FNRevoWV&TM2+UWPc9_>Jxq~mc%3g%hC^9>Z!9#wiHjsfex|XaC^jq# zNgZOA-^7zAE54u;sYnEQMF17O079TPDRWTR9xXJCm*^HlIxD^qmF+hc2;IT z>1li>Z^os(U(Mo2llXYuKYN{`I?iKmRvOiq5UhqUA*;39A zK70Dfwq_QbgAcA-#r)=sHW3T|ACp`zs%l6E38u$ zi689k#4K%GOr8F7;$u~G)se+9{K7<#Q&Aa-l%giWkBK3%6{D9aQUw-D$OK_U4#m$B zVGOU#(i$^7PUR_kfA(K2g3EE*-gwPteHZ5TFk>TLdYunnPjx-?%s%+d=>PkC=l-EE zWYj5tSaRF6)NHX4gh0DB=afB~tUS~Z(s%Mr73eL$^^{4E3{EG0!& zG>+RizN?jObUIm;rUtbhyP(84i9p>2LIFMNgk>4VJXy1dR6Lz}SMv{g<4kg*;W$BZ$DFw&0v{V{=SHqT!#*`yAG)P}a=XP8!y zfIRe_n{0y`&_t|*^d!-XRfZsx}0VI175OTTT$>g0|s&MRm`D zr=i4V*vn*dF1y3HCi&jj>owmJ+jZCV(H9J&T2tp5JIVZG0rBfYX~?D`Lq#v&jji>4 zxg5jm!uzdbqHI(XQjs`9DxH5yqpM64qDPoBXf)wz8`HAa)frh0kw##xW*exBjYsX& zFwwS^!wh<_dG#f2!d68CC94F%55Osj{Yxgj%rb7lXK>zJ6s0iljybP8Y&4l@wKQWz z%n~QW#db^@Z4VZ|5~5Xt zi~uuzXr!X!`YiXe7d<5v_zL{v7J(s&Tq1b4#vn@*cLX_XiOt?}RdBm5Sdcx&VAO2l* zvpW*cf$E3s<$RvVM*Y5-$|6nb4-p6; zjIj2d2>c0#GP*?^RFhUpof!vf6*Gx~Z*#H3@nREiblCN>ZwyXk~wi zPFn(o=j-^_oLl!z-|j1oZ`42k8v#bvG8~mUdXw z1w5u$rb!HRFD*5fwn%m@!dz4NPvd708Pe2gkms<3`L-i}p>X8`B=Ymu@t3rXt+}6W zk?hR{(!@eLx&lpi>hyca$(k){`H2*MNZ(djwl`2$x)r0;Q?PSML1*yZ)fgXD`{tW^ zq;I0%&)WLZj|xg@S#5!enxBbpmA=gWe-aZWzQK9S+ z(%n8m!rK#e%L6P{R?mO~NACC0Vp*6QS3^z7hAilG$#>}g7 z$1-JL#L_}*o7>sYY&$+N@?7#xDog#>YaY z8s#sOeTGbp7=%=RHjb=$W(GonMQ6_pz99j0Hj|M?(Zb;25YJRvU;gN{cgB0F zgs*glnu|{cUMgOz*D6zP$%(@8c;tG74HRA#%gg6sovaB1-mx#5p8n$v~o0Fg*5Pv>?YM_*-bv>>)9=3@gCNeN& z(Bc{zq{us#pu5tPKcM{(=50bdjktWt(EXjO2VSh$iYbs28OVuJm^omRS6r6F=I z%%yn@lIUV^dyQ^(Q*cJ(0n=zZ>^g{MnuV}R+z5Dq>T_r)0?wPmHDDW`v4fu!lZQ8v zlMM~89)dqn;#;HTNzcA5m#WE0UbGPT`ZMA^79i zC$~_%#yAm|dA5g8!6Qd5Nd*)A5GthBI=wpG`a1 z5PXT`?F;0lP$Y5h)gbr>$ZkP8Ol+UIg6cg5{e`bkd+~6e!2T0m(q`|^=uDFd^v&US zuk4@OfxQR#PQ=sz=Dk=EZ6QAYR{fXq7>(1R-aGt^qJO5Dq9(?($#WCv69>=yK4hYN zX&ok}tk>)~44+;mZ5f|TmCi;J8dI?WRdY}pcKY)KACeSg7v0OHlh^wwp63JPI4o7v zXmE{~Mbr_-^-PAj9oJ|@wHM3x6xmZM3$MinBO)3GV1x8{UIikgR^8gnu702|= ztsd8ONwtcuK`@?uCv#P9>{O`4GKV-I`37M5MiK*(bD3n$e5hE-Q&LY9&XuL)nL@%S zQwqmjc8iwsGOP7$iqN>t-BgD6cYd+sFKaVs{%|c0>NK~>ZALG|6?6$^E2?0R(xkCP zgaNbQx~RhrC{Hez<9a*ljRIx1JI@De;EXc4*Oydd4ZY!vIL-s9t!RqmxYBo_T%9{; zg3s{+`R6Q~R>u&p#TRg8O}>L((plr^JFml)=oc0IlIrei zn$3!qrZnF#f8x1wx=yW1hBZD$P&aAAbH%P|W7c$}uW2-?Hi9F}q#LJW4Fm;g7f}Qb!3+x&Nar0g`6# zE`48(dDN+Vq>iRd`j!=LoANNMWz>4WJbp;ZkrAeEgIV;(U?W?ZV4kZLYWribTdG5ATK@s;uJIa}D{c-8;h87N z@v2aOHe0I#mua41zL=3WW!R>gI&!D5Z@I}hfiYdAoE5TWf>dm}8Skr5a3x|G>BgSc z9w=|Ox?rbvj}aj`H#F|z%yel4)r&pJD5_Erbhs$WiZyI$fyA8bof3xmTJAJEBfpbZ zzCh2t=^Hiv%L!Zkn)67NW%!TS-+x1Ms(w0p5(|k6Ki0r zA)%!xvnizNPZ9kg_?UJLnpCRR8HO0?Ix}N@Ppx*=Ot53jV>L|NOLbtbXuBJ=D$b*A zzWqI$35@E}AmqJ|XLkoW6McR!G&fdxQ)KRPQ?-al?Kfzj-CmYI@q*#I-Lc zPgO~r+ETp(4`SaX5zF3)e!>-if=0cPA70;$mUv!>?=#o5j&;V#!qjjo z$G6UKpfoqaD8DuBFxukwD4*H!M_QJiFV<-N@fSr^quMaoQPrdu1E)^_xWy$IE+qtd zLBz=xP*Ph0qc<{SPsYqPRBIdTvJvwPk~T)I`v7rEfvAme_*x*U5xH8F?kUnse%9eK z4#aRb)E`c$2!y1~Jz^3WDqY!64t8kS;%zJ)vLn>~Y2+#yU)W`yS-Cx$kZAo)$erAh z7|`;B68p+Usg?s9qdE8j1sg@y2-tS1<@`H3YU{Znq+L0VSk;7HpCnNf?TCeEWBQU> zNo5Qo1Q3~-@bPoL1}`Aw^&UCI`1x#N7Y}@_p+(H*Qbi8S%+J*_sB#73@ixg=lQY%_ z+m;G(tc&>!Dp%U0E*VuqaGJ`@&*(cy{r^_Vo7T5yzk>z>T1ERmg%4Q&i||4Cr?~i^ zfrGEQwGGZs;85ef(wIw=9%5qjEQ^BV?t!__<1$vTX7HfBkVa9_{J zNO-X9FQYL zbKGt|!~4Qrd$U!)`+dKx3{=y11FB{go64)#&&d1{V-#)K>avjpq53=U;raaI2~C>* zNc(;C1q)MMRK!4Ybo#7j=epj-Tfen0Y6q+kxYYvfeiL-&tO+`<5`Bws`yM7xRkN`D zvS7U_i@Qr`g~=!aQbpewO{P_rKxvnOB;RF2lNb(ml7)gpJild?2E)?cXo~{w{4kYJ zcLQ@9YazPCCr_E`8gCI$x>IL^p(MLP!vxalp|E%GPGE8UoSs^5d#61Z5wPM*U@X%? zwur#t@5jBYuU4r+TIWXi)MT#7ZPU1iH4K#n%}QblcP9lwMQ5}!0=(#m%YTu;v0_ji z#-&43=LgJeswt+|x)JSZKS0rj+Lrd)MkBfOZ>HL$++cmT(a7(p&BBlMiniqOzp(6c zP%Nu?+x1}rs6h?1agz@1VK)XKh6`W8#=KuP{xGn=(ESz(QDp;Xf%Nw7?VmNvql}R= zS#3n3`@p_ytZ^K)-(g1QAH?Eyv*#rHsWrN@>7i|4f$^?%r8XV()epR}*bb=zMKnBw z6GL`a>+sZ*9!eHjXY)9;g6$*=CZk-6-Q3*ao^NpC_93P=jf_q6*0+wIU<;$iQAdC5 zH=dn2S_!eMqYJo)?k}q7)E_45l9VTa;LDzurB`rYF@S`RJM?PdTMSNO=4ClN1*_su z+~KFdM!!JN31oIBMxv)V>?kXAM-eXJqmkZ>utX?WK|8_Ujrn4NibGSTOF+P$1!Ph$ zB@#!`DIsUf*zJ0t>n>L#u~Wo50~zu=Kwyg8s-l%U%uz0{nAGcQB&n_f%y3HKur1d~NB>ZMFw4DyG^IEUk!AU`=6 zU1s>%trKUVg^6;gqW!F+uBh~1?Z9KO~06U~hpZUz%~X>SiM zu%j6G(c3OGsq>`NV`lhZ8{e9PgqIYZM-^+Ty+eF(yDcpSwo%cMzueJ#-bGWr*{_K> zC9%{mD9_3Rh`+K+hdSvW=eQW9HeXWIA>pUcAmV4D2j--k#=H2D_`&Zusj|Xs9`9bo zY-d&8vsQ`x2@*$SKnfA6&1}kU%-rQ~rfc+AfqK0oreTeI5ogOEoDaQiG9DDTBAhng5LT?cF z?lwm-?cy3$bq!>zmA1|Dd})(t3&p78*GNc1d&o6;y_i&E8MYmiO1b6ZOn&bbhg$gc z)>6v}MnOXP2Wo->TkiXpI>i}X6_%B{v{+) zU-$&?mLT(R0=+H}kjlZS?VG_cPQ*1dWnIu6s3F<|4T?k>WZ%UcsEz0ka=6i7Ar`8A z&XAdCuHA2b-aEuj3FuP@H}75x`$<#=fxwh+z*F}BIqGq7K!dD{6_oI9uBU{#pNEoY z&MxLkD-OZYhSGFJ)l?OpM&BK%{P|DYY8lA5x2cv4R9s_NWl4=Ka{XId^vJ&NL4rDy zHCN~ye?dOHFVt;x2s7Uw@4!tT$*G>8xh^^QL$kMUxwVR=+XGiStW`;@y=20oi7Qz~ z%9E}_L0T!Fa(j!$3Q*(ySQZ~uT*Z>6GVc?Ij3+Bpib}n$G`Vz1*UE^JsmD?F2B0)_dKxuB;3xX-y7=pj-74h2;JCi_hPVB(^6hY{~(ac8lPk_jN zJA97!Ogr=UN&|f?kV=VXj-6wjLt))!GrQe*7fht{dJ**%v zQ=hWbx80`@@aK7vu=J+Ntd>V2i$>*Y^)hWOeG~dq?SPC8!%K{9|6Tg3sm~2TYPF$7 zEW5Flp*CYj+sQpv+f4eJOzZ`C?|;Td^r0b3&-c^>^czwApV3s@|2a1PH8D}vv_Ub( z@HTOAZr-E;&!tAuU{C13a@KDoP=*Su3#p)yTUD^)A9r-o0Bd3#zn~V6yhZ4|4NGzL zr$>a9kaExWMdK$Nf=2f7qbD4~_zHaU+@6vtChHrV^4#XU-gV1P z7X*bFCR^sTaj@w9U!s1fgbY7a_3;Xhv{M-K!!$gjjURzk8u~XLa5XdS*89eS=&oBgE!VPC@&pU=BeP#SqW}v=bmXX2%Q`fJVRw$ z=F83E^)s4T6g`_7ss%3YH3;+XnL9-4X`*EIO+rr>wP%6FBmIU?X*+wnM*CZGj4AAvI;#qng&D zw-(kRkCi=-K;^LYAR?l14{irkP7wmS2Y^sGsfE$ayv^TVQEfzN|WGkA zm`dP9AyPQ^aT3C4kSFGFK3kBg*mFzzYS3Xj*Gb5$Ii*HXKBmcID0N8O%3Fbxw2d5E zQD1-{hrqtdB=ukmX`3d(&^eB&|C+ZfB8pFuRipcEhauH5A1J#Jgmp+x=&?zy5aMCypiA`aa3R6;2KC*fcE3vk#|E!w(_K@v zec-h%B~$q0ws;6Td=}h)QpNJLGySkO|azBcnf{Tj<8gA)~wv~)EQuK~2 z#P;CQ0y%aFpNJCt}mgq<@;xJ;-S~OGC*v_r{57rj8 z%cN4umHpn6d>KB{UwO1r2Pnwwm-nboo`KxDm|VwiVP&GS>V1|yrholq9cRZQTBVy9x=!0C64 z-+NRHyi1(`1GeD3YTUWhxJP!C{Z>MpJBE&sYVO!h`><@W^A_Q$Y@rFAI9llbo;Q33 zOg@xWvsCJ2sIX3{ELF!oP`{H5xX2XQkKpH5`^!Hym6Mow^Cgxxm-aqAMJa@~hI<6N z*GgaJ@Fm8vIN`yrA9#B5GXU&)y7Dg26u;7}Z(*@-S!8xJAsuva|9~?d_rVa2lUn9A zHx>Z?6cbz`$Nfs2`>PYJb&RgelqR*uC@#HiZ54yj-af~>BZa^k@RFZ1N0`|4aczU| z@mShAjlf&ik6&xgYslzLs2II6-7S$)>J9;KGGtj4u`cy(aYsDy=jGn1S9)GX?FfJ8 z;s!Wl|DkJ^*&lk_&=Jhg{L_Sv2ig!Uo;68iD!}hPrW`u1oxcw%D@sq6fWAKfK zH1z8w=9v4y4c=`_IO~Cswa^9{)uq+x&KY&~>z_q?yC=WO0`$j^6{!EMXyg4iMO)lP z%-G8IKj++mD(?=OgQ%ZNalg++oI`X&@gZe;Lbt(?$?cHPd5sW~4wsx^nt)Fmohmnk zk~YfAcM4`^lA2}`1SBQSA5yyn%*kc&lfrvtAObNzeLrU?tW9&~zja!7!11~q*4>?| zaU_~W`?b#3SE~+P_nE_2>tAlhpgotal6sz=dk4L21gEd(F{ zj@>^*#&Y1r|0pfpi9KTL`OD9;A~;k7&>~unr)SPv%_x`5B^Ie;{G*S+NNvqN5V5 zC`%wz{z_)+BIW2N=V7AW8kGd8}jMiYMQXFX15@)AB0)`t|7yPP$hvfG@6tV<-@U^g+q{Z7+cP^gt6-hx4M z!iFH}qgpi}X1T;}&0o_R*6Bgm0)bo>f68dt->W3q4|dKh)sKtmcBFwuoqUQ#giZ;c z)!>Z+0L78YYYn{4QL8hD8ZIksPJacN`Nh)*Z9yMN9Q?@05cG(=3H$ko+3O$X0+2{& zb_&wUVJci?P0?}Q{ln*EkM>;0}Vtg1B}P4(`%R1$jx7%fF}udPmv@N~w5k-Ab+X zOm&j1g5nK!>E&DZmazto5HsiRXiSL{N$zaXgLQDyFwJ`5ZMr`Mmsm*r}GBZBIr2V`@e2xWW}zMhBDrTlNYyKE|#wTxc$ z*OzbcL6#G9GGlU+X_(P1PQqY=jQ`B}rqMdI1%&_G` z*>_2+ww1PVWquw^P+>@ zf0~>vQdCi%u93a|cdC__yrGEk`xkXE52iPsD(mqJK&O@5_~xS$eE zbyu}Xf~N>lQB(KO8#lw;vb_so7OL6ArVdMahYh(a*fiqe8oj2C{Z~3v*3f+cdxfyT zk=^-K>$bm*p$_R8=p7M-UVByc$?YqaC!QzzcD!jn53D;9VR>Q(KoI1JCbv0?rK1eFn3#ZH&xD9z<3~4|>|e3%Iz}>ptT+?e5iY zXTxMDoxbsoC_H*cMajmMI~<6D57ZBdu`i9!8A-%R@4N!WQN&0^Nnt?05xd3Z@(XLQ zOsOVMSddZlSjTFdkSX$wMp;_CX`PEIs+O==FO<&Hj_`+oj_k4!zB z2g& zPS5PeT(D;YbWcyI$Ne9)TC~+GKO=5jQ2MoeAof!RG(U3mk)mgR|R+m6ao@9QmoK_h(iZIEKY+ zRDn7rTU-buyHno&sAtig2y*$KP;Q83)L6N)uBh#>hqicO{#B^m-fjqyb!1E53J9;? zl{oI}Vc-}_L#I#bnO)?w$TvJI$J8`e&EQe!eqFf{7yk*U))+&2!B+LD_rs>wlKZ%TF$9ZiO5I=tG!~bth$3Iju|3#GZ&9M_Qw>LKYMh)B) z4fO#4V|!wGCu1k$|D@VoJ0Pi|a9;<42&noI>lvg;C<>taAyqb&hBl$aqmgL%NM)RW zn*x`+ne;QXhcn*dpCxvftMwlPWS>>kQ2%6IB|{M;N}&EvbQi|vz)J!ueBKi71~ zR+itcv0s3SUx;aA^1bz#T_CIXolBna z6+%DS?A27}>Yq1?o%{EmWWCt%G2nr8gaUVEpfUVc?UY7GWR|xP*#O=!6KSFqDv|`2 z-cX}!UA=B#odhwwW6Nw^L?rOI$%#gJ7~aw0`)Xj(I_t0t`Ch=u?%!q_7#;;Jho$v@6=@vdTgUi_(CV4D~vT!x)^mb8>v4d*9XXKM>zq@ zmTTu}`p#-Em{Fw5=O1zo)Z3;B^4xJFiq(b>@C2u#_wWVtA3(E;Kz>1l;>*(~r=}4n zDOPT`s8NaVu{7QMCg%w8)iGYVKkXf*P@wr>S z;_fpV9fe!`b3$>53+ipFeCU&(CcYb;oM16;3k z$$^#dyEa!Iuv2uElk>>%sPzf`4`k48I>pTW8~H)~U&+a&{~tO1AK9F!X6dN3h`DLX z&>xU0IpR-1$kpFZCy3M-hKc||C}xF0;Jfk%D|mvWm2M&+m6LA)tQNsgSMVx54fIbV)1;)=TH3b%_EL+QXIxA+SFlw7XfebD7Y6~!< zQl)pzB+xPNXQ^;85=A=f%_-4B&suLF51OnP@`|#=pb{2L`?UemvjxQ@ST>ssE7_n) z@%b7}g^s5so*{u3z|&eps+9hSf*iQ*y>(`8@r?PQn$9gWyVIu*G@c%v33Uj{rep%uj|Vfb znx4c2m8Kl^qeziO_FI*v&ll(enY`@uNo5sng`DOtEJeB-RCas=v>nVi)=*?Huh#Hw zlg|Ff6zv4s1^KRQInwOyZ}0D;%0_zrf09P?(NU39dx9mD5QSg$lB`#fC0A5q7Jddn z*DZ;M4aYT~MUJ{M8K0H+o3!_|-07#L1(z4L%R(Q(w$9rU*Rkl>5KH@(uJTk&CzuPB zV>!hKq3Pv#_=RG(*Ar07o&His3ANe%NYP?wO~Hbzc9mUlj(QW z`sIPLauFV1gPx6;;-ue8Tl1s(As3Gj_LV%wTLtI$7FLZ?c7fb>6oUR_ zkOM!B*bLUNAat66A;Rc#39i%xtlu5>yq3SMHTIUTK2FQ2&><)wWjR8X3~5&ewmC-_ z02yCguqL2ezAvAjD6)Cz6gM@SQ4_>;5+a6@PM!+qkvJ_z)4Z?T&xRstm0l`xrGdGn zUL8=_8#AM|GIlOYRZN4mxZXD_!f18Y$f@}VHy<+G5dy8n5d!Mu0_)C@CDCxEa;1T% zLhMl+`NK`kQYpv&payRUYA`0?R1k;)X+}*E7iy8EfvEyI@JwL&&>;AmiP+>mYwp&R zVb&sj6sl?04v)*Q$3V6AKk=yQh z(uaO{s9vTofVCCYlfVR?tHjjC0T^(t#zfiP@9)%m#b6|7>3D%EG_*BOIT#B_7T3-s(}s)s@});_JoCpmst!GqwNy6BYCL2y>wT( zt8bPpyzXr#{?kdEkSg5IbNV`+tn95WKh~r(bS2lY!_X{ zk9#=Gdc**Is}K1N=amE;vOz|IG4_n^Q7nkhXVQza56tEmb$rF903YagO#ZonkzMP( z1i6IfINdELCKDnilMjLC63AAoCs0j*Ih)O587ruXNn$>t#Rq1`Z^Vz;@LzZ=V-hCE z%j`tkOF>p$Uje+5)jouALR^fFeTv3g5eND~D{-c^nXdF>v#!GFMQuyq#rdHqKF8S3A zlS*f+qg58;YYDuy!U|nu&F-wF!%u;6ciO64;86FFU}@sI-@s0}`?)cAN9!fD&6i8a zfdjkHAkhYhh^nURjBe(oFatcpS<_8q9_9m*!KN-Do7zUtQHU#*y$smL2J35rEbaF| zUTQLM8pVTGg>rj3Qa=7GXtaGM=Zcs&ChO@(w|dlH$7*MpZ#A>@wRY%Kn3j2mO{8f7P+2?(TwZ>R zI+|OcC@#MKB(kq74SGn*`OLqUN^d53W-q-p5^9#zZ+WreZ|$pieFFTz-FCZIXmeL!G^ zJ^^LmgaTe^$PV-k{%|Ku%)3m4*y^A6M2BeoX1)^eNYvq*kRDH$(07!!c6uVUJ)R(& zc3b}mNs_Dh6BC29YnA?Jdo?)ar@dS56arLBAD&&S{7!tRi_>j<2)zEEy~%ush+LQl zYh=;82c$@+1KaD_*pw-~t9@?Na)* z{7~8YAYwqH;0fO;k)M>4BB=#LP#70#sd2+VZ^A5h(ZgeC(eh)g>ANKd6tc=l_npUa z9E~G-_RpMOAwE}dZYKs0AbKsxRC51Z+Oqq>H$*?$-Q{_1NZ~in3{UpIu|1Buab-># zX5cl&4uiN!#eIKmh~PEH596Zm+`1k6A}YDQq_b2Ts9%izpuySU#a|gIACvEOORtdB zv`2f=i&L^cMUD6ah=5eX_hMTo5i0#~eX9L*@jy^39f9FSxBZ4^Pw^tk*t~ubfVd}K8}>_!P_#U<)&FPmnU1P-f-6kU1A*>u5JxHtPV9rrfM|NtGwe{x#TD| zF3n=QiXuGs5?uw$a)sO)uol(olHd&)?;&daZmW&CWT;KPZGwNaS`HJP9jHxbYmU7% zi5g@}*7GQLrQRn6)SExlfpwdiE+v<+pnDI>W9rhDbFKo;t2UOj;kT(T9`}^n*RD># zWaaGnFyo@P@su<&CM0Oe-BK+o@1+im1-OI@agN;FONaZ(51(Of9fuy1IG5kk^22Gc zzuT2@?i4&ZwhmACjPs>tNeW zuw4T%l2^4d83XOqNDN^fx64PbSBxd8)ZxebYB7w{^ZsE-F15p9X?cInrZX?P0)H4O zD>(^C^UfY34rU>-_MaqPDBb)N3H_>N^9*5_jfP6@X{3Qad+A(a*5KDM^0gzVt|uJd z+BWMiboVJHcWALk-6GNjBrTRF$Z==*=)Qh{TXql&m4GjF@4WH;qg}ro+?&<>=B|05 z|8HAxg8!yn|A+KN#KzuQ-|=7DZpC!~wla$LaO;FCm(09*TpTnLaiJZlT?Uv2L9;-3dAG$H+j3!DOZ@_b_JX#Fq*G|-EdXH5&`S=qH}r6 zRCkHz^Zt7K^M@^>uy5?Uj7hgnW$Ph$RJL8`M4P7F68F~(914W*C-D2ql+wkSPEn1+ zPC}?NB)O&Pay^NqqTa;YGl(S6=IWdYe~x8kkA^mDJ-a~R$0Mhd{Fu!Fbn`tB_qy`? z3?f~HbEUyf`yw~#Oq1nQ?B%-eF?7lJVVI_qzw(iUv<KuC$BaQutROn-nf8qf{j&Z|xYZ`d2m>iW z7@PAGew&OncGNI95(ZMG5}?|GqCIY03lN#o5a^HsC`D1OJ`-iL0gU9?T;UaAR7l*= zkr%$51mRzIkNvpA+YK(1ajMl;s!dkgu-1@4xQ~`6L!xBrakx}!2QdI<+mEsyzA_@* zakbf+0A*Z`IQ>&u#|PoH;tk1~>m~BMLDK$Bly%FCW3Y<&7y)ux|3t%f1sAAxpnF`^ z`|Ro8h^~c102b3_wtbO>{6TYPV-VEs(nTtzg`RMQyHM25HeKgFp@Qm68=8tKAMpq- zUrS85WKnCjjr0Ty#i4Ws%dvn25wXYwFNG(DPn0)8+q5OBRMeL4f4Eu+1E_Cr(B(RsXKF9r8;|lRNflJCzWChJ)wERy@m9#;I zgxu=k56sr$%7ad%4npKJc|OM6p2n!;`f6PorxqMCMAo$AF9S!mw|KCj-}k6^skFB7 zf&iu%1CD!e;=&|Gp8%1`H%J#OHM3SUjVjPK6)dr4t183{_*_Y#cn}#@TM8f) zizTV{dtn-s6_Vn2PZMx0xj@MZdv(zkpzIG&txb9>&q(l>pb4_qwv=)#tkU3@8%XN|R85GYn zd+>NdUTHa6AV6{yYH}@1QpJKW`UY4V!vh)x$#FLIpy%zR4P_6N1-r%i`g}2Jc@(U>4(P5(b}qhlzeoucK@(Wd`z|!WNzx!jU+VH zZ4fH!?GsA4ls%NBlmcpyq|n^lolp2pPMPIR&-$N);31+kuzzT=xxcUfnE}J_?@#}i z*^r8{{Xf*h(&i4|wbjr}*wxV3*75tszwnUwb-+9yLeSSFdui^VHANxFMv~wjTWw2# zlGdL&DqwWs*p@OJQ*oA-rb9sr8&D)^k{H(?cu@2_1;5Qh2PUsBCO)<&s)oD0eZC-f zC>+78M;`4CK>FTByu1w7s-D%a9e5F{?lnL}P0S)a$k3hz>=Sx1RLG8MOV^7S=V(Fi zU={_v_w1++1cQF>(*jVSJVY)T65x1SVg=0$xpzZuK>O>5fO`Gp>Zj#g58>GRhlF*( zb7?bX$Hi6zuaavAYIrQA*<}*P$Qb1)TljN>=&Ok<0-%yCV`>Dn)3S#5o!65Ux8X>I zE?BBd>f5v-8B`1humpt_;RoXKq|y2 z@@2okg$39foiUPNcW+o{XaBrkPxwmPkYQIDuX)X*-?BTP_0>XPa14D#KzMDA4Pv0w zUw1I=>0fVX7Ehr^iU!s_E9zhNM0$o_hqvUub%#0cx#YM_&1Ujj(sVf+B*t^Y`{hYk zM#}IQADY{g@Dg+;+hpykScW;d8HTlEVJdF$_5(LMg;^_e4qhz>JjAH5?^>4RN8&o( zfNd!7F24u=$4bqf@}>Xy9nMexg;v$~Z>s1>v0!48_y;PC}XvRoary&M@ey2nL4H$z&}6e{ZVNE*Be8 zZ?7+s(UqHgIa~vq+A)0)QSscD5l{oyjZ4T9#|fvjH#>qrGviQ(yKiV(?5-1uj*)O zn~+Q9!}UVED1BOVwPk!FovDJ3&!oC&pg6V2U` zKHrG}Tc}mJu|V$8<>;Z(XN-%Cvg*A`p@5aW6QC_?rXLNT8hW2gu%K^~tJ=YzFjfM8 z=;=yqA5<%0)?X*+D&MkCi~&U3ve%JY5gi3aPfmoF2Jzumpua`xE{nbDD30+jnZ_@R z5J@adND3p&w@+oVAxVt^#%e~U_Z z07jmZm6GhHBl|0&v-TL`#HzDJOzMo>BC~)2a4i5GtPoAj@>1J{H1Y{&Sqc!_JIZQm zm$uG@32pD({@q1(0O41+An>a}^!sCgq$pjXPfG^!wGK>e@SECGI^xF_&J_&K#RW&+ zylBNBM{rD06&2;&{h56re=>Gwy|1F0c^&S5;Y6?tP zmqq4B8S19^eVKq7la68&Qeuq=<;q{61A$T*2ddeFvEM&eRU_v->Rf(1eY-j!Hn0#P zkL-2Vds6NbaXYaZS-`)~(tgZI*8OU7G*O`I)A{~G4`v?duQ6l2PJOwG`Me_|w#eYB zcT#J=e$5GH7G@xV**0AkMrxRTwK19s>qH#7a6F&cZdFgu#}`f!NZ)fYbQ>SBDmgU@ zNE&)E^x#ItpNaFq!HtQyx!JzDs^dpZCG90s2M0H8<^HBxV<^Xo>*}17)}&66s#>d3 zgViJ#?Hr0!4MNu;3S`ffY_9;*Yo8MU@wta|PQ9+Q&IHhVn z)BI({{>ITtS-}O-C`d=lu+0`pkXSPWUS@JR&4_guXDp3r zt@T)YJjp00<_8;T*7Il~5|(DSrT5?)7S5}lR;w2*dHnaS^1e-OWoM0*%JbR`DpVU* z#YRdhFv|+;=*kXj`w;tiL4sz=g0za=olfNv$2;ua=%whR3)?c3I*t~A(Tw^8FUcCZ zK}a*Vb(YQ4F!{=~gT?3TbrjG{?SN)M7gnM0pH6JKaN$YH~_`xUZvJcDmc=ZqE8wKBDM2HX=I{q9!5 z5rP=S*KEIm?nszg{dHQy`Crlc>!Rde@#5{_)n6gmUlE%R(Kq6=Yl(GtfTC4sH|OwD_ireSrOAjnLWzs*m`NZ!?hpExrlb%eE`G5)Tzgy}9fGc0zkiOCDqc;bvYSq2+;cL1 zpEZ0pvj2llM}-kX?NVBI^TMX0RAb*-jJJMHRkfSYt4qRB4<>KALQ6CCs{El^f>y(> zsJToW+_$k66k0M_WkN?IO*2+mE2A;tC$BXN@N`DU$3|F3U!ZXzj2fQ5&Z^VrP?3bs z{GNnvz3NVh7^6fZB_-9MiP9kEiQDUIt3&-=DFn>K-bO{nhCw*eqOhU1xVfFq?uJ~Z z(4Dh(NRn^j;hCQ4yBzo5A^hDa?k2{X@8WSdUeu zZ^;;LNnKEG*{+)LH1W(VYMNF_Ic6D*6JBVh_4kSLhP9d6sApURN|jnj zTOE9si!Q>(i)lx18CVzV>sa|kG?_y~)$&iOlzZ;VN*>th79WYy5@%U6Or^%!4vIA> zxNl6wRk`0H^xmDS`?}$pu01jOs83%S4Pixp^wL7ybdm*OU0{oswJ`xBnaQ?ZP37h> zU5BRT-ImT$UAr3grzI*2EbR2oNSHS^AsspO=xuk^iYjxVUTg9jmddK~EAh330JG_O ztmp;}&Uf01`$Z*dw%JdWb47E|1g-GS#Ki#(N88Q{EGt4Ptn=8bl@Q0@RCIL(-hwJ# zoy#_lw#qxs00H`J#|fT=AQr{IWnE=e?S0)q_cVM45)x@xHT1MRCs<`R(WVF`GpEdI_a+5z2IeO)BJT>^*lX?cN5oN$1$LzNZUC-xrtI%D3yV%@ zs@V^O;LeI)Q;p(@hDxmsxpUhg`-^29`3A-$m!euN5Bt{JYj15L2c}VrKaZ`Y%I_9m zEYnQr5Deqd_O;BS({p^sVR7Wd4LzL_7n`_YAiAzs3a-jc`y|v3du7Toi66`qoY=k% z0yG%DgsJR?4BL?74ujiDMz z8{D6lQF?__VOx|~skRkS6iKT=Q*jaeEX?-Y^NgpZv*}nmC-cwP*H&M>u(V*><%oj_KDRp* z1hdjH-nU>f;P`-JHnP&0Gl<)O#ajVlO{0S?LY_^Z(fCw7D;5j~2av87f1rz~1Z!eS zg;?deFF9HcHGAx^wDbo^u_c;#n!=Z(tZtv$vRcfq(A5JFw~l;0aux%aFhm2c4e8zn zq)Oo6=`ftB{Vk(!a=@GV@uf$6wXpQT{Sk*1YChVO%WcO`YM@!2RlIosqaSTS%BP8D za;hHlUQXqtndYp0+>O|48#i_h5w)}+ai^pU8A-mt8O38(k61=^hpreve?aB!;t&o2#*ER{;MeqX2 zq(4I&r!NThuqZA4n0k5&*0BL9ttsv3is~kmyf(9-rZeBr2F@`q<%+v?(_?9iVcH7V zY_kLF2%PF?2gm&saKDcO-wJY(a`hvf*zM$_(k$WVxb}sw0Fzbl@6IK;%N=Y;B7jOJ zW<9BUkLI>^CayBekTqxV5ye4x%R0VyQ&oPe!%|^h&g;RIe1I=l+;m!gSqORoQZ65g z#>*?>p#Oo6WDdVnQE{t6R#ZrWbyEl))yHWzOqJM|dl-5m>W%@-{E7WS7W;zMYF$>( zlXk=XTAhF656(jtI^oZ?X7Ob}$3RfW;A7~(T^ioZL4XFX`6XgO_@}?~TpsyewxGQ7 zL*@kwfZQga6ZeXe5;1Rx5!a%!mI?N>A#94_XN0r8?u-k*`J0hT$`s=egGmtjV5D~3 z46IO2gz+R$Y)FK6cEvdVz9jkKg!7ECu;B>Ab)fYT zVbjd|6zIrZkYuW-uI9jpHCE(ANsCeF@v!o?d(0Qi8X!&8T5Cx&0Ecn2zM?~29FmVU zOf87}Yqj@8mp?#b?0{<=t%ey&w4dnLrE{E-nQK0S?UC~1kYHIr_oIt zu=3+zSR#*Jf%7rENG)bK1|~}Q4TKr{`gF)63`8-K@Mzxm!3@9@$ZG}SW4RsSpk)lo z$;n9%{tVd&M^+bw3RH;UUNX~`m=AC(G;$dIT;XC$)fPZgfTBX6)2}UbI0@ILx>zA# zdBGGktB%~`W{y<V;cmlKkX)5N%bWWM+Sg;oT&WQt20-haF*)s`8WYm%Y;0Q;V*YWtI~HeoB4G}f_b&PqKueS#*jk33N|MLA7X zNi9}8BV9Qy-H;B3MXQTqaV5St4#Et1e~+V~3j5ayAb?;~Ua_q$7l5noHD~7x+>U5R z`Q8bMT*15@R z(vC}73{Yu8`+C6Zx8t<+PlssDL5AWji}M)~)91W6C+Hlp`};k8wG z_Z2S~!LZdBX@5O2{hTaHFzKf7gwXn6c?wJFB$72@kb+S{3%4ir$mY5x@FS1hErsR* zW#*7p*dYFZ@}gM={Ajhawq`1rt(ldB%EeW~5*udnS8qgc##NrDfOPJuEG6HHMn-{s zHTQ5kK7oL#pQi*5_z0<}k{saN7eD$5^psdng-x77=95sD2$d|JR5_Dg)tOw47}}`u z{U`R*cRxlXqZM4UI{CsM@*v}>58YBX++^`mUdDofES@!33v2blrnYWs`U@fh<%D3j z!*bkwi%@iH^zoip1WCfH@7$>VPCjl*88rOu)o=Z>z?^;lO%ST0YlyD^I)vBX76?Da z&3W)bPeWyqs4zA#)Mhe}nS0Wsm+ihnR`Aevhbqms#!D^zi6h@W_gE^fERsKi&jT-!@{y>B(;Uk52^B8FQ?g5T^H;3PGcHTcBd5od<@J*;0B}s z|6X#>k2XWNV|+&_iT;?vZ);V6|0fN@vf zRT6hlPE0nLqs==eK!p~9#{9}`u_L;xS?ffO6bD&1oN*oysvCkS==3}R1jr4 zRVOJd4#M9JwOi4HsQ@krfo~FRYI5 zooWc)r9`R1D#!+PY@yAaM3+R4%m$fA*- zeDvsYObcM&ad37=cqYJAqOiaawnP`Oz`&dm1{5a)9j@id%^N-tc_ptPsj*Zr{|h3T z_146q1#Qx)Y1Dlv(u+%R?^Nn3OjFRfM`iq^Z4_U%Y>TFPqO_9vcu@@{QUulFvQEIfyMSR^$ZS5s_=| z%6_WsI@%m`NAI!Tq_;f`%5vEBb_H-#E*d*|CU?1gyRo$dZetDF95wGIoqcK_yX0uR zcAlsAUDsYbvc6`1RFQvzd%N^BgOc(xBp+2e1nkpjg@SIul6EJrHQl|-mHMBV+=0(H zq}A_CZ~pL*E61m)xgCoDl+ZcM)FZ@KMgK{N7d^IrTwT-?HLVTHTCpKio9GV3SfS zf*X9$wg{R>j13h5ZTJO%LTXPHPkzApB(vOm{QSYjN#()6+84IB;g>hq3g(kNl%J1J zEN`vt9~jl4?R);w6{`g6L8%O95KxsSzK0&X$ zF8zB8;c%@V!unfb)=sa)&PDW>RQRV&A(R=DxF_jXV9q)ChpN+u^|DEI)j;QDopdkA zaJ2w=VfnN2+)sy(l?#aC#NspoWE#hOf#E-u>$_k8_yoa~)*xFCJzim`EV)iXsf|qM zW(&cGAtX%aZjSMIX`MS^n(V@nUud_8Q?yrXs&-GQ4K#1+U|h1De}0(^Js=!c;gCVsL#30VJWz~kM{}bETSpoe^5k?d8Vlh~9%xNXb|F zR8?$>hG>Im*AyYPs))G z=(oq1Pc8q6=ax5JLGEwD4yK%9MvOqYzXi+%pN(frP^^%Z=Hfkh^dr1S##{8YN(HJ4 z4CNIKBPf#?SB%;fk94@+bizdDF*GMY`h~#5!zx77RRRu2AkXv%RGHTXSRP!A5F_Nv z-AzTgQ?jhB!>HcRXO zuW|xFg0l}<1i0E-K`g3)bi?d-u%PJ%@hyEsH0Y{%`%OVzX*(EsQ5CJNMJ-EZ?NNDM zk%SYmX4}}9doI4{g$`k1&~-C<8+wm?1ZD{)lU3xSnn6Z@I?Cp`rLY$EUNS%ttdrzU zMKvV9wmaM!+q;Mw0bdl+pFhedsew52e}2%wo%{852!8Yu0nlCY(2k4}_qeW_j_hQ6 zK*-M}v>j*95TD~O2% zKxflh$fDxHsVCb(R6_7*$o52(Npu6n7p+tZh|C5VQI?n2pIew?tdkySya3z_2BVqu zQT6m=_lkBFZQyAY+L{*!@#>mlpJegClntsyxqcyRq?cLdx@5|-M-L;C?Sl)w(!6T&%)h~Zo?qPRrH(>tjSXNQ?>=lGC;DLyTvX=a057;s3+eT2^@<9A3a9cLKJ2aYWPwRwXuL%BnC?rRMNzMgVSUu<#wj!k%}-(Api z`SFZ22mC9(99t7o>el}yR^&ajHv!d2y1aeMROzi8xzdHucZI~!7pLtUfp;EM3da1| zXXbA>>93I51>;S;?2qJV5)UM=o7w%)O|QKRV!?J|cEB$qg7Ikj)G%x;X^K&d4N~Tf z@fUN#NZFr(3zhEu9K87+{>%?7lI|(u1$hW#xMUXgZBP*zMzjxuNJQ-7C36Y0D#9=Z zBtSr&NB{U_u{iD4_VXt8#QsGE`agAu&EjT*Q%oJu&1 z&t!*uWFdAIiKtldlRSYuC|vb%6pr*qX4Wbe<1~98dz`BqC!w5%sRT?b3;+x}-e&3A zB&aaEo5P*G1EooFqDle*68(XYA{WWiyn9B3|4u_6eJw@t&e*O?gdKh^!Gz;y;t%UC zICxHiV$dl}Ye7AHqftyecEuf#H}wr$(CZPzK=wmo%k&&2e-5#2oz^CL6%&is?H zR<502etSLd10%qAEH=&3o_QSS&ZHw@_RWd;&?<`RcA%ApJ1nF(DiA|OkYDZGym*cS z0rC^4L#~u5$y!0Sji8msu3n`6T1=%#8tq`e^LyIHPKGJE^lT8=dUX~XPEvzBaR-4YEJi|Ch> zzuyBGY%1n&4m4k$gfA#)F12WfL}{vLheS`qwwMB}s6#YSc9aSGXa`-YXUD{S`@k!=*u42$7mhv|(zR0}PHuFP3a9WanIOdz+Le>BE(+OzQ;IAAMr97jdL<6b zdgTtRQRQo><6bRgUf4S&j%^v#6>}b>(nh#&rFJ-!vPLusB@GB;3T>;BLzi~o*FvYV zESi7?r8i7Y?oF8)xw4S2M&O0hm39P`+`#f$CP>9MUESN#TRJz+ykf*NoZyC)f!S8Y zM;nFCSR3t7k0!9U+PPBjV}XV@37`2^7O_iaE76A~64&0h18qAS%*>dvA!|Ew64mCu z#j#;Sy!9Oot6KIS3zIqqcO#JZHmIg6|33do6RM5Q8bHg=&dY6ck=iPNk6A!Rt<%i> z!Dej}(3N$-dtK`v@_4sWXqPL0n2*{9Y#hibR>VhiHH_&a!oP2__FuY!fQ|!p$uI?K zpi+AK`V<+z8dizaMrDE_SkRYh$!8~vDY~U1AlnhFRm3^?jJ^4Gh=C}3bINC+2ZbCZ-E4~Qq>mknu)b^W4UE7Um?u^|4vNWskh zl;q;p05W;7LYTS=LGQV19lzR?LZ^k@8PE-Gmf7i|HeAmw|kqcGq8)pel zuVolsmtNWTc*V7y3y@0I-=q4Y@>f)P|fs1BrKJNCf_X*!GrBNyhv2Ft%% z2vxTik9ixkY?O_oW`1zY1kAzT`%fPxdTC6HK?MxxG}~3VbtuBjTNcQLX9gHoULuYD zohGY|8)M{IlZbv=lxP<^VC=53nV4gTNz zfYtM}R6Xp-tWJSi!Nxnt6LYQ^r>uCUK${3&OcPpblDhV(bN0V|A=R5&kztxVlkssE zw4=>u?v6>iHo(t?O{}kk!l8DFBewxZS;9?e!^jx;XAaiJnazhK$k&b&L}8hamu`h; zM)u_tN_-?Kuv?~jPFUNm>LfQawYLXEQA!nDUs`#&YdoyDu#{;fz1JsL1}~Pcv9UB| zWtEpF^rsUG+ax0_Q58uxoR+I|X4DZzPeF*A!_)(Dfxg|aos7Kq(c!=vy8DP71L=Xv z`m%fBA>H!Vrow{K;sQ2#kyRcJ>}X~GR=wS=4T|xt@@h1E-m-`&fz=wQpB1DZ1Tbw_ zl{kttZpgfngmDd`#>_#}A48uob|i4>=IFeS41Hr*Hdj{9CP>Jq!uh&@BCOlu_ottz zWAp&Q7Jr89cgiW)J?J^-e}=T)q!m~;oNI?B6|aJ@2Z+$bOQv!o)r>4E!oFaAO;vGX zuw^fS2V5X*H)BDk2RMq!Z@|gM6{lT>SJtdB=>rHy{fupt8fuFq%Dfs#sJKiEl z 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�xlo6i#3`fo9+f8=!jYYF|2zm(?bUnJ(Ab@t&I zc8D1)B(HFE=@|eBs3;u9Yr+D%aA_&T*Hts?nWD^E8CnQ*4CSOQknHP3#IJ6WMzm~* z{w|V#sO~*3i^lV9iFUb%&pLc2dAe@f56_4K-f!r>=X+8k%iv7APLEk8umLc#7wTGC zLaj8piX&f=P|iokC-!gBgIG$a;CO6Bf{~YaD<)4Psl1I{R-`f6=V0vOi?8)CGyRoEp@dgoAZpPz?zRbn6G2RhY+;;&DgEu@6`!|D0eqC^jN-|3datQ&lR8 zLGg>77*vOk43*~`0h6hZHrb$jp(jhvWM$(*kRz^dy_h!FH1V7?8R&=;yH#BP_+X74}ON9Dl>4r-n_ar(@zFnyJP)K*{y_Lg89M-=mL zVIH{ghY%g13i=IsP202WkCyx4UMMPS?783>@Jpa6UX>g|7bUZ^%v~_<}T_S*^NXY^rut=M+)Do>VIsURx%!4F*7*3qaDo6M|N#!U}BO8?) zIXaoi{j28WVVhXZN*QArJB_uJjuYJzOi8h-+;=D~(8~VA&<$<3boQ(RgkQ!S&~l)3 zac@V1>5#75pSe%0n)Hd5w%&fF#-(*3BnFFD0HhA9qMR1e`z)8KI>qsK>>n9WFcOOp zy4mubJ3udZjxBtE`J3#uwM%5Bl#2DY@)eYXMixrNc?M=|{rvIrrU4F>0VjJRp%%=S zF1MR;@iNg9eYjHHjl?lrUY{e%K6-7qRC5XNpxnsrt8f}@ARj9PnntL20-!9Za5hCz zIIxj+Id_KV%SPWTf+rTy)SqNm1YV}J;o;tARM+xAa#e&h@VW(kjp1{!83zP4_TXIU zqh-=pFG-hT7KYJ4TBHiHdRBT|i+AZE9V1dICo=*Q4VeX}btt(=Zw6CNE+siwXz8{n zP+i?gU~&|`K>0$PlbC86E7vX;9Wm?O295Vv!U!Ur(7_h}F{#{iyMb1zzDvCcw|nKZ zGF?%=U14U8#6)GAJbRxG%v_D8vBtR0=Dz;4EN(E)GM}F9<)HB~;CsLjJAzyTLvTmK z!116F(YW)i+Q?|~Y&u_R*0{~S*})3AWtA@8{7HhLQ$^U1#Oz7RPCqG~o_mug9Npd> zn3X-#Hs3RNAz)>M<8Y3%>IeRAw%{xGI*VPw8 zie(Emxdayv(P8MqzQLy)_o3$duzi?Jfi^zbzZK?rec>lUudFi39c!|akyv|yX&VNYXwO+8mdJbfyzIHb1wRgEJo zDr@O4!_%o<;&eaZn3tdlakf-}N0}eQzIs#?KtAy2N^`-%s8!0Oj>98?>z~ zsdxciS>~HK-3SN9fsAV=Upr&aFN^^7q+UWj2Kx?i=c>a7Sc00*CRKT349R^KBWnj< z1T{=57l_sd<-tl`2PB7`FkE#`brIF_leNtA^f{*8~Z;EO@ARY|KeiF z6&?QvWA7N8Y1D3EcIHa?lU%zfdw;pp}Kd4<{|l!T?iwZMPe z=5OYc+`Wbx{ctws8n}8EQQOcuXk0_}CHNY)sjUg5hZ~_^EVSyxryTX&|2QyzCG3ya zRI7nz!-#gYDVNwRSxq2K6gSb=k0#VotJ%87Zz=lGZNeF+*Lm3(uz=P(ck;FfhM?3} zul~_Nz^+`=$Aw~ynjqliX zyFv3`f8C305b-~uV82l)dSWHMVU<4Lz+zbr)W;4*r!t~AbV$y?9G96eN>eO@0r~2< z`R=v=ev!alk}0Z&J8O8E z`8lq4?F!i`b^Q#vPT+=5OYlH!>>E5aDjwUJu)sqttfY^!I|_pG{a@K^uz**0(tkt6 z!v8qD|F81F|9ubt`vOj@L%D0KxqRPbVNRQWQcpJEYK&xckt{?PMYNK*BPN)D#nDJb znp%s=8Zsp27T1e1-DfFSLmU+SVMYi;crLMq%E|}WK&GN3Amul)wi!?a1OK6+(UOw# zU#M#h{@HplW!}hc+Z}z`znkhj-Eo?|&vTmPkwf?UxFZ9yR@6eRxo9K;AwIWmaGPr& z9z`ynx;+=COt{9Ec+^VpiP%KK{a4Vr?n@qGlV&Vi1R z95xA7MhrQ+GH&+@^;1~^QJ2{7bI_a`4eZ-2P9wy@olZhg}G zOGc&+r)C|{*mxOkPgl!87%i!>`Vje}LPv!#Y@kK4HM6wZBg81(F?0H>Y*AX{%H+sE zXdY~&@1Y>}X|ArFl&DKpv0xQOFAT8zKh><#u(>!d2zY?n|M7S%8oaS`aJQnU@FMXs zBuR*T);QNz1#AUakfceAXeO=W2x!jfOzmA=V{(+pFJA<=mDB8OobR=J9j!6^>pdmV zNG#`Fr|q=J-FUjks9e~?2}~pzBbOx;K#gxg!?Z0p=SI1>YqxIbH*y_E5{ldnq8gl}6(^?ov;dzlc`mTAn2OPWpAp}~- zu_#s^WybJPuLUqJoxH4$SixhghoBK)J_JYZoKuGe@fw~t-mt{Ryr{o)FChCv+G6U7 zTrLE~MbX5ip>a4uo{QPEVC$?6s1|T{;0NsgOKZW|U_zDRUkNyevluKzu;h?lP}K4t~AiM-ah8sqr@GMQ88e7gicJ9xuEJ*BM& zOcCeI3}IR(&eFwC23W-$8S#JF^zR6}`ePoB>LXCh`@z+q)-*-@&7Q9lbje$muPf@W zFCw&)2!e$1k5J)|(|zj~roC!)thNPTS)Hm8Z+j@Yzk3`fjnyi>GB&$3nH|5eLa z4{|J+XRvSto=E3CQ8GaJmf_SWgyinpb9)O%sm-89xy)D*N;3Z_Tu7yANS0)s-*NiHI=D^XzJvlCY?fhsZufdqUPE%p4rL41}WMz3LOQN_+ zcRe|VdH6tC%TlWyk!zbIq|FhJ7WrnVQ~0sd;v}2emwV_yrkai9%DTqG|7m5&>n;|| z9plCba47ltSXWFFlll6Kmz=7wDq`_(Cq913==#xBYJ^zu`RpAcqk~tL3njYLbDjHB z)~l4*y`BPInmJ0PlEQn-3r?vG^GBh(w6M1{;V02Mh{O=9su15u855UG=|E(r$6SKD z+}<6*2m^(x%tD2BC_qsH6VBmCV#4mLc(&h}_^70jrkz~Vnrl#5Cuw!p;>q+~BgKM$ zvRv0n9h{3qWWtPSZ`6!jMC^}A@zYg(Q;F*{2iw1rNxF5P0Na_`p}1KFcHyA@H!o00 z2SmBMNCG@!p(+_Y`;wk9>@>>X>g&|qjCa3@-idmqj95A|)mt?v_;OS6@*5j-a0l)= zBxC94NBo9XCGS+cbIzy1Nmd5F1)f1~<(P?FZ1CGrZ7VWp@&{#2FO9DsW7l(cxw)(& zO%Fg^Pl~p5IY(yq@`?|>q5=(a6xBV-?GZ|Yw`Vt6jp5-EYn@QEMCbU9@<$qvhQ93w zWdB}1;MrbSGu_?5ga7PjN5mfV=<5)r6)x7}OzzwMRUc`|WU^)!UGV7`fUVb4Y->Jg zaJ+3u9}W;{vb1Z6o6ax_RG##{0&oarG&NooRd$YgGpY_}cXOM3@Ixq`Pw=cUO#vX!w~{<0hgZdRsYT_)P@FQ*~_tWj#5e{cDhr%EAvtE<${{efX?E7uKV zyNgw((!ip1S^ikQ$k!}1xyF(BUBX1R7z3m-Etr!-xm2PVcf-hP333{>r?95%^k71o zRu24HJXXPQ2V;i9c&GOYh`xXf!@(R_wD$-+_n~Goe9<&ylDk&MF71?4JvZmHS)VQ! zW~Dli%Fe}Io?@pHFO0VTcBhdc)B2z*Q=^29u+iab01 zR7RbrBkXPn*Ol>mr(9qWaSqq(aX)kD{y3rv@zuRrxcq!d^6B-p zbvj*N_ zHHe7R>YM^WX8#wXLxQA(bdC$0>Ihe;S2w$_44nFF2i?#ZMdxXaR38=FJ_G2^=jM%yVLvs%uR!p#P z6Nv(QlYuo@mx9{I6U6uv>@9ZSvL}#Zy}iqYxh)qnp^tc>Y6>O0BOG3(%a7BOi2ZZzj@i5XS(8?3 zhTe*kH>5|-97{By6Gv(NGI2B^k1r^f?w+I)tE!FLwDIJFWV9iJAQs1|B#Cqk&_hEDXPKQbP~xp-wms5mMiE@loVIvk28YP}#UFYc3??tv%7-$zs;ax(;dSww_#h)s={U9(4I z^;0}?u$M@ZKF5h**-&A(i>41J!7NjD`{l8eSIbVtl}KZCkp{P)Hhl`)RH30^R=}*w z?j?#T$|>j9YJUF>uqJn4rFPXQ#?W#9K8UWUrA4|fJ?lsRcc5O>&id8n^Ls*VF0i>P zc8B0DFqzPk8q`tezvWGW$n;^V&=lPojvaAs%K z4=WU-rxwX@;C)d4PNq1CaUWWWoMmge;0bs{S2hFwSZ=p%U>MGHnNcFdaNh;0m-n}_ z1xg;*t%B>Uc3nuir~nL{ zpjX%H%pQQo@5G#k);7lRs{ys&Kt5Fg#GeajtW$H-uM{u9D4yjXTL-+g31(%qm)khc zHo5Z6g^+TEsv%|ca$#cibH!xJU&((7pD*bt_gPYjZL36E>%n-Fj!gl;Ejl{ z8EXc*McdAVb7+pXHJ0;2b zasMa1;D7DMleRN6GjaTXgIWLkk1a>_O-XAN^_!Mkg1|WX_{l@!Dl}chzpKbK(x|I$ zsI7q@bnj37xRB@GDL2U*&v@vNMG~pZL6dDNr-hB1#KKS!yv^YX_~J}chAdgexb#m@ z&Eom*oO8|`*LS7On;kOHHUBX9t*1kaudXDxrmInbk8>b4x!_ye@H4h_ zcFxr;MknCqDAgz6x}gSJbONAf>$F!I3K=G+7pf9>e2EiexCVh=MowJPOEzVl`A~-z zB^swUMc}?as*_V}kk)j+e#pzt5$7^F2<5eP7LfyEn+43($?BXZHh5xKw4ao~+*q4$wy zdWVw08Ngr#{`(lj%TxvA9VuAz)D~vp1-a>kLeSUzs?b{N|Q!xmJP4Lx&%;nhberX&{|Np$y$u5;IPj2ASP3=s>PIT)4c7> z@HD_WZP|=TN^tEoqV;sRousa+JdY>s=Vje^qW6~y}eMveIW@#GLe=}tX2Mz#| zgERzjlYGrIj?JIOPa$*3jKd^CT*&MQ^kMNMbOu#`9X19%X(RLJvdIc*N(M%f=y(7T zCxw<!tzF2 z4Lhi!SUL9}5jCE#_$yIZIQ}(dZN!+3-P}~JD9PbZVTKTs+EEo15ko> zZ_Zz&HdtAS-(|fAs;W)*km9+<%_9ry+~Z6i4i%1yu3#F5HnL`=yX#EsUoz zA1$&zib4{;Jh}+honl$kNn?z1TNXH4nvya`nF1|}8fsko&;8Q`i)7}qY*D&8q+2VqIeMC_tk_6}<&s|*e6^D>VYaY=?e zin6ql)J+;k@|H_odDe(L;|}eilWP;rH^I~RS|JH~ptwf0?p?-LGa+0{nc;wHoK9SA z;N6VbB#;{=Wt0G6ySHNjCO7C!{yj*P?0}QWN_*;l*K~&zJGeM9x%TQT@577pI;lpK zhg$ijGdNF}t2DHm(tOxf`8=xbS7bQJe%%w`Wl78??;>MUb;2es@W!}2*C*5>f2_J> zZyM5y+Z_I@LT%J2J+iFS7_lHbsm3~WG@_Bb1g6j2#u)Ym?WU?b){AtGe2zJg>`4C# zG&AxR$n~LDVX+yi36lBUc^CBcv6E8n%<%72Yn^sHlJ7QOz}F?{V;|_jW%ANRrY>V_ z5V}KJjgS8|1CA|q^|I9H-PoVx`oe#3^|MA1!>bOqpN}obRAz7&Tib_j!)#Z*P!qO!<}y7Omd4SPRZT=V(9^+w=_6p zRM_j$98XJ<3W z@r>yB%VX*!f{`@qK!ci!ld%?~BhX*P%2h;b7#Tw@Ia{9I&{DshrfCKM6llqdz;m%G zOU`Ut7O-X1>U!mu$l1q}gIqFgIACq8NVJvMgL5L6G4w=t?+mcLWG_`JWWTW2R2z$r z?C#8q3NA=_xq=|@`_;HBVnWm0J>flw?mXrE6Y&c?R5$3$OWYfkU$%!%vA^~mx8-=! z>d3pKpJ)e4W6t^&89>^cgF$?_gihAF}ClRrYs8u)$T@ zekW-<)})g)S8&8MY+4j+`$PbFglc{+4Z11uZkcf;0<83RaCzm~BDjLifbb{6{L*b= zST(gqsWV~+p)J9EM{Z^@_u|BB;v$CWlKKAfOoRDhp=`SYIX!Valgz)iO(+Shv>-{s zjWg*+OL<|j_|CGuzkV@V%%9b+HZyc-)_#oKVl}S0fe~(tHF(>A7FRfBT>YioUly}9 zJaGCshE&syIRmXWwAZEw+0;UYq9a|AO!=TL}PuA)D zbphI=19$;07C9O|)=>#4X!AMn~VEgOH z3#Yc%r5>?5OsS1ni8}DX{Zoo6C1n!V74BDtP(z~GG7)Fvy{fDBW>7Eewf;aNbp)qE z4K|W&a`@lW2ngOv_bSL=zuXZ2r-A5y6|MzrZS9;5{vWk%3jcC%0vJAvww;PCO}6!v zA}I8L>a&q7sF7gEOv6HmIw&%xZQ0c7N!s-ptS>iiuQ_4Cz=)l%Lde}IYl3nf_cz~O zwwsTWo8dRRUvhWx21X=Zh19vh-(m@#MtFb7^t!@F1x7&jZAKl4+F_H{z>Uh{-pFb? zcRKggUl&9Z0FMSkf6VMZ7O!ZQqX*RK>+po$JTSuU!Gs#OKipcF^y_p?!NyUGxt}aG=XL$N^OaS+LE#cRkawVMIK8gW_c`$a!KQxuKM^QK{U}WUx8ke%BI- zG=*!7TI&JvT%4NLZl*Toa>19_!kwk5>YaEOA_gfdaC(R{#BK-0Afyf5143pRYESgb;9MSBdcvDYGv$jGIvMIc2DI|~zCL>x8GfQe1V^zHfx)1e8AML6P=_v zIa2*frZQF46SGc9X7mI?mlQyx`1g;c*2t!Lv#OPg^OD2Jc^T8YkoU|>j&;v33n@~w zS>Jz6R^2?aA3bJ%kG*!@Fn!bRqJ7x&mSK%|&dlEGQpMC+s1?M9H&ZMZ&W}MAa z_C!Q=Q@D`BO!dk(?1)kG6Xry@H8z*$)wMgsb+7+Ip(rqGVNKFE=8B6v=k^7lQPA}W z#lR2k3urRMOw)t&7%XjD%T8tX1+Y>_<;B1-?v!P?(~rUshV!rS$dl2Vccu zu~AFUGk9&Eik=QRBE@rluoa|wdB*bL^RV5nW&ft0_sm5}GM~x;PKp7V_&f=WDB$92 zt2p~w2;KJ8(>}@aMKm%?XY<&$`Lg8HnGr_dK=R{|7=Aj^jyqv*XOaXNx1mGL3Jx^M z(%qX9@%GmQd1|ckcwS5gI|TCR zk}SiBTLY-}E%oam8*<0KK(3+>Zz-~*iO`q)Hx)GT6you8Qm8~z$Oenh27*jmJa~py zB5(mMq>N}Zs8G?ilN=_n8i-}qCMhN^QLn-1rap26yGl?X)<=}abh=q3G8C-NPl#yqv4WzR~E3TBoW8hKbXwlQ`2qj<%a3HGhMRleulRz z-VH>Fxx=heq!orVW=#2RZx}`o1?KIMvl1qNyYR?3Bn(YgLRS)8PymY>9@!UsuwzcX zjcuA;)eyHoMDfROi6e^KvELJC4aP;y_JU}C3(P%LcS&&9e!XM4xiYhYX+ELRE5-2+ zRzZry1|JwyvjGlKq=%k>$?F_Lh5N0kS8~EfplZthgI%ULnmjW6aFw?d$?tS9v!ch( zE9Lp;-;B&Bjg<^&YAI(nn7bO)Bv86f*4;uA{Gi=p+kxui-C7Wv^>fTJMFiH~MuEZm zO8x+$$0ZlW?`DsX&OC6S%Zn!<-BRvqa^N?xy6X-Z2GIT0oU5s16s1tp2F@`myU%z@ zcCc0}Tw3XCKHfUc>bTEhNY?9{_=YJvqtjrD$l^vW%k}p|Vo94AbyD?wl%vc0RF8#| z{*-A0(V7=-<$T>5uh@+dg)J0$DHy0jX;!bD#4uH7or{x{+!%91^K_M(X*7D2_Us-! zO3O1!Xj0YCJMnfHzV9O#2s|nskDoeX!VHhpa*hR5ec*` zWZ{bF@)~PvkO2_WXp59EQdcMVXdk#`uTDbJMFxuF=-EB0qvU)dpPnU$S*;jiU?e8T z6bWz16JxVb(Pj$318(&J_9;@+hdqZ`+t%xHMDqG;-6+>#&Fgdct@C|jR6j{N8|vC_ z?fbN1LIs8W07{gsOrwHHznk5MW}gfqtNA*s0Qy4?p;hQTEpD?H_9@}@|rCxCaY$AuC0=UeEIE^m^yXlmTZl`mHg zjiccCU1@rPmJ?dChoS9@JAU6tZ3_DV+$-Syvy{^NYT8tjpnwixfCyp_4QFB)o>};b zi!p-LQ;9@el6a`9I%Y?9=dj&LDcX02LiLzSC^hr-8r(o#PE?mmLhl)vaLiUtlBTZa zh*GKHSh=vGFE|rE$)M?;?Y5FshWI=EpdlBn`OM1-1qqBgdlAe|*`>;+Bv37;om17v zVIR(g>JEk26TJCAL#cHm^{;9dOZm~o0X6b@@}=s*R+UvhywVpJ_xiqN51MD$*M z$*!5ow^|0uogs%iG}-Xo`|~gAl%qPdu5!9~y+*nG#nGiXyNDa15QGUBsJA!er{QP(FM2ANP`Q6HZ*SN%i2VLfVTvyZtUN~KWz zONa@2I#AK^i87(NOQwB1{`?oARxysGbN*lHh{ykkAYu96B3Vjyj?VvI0&B4bl(&+~ z3g2nZYKes2ro8ziNIy|{F%6156}a$bqF|FueKmndIl!klAYMO_i1V7NupqX8n4Gpy z$R!w2UWxLWb6~G$n*ES5^5gsbw9SXu`{zS9HMNC$_cZP?*X#OU4W8HY!&dvp{%E*4 zQty!RisiqWGEn00)IXwa*7bATyTjSFG9ps+@gl@5Pn?Zg(t#Ml>lhod-@4Wo;5Q^!i@ zp_!RF&I|CGY~jR+CN2t4qF&4Wbc>i54&pFpLbEg^2{m}JE4}^5V6$=#2#6#qlUgJy z*NbW-(*P91SvRiZ=w&uuCf_$WmW-t;*r!{qHGUn|6=3PnV?m}h2Ll78^E``8P-0<~ zO8(*8qSA~uA&osR3%U(C;=sloW^U0@KPLHB=u7 zzzyw|1{mQw!?xRB_RVA)XXDn-GnZV3cD#?AY;<7eTE=zu1e8Divcm;IYV+X4wJSY5 z0~Lq8R0|aZ8ieS~UF*Gr<1ew$P7+N~{Sm#AMdMZM;Nd_X2$nScEz{>X5nIM5 zze21y<|SL=2@zc{fMvAiUjPkG5HR*j^ysQC9|RRb)GP1BZP?*{S$9_vq^--h zwrSpC4Vp#yV=%#7rIT-NqG&Mo-Auj^Y$;o!bP@9wKHHMpE5l%fK28*-T%=~tn^m=I zB+@*{&!8{aILiex(M__(6oUqc0&h~u6fc{f2jtgix=1w~3ekZ%D2Y^#AT%x*)kiwjY0lAmP~l9~yj$bP#hpzP{U0mi&Ni1Un^q#LAz z)&QK9Q>&0(1jiZv3mge56O(jsbpvbl{`>>#8BGYPLFu<;BW&15s_YF2YsZ}9qOPeE zgN*B(h;zhoUgO}1qhA>@k{%wtKI~MIXxjX7;sNSMHNi6{j8z;-&2%v2A$OmrkO+@; z)d+qBUUq&ackZ{*b6>XcOV6xmrLpyWo{_n8wR6AK8D|@bHUh8S(YXeddNG#ug=dGr zwN~}~n{$A3M%J^Lj+dD)_I5OVsMHo!foR>bxeY80L*R0Rw+0VCDOUVW`uCatVzYBp z(8^r3bjpvPCu;}Xu&mVDtq2^Z8@JEjG7v>kx()q%_>M(^)FtJcOi-TCNGhL5wIr@*F<2g}m zoF)al>4;08Cj*g>b`8(zuOQcWYcj|bX`guAFdJ5`mdfGRX zloqvFU>Yk#-MU3}R5^DhNOCVG^20JNepBwhlvesq?EO7Q)Ij2<#I#H)iCHTxZL>75 zGJjNNnJq7~dv@oE!Q!!~e?nP=q&h(-hFmYExxT6qxOM+WZXQ*Y1^m_)Y%( z$eP+i{W45I!hbfq;5z;dZ(NV^fk%h8SM4|nVcxWO@WnASDvX$Zz#F6+Z=!Htrh;wp znCNn565OOoyn$yqJfmi!khY}}!iUvud*ub9gT;&(5z1Bc+u&i>K#YfVRhgOD{PDNd z3!j3td!PWZcDOTEggEVvDc05l5Pj%HBxS4Uji%T)7;QB%-uhntQEKUqnDhDRdg=^s zovd&8uQYErI~|{`zlyCd$s4cpa@B=-{mR?@vBjY&_b;4ZV2gxaIW-kb8s^bSZxcih zEZ(hT8L9E(vd(m#Kg*M#R9!oq79lP>?DaR)hCeZ6YM?;?b3f`Y?3zqQl;4rTB0c;f z?h0Yd!+2kVaRd#m0xGTqyOV)?X5z)f=2hyU)cQ?mq6%H8vG{uF0zbq`B7E?su5P`Y zXXqO-eGzz&snOC3OKhc&Ps6X(N-W8Rut?PMKEgsP1tS&KYJU675MLw_rQ`RY=S%Hw ztRZjX-c}@Du8;lIB_H(=plR=_*~fM%cvqnq4c$hdd9u;bPLR`E|I0dnn)P=>w zKrCz95I@_veq^Mdy(Amze%+0A6l{-5L%fWPwQf;m8O8)7UGt^q{P~(#Dc&`3@_WluG=89aGx4 zEi2;9ZF{5fNH%GKtwta7SF0LstJxtXh{_}M5@`+)%2GpGYK)Itylp%Rn|xWX&VhIi z5JRqThzY3`$+Eg)CH}Ljakd`8%ZZBEzN2X=K9`mtcBn*siG%6-hZU8NnRi(;D{O-J zDORIL+^gCyBjz;diAb*5B)OF9m09hQa}(XBV$3E2xWAA_PKu}hICr*;#tINu&O#i+71ysn7uvc50n)ltQi$Y= zCCCkH{9a|5cWHxYL_~ap8CX|!2$TD&P$o5X^5iyGJSflDFkZArIIGuhXeYqr-KDv- z4Rh#+&{E}Tn&Fds&MGd=&9+R9%x!=j{5r=RnwJs&JT-xQX!3H8%;PlxZ$BNO8(s4CKewDca5})d zvG#tqr#9ZD)caYupAbDT8Js3zs<8hsGtz^s-^4`M?U-BR&cb{^KK`H+FP!c?h3_qs zTgHlu?m@{vo;zdAu6*mv%T0G*3+ZeY&Zs&u3-PUe7ISt>1@Ua?X#i9lNK z%0;JPxG}Ana4c?vx*#Kt!~_rE3niZo8JG-}yP@Pnyy`Nk31huHREU_cCYX@;x|S+& zjO&`sc$YJI)ceMH+0>>-3?ME@Bail<1KF9n@Nrdt<99=;$H!5q`S#Z8IIK_Z9?RZ@ zjfXOUP)RJ9gE@dzIQrUqueCZwb|2{ZS0fch>Piv{%)R_e2WdQJZ&JJI(*67MpPk!h)$ zVuv_lnK8b-?{2_aV{(}l-Ao*ibi=b@Y)pkAF?hBisbnS9Dj$MG{Nntpkwm@*jZfU@ zVF_bdTwgf)f<9G0TSuFSfx%MRfo(lG1$(Jdz=;%(4+g0+^isBn`(7SsS)OoN5pg-7 zblsUc$J)_5c~~IP2t7y8sShA|%$z0*_C!7AiN_MK3XCQ5FQb8;E&b%+;2YLnR9|Pz zRi3r3wIIVwnzkW;qF0OtF9)s zObb1A)%eD}!`j6RnhmUj4_D!2zbbw9A&rc5AEf*Fm69$|%_W%~Tis+x zmD6cJr=%USS#xcGAA8gd&pF$rHg?13;3<<%fsym4n4zPoiA0o23RC{#seRA?46W-^ zRbCwe-j1mpUGp??DJTD1>p?}f11bIpnQ*d0>bd`UY1V~#)bQT7YqxvWb?4~0 zRlVlwM(;R)xjDYR=(gYdr9E$Q7ZT^lcixQ|A?xCo4{|Rh+a*ZB90GUNHFM(UJ>pl=ff8tynM8 zbSgE?;WXFn@lgiq@L0!Qq<}Wvl1*@h6-zdbpo&{kZ0-=UO0K^-ugKyNR@;rs12C3k zK{hb^VE>4|H%He$?$#Hvn=f@Hqbc!I^!FUUDRZaf=A7p}#dY5H{TJE~AJRPS0t@IORj*&8@k}#dkQ^2?-?+tHFjQBW`lDC8*Au`#`TIbBWRI1ed+*DsX!Jv zjnfkdaYwmVd)V&{;yJji?aydKZpn=Mv__vSFZ2cIBN$M4h_BicVZ{(d!RrfIRt4{9FkKn@# zFa9`w{>Mjp+=(2JU%;JKl~3IDjhO459CwPJfZPi{Z|uvhb3eCC83yhpl7@Gny<-Zw zNnCm#iy@Ym2;6FfXfBQHus0!FdjFZ}dH#SnD6s)Qtt)175BGfh6Mf>5S}$oKAir$2ANdDR1c)=o!hH0>E#+vS`HwFibay{LzJu3Ssj5v3TuT+39ga`056 z;>@r^Mo%8v!r6mzQnp;n*zi&;4Xm8-J91+oGd6r0b6c`*ttzhR&%>of#Wh^dmTTt~ z0po4%ka0ocd{Q=NB4aW#D=$2q5aG;h?J_R@Uguy>aLY1K$B5i@bPh4M4oA*%*;U0- zs;8l3y-ompmp-NBNiDw#5D$zx#p9ng{7zU=HicBJ$XP*SFVjI2K6KlCzC(WDHU zuT37ZVJpMaH3IMXG}c3HI&yzc@__@4d`q%ROHULyT8mH2#yvzWePgpXl^!0BxS3db z{Yhefv}h+=f@KJ%s4yoa93;-WaYEnZquG_NAH>)sADsp1d^* zNm+|Euw+`nvsjGPgSN47R^lz-GFgl@f=m$pj28$fFSytPQi^U9SQ0gn`F`MP3;>m;t_&mAy1g~C%WhvpCQu^ z)yN|*J$&I)Jb`v1L}%)RY>3-en;Jo*K!iPn5FCncBz_E;O1P&@93?!(FkPJn9??n! z(54cN9z%uP5FWk!FEVsc=@pwShH{T+H|D1Ou1IGx<35 z$z{uW!D__QGPncnW{K?5_n|k-&NhCy2$<#L1EMExhkDQQHsNkb?FwBwTBX(SNfXaw zgN4i`Eu?eQ_+>wdv5OC5!L3l^^7w+CsknT7d5dPtLotP}qIpgeHa>9j9L|&*1<&;a zT{fz`2W0AAS?;Q?SvlZ_MW%^e1A%+4k*EonI%qDWhpc~X&aebAt`ysKG+YZ)=o6%G z-8c~^Rwl%JFuIQNmhaQPi%?f`3{u#og5+>a?p$z+wteJLCECXfo?&i#EBzC)p2N~V zLdk4r8jU1lO1wq1-&Ae0YP`h|?qvDE#}LUPvv&{7C~sf#JN}IwoM79HmvCW74=@Y6 zufsoJ|FQ0$&B`^%QGfkPq5Pl19gP2*6f10EWc?ph+CM0tvWLCN|G69cZ#7YQ8TI?d zn3M?<4*`VIU_KmX+&D43li#0O2s2&UkP$S{JbS8(1SBbg9R?`{I?|;-WCa&}i?T&D ziU11ZZ%vcy;zmWWW~EAJ=h8}rP4iE;9q9vP|8G9$Yn~sjmo2B+x7l`d-PeQpQJ^Ul z5#Z}O-Q}FvKg0kP&jL#mdaRqP%1Ce{opb#(U6tCff_`Co)QC}FpY9G^!F+oYdzXJ! z1&eFdk`M*gJt*nPT!*_H9lDEfxg9e51(h59)CL&zg*OWg&6TbnKfgQJ$jY$MxH5gJ zC7kG@C*D^xB>M$$%(SA|gzAKDFI#*HOnbPJ+(Td{ryQCyBs(^DKuFA!Mv<_-cFgWB zMj4bl_Lqh;Z;Z#M6jsAMCs1{B$-0)(U+k9QK{@k;$%~D*a-L2$pW2t#uC3ukYWbr{ zk%B)d;X@s!5B%ty_Mki#awEv)Bf{!(kkREj2eqXRelkH~duMgJ95}_2#F8oNhiAY91VkXVD;^Z~Zt~h)pBQrk2`;4|7*pa;yjuMJKR($w|%P zW%u+vvLjj5ByrG>qq|G?kj?4wGA*fYlWHv4!E@Q{NDZvm{(7)FefXEX{X_|fG8PK6 zQVqG0#fW%Y;RV_Uow?#t*aSqXZ9W^59uS(mY5h_Z8(mJT?6k78+03<5@N*JSZ(02*9z z=sVJgLR_&Ij=E%PN`Z7Yhz-^RYzosGA(GU2#EgFUCs$N+;bUm~K7S{88UV-mmW$Yv z`I4U;I}J=Xu674VN2nbzR2H2e5e-_H@bDB2f~d%0w1|DX^4c}YGYwz0u*Zt_XfGiC z94O409O)#$-I-rAzl&t9OO$ce*N#OQ4JL74BqrxFdM=h3l~U8M1TnKHZ&8-u_a=c^ z9uI#_r^*XMe}g$@FTWhR+853ZX`vSWv0MMz^^&}#&gIK3J1pHGH(!<3$Ku%nWxHLK-9Mh+niOT&F zkyX9r2Jb?@Aegg%m1gsdrI&ON8wV_#vl=~H2zXRHtYPX3x!wk6#Co5Z2Uu;Njxfn{ zfoEeR-(}=}9L0z})#x{o&Zk_@8&S+=#_v!~&c$v6hu!#PiZfGt&<{0=8dhq+?ISI( zOC?GIiV6yb0`MmaubmGVxC!MQ;v-a2RZQ~|sq#|!+&J&bniR4R8vuCWwF^cKNLTK< z`Xd4^_=RtuV-Y;B3>-*{t3}C}aC`|KyFq!31C__!+hfWru@}#)9RTJ}oZk5EYZ21u zX#&*fp+qcSi{$l5V!E@PVV8`~q6)E#PAY`k#%{PDXG)3~95_skJlxSyfX`{W;_bW2b039B~RbY``IUK53q zLInt3rcXu5uG^P$B4}fj@1UOvq96PRrh`IUJD_2XY&C<4=!?O_dsigP$wMfgcxDeB8)+T^V5=``6AL0!ys+uSW>N} zzxo2gtaTB@Yg!av{R+mJDLYay_c|~!_v%U9vG?vt+Tw2rN!r35ffBjm zZ}Lgr7{`M$_ax0mvboY06TI(945*8t$HZ?jK3Nark6dB+G8w;VW}=Rhgkp*_>ZzGJ z7>ztkoy|rfr_?hrE0@$sK3cKNOhsKCVvR70ksXlScrnMQg5kXVqqsutEwunX2#s#} zo{*_61s)<|H-V*R*dXfG*uj1fnJ8Pt52!m8wh@%eGy+Y}>YN+tx1cvTfV7%eHOXwp~+CcYpCsM9;i$ zM92JDamV_5XXeT)uRM>Fb<(KVV~m+^oB5i4GDG@ab>1t80l)9iCTLecyO!M!?sl_9 zGxs-Dw1Yxw9rkw9j)eNlHc^W$02_@9DlSC`te|w-@8uM`7H!}aYgqUlSJ|sIe@{GB zoYoYNbWpxyyt_52D_TQU^aMR#(-kRQ8seDr)K8|7G*i>oAP(C-@43)b^>7dMp%8m) zHR_V2q6JG405fD8GDkSyfDb3QzK=^{yk3n^K{2|bpXCmMw%X)7PD|}Rx|BR{wO>PI zN;nzpy2H0%du&Fiddw2m0#I%QQSUWa&rV)`MtryUGgw3sfZBdK4R6d`?K@8n zBCKd^k+9jjp)v-eT2wZs#@?$xs3^ZhJ7J(t=2bkEEQ(j zD5=ny!8@5M)L(9J#E`$+njTX|D~=x#iZsF6CH?I&OSG7jA4#R{C)&`ZX+lAqJigV` zneLZ>x?GE-5OQy@frx2D<>3t_3*%w(GXuZfKo(k=7kz`>1I@7p)TpaNWF|+FBM$r2 znw97E%bBc0({kG_(qMI~wPEuy>7^mMXam2o9I94~E0R~R#_q9--$Df&w>W*A)U%zw zI#BJ_>gtOxXKh?JY%UjM$vIX{DnBA?Q(>uig=sF=?B{AOw`Re=R$ZKa9WhURQk3na zNR738djvoA5h+IdZfP(SW~ieMe|<;NIvc0%P+RfS8`SO?V%!)f^vnW%0*g483A{lo z`+__Dpp7`>K^xWG2Li}K62uVR#&$B#2 z{#BUnQAB=N-c7&lG)Sz;k&H)!vX4@A-(tt}CCWqP_IGG|6dwEa_KUtXT44gPa@}DX z!Zr-3F++sm4A^?2l6<_9e8jZMcYx8xJ*_9CpsvODK=y|~Z0H{o{LD<}V}9Tx7TNZK z|H5AX;t?#Mx|Q#^>|JyCn8F7N-74^`(|#K!(sXv_$dbY3vesFn@m?a^j?F6NtNV?> zYeTgSEH-<~`^huHekV5{h z%c#LV;EcDX5FUd{D}Htrt<-dyKuE#$W;*et!AjyLeA(e`Ag&-AY7VAY!WkQ|HpogQ z;B$z93I0g_1Wa?n83Qm*h=z23RUoQ~o^TsNw~xb%ZUh6* zAU$G-V(|i<%#hL(p}#EvRvvtn=;*gs>eF2NNY;ocdw33*O<`0wp(~*!1B>pm){H^U zF=y*{_>|C#-6?o?zW?;|Mw&5R_Rs(TXFomt|J?!d->TRCS;PJR7?1z_{{PXAQ3^6r z{rm{t2}8wEvqNv*$P_E^%xIkyx==xary{4`8MK#6%oG{IC)0Po{($@X@kwTapvuMn zfE{1m-%VZrgX`$*AblcR#3t9T{u-m`35_UR(TE;upB$d{AUdo36qF%G!sUU}B3UV3#0C8;K8~vRKJ({M;t=rth5UDn*>bEyx_EuMn;^lbPn62YC zvkvt@!Y}p!`ouQ$Q1)c%IqGtQT|fC(#6Czn^E$2|^GDJp`32Qyjnoshmq8+8C9U`7e=z-bQJ#Qc+X4 zrx};+f!k-!-a@b3GAV1>mor6wbL@vWdR=YC7D@yx8I!hqI$gc;9CMgm>-m1aart>z zLl9Gm+IntRXS`J_j9;23EAfnIq<1#{wZUvfEit6FXggnk`-1>Plzyq%xUs0%+Iof_ zs;$?hqq|L>bd92F3o#JEwZq^Hg_T7kZyj zw?w;2kt3OFk)~OzYU7KvTD%k5c}ulEgA;Sxl8on3?WqFDX%w&c*-{jQDHXPUd--Sn zhJ`fH4rIVFS!|l7r?AwTjeu4gh#k-p{R|RFW#4uT^Pq4YOqGE88(xx7e&H>W{pijv1#8<1{!BJueQDz5cgkTcDiZ2t-(VDfXG04znV6lwo47nLSyS7NJNzLpQ3F+-JVgW`ao1@nT4P_GWzD05c&#KNfXS@{n(JoL-2 zI@}hBP@D!-N<>(BBQ&%H0TB`X3+#47qDBttPlV^Shu6=JUH5gzYiAwQuV^M9A`Kc= z9meqAN9m@6rVAY$o=nMVQQ8ud7PZ0#OAQx^MOcFr^OU7cwph4HJE>`l!IOQJmSs&A z6bL}DOlPo*6wx{o)8?33{#v=CVae7!`0Jr${+v7&m`%JzR;qCo3Fke9x((o<9mg(0 z%^@Hgy)%J+W~rWU3eY+5crT!532k{%Nl+G(l4YkIq%*0^OqM=^jn1cP0eGI8$6y7c z-}h=hsqqfnUF}?{8*k^mmvQofzv`^q7HjTRFObm3Org?0}3sZME9supbIAX?Q_qC=tGo`6$_`<@<4wL{&48Phf0O4LyhD`(g^r?{^{AK!sbt zhS^5-{3%WlN~;u;7(s!0v;Lk5Hp6E@K($P?pg3UrGtLiZ^q!tvaoU zf_Zj1)Ek>LAnHVmjmuU(jFCaSAP47Z^m{a_FSrM$yQYI@8Ygk@I2?jfU|-Yfa+l(i z8Bq1ZVG#n4)tSf)RH!gsgH=>?M5E zo;mmAf?^{OS3#}Cg`0vv`TePqK8)A^laEUN0OO-6LR6I(l}#i`HzP;qkgU54)Hx*b zI|8J$AER?v<;_pxEtJ{&k8F;?4Eo9g>iq+3^9h&jJp4vcPK#JK&X6cor7~uMDh6W6 zAm~HQp`q+GQMhhP+9VgXAl>*vum>9Tl(d)wuD7)Z=IV9F7mDmXg^1IwF?{ahf0%EU zQCgZW|9rM7f9Qe#_g+f!f0R)Fq>{9S?f)sAerWJN>BI$(A=(3EDR3J!H#e+qB-n6P z3{_@vmJj>B?nt9l!ZdkVHS22>>981uEv=1#?DmE47VLi2AW#!LFfiD8?A>+$=JW6h z?S~W&Bli^KMh^q-^IjCIn*y%z9ff{V!*qbVtK#`7US52#yCXvEsr{1tmqYe;B#6O?@alfJ8eNYh(lEFKQHB0uSJ-{2V-& z33^KGQgua1F>lja%LF}_MLs4&rExKnd5ep-i#_Nv29kmVyjwYoO{IZMhn029ZU_n;z= z+%|B5eQ1P5Kv%Omv5(BXRY(gjCu>KD#Ygg1uXJR5!9GxUD$zs^{Up%}+T@VrFB44l zX6l1VOlvK;D=pe=&HI%`MTflSp+RY=#SPev$cVp&0qj|?h_<_|@!|&983UMwlLMt1 z)`%`6eE!@}>Yx8H!PhWYf}#D1Qi6ZUdsqG+N2#2xu!)UYPgR0|p?iwDCnY*_=u5 z`Lo6j|LVH}E`ekAASFi^*zwzR(2ACcGP zX&ioaw@$1d7PfD6;Ol?IK#7zx0yhy@t2un2H(im`x0M;oLej)iA1&QRGx?V+h{LZ^W)&2; zsNZgi3AQUMar+|n2h;XvK~iz-zotIO2i%eKl9iKU+1*XK@$D|y?(dhIuK_Gqj8`~N zW)&!h9j>!xX8p)49~dNCE=oG+@{jBb8&1t>hwYN^9FeJ7w^Tz6w@=icur1m5(y@zp z=!1g*eW&a9PGsDE{T>p^Hek3fCY8;fe+315_MkSp|3jb$36GHp1_*v*KNFZn0dk&cavk2Yp zWPyZxsgP%LnkO#v*5^C`E(D{}r<9uTyZ}sXI4TA?ZWfv)%(J1Nn$cBPfRRjD4`IO6 z17-V0zK&!h)6UdA66X@83gyxz8jc2W^JpYooM|p-@^8xr2{bsd&bjk>i=ZpL zM32fu0%@Crjpj#K9dw~ug;tKj2)>$c?!p$~?Zhf??_-_N9!PV{cMt8l^D_z56_xvy z704BB_?7O`(J6@K+K{H(NzFu?)G%S9J^XW=SRCcjh~r3mb{=1k&>ZjKvAjTN()K^m zwz_r6{qS=RANrRX<$pUE`9F2X|9K#9^!mB&Jbe7(*zR;|+PHvWw-!Z&7zII~H{@sL z_tO`rht%hf5@HM#7vGxz8R$f7UMg|{)kbJ;q5B0HsY{4W=XyUtV6Bqt#T};ArbD z<8k;AUbi*cXhOEYXfj2Uq1INI-{j+Pnz=7|T#z!JHh0|6ID{OxG%zPFCAM&KdfFOC zQDHs1x7PMHR^DpzShToUj{;hLTpeN^6f; ze_CX#N()wjRbrQc$ZLMxTHV=O-PoFCX8QD<0$zd&ei+MOnxk4_W|8G#*=#V#RD5xm za+kS-3d@q_&EzwVG!&c@*5Te~%U+qCdDuYhbq!PqH>?c}%?h&8UV@~RB?ECq7tdS` z7_^$`lBfw_aXv7yv#Ph&`NqkbxK)7@%tcBPAsOnVgZJp$JSQQ|VbrWDrvBpa+8WZ1 zj5p4QdDxPzc?_vp$+BBRG2GMgUrXDtraeD>^)rtmtl`W9X<3O9&PkSYa$un>O0X-G7zgOTXa_ zSq&`wq&eSw_XhPXuZzU}RH5kL3ThpDMN_l7oRWtO<6s@t>8haQ6C$Z{1u>Vc=Y>le zhKl=f_o^B#pk$I1Gi1c%YZGPbDJ~)-)|p2sT=?0LDl+o?mEbpi3(N!kXfK|Zee4vY zs>D4#p|kt%pN*!3#ehvp*o4IL?*j6UkrwEXD>y~!ye_uT7uchaQ zIbIH6{UQZLn7C%e+#l>GVe>(2TeW6%KcHed;zo3&L zJ`^h41na(v)V)tJ<7uXV@s%O7M8JGy)^;9w>W^G_-kj9y-mEYX5Fpj94kV0_30nz0 z2AYKqQz^g;S1HfkoYRcbjias;b#`ifTPtW2JIEWHZKw4c$0uQwkLa{-#`DD^0dzji zCD6H^b5q)SvbZoduD)`M9yUj6d8c$Y%#74SxXkp>F^nH_JH#t0*gQP7Ih#F?eDj`;4bN$eZ{vX}yaNsyfY<|kW46eOg~b~- z!?yVIWEKyI-ca9sHQQ3YK^F~YL=VGww9(C{OmCi8pHW}_^Q;^tji)((#3)bn2ygZl z_ujR8vZxQ<{&Xdde__w7iR~r*e)By6)VS+rMV)mwn9xN;s7&5$7Un=uKpyZzgi3!s z6pTo-22rntjCv)Vtv0vn8)!-4*%7mGu`rqJD7OTtkr&abv`_>Q_jGYql+v1SP};F;c1wOK>1wl9Se&bS zYn4LlFH2fVeq{&m9ruCTKO`X35M#}cI}QBs_oRttX&y{R4)Dkn0IE$)UR$hfdi?Vy zT<1;>4{aX{{|8AJ3)==yR!>mYJ+Mi=DootTYU4;jcHf-gPgT_H{NOjt*r{X2{R;x7 zXK5rkzH*|^M964pEukal5dq0Tkr>xrt|`Q+zF;&_1c9rm zC56b2$vyEK%|STXIJ{jrk6wIE94C`NqM$0_)#P zn9=ny^YLST4Vbsy!T3Z0lrQQl74GF44IZpnG|-d&GCCxa{Fjps=uXtGv?I(u2#fd= z4}RqKiao}(_`+2DPoUaxp!-3606OIecb0V?hO_LhK%YCyI98g)p9#R9@VGl}q%e{8 zlkWGJxh7FFcSON!Y+*pM95<;w;}DwMu(jkLcnBY(!9#=_jdgij5kDNC?cxzfB*<^nv$weJqCpXAZ*bO`8rc|3n6qt@=~#m#aypmZ|! z?WJTSf=vzan+e4RLi@pjtbxsOr6+|*a5Gbu#Q}1aI8hH-8d?8}c=ge2oas}x+=0jv zS+W@n{`v}De`Vf54GxE0Z+3G9KTwW@D~`dI{tJGuw|vW)*Z&*xW*gcb9GL0HtE~wq)|SFDv)9V=K3buDJhjI%HmVbptERrZh~{5cX!` z^>y3&SkZb;wCh*T_Azvt=yL*dXFz=?G~0`zc79b}o)9}Hv+tDto&G)iO9)_BAf1a} zAXrp%5LUA<+_Txxp;u7l4UxY?XXH3;pbY{eji*Y5>L3Y5Ef(VN?j4ax%i5j;MvnPp z5A}Sa-Ee%s$fiE`eB>5!q-d`ELsoUl*wJ}V0h>8?Lz4~e!vpDXl66oDJ~7u&i6k0v z7crjA#r%{%8p9!0Jc<-l^lfrwA1mwv?782)-Ij@%o?G7at$~V4_Tj;}m$&qfY=U_5MpkSVY&A zTNGuhd)Z-PSB`2Mha9p-j}#)GcF-;!x`3UGI>3qFr>tCU( zwr{_Njx#0|=*oA{Uj~_dvh}d+gVW9X#=Bu|sP=08E|3icYt&r%N+U_B@2q@O&|YP_ ziOxWErS_LWd5)jB-V99YGE=qz5(JDu%2>NW3n%RE)}u>i(|j|&cbK~ZRNNaTo9}D{ z!`+HFfh2c-5%#>})Yv;vw^g@R5nT~Re2R{~qf2G*9mE8(;Rieev8cK-CpCt*gJZp- zSOf39Lx1p(8h?yhg*G%bk=$iYDBqXEdhmW>8?*eaB}z{*9}n=>3<{->Yi3MW$B$~t zf4`2s<91g^`G(&jqw}3QGw)CDC`0!8ptC8c+4eyooO%NFr2v0v&V?%FnGdw9Q>Bpb zP5Z$AvICI4wkpQlKInKKo$_;OkUHt*3@27cJ`5G0w=QB{O#~Ee5M5TggeGRhdIq%d z=fwtdeFlO@A)=wFo}aEfA!Dei?>AKFU7Q^PJby=;ZM>wx!hF>}pmMF^Atc?ly#^=! z==54OgGV%mag{rRlU;6ca&R22TzK0MCj_!pfgxOFdcr(&Z@pL`bp!7)z$vY@i@5NC zox=NE&m44oYizC1n1tgWcl0y#kQBGy1ElN+?7FEX)=r@p#f2#;xdRJi@V;&5R2Gc{ zbjecDk46_uH_~Nc%^i|h(&9$M+B_Hu+^P)XvK{h4?ra)UL)M>H0bEkY)<70E)V$d-Pz=N9Pz@{{mZ|zI}tltvA_Uuan>us z$wxf;-1y2F3cquMU=ou*I2s^PVxuq%X^jf-2h`iIQ`36h2r_~M`z=J&cb-KUo2_(z z(&%GL#89PfK$26V#$Qj$R(Z~{(JU5RX1?#(m39F=O_oZRj-m6pk8t``nwWN0VNYXR zwwP|BetbS=Abwd@OBOf9OG144qcfZy4bmkvYi=tS(M#TI)?LYe6OyLmnQ`TJX8avH zEt6_)H~cu|a;0Cm{y3x+CGC1iD{q5yfyGS5@6*OQppVfWb8OZ2N!XW50g%r=0+TiA z%xplc@B9)e7K$&^69}`ZlBHXU7G1Km4QNX#9~Zu$8~%9dx`&_qPChkc_9^tChSom) zrD+xkEV{TjwYJP2mgb|g%u&y}${lkI9o9@Qa}Mr}qx%4q9lfNEqOC{9eIdjrA~K^a z%osT=^FF#@+3is89%RG%H<{aCvH3{~h|^B<%}07qsaa~TlP*Rc{!w?eR&p-l-5_r1 zLm6Z5WtN}%b*&E+iAA11w(Xe{p;6Rks_w1&7y|!8RLiiDc$;{*Cw6+qufb&TBE3Ak zP7`DJlAj*9Ek&8OjH2HLZ^%Z~Wx$vv3esS8V3>LAnqXl7C}%AQxz#TCNKK7KLtB?) zTQ%mSS;!LJR!5%kwX%3AI-bI8^l@|eltjtvj6sWL88Ps8-w~+?Tf5>X$T``XbF@Am zq(5Xp!|IvEW8}%XTxX(51*TZ5#U@c1-&=*>g>wBNfl5w_8sf@-4wZ&H)f zC+jhZCU^m!(6$D684Es$M|nwa5KYnI1+jwfoy0eSQhZ4x`Kh>++cq1VsO4#|^xPa! z<Dd(iRG$@ zGDwP|c3r6S9!>+gej1pyps9aV_yn{iQTwMaE0G-Hy3hqwr1UAvj4)N)nRclf@Ld)p zu7F*NO57c5WFAn^dH|9x*XUG`vLNDN6)H1f<~OHKf-#;AfPqHJ6u-pjTw1DC?jtoP zHqCLa49FRGE3BSh9XgHMWj-`|Q1g7z`l* z%=!dv8}jm+$g|6=kk-jcZfhDNG*tVEL2Pk*g5@7o$$p|N=Jp)}%WY|+5Xf|M&Yy#lbz)F9Elx_03 zBeTTW_>XJ@J2pXvwjf-$`AHh0j%KPF{A^1^oWU38vXsT#0&1T99-bATc>w14AOtS~ zTHWS~^gkaTAWW}&C&W%!xvvX{nTbpV_yh)siLUZXe%5yw+yi%tYfJ$dwm~*J1UlpTc0Q)qS-bj>}f(Ynt3R-}Q=sdj1{$|N! z%8%GulZFq9vPb{ywYdm3+wsK^x9LOy&UK;Y*T^^OFdhU9qn%^&-7eVp0L@z8sCPRY!}loW+}^5 zVsm_@wFX!hQkXr^Sq0S+hR|yedZ8mM}cx`QR|tIpfnj zZ67lJGDd39l@1tv`it0Xt?k z(=I>ze8Tt}-|+^p@L1?~DsQpvTcFRMW2XnUH`vdJt=zve?|O+{rV&q$SdaFkS1IEY z{pz;_?!mX2flU-A8BpqK6KMDm$J|fANb8!_<+u_jNmSK8f}3if4!?T>rEo?MI61#X z7W*q3Z9i6Ivh9I_25nraWqX3(JkB^WebFMZG)i0k9CbtRme+z0F@2knzwYo>4}N-$ zmxH}~C$Hd^>0i8%UITaAe$yz=6lm{cFDUKP9B&)K(6=7y6FPDNc}JJB*=L~-`8V~> zJ_0QfF(-vgQ1OPeu8PFoWcXo_B+^MD({n$=$jFLdlbtm0%lgfyc%Tv)weT9;>9fMx zH;o&5{MR3{=F<7zoU9}|L;p={INn)85Jm^?Ej_1y$h-vipLG6qRo+xXFNmt+{u3Da zH^LtYxcr@_ygjsBe$~zz4R;o2Yv9#!T0@qZ0$a))k+$gcjo0sJD*H0Y-)S)=Y95fC zqvI#ux&k>4JfB(EEOsUSe7Rn8rXT%>HdL$XCfu@aG^6X!w>y`gqwz@O=WY2_rQ=v) z81?+K9etHyI$qkfn9Pf+oDDM&eJCB!F7Hq%ql;M)3zOB5IV@*e#DJm^;QX0Y?mQmu zz$Q0o%z@Lz3|_o4K_Mqx7l@<%c>d#u=1N|HXq-WOO07_R`aLgT9t?2Sh9U#5R|b58 zP=>^6;Z7jP$@Jt+&T$Om6zKcv1<+zerOsifa2nBjw#@FzGaF0yWc2jOE(K{W1&f1Z zs%Uv@P)>@8EX5J${ng1K_|jXI08p}CEVj) zEo|E-guyiq&i-9gFAQ}x`h}j$mLHdUDjB0#9@nCSL}E7Q9&(QkW~K7k?Y~gk$z$;I zgcN9ZhLt{i)#+<_?bPr8fQFtbQIg*gyd@H{Lr85PtC;&B;wq;)#cpwq$7NA}Pa3B^ zV|llG1`dDZZ`qVGkx66)Xk*I9Z@a;c5u?j#tG?iPG&`*a{DEWdBL8?nE5Y09$8`y6 ze|fOw6h}x8aljLJ?@CmIxo$?lYU?@FLMGio29R z;3oKhsU+?*66B6Pw3;ym)Sa4vx$|=m{nFW6G>BB+TE|VAVa6z zS>8N0T^$}5pnLM*x5Id_K3`3jTrh-$S%A1Jk4vnAD>gVoz=}CGW=S?JyJc3B$<)@wVFn!}c(t2f0nW%AIL$V22m0rv4xG6=kOjIX;7JsOi%!lh- zI>rU24MG~F*e^`xgeGJ^8DM)Da2X9VDr6mTwR_BXbPdO{Y*mR$tX7>BZ%iL5R}$D0 zjcrMaR=I2t9y~El%2krLQ!SYXa{>F5&k|9qa5~XkXfD5JX`P;NSZpG0ZMHz^ZF6oX zWiw=6?g2H=wAv9>#M<_EK=b;Fv%Q|BXO+E+r%)(C01L3D$#=CeW)V z20M?NTL1$7)n@nZkneG3a95F)SkOjZ*k;kNCStT;JEj&RAGao?v{3No-c+CE$xXs{ z?i{_>3iXT=Ua@(V3GmT1`VyB&_2$`Ge=?9;K5rf-Ib$>2KUMgu`QU^ zcA`G507{^zzWgq9Ve4aBFe<=gZgb9I1kb01?)vv$JM0v!gCx100dD{5!k@u0X<}I- zpSO>`4inAZgc9c@#0Zq5C;Na9{@QKgSljjo?J!tL= z3eX^@VnPuDQ7&%h1Xjw|q;!)JiJ$Ft+ZL0MhYA7kXP>bjXn(=@0KDHtwSL5GW z1AM9I%jHvHp6knNxKwVEVz}~Zxw>et?_`*%pWQ~T(;&v$9$Pq+dvH4y zXZf?BiAK9H8VHl61%MzxQ})pz+qIZrTv4*yn_U#JI96mTohl zdN`!5VlbgZ6$xq?rI5#pk#zPhn$$L+URg~at;U8SwQxDa=u+bF=l4RX(lqAyqSg@9 zquauFm}{j~4a3q6rcorbQDU4?B>f*zB1wgP`hw9^LuTyyDAj^7_Q_H<`J|Rgy10AUq6)D69nPSWYP^@v-^Ev|J|y3Cb19Y?lKsEY z-WOvMX_yd<@%Mj$;t7hCJ12VeK=-SF{r-fwWmF+G1#u5cuc%XI9a^kFN(x}b|9i-# zLfa?6mouJHPCyyzkaE8&saRp*MbunwfMIse;}y;cu|N090Fq4*IsP-1f?&bfXMBZ* z1K>baMDrcg^=`H{nfZC*RNh3pX1A9AxdLpfvk27;$dKy6XC5N5jl=XYLdwTTL!>ut z4<(x{4S7du`vn!NR&DDj@yise)Q5d%=s1G;B=}H6vn(7p(nB24z5osf*GVCfX^jFz zrgv|*GEAUC3Rh9hx?IcChbo|b!C)$s$5LCT8SC%8Y;9#ZVgI5!xDGGOeUz&@i(LvO zbGWxi^w~S&+A}ug5SLj4YfZtUWQ35vcd^_>A>tG%a2pic8~X|LTl3>ah`NCs-JME8 zLp!7go~lw|AkU7CJ}z*OA=gLU6j{*Sr};?9WSHE9gurJ1L%9c(pP&K$1`qyCAPheX zu+MypzhfkJFU$bJ5DoKIOA;w|vjW4J30Sr1h6t74{@#$cbM!5MjwQG7GB($Vt6$8e zC_2ml(L;W1h_2XnP9)h0^1j4d$}P$xhFtxyd$7&E#uQ8Te(WtY?}~f&Fc#e%@xDov zAg!1>lqji_P>9tK69{+a1T1cOv0w|#n7>*`dbhhF%y&Svu0V1i2k49fW!MARg`yf5k7=Sh6|&@a7&P zt2}@9fcS)jjHPcKXLoRYnI>H!pq$`6bi)3{;Hcgs~ zvvYK!fUAY{L_nQ*R754aBHAe-g5aDZow@|Ql37h*gbY*K*d1Q<+}nKGb0(Wl$aAYGZwQ=u z=p~jE3xAe*-zeScBM1%4w?K3MI+6ZM0 z4L92^&Ei3fDT|kd=|qYtAt`MT^9Z50l6wwk%xDrpj{d7pES>1p+=+Rb?cTl71LH5l z@I9z0pdDj>$0GIK<&m(@M&^WEhSH0M6XiG3v|fhT9rls)SAhqLuX*xKiTb|Nz4;Y` znT3rtdOcKA%UURe38W!wao$Jm)H@Yczg{WtU3o5Dd+^pta`tw~!K5?2@f1N0M~vg-EAs+%N!*bjB{P*d*4g|d zW4eKAQO6rQCuRk16oQJNBtGu$(S#!+KMR35%dcwiGE?tc!Iw!%GU~){m8s4lt5T`# zTG@gI+eXn486+CF3RPTYlHa?TASywdl&TuaJ6$N^?E9SY28(5mhkcu8&Sk+9`N|{U zRRYA;+2TG-f&xychiQ|_`qe|ITIAN%MQQF+tm_v39$2_`q$eQtL?nos$GXdM5lQ!B zG!SsCr{`#M!Y;v0ZO}Ut(+iN$B;9llv=&vsy}<(LqUb2W?Tf39Bb#S99SuSIn6}(ZiB&|R&kr1VnaAYN>t@eGT(^JZn?RDYZCyT1SM+_!harU&!Bw8H0}TVXUjyCk;7)9!o$x7zHK$6Aj0Kn{y&rAyNMjD%j4uMp=R3d>ek z!f3K0w@gh)>Th1_QKPbnuGsh_O~YD;|566q?BJ2=n(@|8foh)R@x$br;5ucvr~SRw zk)q3hA6ViZ%FB#j?3=-L!gnOwG(kJX+|FTqwZ|}%M0k(r9yYv7lD)%mq|~wC6|9yz z-KWJpeLj)$!hLVjHQ^Ox$Ede2d++Ae{0er>xE;9c9-$}rirUa=`Q@+2_QR8%fPd{i z8XmLz5{Y8^hAR9-cS(FLOE>T-K1%zRkC^Z+A3S=uZ1o7RWNt21b^6PR?Rx7tE}uay zwQ1eH(Kd+oY(@)XV^(9st_?~*RcU<< zo5NrU3S4%JBdQ=-HFXuj@P*jhXW87fT+$crsN16637o_+=)@j#!HO%B*=be-0ZxMw zthgw7zsGvYszhTR3{fftFAvedtmB;C|2-G{kNuU=m3ih3y(O@HvD#ue&FuYsRNn$_ogeEhs(=nS%L1{X41Ir zbm_FEUFMB+$=4-B=FN23MODZw!^zzF$~5Okj;p^HfY{^+{n7rvz(2X~57RcU}jLrzIJl?r&06&aSQ`w3{ z8Mhe^O`17C5bOp`;~6FS5!-lQKhaS>+?}p>_5H4#_1Tmd*T4&u(Vxo2I*pTRy%aqr z!NC=6?{;lf03S{aTK2k{LFCg$o*8I(nPDO5FYJFdtNqBH-(&k&xYTMsvQd^DkKQ_~ z)6tv&B(i?0o(OeQxlxrpcy-3{ajD98-EW(8w+?a+1*NGrhjDJ1ZmA;_QDs#I_XuXi zR8?!6o7$MPw=~%>wI*t|>p^>Vti?7fdXCmM(T4hGPC~1y-J;z^ZkvwATnuUG%3kkN zaCN?J2)EuvBb9kdeyxv^4N>pSEBzL|DVM|wnZQ22QmNvR+)dL68N_S6``MvRS8=sdlRD{X$>*M ze-Tuawd}A(P`*qroRQ6>6xliplC~37cYcR;01nwd6(Op~jZFs%iGdNq zg!~DPqVc51k2VfX(UxMb=&OHpTgF(N!6b!~=Zhmd@wQoS1`bvljhFY|KcrrEI9YK` z%AulG6N(+ybvNF@2&g3pI8#*$?uj6k-8uLbZIrl6pEa?XjX%L`T{88f4SXaw*i-2! zE|6t1)(!X7Z4gQO-9nmGoV|+C@1S4@Z8BPpjYidODdDcjApLYvN*3wRf!UAk9zoFQ ziv`;;NiTnIg0Ny4V0yEMdo$XIT(PEjTCRLU9S_VNpd9nZ)2Mo!W}81)RFQ^uk+Oa< zNwT$xRZF81l`^UCxRce*E+52%5a3$h5J2MqW9ou#ia(n`w4igZEgA(k8(!X#rqOhd zM|$vvcFT;tt|Z9EOI%9>IlK7o1ieTG%VWgLmg6Q=ALtWt%4*5n^IfD<_u&(*YP(2x ze=B3RTLOKVZS?g|mlM7br>F(ptO?$Yhd*3sO3omm8_3$I))gKrv+C$u0thqLY z8}3?_IDv7cEJA3WcitYUnKHyW`5{8mvUBpzR%>_lZs|e?B;e0n8L~?pZ!0P4tXJHC zQ@)$Azj@QKO+jSB;CA|{%n8mmJb&EH`NHF5(Nqhuyp7*!?mJV@H<6#-6Xc(h2N~DL5?g{oKVTPC>Ar#glk*9?{zZvDi^O8!{||GX z@xO9jY1MX~ABAVW#RaVy@>Ft_V20WTXAD{qu~b+fJdrdXQXn+Md@mBI#1y9kT3iFS{qEdBWCKLHV~6IpL+G93rm(k*yvudK{@-1_COhuMhn#RhHfnE2w(ZDq+Fxek!;AsEC<4dkgoJx8 zz!mCJ2B0aJ$(nLje}6Bk*4KAyT|QV&>s_#}IcOV@XXg||TMg6>cM^nYd2M3c3*i-| zU-r}=+7I`@ZbdQZW#*T1vNKI|y`q-_V#ZY*N+3dhMN?3ZPh@OLA4g4?4 z-YK}3s9X0=R&3k0?G@X$Z97@9ZQHhO+t!M;qJR8l@3+pyx%l?3bJJbb)zv*OMvpn> z?D2b^{!pz6*nh>Ek?yia6ZKx;(87(^p}Aza8w;af^D1f{uwuGW2da2C?}5W5){9O$ zd6?G`2FLIg7poE)5G`#)?jOEL!MVJ6kGmP0^!4w`@e-CHH)*H zND#t-)nP7bxh4&dP!)&fv_8>Ji<20l7P6bP%qCbSG`D0XB;UlTrMjes<=al@FsoSn z@sh@1yYhK9_m~w*&y{buN6%0fd*^}2c#q{fS+NU|`Z~Zk(Z0t;&T3gMH_0L+lIzPu&P&;ZL72z5fJ~{XAV{&vx zIwr#hMECt5PRx0T9w*5F_fg4I>a>V4tJo2krWmVUdb&k7(%xxUc^R3y3Q2u+@za$TVT}p;!(<^g&&IlMTYu(6Msl@C1=mRH~aUad|Zm)*}iJm8ULDH^JiVGImJf1Qh4WDfN?id4ZMZ(?rJ z=mnvnj_Drz@iL?3Wx#|PIbyjNRUm~OBpe{8g1n5!+g?I8EI&>;CNJu%%s|bIXAF?h z(;}J3brUqQ2Pfq)4iki5MVES%?Jz<(OI2EW1oICc7@k z#fq0h?8fVU5@CQdP0xQ59CNnNfX6BhIF5&~m@HnSw2`!ijM~G1W;hX2e(9H&(zIUiRom>R|)NSDM?bG3ZvYX#3gnV zCvZayecRWI1=rIV;`a)hV_qb+I$=*8{mz`b@uQuKr)#;dOmMnwt@bJx5ieS$#3QcK zSMxx8a zXHU8UHB)&)hsH%!SiAvm%8V+hHF2Wy3-IMD$yJUjtLj>U&u!5k;N@Y#_Q$B00|MK! z3@Q{bQ9?nr=9PG5>At9|gmG>6r$?Ih>CttoEy8V2{A~Sq+2+M;%?Ym zm{?-EiGRSEWby9tyMH9L$}DRZymn5%K`A)y41nzckXv*00Rg}0-{?jy_Auss)0jAq zwud3PE^tzzIWOKZb<-TpMoDZB7l=pk(w`+nc}Ey&J&S30w83CCDeVflZJB}jgy!WO z({NXScJH(qkiJuL3Z&H%gqj(`=U>y}0jjL`)(#JK^Aml7>HcAy-}p-(;*=j0#Q=0Q z0NmLJx!!@m5!)Bd?s4C~ZR6fS-vQqj5BqGNuBm2}W)2q=v)^+c(nK%0VugD(Fpl(saQR&7WFx|C4lAAcA z4b`~Ps;{QzZ;%CNo!cKHmEC>|AX#2oPl2^{UpAX(V#XbV{k*)>gU!6$8V)?RQ!#I;goj z!*%lcG&75~r3@?6K>$Ub3@iWrAiqU4`KlJv8+imj7K*+sY(yQu#bDH72TMt+Quxks z7T?P$&uQ*$wzogv^wJ*KMcDj|K5E%!#VKZy?4bCs%Tg_EsmxAh#RUs7n^l_Vs1r@$ z@rInZoJW(JCYbTr&M({LR-L&DDQ(ekqC?2K3yqMGNP}>*(?_tKveHq$v3fIb%dmr3 z)QF-qUU2rAc}5eBP>$(&{JD!%bMA^n+sxx#!o7-w`$2-R?=HSB|6zsuyVukr) zK`?|O_$|y$_LEAF=mJYI56dCPo(0VzT9)C%9E6DC0<5N*gfs-W+rdtZ`*io59 zI)nu)&KNm}>-XWgsw7I}f8O zp8q%aV}Y);?iYF2pWYat_lVJ_M*=z8BCZ130@GV)eDm>@J98(nYgmH!?JdxAG9gS- zi(q{yMWIYY639W!16acV2a<#j=sDVgqR`8T;#)T`$51j-D-ZcuKu|6AE}Ytf?%vVN zuxxQDfEk{)pw0Ssg`xT(%;T=ew~CDBXg{=G?U0F#<^bi;A7o{_ozI$3q`Z>1YL|T( zC3j>tx|dPYGl=ju>-`AClk7(d=Lv21EP)qM9x?r}T*y0o$`7EyZiE^iATU43Q-Gn) zzPQ1CQTue<0bTCE7Vl3}0_++2pc+<%`8&57k^eV@WNr!Z zSM(0&f%c=rfr)~im-?Av65Vg1W}n7Xt)T4VS^_y3_Uce$&Jez=c$7R_LIyi2eEle1 zk**UhRxho^zTw9(1z|SI$x-9(rdef|6=l5Hw>@W%9eZxEXRz*oXaE29z4}qqvts(m zN}m7YvVr^mtt3Rb@@MrsW~dP@~G;lem9NGX@(vN)R1bTf*ZQ%V;CZIsgYId zD?4DC!R(&~W@%lFjMFw|<}qI(iUedWj^|Cu->&+(@=aT(~-@( zR8fVe?L8==*0fOa?a-LQmw}FJcLi@Ah5?As7np_Yf|#4kIAxx5Y}Xxz;5R!AQQ7{r zbX-kl6R38p<+RN8tiqpUOYA*Jp|u*L^?Xw+QL&~8`b!NoZx()5ocyw1C8VL98a`S< zk>qHKtSnb`6AJT_^Q;uzOiMK$6`o6(rf1P3?ss(saCvM-49`rI!w3-f;Uq5ggjX(C@@G;uwFr_F@>5Ho`&agz@Q(nkp{xPV`(v$(mAb^1Ui&O2cBTeP+_k& zA7nZaU>EInYZ_use&mT^rNSLxR2zqNV?Cn=bvDN@UzOIzcR*Y(Vycm>JI+BZnp^C7 zk*HUeBz8Z+pmL?cXCA|#VF)I4viH|gN@BfN$q*qr>-+#8yfo5c!cVzpX|rv%36*^ zL_n5Z(dJ7-B}CH0w&_dSJxouomtW!!_m0)%Q;l?&bT#kLFmQo-(F-LyDk9kq-m zPh@a30TWMiBu#jHwdS0y59~E%m5l0(SR$6JP4fS4`iQnbf}MXSodEgMqb z!2hQjgz^9BYyVI2(c=T*p{n{1FwNE0P0E3Y{3{sSOQHaUkT5;?_b;mWVE9n+e}wWv z$V!xM!?haq;0j0!`Gv#=Kn?kqkzi9d7o8UuT57so*6zCZ9H-guyFCn^MD2Uu@BVoV z?s8cyEan#-7HskncD1$lDfQP2vF!7j%8DJv!b$C(#)Ym$4&tuT z!8CPU{Yx7A@(LDUq|jU!Kg*msjy-KrVRDDySyP&BYwL^dsVbim94p@^NTyeFuQe}m zR(3#@*zx-%4!NSbrl+hb+Vy^2MXR}J%8C~bwvX!y*sfME=US$Yy)T*TVqN_}uMSh(He%{~jch#dm z{!w`lg-FDc7rtbA!bzA2(~&{J)keeNCI8(4#p^bbQVxBoPhbLj)Ir{9Xo-EydqVlqQ7K1QU1FjQZ)*}=xE!okJE>8r)YY%XV( z2WiC4(97q3li)9-1y*cInv5(}rA&41HrBBC>1oHB8|Otw1R2rrH1D}7D*D;1ROQqx z&BQES)|llM=`4N(6CxLw3_UFqXQ|2g)+G=w_OHY2#g35>(9LlFLq!2 zanUof(o?j=Kc(hoC_N#sFjJ)%3Edd8~MBX$TkTZsX$iVc{#$)ZnwXfnvJpzqrG4}x=!{lbfe zG;qiTD-EP4B;O1sLZOcimNn{yARexcLJG~+YG*u9g2trrh4W+MviO?%=Yz3ly;+zl)-Kt54=1GrCk5T zkvIn@H37o06aZ-_?XzrA7z%mc*f4`n#O1NC<}Jc*S5`Dtg;>mP13B9sw4QVOPz&w0 zEr}B$7UXo}zH!Q`Gtav%D(FmjH4y+5^|F3i;1z_ri?N7T{Pe}%LnnBk^K>Y63 zx#jTVdw&KScK7H2i9&w^uarCsU&@8gDZ^d1&Lc$f`gNh&3%%kOJuA8R0ZP@38f3#K zSz1{N=J^Q%RbO0MJD^UK!UrbuG-jv;K;1?8PV=^%ET z>Q6kkb1`l5tv@c?EQU<_-hznLf$70#0wVd2WB7M6pe@+_PW>GkN1fqiC8bh_h`q0L zTbpf8`!o%!Y$s!RGKx}I9|sD%+qx=sD=z)67wl=C(B>i!y*hv!*jMCqMd6%cEeU&7 zY{-22I4SxMOBAVgUQMG`aC33%mvws7Ecc$&-W$@h%iy3TQ%9;p>Q?JiAj7`&L0WHP z91*M>%9kv)o|+*G_gdQ*qRlmnSbn)AXEJN~4) zq9huOPQ_V}c~e(qKVJK&p1^{?g75A*w24(;kKz_PY!OYwkmAy)*$_C+ndP(Rb=Y9N zSl{YpZpiC~qTJP{4A&YX(By-2AuE#~T+3?jwjNC1ozgtQ8m@o@)>H2e`aH}(Dbx6i zY9O@+fl@_`nYQW!_c_ox6doq`tG@M1!Bfv#}G(8WJD zMA(7Sl7QT`7{V&+4|}?VtFn-1Nu5v1QFN3qT#W0A)I{T;^A3C`<1zH65|ivadp2t> zsg}f;{-M6y#)1@#IQ0ys=zzQul0$mP?n<-wMMae86$|)Sr0-~gKl&{FlGULL5}cgKA?!39qzIm4tZp(!Gfn(nPge4}Og7p0 z41&Z6mlq7oiiV0}M1}TM<3+i`YzVL4NGTY=nX?RA^h>>vRZsBog<0g4jM%CMC z2!2)K%P&z>sM5~y^c`=oO`2NaHVv5@Omy zNyT^n6;R~pKD~4A09gqy2sz4bFJ;qh(Z5`+n`UdQ(8hb=NJ3Qfq*Z#l$_M%fFDqys zmsIT}qDxVChmhFa!9qPph8I3G!Lf0a^<`NeSX}o0pI2f|Mkkd9B(`0@>Y|6Iew^<( zekb=kwSe*Mhe`l|>RRq-SK2~M^l(^7VeIoGV>|6pOBD0~A5iw__lM}g4Sm9pg0-^S z*a2Ih;`oloQrdQC!!|=(lw1hN!bV?wO7M1scCw#OOV?c;{RyH89v4>F7PWPQgFGn~ zZW9$9&n-FzmElm4Th*1BPTb)?-9dkY8C15iWNB$i?jpK|kgk(Eu4`KF@VhyXmGAiP zDHaFKw&`Fmfu)N4DX_$9WQ7s@eI-de>HUR`gBVoqCACVP*(~#ExQqWV-v7Bvb#oGo z2n(T0*54oUsDFBD*HOBvs8m? zBMcG4q%#MvU19TLhRyG|5(z&@zZ5o*Rn1w14#|uWoX?GoQD3_{x8vYAFl#Cqh&vQI z_dQbTT03!C?ii@QeNL3YHB6ueDoUt0gS}d(48&(5!It;G{Ki|l*j_1 z&JwkS+jutv^5M|-wl#H~LVrWc@&%w#a<0q)Ttq_*5~&eoIjLs@b+l)3J0b+CdEJ$X z@F{B%eYu$@=9{_YOVE*6Xe0bW2T5y25`v-(>Lb?Dt;J=ZOF7-Rw8 zO3{^%tLAIf=ouEisd35a9}iFo?Zx?sUaFqPx@hORg^Q`r3@vn{q;jLSD^|`m_Ds4n zj8{e#*P^{6yjD`6T+Par6hVSNkuoUti2=RkSCVbsV6jS-s9D_CP>CCXi@zD_7=7Jc5(5cvH-pZ2!2ij-(z#7!gy5|lxU8FAGXiP zN>HP%t5_%GyjxT8#DUaI=6(Nth*z;2N;MUeDm>d;d3}Y^wn`I~K9Bbfm0&J6HA9v9 z%ibBrwjn_3IY^G2KVh|zNXSQ+Du`+}BcaK_?Kf~}#nX>!{a(&s~yaO2a>`EQ>!N9rU893u2S^$D3y3f#P{BQLrBdPWnCcB`S+Q-$D zc$pB*kPcgFg(z}O8(e9O^wF>m{zi%n8zYA-uP9mKEki6DW~@qHErg<9^t*KBjnmc0 zuZc58Wi$~HQuGSEq^VV^8z%h}9blJNbqE~?P3tb)=+R~@lr~*5+|FQh^%}X&7VIbm zb&t^3y_yXgy@eG(1#Rh@yV|HxXcZAns?aHyb>(-eQ`d-Z5Ddnkcx)?H@v+mVy1H6T zlj^dGbY^6M#Y(~a6gfYt4GA{kX_Lv@X)t`nD9{g^ zOGf6DyOVzU#W=Ri_N3ae_DctA>aUlUxAaDF@h?*74^+p8Pl=eer>aFG)GNG|D@Hb- zP;xEn)NB$fS|ard5A{}Kln*RTPXFlCs{Ym#{An=3%OK)H(bdEB&?u7q&12s{+bUP1 zEAI`s{6XVal4YBkk_&TcE^yw#<3@*fTD!}v#$21-`Nn2VPoaWOm3>Iw*!JEwxi$Bb zSv_z*PSCeVm)zYF#wAor?Hi<3_DYJaf53gNk`B?ONwc|`$+@Xgk3>x=1S;n!-CE3! zK->xkDQOG_O$wbw)#G!k5)8TOG;gv=_m7CmUr+T_NZ>7ldO9jnZt*NNE8uIDaJ3|+ zwQ$RL2ab9SAzWRveW}~sBX%l2+rf@59F=)D?f0#zeN!~3iJ7&&77sB0C-8<8_?>ItCGuJMy>oltaZH3_$*BwLampj_`0 z>8EEhlLkKMsZW!;8WWWMdjlNY0;Ps^Vdyb_=*pT^rGh24Y*O0Q!c~P46x%4m`p}Ea zo9jEf1`?}{B9k5XrGS(;9ww4x?I=9e%Usen90Qj63j|xWjStPMII9&FeA2EM$Zg(b z?RNPRo;husitZSrv6Y#RW^8CSvZ2WrY4pqbJJPE&F|`R zKoq4xFkUIC?2HDpPQXwi-xV9PHhIMbNmlrB8OjYJ@>c$0huy-}WGuZ{+(K&zpCvsVZ1xPb`TNH20zUn|RFJ%O6W6^`gto1qz4 zUs3(~i`6QE6yd;J7$w51BxG^+r_F(!>tJ6v?IPQOy5p1btlYdN=UPr}T!Kzdt$qBj zw-o(kStmFZHFWg}fm1t#tg8d=i6*IIstD_Ak&z+UN^%?8r3a^fLtQrb1&CtE=5F|w z-nMoL5`&($N@tbO2)DtEjHtdIc{9e#@Vetv%|}hP(T;NQPzJC^S)Sd4YqFpz4!s+r zt3_TDcOZ>so3~pFoi+6e)=#5LBo^6Xe( z=27wrQ9n}SSB%zmS;y^Pi1c)RnObb3?S5H&-ZSSlYoNSLb4u2feQVbpT!&4fo+B)} zy=gIU6Vzca6hhs{s_O3-CXz$~Fs?hANn21lbE2TPqK2r9^FRiakEnTfh|9`8{Umw# z;qh}4;lG4r8H42JwS5Fg-n-i0j>>mdR&KP}8wLo-k z237D4ugDcXGph51Y*y4hJ6Odzw1_KuH&^kcZXW4e-!JFxTbV0(Csz4lx0JPSmMQZr zt<07_v#NV@x0ttYdM@XlTb(L*^{>zuKHI2wrEikeKI>S`Ik#Xaco$Ulq;E>=T(gwx z{NFG3bAhT~hgH1{yf&=ihh||;W9-wx zx32)V@$B2ew+{ikbMMnbbZ-H>^X&J)w~ql6IQ0LV=YSD74WdBsq5t3*6FByZH!L?yw-XZ~n}2??1qMWP$8n|KY)PCOX=9B!b+y^{eCF z=|Oxnf%IPd@y5NYg9mUx`1Awsx%Bt(?CU|eM0n+a;5+<&*T7G#d}IIoOpL}Fm()1M z^onP}6dBExx!{gPeRfe=*R0Q-wg$rQe#cI-gS2hVQk<-qOZm)pL)1H@5%l4~H3 z=C3QGpnZDwUpHo0^V3cS99eKL^&<`p+Q2UjZ1rI|!n6PICb;66a>2e8$R+7RCVJP8 zgYNVi?=gMu7=6;S|1tVpjZ>+C2bG=QA|>g+5_0Wf@sr!({Ae~>yafuK3t zkE!wFk!r#B{lsK+z#FCuy22z8pcl+9*Zu`R#QvvK2Kta0F#!o4*m2o{y%3%PRn3jx z(Jpa)wHSAlGWb0ha;{il@LUuno0JMXqKf5nSOfRTTv{BGGb{K0QAcV{@6lUc3FwaW zv-11}_mjS059hHf+0Va_!1hP&Dt%pey@c?I(M^;yI{6Fjh9oWA*AoWbA~5&Za1s8< z09yr?@e9Y#FQZ?@NqJdJ-et@M_D8b4ri|7r6bYn+DZa_6Dr)uyYGQc?*{5P;(C!|6b=3cOS&06o^1E_%%89 zn1#8O;Xn%j-8$4)fYlq+a|gl;E|8e`B{TV|uatvw$4uNEiK|CJ^1x7=G*vbt{Wd~O|K(895sx<19umY0}v9-%lZ*Zr_Tq>sTkf)RHwkI+3 zgC`vF@lb8fF~(k8IsYDmng^R3d61CJ@Yph_0+h8zt|f-rFWN!m+)8r&Nkd-Nz1yzg3>^1J2|gf7tjFsvbBKyh2_8?6|>|60~bkK>np+C%5?bE_d&;WbpQ zXzKW5JtQw@Sa~i?11Eyl(XX?pD58vHUbM6UP#t)zvmniOoTCb;-EJ~zX%9_5fJ}+K?$G}*(V~tlYjtaKeEf}x6*b7M+)$UKAZb|nd~^u zlz3QXpf|O5x)Ai4cN|%KJ!&eBn_HsllPLR$ynNKTNpJRMxGokJ@Che$^m_m5v$j2j zZ+_-m+(h`@ofR|Uk0g+XETA91>L;r84rh7oUfd#(xcVid^$ufsZC@V^sy%|K!t$Bi z;^rTJ8)aL9>F!i=hB5dIlw}(R08SPIi2_L)5e6N3r>~}XH0mipxP%ze@Ruk6+?Eft z6FMH*9J1agln_JFoc$K1Y6~eG8ADxwXIh8$H6>|XBJ$yF0n3x)37#Vu#o&x@s%<>Q zD|-`{p3e=YlVv0n^egx%niIAz!G%OrHmz6pni3XK*4a=c%q&Tx;7~5G>q=K}e z6=`xgbmbjxj2N~De>6kMCwL-jpkhqTfltyzH)*mNFUU40&w_6{)0CJaW`~Qc@Mp?` z;%A4k(%`Q)45?2=8{qcJ6`gC+1kM)!#89kt!J~21VYh*rw2!)O1bZaLf=rs11~5|% zXlO*%?dM5kZp?#x%P_B0cu2Jnk@wCwr5Nzcte$gef#0sF+~G@kdC3}TO&_BB1YHN> zi{I6ROhDY@5gjFCMjiUWd<`W?=nG;!B#KN*V)G}8kiiR{yqDc}Wc2N+H%JdkCcqKE2s@Q7s>QF!S9 zvJp}88A3BH%9Jq{%%u8QVu6lVZK|`9I=?=lwq+?C8C*=g2~(~^m~055%^?ifd0?kD zkeo2%5@-2-x8@=I$7t zv3*9rp!FNq4rl`V%9(xx#LA zg8a6Fk$8VGx07v1scClmQ>w(9l$Tv^utdI}d9bSZjB)HuCyrmntk+Vi5(ZY9el;w{?3Y5g&U& zpBE2#l;LN!R%MesmW6mkf(1}rFru6!6k_A1YorFt>~$5Hyj?LmJ!GLHD8vcx->A1> z_uUjON4|s!FQLG^NQs{QN=X5Xi3lMs{GjA_h7R2FfwZ}>ES}J)|5Vb4mhzJk!d`tq zX%CAGzzAS?0HEzj@}Yb_)XjHP4&mm5in(z9`z-rd{3y9cuMXK5gEZZcy$8u*bj=wEfkWP-r?GL6zP;>igXH6ZLoP8BQqg><|g$-YnFQmw*vDh2R%F{E0byUo@X20Obo%CcU9Br1Zxg zy*D=LoEtRpGP^%D1osCvyFaRr?~^h5f~h{K8&LglZO`a~(taJIN3w&7bjZ@Rg|rAl zJ%FV&j9NEB-qw74FU93yqUrI%SZ@z< zf}iOXD#*p0yGC>mrYmEONr}=(Ku;`)L4OhafLLrMh<4{pgzy%KIY{lSmLV zfGQhyo(bNe#fxeMmDoZRSxsmyI#69RKD*f|1YQ--#ETRv%|i}rF#aKHl34~(TBWR5s zUFY^H*nXF3dErJAhiRs&X!Xb{7*D z0h(+!y0a=#D98b?vXskd1zNR=GAL?YF7d+vf9+#TH?K+M*X-WZBJ*V~lj&LJCn5hj zi1KCD-|%xS*{Y*=d{;dIQqQXdspb-e;LKsgYL?p1%sbYQEYuKX)`jD1u{tYS>HqBo zU+~OW1D)8yEwOe%q--6Wv8k0_R1-9^>7`MSb3Hkw20l{Hd^QekBc6KYq`!g3bgN^% zIlVU05UOnCcYSO0g>3Yt^xsD(qc16=FKQz{7AAi*CVw&}e=sJ0IwpTSCVxIA`Ca|4 zg!I0Mbo)1gbOM6rsI4oncj<{k@PTd_E>*>lklIFQvyG?3cBUJ-zOTwrDx1*eW#OxA z^6)YshXCg)X%JnIwxNOEbw$fYN^X4>jX@zThd2lI$NXa*tsSGc2y0l!Aih6-=1ca# zb=g9DPZ=4qfoAH^ekSa>SoDLO`LuI|va; zc|$wT*JhomD%I*Lg9cd>3awRI_45kGti#qvWUpB6yQ`rt&m*$33EkWKX;Pn1@*Pdgs&4=^ zXFw!p$V4}&f?G8P^i)B=HkMKOrQe6|7xg2hMveA-x%d#67e%|)?JtgV-2*c|{ML(| zeYGB*D?)(WMVEG5(2ke9hsG_K{JHNwSP#R8=q<$US;SojKVt7vSpUnL0zgteQ2)`; zL5Lu-96?Z)AUZTR($Nc>{DQ+2=7g1y9Q&Q&x`10A?i-hm;HtWV0gh(e0oIU1%`hVTRiXz4|iKa)-`NMlmgA0>8Wh+0i+!VEkrugmfSzbtrPH}D0+sZno~ z?94O0G;b90Mbj=+Z-VxPdpLKkR;n|vdIVRKy~Dn+p10o6^2OUKt}|b|FmE9Lv~dgb zgWoF3o5Ekk3CdM@^Z^3L2hUViEJBjTympWU6WGaxuuZ>W2mxf1`hntinP zi1tIdE#SBZ^`*J3u|N8Jy!HVa2&!O^>OK7A_EI8 z3E8br!K`osuQtUVnodn@my~HRzQZ$!9SU1jMy>J823a!{vFdq%3XprgRa0-b@K3=zv&A(TA_#& zl_5PAB)vN$5(U4JdEeINWxv7SF7^fpKOxq5iU$UgO&#iwacrVOBK*L0M)-k&0;f`k|Yqve&(YLDmEKX;gbLQ|x zZl=qM@eS;8&HTkD*Ru?xEuI{Eu&3vL_V%FOfV=so*N`wAuTbiC?z1kdk1yGZ1R6LI zxv_@w>k@vE#ISPiU;;Ol>;5p}C7I4aHq&sqTRJ*%r%0`s>7%=1_c_`O>EpY}7re+` z6C6RrE3~kcE9mbk;$e+qV^6i^z9UlwZv3|vPfFwIQZDAmJ4=MS>F|6pI+#Y&!HQx5 z(vKA0RLdxxTMQxTfIhl)Q|V&ay%nV{eg&;ID$$*%rnq4=CH)G;<+o$RcO6Pav3Xi_ zu-l|z3bpqu{pxnPNMrrhdjBT8_}#C6de?AV-R9x)cG054@5te7vxF-;Vpbj5Dh;@c zF)8u()q$d;RvMNn!Z{7#*fHSk^A^D~p~imwjINR8;v4}rbAlqVi6JF31M_; zVo#B<&(a+}r`;L=#U2d@J!-_)Z_B_LDmmXZjO8$)LyW9!FI00}lW$vOWrX@YW|v&K ziNHmxCM;;=M-O2tHlN?$rXFvsf_3W+ha)SllW=tK(A9B2nF@(#7a#S)N$mF?Tr|hw z43FQ|+C}7S`!C{{DWb{tNYqm)NqchHKX|JvY+qKJ+obu>jbE0U-^aCZ80R!ZqD)Uq&tQ@;+{*ouv5bV6og0V zFw!OGm=55{QcFw)@QWq>h_{8K`x;$RRqA?zJZH6w&*4=IYl>R~_rm5bxt48~j9P~N$EU}S$3mz!c6E}w~dMGak{hi%5=kZ=AH;aQu zcOI%%$Fb0{83H$l2XC8gU7kVTfE?tl_O7-d?*bV2fEbLEDf?E)rfl!2AH5{dzlv z`yZU=&`D1#o^}TJ1Ne1+Gx2t5v{}pRecaPQuIW*(&tuMc*cLUsTssfJjk$S2T| z#3HLAnc7#hbn}mh#p=F6 z>LXVT<8EM_=r)6*dv+bWZWwjUTg7f~f?78IKbKIw5pS8%{{8GnBu+a7L%>HU9@7BS zTz3ATw3xXA+anslJOG@Zxi>^U`gY&>$Quy3Z(n}veYAI1bdO>+I)`ce5ePNv&$IwQ zQ;tUATo9RNWt(Ppoi5N}T4QxY9|&3I7(3Q55<6sOfv%diuwmsn;4(AsUXC8XnX&Uo z+Q7@2#&6$|>ED9dmGpJbxL>z<9tANY;I(=lI-M5r8M%tH&j7hYVS)O#E#2oZqxQ2e zJ&^zF@DZ|)Vg@bDlHur#8pR~uwEI_seI0j9X~u1UK} zA>XhWA-Cb|sa&?x2K5=RD_dux_p**~UsHOszDzy0L7mwJ+S5$U0ogzjS%x_FwENk= zQoCE#$C7_De3CmN&UpGJwWrcEa6TEH=nNDdU{9|zEj}rp^!oO> zV+_m;`&lzFAK(u{eq9|Ad-i&R1ndl_bbrx4>OIN)m%Aec1n-oWU&J4n{ieG^`>gb) z_So9)-)SH%1TNCYXx5axexIOeR>q zp;yI%e`fqMTS)*N=72l^Dh>7;fQsQ@g)VCQj+eY02$mfF8RjV4U_j=Lyk0Y%wTlKW(ty8%~qJU)4bm!UL_p8sGp1z*B z9&-V&8&4pbI|evu5;ISEe_G2B_socYcw(%(918esMmwKkZJNCk&EAIzsR8^;5VFFv z@WyEcxv3nkH;hBA2zGEyVx0Dh6bG9?aTOvX}0jZmRVI#zY{2x*`JK;Ci;OS$8g8KBZtRwxjbp*{l&bAl_Zt)arg3&QX|;DG7beSsVoi7rImn33gn~G3qPb!Z z{I()fIW#1*%$l-MEGg~UhXIqNe;-R}Pca|!W2YNP%pNm?Rj^{Un5JsUiwh6c;Bpms zgiPGd&wJg z^m#X0W4YQTSzFKAp_{-6oO4YdpE8&Rsd|3PL{dcHf;O*2vI95B3i~NqNcCii-lBU& zW;WP$iI2IlMxHGla|>_9r}~LGwIYEp*^l9oRCg3klv=Vzho5C~qjN$OTug)0n6W>< zxMfD5SIATZd#s1IVna!8%}teC+Mf=dN{lne_ANtuobaJ-udh?o37o#V}G}y!GADp3!S1MX)Z*X z_`(O5TQM5;L?bmVL@5|w*Fni?W{p9JNQT`O97^g0W<@$)ctIDNyI zlw$ z7H02TT`PVXbS8HW*K-f>GSH7EY-r}2+42OL&}b9#ov`A; zw<1M>P&{|32)OU=f9gW`cAx@@7avSR{09XH=4W~DIGVNGdZ>{-fAT;bv^=h3w)mXF zw

?nW-MV1ZOYhsY)^M#VXXt7=~BrvrXl(O%>}3^$ME76VKE|?8w$KT74Hr`+dH! z>!3{a)F)@8G{bqwDF|eB_2$X*yDT1qOK28yQH~cgOTWJP`bo)MGvTiEUOj z7n#gs)7F_A!bF2l4!&stOdt>OF+dhddiwd!e0;`qbLM8%&h5Rl#yL^1=^-1&mmNC# zxec>NUVfvUf4nyyxPG7uo-y8z%9VCbKD`Y5v~nhOdY;&&@MkO9k`m%x5!DCKe>abV zkb&1q#oT;E4;{;+&QNgbFw^%l^1wC}>%9(>@n>P#1 zAAuD7ejJ!G1w$y31xZP@%4eQhq9cd)ct_AWQ_gyGnCkzQt?QAk9YOL~4e(kG`H0KK z3El_sdug}B$Z!P!wzJigNT)ntCWpTjv+a>ZIgo zEr&{supr@y@M%5KwZ{}^6y!Uxu5*qhZ_{0^P$G`S&GJ;SQZ-f^W_YixR2|e**7?!#uM||0j zcK<)h-Z40rC|cKDvF&6fS+Q+v#kOtRTCr_A`C{9)ZQFKov-jEep8MzQU8kzM`fty! z9yP{%=NQlH_FI~S!ppdkY}yf9SM!o)@*aL4hxTIFpP@Zwj@Grr?vJ%Ph4|OlT?Yj> zX(@%Hf{osS-+4@w47%5|6LPxBXOh0Z#99J!@YaX_10*2>kn5R7oM=jj*{pA_Z##Fl#KHfoh$PIZ8 zeqa9!0iHe%_dkRi%&(|`HEQmv!+X;9aKz+&3Tw1zz=sOgYu~fdCe1uB=D>5>q{T;w zRJ*^~(!S6j4V(AU?3LA>A1#7O|wb;#h`cR~V+B z;wdiOY+1;DaQqH~+hza>UEd%-)8AhGLM^~v#ox&?81&zM%S>uDJK}EI0av|9nKpFp zSYI2*(L_BRyg7ZcAvg6*hCZqZ(>+uJZs@!nV~duNr{@>kwl(z~;s>@&W!HKfo;MPi zhAdsfik;I;*@|ib@O2DFwms8fDb)oRCUjIsbS5EQK}>8#yS3zrj)^Fq0ah?5{WpG$ zm0Zx~^Q(81iCbQw3hqs5V9Z&AcjHhj4`;6|#Mn3iCAS%$H*o+mc5g*#Dx)_p7Hy%n zkRf|eD9jhS{#&G~qi6H5qalgO@fb4vvIeUKv-uYeCS16+A6s3v^176R&VT^(3IdHp zQ+KP7@@NC}knn;TjtUOS(FfRUUpH(0;NFghT@Z)yVmOyl9Wd(TDfzS<=fGmeLIZZ#oOYB4QDnlB$&GB}#_OnQ!)`5~c zbvp{)<+?-#Fg1K!RtQ=PRESIV5r2X`26o04hxH(1$I#eTkpFW;~K zw3)6@#y%nZ@od*d`tOP_(f_IVlF)b2H?lR9GIld|AeMIj&!?i9zJsxmxQ(5&lcJNp z(|?s^MRB^aC<3U1(?4a+awCnuu<#%RzF9^K0l{n_A9#AKo{Fx;8?UwP>5_9(+9t_O zts6fw-p4N=^1jVea2%qruzPx@=ZUoK?DqTfrz5g|)>g>yq8HK%xDfreRvo3#1*<_A zl-}uOich?yOf2ESygBvm@2`DTonegJoU`@JrzDiS(4jSXPRQ8TKtgeHTQE+szY)_l zzcwu4L{Hr&Oqv(T65D1&wW;$ias!P8HxZb9#k&z!yp#iCp=3YI0DWDI0xHJ_6ltIg zdFS7*WbJ`P{0MUl`j2!3P=l2!+X4hIsu3LO?1>q{!Vb0JA|~qf)Eus}e>*A1ID1cp zOR?_kV-I!IBOh!i!FqXS)1}#z>?h_F&vP`(c1ZL;{km>Mcy$F?!*eeX#*Ldpl=YtZ`)79Gt(KoO1L2v^Xyqo)19%DkM2Z{Diwk_*EAeaD_X}j`|NQF?YJkN@_(84kkk zvpCU^NQHL+tnk}V-!;zJ+s<&Q_Vw>W8ibnB698BYPr}b!- zOM7Emy}Qw-6MYU4X#Rpfgs6gix9!F7K2e-Q02D=36~g!QLYg>i4Ex|iq=I9mDvC_i zmcMnW!A~&%5h4nckt&@(;W78$vW@8eZ$jjMMMk3ADsE zx>1HxbJM0#^QLQkjLn)!eS6gBRBK9_K7Zns?d#`GrYGL^>({m8%hLKZ4}xCS1$xC* zeHnOgf34n5E?On$4uWuSv`Wy&?w7uAw{l~@@5nX=)Jp}C$^smcRi;BL-){ur^7MXt zD(t6_A=@cr>I{eadRon$D>&h|_ewzS3P#wI>TAe{A5eLCz#>GMmq(chy{D?BkfEZZ zrJ<1R@zgrDCfFSHNO?@4p*`~HT}W_c#dr$cw?ynF*GUW>s?vLv`r4s&oEkk|WT5+8 zvL9bnRZjb9fO=kWi9+iR>gx3OwL7&fs;ng(aw&Y+O50PpRJ@3hP?W{?(SNp+bA5X7H(5J;yYFH=1a?8m8XMP71VGY3qYUHO zLPCP~pN6)lVr-RtCLT;c(*o|8WYHG1Jq;{5%GTk-4Ia%6aP56J914Wxn6dOTdSwta zW=U5#nv4_@w`JN~NVG%ZZSa#gp}+)I7lzl^H}P6}@|!xQH8O~6mq=?}A_vw$npl5E zh3LPb9|xnj(w?!9c}tKh)2I!#YdOe;>rah<12G~9_yH>n}KW&Ym~wcX;B8X3op;yLO4WH*;o!-s-H2$tqHqVr_) zrqMpl7;oTibwdEr&o{0VQW=SQR=6l`o8rvT>m@!?jTrg(eCdJhK)^>$wRXP5jk@fN zy1e9Ccf2J)Uzr)=twO(`&4HXjhZD)~eVI)Udu!=WDII+f&H|Yo(NEfOBKN|?m*08@ z=$$GH5n$jKeKpx^rbqAhF*4I2C{P%c=KBgVFk6d`gd zBrzm7*J4TJW5a_|6MEAq(lXgiI^KLiWqLy-QKdy=U%`5WI8imV8wn`65p|lk?AUC% zHP`T4B9l_`j0l@1hj7F8HBjZ@VK~CcsV|wD%i&lwkTluDIt-WHy>IAhDhxwfAAmBU ziLlY(OsY`Q6Kglmv-Kx(WF*T)FgRSC{90g1guKIgbdoK6s1eL!VCpPxszM2lA-pW!6Myn4=vlXGH`yxoc7Op+E?Wx z&Ou2OjSSg*4EAi3GQLrLMF};7`yu+{`ghl~J_2aA)wY;#WhENHzgGY99+A&~Mlv`X zqqN^vC+e%7TUTF z>d1F~8$cDY46F0F-&(e%8#7gdjFa{6)_zBQ%e#($|4ie4M;{NZQy#easU+EZy5AcG zePYut?bldJ@$wA@j2mdJ8yardG`DcaM@gO`Y)YLFs{82|&ur81|`_!wll+PD={#~Rqg1|@Rh)gDVx7;hc!5IS2oM-MFef@U`VwJfRT0nraj zoQ(>q9)49-J4ilP0&42}yaiHJkpow!rMk3x<|sIXwT`YLB?`vyM1xIVxMvsp4Bjt$ z(-lBoqZIlCyA=%ip917~TIegyXp{i)J)77T75e^WQDs5h7 zjcwCV!GPwVYKOpNU}(%-a3{+~xyP?t=#~$L$Qm#jtE|&5O{PP1?a5|1WYvV%MYnrp zqzG#CTR5-gx!gufQXTCz{|=E0b2T~B#XLWa!;RZD>rtSH?3kNx>}sp2VGHS3QCcR8 zkm34m$&-~M4Zylp9^I&r)tJK1McF;^&R-h| z{3grJrE{M$hc?P?>tCCLs5NRaxzfPaYv7yr(RoT{*Y)h(d1{FmRIFmJCtXtCBI8?y|mw7I{E#&YU#M_-~cX*phjel6qjwwpah_ zil|RJxrBfFOw_KdzCmss*0dY0zlr(NQ(u9XVu=bu#J-b+6xeZv6xf+WgeigBnOY3y z0a=^6Qx3Tj$ap#kec^}US~y!OHdorS8EV0aCeFz)fXk_@(a7IaH@A8qz~ND&3X=W= z3?WA^gd9zJeZ$PjSs1%_{Ys@aSaX zc?r#}A@gxAAY#Q0SA`8vdyp$3km&hg*_m(IJ;)$$#OtL!kJI(S9H;06w|GLB=N12Z z=X1!ajRTaILZTO{hVJlHdc(JvMzdq2wovXx;+s__I|`c270G-Wl;UZQ`H}^vbM`D{ zg+3OE2GA*2E0@*1D0FUxi!w~IZ9z)B7sOS*KI$9&x^Kvhva~jpgNm>e3%;`Ot z10USRo8PpE#yFJjMP2;&n}Z!C#7^c=!&2|kqJ3ZA2&Y34tXoblj9$o+V#UeO*Fz;W zIn#BCYMD&>M>?!E{ zEaKrT@PiU6X$*XC&|RG3ZLO(kHrW}>n;o%<##E~1PWw;jUXG~SQxhY)WD{(27NK0D zqfyspGQn-{l-)<`(tEaz%+!;GHW?IS-Ni?^OUlAM zPB~&hqLWqEym-pQcdk3ZzEgX;0gTUW&sZN`pcu;EQIUdV%BcFdCgLndV^QSEaMUh1 zwSufgSb9Z{T`=7}bXkhJMZikg?Fqx3_DF2*qPHdys@{=%G^|2UA8mh;;}_dR)OiUw z%6O6xn~QgiJAExDS093ClBW73O!bY&I9TNz#6VhE<=NIp8?hvfAyn=eTV-4f0yd(t zPkScoV7LllF6W|n>bPinuBFayWJVWVSrfQSXJWx^U5fVN(h|)eqDp`4emqL0kmYx$ zBV))N)@-0h%N?1oZ5 zJd+Gv{u(-mDwT@6FVifoSsLwJc=k>uL(t3nT{4BAJ0+{&SRzMu9VEMzqH?eC`;PR} zG>VijCS6++pUG{VCia{|WbL6Df(+6rj7b8BZ0;q=%m=FUsSUY~qWi)gG%Ia*CW%0F za$du71u&WGP+Z3?chz8-`2=6mDcWdS!!JNCEN^I1m!mKsp>snJL!gUSGS3q>cqg7X zjum)NA3CDGA!N!+J6)`P^LNgl40AvNDqqJYnoWtTH@)C*+4w_n^&C!D@{ufuxbI%T zq`=B>5@ju#yYfh>9CniRR(v3Homf-md^Asr7R;PwPKUqNE3dSB7!zMUhpwcdR-%y> zu{130p`+J>ar(#${Is%~&{hS~YM!+N6OVMdWaCvDr`4jOVF!pHpOwvw__)n@rahf6 zexAA}x;JWlC*_H@XIiUvW1tb?a*HXsDl3;P7wLq9T?!|=ByJ`e^f9c7n|7g-jCbVa zx7Vn-)g0!latsll_nEwB%LP<20!u~7gU|c*O7Dlc!<0&$m4lJ`mEFq0q&$5#S?Z)B z;yw@=kFOsS$C1sGsd-)l@2!h}+;~PLHie7#X!a~!e26jKclOYDo40hh5>=7cQuz{< zbK54Zb=zfpr$^Q$2%r4M;qgNi8@-}W7`J-@-X}Wt!E%c-ZNDjG+YiDl%BrJ(M4-pc zusbf~8PoB`rvMQFC(CVtywAJ<6Q2ov4@Cqjn=yH3euy#iM?z3H1j}Yq*`pHS=(2XZ z&6oE}X+4GzA)&4HUIg@64snjMloj=?{1Fx@NyNk{S^&f`8b(kbKU);2bPTbUvSJ%0 z%#t?_xs>j^CCpNY=`lifEjBX`%iiBM3yLQ(~!q-G$YL_w(WS+g$!*YCaE4tK* z0WilC;D_d1)|3FH>tqKf&|T0>`Ex5#R)*7P4o+MsICMPJJX+*NkdGs5FDI;O!4CSh zm%+zu|FO&0Oun`cL-_TJljy$_!WjOiUA~fozKx@at%J4x|4#vv;XwcrK=kgn?}84S zqWgo46DCuX8&4kUQ{jA7u{pk#b+e4>^ADdSSume@)M#s>gY6z~dL6e1lBQ3uWFU`T zojPVLEU;0!TChG0IyzB}i*iXWp-f6j^<3On$ZUdEp(qDS|6_Q+n)dHxj{0h!I7>_;p_5Nqe{(x!Uf{3m+#XLM zw7?lxziQ_kxEM*Zt{*uN0unyRwzc_Z&5%D5;s044Wcr`Jih{9;v4gRVp|K;eqM_~o zdt#rYVlAg-ismzA?0Q}2DfG`sTvb9$F}_DoZH`qpmem@$rh(rgbiilj0GQ1#!PwQ) z6+@_@vZ-{ftg^D!e2$g0DS6Fe0ck{UNag{e()l8ibDv$Yd+788!IzygdLM!8*8N%s zo!kiYsP6fb{rc5y%5lnbyYsG~`IlASGbqk`<%=F|TJ3wZhRjE3nplzO9uyNtEE7b< z3-5W&q1q@fmE!znii9TTUpbF~->lkcFI!tgD!MA7aer3W%*fs-r2ODj2~!$TZsEBS ztdRmU{YiW8)ZepA($@$3iw!e6p&D_-GEgU=_i!ceqAa{t;~Gd}T`Wf7*V58S1vU*D zZ@lzEvKs1}q3{6O52YlWt2)a90GhPdTI0Fj_vBia{En_QpzZe7IE%NM&djk7BzJ0god zwFqZQCYQOhF}O#KDW4>G0e8`|X{iUd(_3_JXf1*MJ$VIr9H;ym;+02VnT%1ZzOZfK zkoHiOaq8vv`sl3RX7aJ8kd$()&|@ZjUGo#L@v5AA1k4m-$&1nV#&&i`?4%R2nGCyc6$%sLIJ#yZ*FY zwn&a{TJN|hqhfQaFE#b#$fJX{Wtrnjn2Kt37Tyfk$Ql=9c!zfOW1Xsuja!_XIAhbw z-ww|ffFeu~fHga9jMuv?IZRlMAt_C8tY1|s_I|qkiG05iH?jHZiVmQxU1HGCRd3fb zBK7EJ5A5PFmQq=2pzL<0Z~2pV%7DVr6beM*jTzwBW|Ixf8C_#2|6pS|z)wiWP7Kfm zW^yV-O&;|*U)kz^$XwNn$MZ+&lc#^=T)Z}wWr-EigfxepH!3Lm8u}CM4JeRGDJtJ> znY%G3oj~zPb>%0ui5q=1(VBH1xMjwC z;qJ;U{3%>kd}!iI5=T-n!yo0Qq>Ny_z*sC!&3l7|6|{#{v1WVwI*oTYl=Y_fEd3v0 ze%i#sn{hy(9WG%Sh@12^PH z%B0aY@3#;&8>2mzh%MxLuGNlsXv@3CXrRVZv1^$LaE5G|vpC4ojl)l!qU2pEO`X=S zSvl*yPRJBEgkE;@q%~x2LNO)C&-pZ~>cLsA568s)`u@D4Q&M!@9^A@s&3!+rgiK5> z^PK1D&F9DR9p~@_7p}^ltbMbuh}0e^Q(I)uhf`F;u*4KK?#C?K5)tnwQQG!IvK*2x zQZYzStKRKFaFgo?|Ef|ZJw$sscmI{xAR zh)?2Dur1n97-T!Hw-h`Hf*qSsmmPt-XQAslvfywRsNAQkPnq2`tSpp0s0MNT?&we5JZ;BH){SBfxcxM|dYG}G$2 z9RIH8S{!Sf(8*uLpT96p{~TqRpfpsl<4-egexAsF3a#Z4>3Et^SVY|u=33B0c7?XV z6)s9wlF1k9H#YNXW0lE04-`9mJg)vS9?DxZLNy9U{Duww_?>hI!#v_?w&#}dG3QL1 z%yz_~+V`qcEN_RqX>%xMi0#!9(k}e_-etU9-HGTJyzyJ3NKax*v0D5BBQq{%2_>6? zqeN$GZuH}c3^c(_Zia)BC@?0+B*i{ec6msA#lj&`wmzo5FumxN`MscPZV1Y#8I%y{ z^0!Us8`(`Mo7NvHExY?~DiPyP^6c=pF;UW+G#Zb;B{#pcLywHxwUzF^smLEkK=HVu zE+yRUfMu%^INY3od|*29Ae6d2qmx=&2=Wr zImuv_>_L5pC5Y1A3d8T@!dG?$Iu_jc7%RMHhA@D9@};ZeT6CB*_M4H3>|d4 zNmlLP=6`Zch9ETj`YOYEX-6O8Yhe74EJvJW6{}UDL#h;CGS4VfX;*KuXco(8QofpP z8W*TkcUXhxsM;irvE(`|Y?7R^u)d=--d@;q5ZFqI&?xCBzf96Kf7fEl7=WS{1IV2GFTN+8)W<@UUR7RT?Q;PzMLn7f6C+0pzB zW{jIXV7ZV#t^%u{sNp{s3~|fZh&nEiJlsM+2eh9(g@c&(c{~w$2{&#}^Uq>5Rs!(pIhgd$}qb8>HSb{ci`Bmt|P*7BO zNGJ{b#K=;DdQhMPL!(!*u&WnCJPHNMo-<{YO)9s)tjqlkD%nU0cGS^qHDfF)UC$Ri zlswg~dA58_>Q;Y4zi@MLecyg=zxr%{PZH%^w!rjQ$&=F)8NF~N#I^jieHwf@d$6y~ zA0wQ{MHg=AzocMUMx`P_VcVk#{&CIPD%WiPBDp+|)DsjA=6A_;5x?(iS_^*l`}Yrk zk*b6fHGtwlTq}q`76m(|&|;Q=+gxMgBiZlJDi*Dw$&Go*u;&+ucY#c9Q$tLQVzRQW zC(;%v7l0+Z015a}=P`v1tUcB}9#c!3Lk_{2#Dh8m(xY8B3u3uG}A8!#nKhwmF4x|;j+p|a!L;( zImw!LdN++l5ZNaN3!;vqh+2|2i9S?{A_SdHsBsg>DXr0?MQ5w`(j!$?@iN3!?k{EI7xHq|(o7)9 zs@Y#AZ}i!A8sBIXf@ktf`gJPpv;irFAxrlhsk+~uj2DJWn3SyC^E2VXbHU05Ry8|5 zgw`kG$as#VHTuBiLv-fsP}^fe*bVYzq;2|SUEtb;iURFD={&L_ozyHc(1C@{b8rQc zS>e%EP8wgbYBpn$>nx)B7cj;5@8KQHvZ_F#QrwGHds+j z$4k+VmP~I!6$|zB&oW{EtId*0c`gn17V4QD9qbu}#3Z7PY1e9&FAWNvFp8uwH2EP0|MA_|sV|lOeY8tGo+h0BX}Xd7`v|M20)*!4LSm zR&+k0j?9^~mNsBMQe2p`YP$Su+?1WbVKF9ZflB90CXwm2zKkm;1rB(4Eg%tR;KXjrspOWAgzxBh5x_nyq( zNP3>C0y8}mmMdvBwma}itzp8cv!#bmI$2jM8I5ZAQ53Q8V`OC_Mav8L(qrkoW~N@x>T%Hr{0<)b9f8&Jc}_;xgPtDsnJ<794ePr`Y^)& z!D&VD4s;P;foEhWyoJD&jgt3Cg~d&Y#XV%fSRrZ6oOxkF%BOF6&y~Dvv2Ex4=zc@& zXd$Qza9e|d*XL>KU~e;f0m+^mVsew&;m^T(4vN%Mi@_q$^<>h>25gmYZ zzu`uT4P6su>G)?_R7J;07BV^~3$AXwcXu%EbCF6~@Zj|H^Wp+wmF_r7nSNDw3 zL3_HT$0yoma)wIK*zLr|_MQ6Um8|Ke*>+hip(sm_jnDXCjQ63KTli2;|7J_^$X9nn+^>)D#npzciKlY= z18d8SU+A}o`yNK7`wEf8nv>z#G73t39eVi44DA{8|7@klItnYpzlJSOEG~OHNhhUy zP+M!vb>@1^m5*^1f6yd#h>e^dCLU=3zsqlSX&cQfr`=z`Q_-u9Mkwv{Gh;+&K9gES zmcnawF%gF&FXTmLFlf}Tt5MUyAcQ|Gy4+h9L6?YyVl%7y_~RFHU(wKt@mhC$#IF0a z;B`D!wVGc4Bb7o|xOQDgSGv|dKE*?@!>Lg-nXm5ZKXs=fi;lfE2~t$0$MVnrSOWk_;qj7 z$ecd??O^fiw`eQc!b%KuzJ)v3?!KB>&!#J% zu0tJCh|GR6LXf-qs?ZRG>Qs(@DC~f2j=&;lm1wgJL!>OJ z?eho2_Q3^He5cg0Sw>K50pW#?ATltOLQoca+EbRh9IohYtGR#VhN}rfnv%Cm3LTB8 z*GUvxmcNO@i;$S8z-u(x@&#dc4G6krn3ZqSn#3^O|>zY$!=jcnHZ#}F60v$f{ zW!3hQN$=mJ2&qSKW+xUWBAKe8Cq~<{MYO~jry>r9M77|Hxjsb`q8Duiq(b;bm<@mn zz8PE$!yh7QrJD>yCL%G_OojWx3%elQDV*Akg^~`3mMV1E{^EJg_2<*{>sOTkL_4k} zNtKjS+^;d;7Z*=(kqmm)_qPj+=s{Ml9L2frSnQTYTyXe<3 z)v0Fv#>wDeV~A&)@6ZISRDRTS!6mJT$R-e3T7tMR`nwiVY{Vk68Z&KO8D<|O6}lT?N!I=zXfGF-7OD{COJ5;_%2o< zFS}@|CaEX3;<8!)jrQ7ZL%OOQ(@#P$(1Ze7@a;sS(Hb_byGKoKaUfc+Rjjj1X>rYq zhQ1ugD!;qN8|b`S_ylny|BeIVrX}l6Nhqlhze2{t>B9%R^yU7R{lMvwWHu^qc|Nao zBZ(SJGk*);a`L7MxiR&lbd6hgCIP2n3ce|3yZ~wZi`%oU0Ks+>#xCo(;bA)f(P{1( zG^dJhH6X4ld+j^I!jh%o4ESa-K(eU;u6Lkf)eMks;hwy=5J@WeyBTER{y@|kuNABw0e8kK>Zp7W_I-YakPYRTff|senK3(fvo)|XZXTQ-m~|y z;~NeCL~SoIRRhg7boS0(JVo=N>x_iCMJ~9-X07XO1FklN*y`D|iofd5ICw&D?HHB0 zx8|PgG!?%m+&Ub6zM2-zIvZX$BN5Z3q` ze1cTQE_)CTN2ses2|W;%FL!}BxJN5be1-NNs_n%`{e&hPihS#zO1MQj$yMmB`!Wz> zkpA-bcPaUv*&xjkc{;nqDAJ-tc4|3lgdti^YRLo=Op=9s$?xH3gIY0j)XA|h!d#~? zbmLAl$>UtaE>Btg4>xs9+QTl#gAmMyLADxAhn8amx)xDgYcVAU`}CS}5_cvQ^OXlG zKII^Bl`+Mnn$&kIheZ)>wZnmO8@;yFkqs*}7vj0g&``^PZT#vTPyx`#ALf|eU;Dd=upOJGNdlLs23xuB)1DPNG5}%m^ z9S?H@4@#f0WBy7m;36X6eiZ|Ce`{L0d=*qI9H6*Bn211B?R?DT9m+IKWGIP1$i!;# z#BgzlKu|znKtSmkYk%L%#9uX_d1f) zVZ0I-lfH9CrA!!KW5wOXFaaHuqegnGpU0UP~I5 z*4_&cl|?F)jnXvXq=jm;DshcXmX+mAn&q07mm02{*6rsmm37~q-Dw9*puV*9j?*05 zoyXapQ?EImUAwCYzAxMh6sU#j4XPHqfI<-dt6N`fjhJTGlJ9#GHhi zMJA2Lr+nt&kY1XCnnND%$BL({O^7c=vh~hV8%SrD@nwR!3^T8hCqC64lQo)q+HXG^ zAM?_qUjfd+jz-t&|#I_pyI(lSS&&MXSbmNHyX z0oARYwI=<=#X~bk3_?eC&X$Ti$4fC9b-|2hFpCWp+o?(JEnPp;MBaeBrXrVw+!mh+ z$H`M8=B>_n&5JudUe_xzlK9hNqm(q%16N||KGVvP!h+hdH#5q~*Vp8G(8I?Z_Eaqu z`ZH-iuJgZ?^soyelSmQt!eqCuXE$ z4mOxf+|DBzc(}z$XZPXPkZ~1ZgIPD`PK{Vqjis>=mN43?EJl}`Gb6?h#jLF;N{vQJ zu1$4pN=p_y)+M)E>_u>y;XYvYp811kQ%=L#P>2RgkJB)nXL!ZhuQlX1r*3J3l{Y z$&q@D!UX-HvB(mhmYE*H^WMP)q>}K<1+Oqa3CT6_?m#X@Eu`HGS`bsUyGmGo3sdg7 z1gU|76e=Q5Sn8&1>;3f0Fiht`0F{Ye7)i-F&jM;xVe^ycjICZNiK$E0-Ryw_(d3`N z_BPP@3z_=d?mDY_zsr^iM68Qk&0#KQYm;*orqiKA9oXFTUGZ5#+=W;_s+u3m;CQd* zG?h0YW3nr~9Sg03BW=qarqq&(kKdmtSJ!O&%#`c`#N#rE>MnB2$Myk?hcF9>O#7SW zZD$cHm4De7uql|dbCR|y7|nj^78lGxNkT-u9c`KH%qRQlqDfW73{4J6 z>5}ypOXLB25F$r61}Df5ng+RNVGY?1jlz-&=2KFrdZ>qW+3ZMV7Crd(_b|GlJxaeZ zZ=y)s*X$&f^d1xo;jmoqrqzKNt^KXC_!JXpF0}C)j(|uMJ&NLi9yBm$8-!0G54U$8_HPn| z>`eWvTS{wz`MLPUXu}tSPkzU9;#f&!U%5=yX;I!x;HV?&G~jd?;L+Z8l6Y26<}^W8 zeF2_5D65R?84ZOfJ}|#)#%;WFj4t;b*Ce{XLA}N@3>{@m+Du(I8Wy*H!gC69z&lj%>qU0_1D;K zEXtQeg7KF3(hy8b87nM$?v~Ad)y>b3Zx@$tYp8qnfR@RmcrrcPt}ea&6Q$L%L9R36 zTaM+B&z)H$)wah^8>G8g9wjOQVsb3psGiZIf1k_S?5t zEIf^caj<7wDVp5~n-0ji4X?P{yQ)!mBv#QlI9;``g+Uv$xiD>Pz|6lOMwe+=CYHIm z>;rpqmL^AGk)%fN~tiZV<311U+jWOSQ_ ztR#Y*#=!AM8yrXN1Oh6WSIS_?QRjK15erF=rZf49v1L=SMp~`9Wc_U$0WQ8I66gdI z&V&hqEpZ|C@88O~__1)2l2yfz#yp%Q`3BLVD?Nu9DJFfji3E==QqneZ*AQV+j0ROP zWs)r;c%#CUe^bXbb`QvMKHsb+_<=eu)?pUM!C>zatUf3X$kyHPUkPz^rF_DpawL4x zqjF@vlyLY0d?l?ur0#rh_#!^6aK0(-N>*Puv>1MdgI~eChK2$gR2%z$ODegR5A(ZF zPe=D&sKw!87!QwKxQV!EW#Xn74HtP(tKg<@B}9cEtrnjg=QOT1XX4%KfvG6eh5JXG zm_Hh@*kP8hdtd2S@Ps;t?3&T(T>ln1`E$lRzq2HjU^3-sUaZb^{LY%an^wcVHWJNLVcGyhjrmVgKtPoml3-J_nrb;_6cxPxn4iDi$Ueai4hnW z*yx?$Qe!+wr`%z`M8My?y3`tTu`d&K{*h`0(zGCA5Jg(IfO^x{qG+!Kk!uFvZHSGk zBK2#xpuW$Ng3viW;k0BvZ~odErnTRPPV?V%z}|)#vv14{vn&e6 z{Wj5})1Q-nx}w-1PhlFpR%ikks6`Ot?~--D6Ln3%Q{%_ zd|l|Fzk*`NAKc=9EokATKbPO&ItnlS^r{;~tZ3c_O=i-cH@K!DxXAH&1#o1qVm`8_1Y6~G-ie1;b8Kp{ZQa-yW(r)0hn(>@krSLhvN z8B{-@{BeMo?Q$VxA4Wwt4!4W{GT;u$rx}M&J&NCZ56|ghHILC^ZU_0DxTz#7zsg>0 zD)4bCh+_s337=j8(ImYfy|!0}1b!CJhin<7|@n0q+L z3B^5R$JAaTeq|k&=MzTM@HHz(hODqi5hDHya*Lnw2xoaR7d#{Hb%AvT6^8K%hG#vu z=a#MM_*Z^I$aHAD5uy4rbx*}Tg#OIYF-BG$=b7dEWAf*J;(Js4vQn13XT9a*8&BIo z)V|`j742$_=$jny62TqaJvRSBm*tLAanYyiG^s=Ex?AlgwN)oXv_?ko86aZUb&enR%|UVnoD-a`SfObHU`@s+K83yW}epr(q~f?w6q zdq=jb$4O5ILi94@N2zd_uEAsZ#M_b?P;cT3Lp!Xu^+y+HeLP2?7uEhEq}faCE@Xg< zI!IK6O{bR;I1LU%GDGud7ghZqR-dOjxf8>cbSnthNId#KD)ak0k?K-#5cAHwxN1WnoJu*?tK{o-ET5?b;i4VSo)(pF*6nhl z7+!3Rgx=j_U_QYM*S#NBihLmFTtL{dAZO1SJ~n&Dls;9B$@?yrSn*4Y8~e|l?HR7t z?c2}U*wgnIoxWN~I3Hch3oS#sP9GA&)c5bvfZ93ThrDe2w(b)i>4~RzUb%hd?rR|y znY;Hb)q-((rCo#4z3Z9mjFL!1A0N?oDGcO*+K8MP{1{;?bW;H_{p74aA&xF@k(NOA48(ocVAbxX>xdu3KF14jS3 zK(AnOk84=B?%|aO3_2W_@n4Z@AwouO2EYlN!)u|9z#Q1Dwe=8`nnS+1r zdF3$pA_jl_BH=#Ja)(5t-j+N-!sas)8h6l6TwF7*lS!FImLfSilCKM#Qkxdz4DC3} zEah&JB*M3%Bn1m5E_@GHZ#}mPU+`|Il~X*!1V%@Qk6Lw`d3OqK>00mDTlzVHVHqiFvlEHFSD`kVcCZ$NzV2J}k;fN6h2-1iLK%=k?m_f;V5fxD6 z`2)r8;$fvs`lx|60F`F;!kS5XXpP~(^0kXV4ONY5%^LRGl5EdQ`Heio^M~!vo$e@q z@;uH)-5synpLM%@JD(5JeED7=|3Q0E$j#{|x(@pz`MyIFX?1O2Kt5JcAiVf%Gw7zs zZ=s&ip9%4FcGb{fL%06{txJA?^GeV6@>zE%;5icv=a1Hj68`kN>wS>%Lz*=GA;JK3 z*XA^q*W~E_V7I8?LyP2h={fn)Au=h1l4$qTH%#7uX$tNF_*R75gclkc$QE|5A8_TKDy+6*(yP0ps9#auJJY@AI_xErc16l)N^@*L*JR?2SFoW2_s!>IB)5|(AY&?YW z(GnD_YU~YYG^PkNijuJif_FAHD`D-g&s{6FI8${7`CZ$)M?gyp0FV@}#t)k8WGBfi z)j8kP!W@!pMVo$!q zx+_!#Ff?W)y#(Qfv}oF;LPE?L0TT=@Qi_vxB5|Z(ka3qO3BA2s>Bmh%4|%BBLXEBwBUnh&7N3w?lBu8LJ*2glS11+luH6RKf*+Sn z@Jt7UiaP?W=aCT1y78!4UU^Rkz&k#9BlI0z82E*ajxg6uwR!oq*{N0xLyDMI+OT;j zueRDjmEZ0_PKDO)CC>YdP-hr6RHtgJ$gLnj%Y>mn&q862T`g885;+g zw^*gZ>f}zPP;IEiP^IZ~ZRrq=SWMAbursUDbV{w3*9zEc^|K=+)rA~>#O;05@@p^~ z*?8FT$S6m!wb+*mGECtc1-)}YE7N9>I=#L}=9-U?B1k9|i+u$CTURcmL{1QJ2jmYn zvc3B@pkaqzU zHLhb+MUkM??Y;-7X?9AdMMLTk#e30a%zX5 z!&0g{53QNs1yFbiZhaw*NGJRd(CrCmo@{hw4qd8=xuRDBahulq#uXsG;+$xVx8121 z$V@8pcEvPlJA+b{2=0`DMSEd!(>1<_7#L;6v4(WPEMMdR0QXcqAn~fW--eCt?lKB;4U1jL>N=w#VhenRHcGIfcWha~%FEk96v^j)_%KR9 z;d53a{c6z{h$GE^m*N#2q#mQW_~SLJvwxAvEFcf1DkX!mP|YZS4I$7_9qXwxk(c{m zs-sY=2eFUEH-=8htA1z3&(YWw!@5c0^%pAe+Dl>8ki;x7!%(<0;JQaA>zLiG&N<2j z8d&?n^C(ngO@o`Au1>g;4cEn2bZ7%IRo@clk`*-TaE4)&xUT*l4N?$J*W!?sEprbm zey{4rg3_yt+HfR6V7C4#Xo|OqmUG6(MLqNh99uHe8%_(i(lcgi)` z7}0{RU9fT5wr$(CZQHi3)3$Bf?mlhXwrx+p-@TccJITFYGL@amPW@P^ot>;&RrP?F zW27+jElzNagFW2}_WLf1r9Z-iQ_LTRMB@R%mCY2KIhpiiDW*XuP3daVsf>VSCOx$S z0+w=2;= zE5=nD3YB|@a2?2r5f$yQtK)X1&x*ym&4(>8QjsQ@3$RD>4R;YAmegq{cag7Y|xv^UlK9Li{ajd`TQ`ntB7&R&()ZxuZLj z<5>)UGSkXh?4tGwKg5cV#K(wb%t+at!}~6T=Yhoj+5n=5=7xfmWYble`3A#W!@yYA z*%C*bKsXhLll-`N^vsyYt5)9&CrP)!o1NnQ#^62e-PK3Rt%$X^7mc?JiH5Cd8EASM zOu(WSpW{2jyp|%SSk<@(*(T-(K2UQbr^SRaA;2>e6R#L;kN%bS7}XIU#zk$K*^gmA zWELTI8inFpNCNL@59!8#Jrlf7Jo@XY6YtDdSg}SnA2G74sgAHa8gmVq-TU4F>xw+e z9OkPuZSDG<34Zyue)@XyG%_sIPLqcR2Zf)`J=YJ%>=|;cwkpT$(Q@K1uyuw0xfzEm zF>SMtBO=GQz)tFBLtG}i1lk?91XX%zK5w$xD)1xCBo5kWBg5IJev84Rtd&1i>Z`VO zb+)x{`P#d;LnQ68L@02U`G7voL32c&PQE$8qckG~t{vvKgCLiQJ z*tZx>sdfhF#ScrKi#m&B&cw+zm{4BPLuy82HTA}e>b_MBF6Iy{L9dlG--)7W|9L(C3F@Wnx6^_!RhggmzTnZDTdnV$i^xV{<9cYl!w*7-OHK2ac0hIFdthJ99?Pr8 znSrN&g1e`Dc|yBaLT&xZo)eUP8?@ATeS@~Z>9oKsjxuKm{Ek~R6794EjX}0680hXi z57;Ac3z~FwNX(xlZ)fws|eEc{$Xjb!ngSTMeqmW;LeD4u0Q>Wx@*k+S0dP%Sr&IY>Hrd8jd*8Y4yB`VaKa@tn~OF!+|{iqpS2A~qL!?a)kxc- z7X5b}a?4usxhItpMl*Ap3Fv(>n9`xRbh1VoLE{|$$SyMn>Xaikr!k=F=sy9s5nS$n zL0HV?nP{Lc0j^~~*6J%oD^Xq%OHwtx&zz<0o)-;$HGeC#yjcCc%%3q{c@a z_Z(+x9!ZS)J=Th2!Z|1Jdju;^;V)?K47_@DiD`-5UzS0MXo$#OGBMqm$RIm5?#!Q+=XX?~i^}@7yoil=^+QGOUtb&dh z@5WfPaX9J|mfga%Bgu^Zl_ub9W67)3MyrHsd$#SMFXK?~saAJ&UEs0fE~`XzLl2HT zx^ZgzDjqD`@hiJL?GEy1SB*>_xzn2YW|USWT<21+Jl}oPQwBBP@l0SVUYGM13uqpw z9c&&y*=~K^ZPHtwHgM5%Jmy%8hpO&}05NeJ4nkZU4vddNFQ#Mvk zm2#?58=O5<(}s4ctku@cdyRjfW&iF6D+y2Ivg zki+9E^a4Erg@;-}_$U`}h;>e~gFDPcbIu#SFc#FY6*DeI2wj#G?S4Q1WqYpFgRYGO z0{}pQ`G4AbG5&WKt3uWWPELv@_Wuzsv2*nJ9~j1JO$cx0r6s7F&r8f+X;^c+t8wl*s3tynAO*8iiG(Tcui}bme-}nspTC zs6J4rabnw=`}G~ zT57eniq?v}ZhKQjeo;rqpD0;Py*m?QYADfx4YFjgOu^L|oBGP~YT8E~7s3--juu7;A9 zqK2lZ@>i*`U*^2F4@=fZd1JPYbNQy?fx=~ZX|nkZk^<_0#G_l;_flU4*wblW!is#zjR{kR01rJ zDJXO1oZ}T`bQ~cb8ILG>+nKWFaY3>2b%_GAW{WOhFK}mb{w=CG_^7`rQiW9BKN+fW z#YY8@Qi*JbSqu4$c9_ygbETEe@=!}1WtmEbxsIU|II+#9WlYTxW=e~MbJx*D%M=?c z=8dYvC8lU`wzYj%zdo~29A{1?1*0;a-3ge`g7#>G1uPb)LK;(B#O3y$KQ&H~5sukS z0Tf)dY~Up|2p_i2a~Ovqaoa7dOn=qYk|ZsMYTmjDkW;}ZEr@gL`~kD(;#kf~OaoRh z7WWID{%y{ovH}y-&d6v{^MmX{&Y|)pC7(%g?mhZazk(?Afn+9=W-)NtS>_sy@5LrH zw}{jS2@#c03^MDP_d1SFj!A_>7U%N=h{5Y?aBfk)@6IVh_;xID;P<&!wd=c? zunF8b3jKGc-#ag&27U-i=F&TfWl_$M|6Li-(d9THy3%&K;Y>q(FV?Z(pV?#Naq1%7 z&XeR{=&ZEF>=`8BFmzEbr8@&|aJPL`p!3Kho;h7;jpdKoZ@`a@g1X~27fonWvU1Wm zoF@8mi1FBxv7B`5%d|zfX&16Ia5cMkwJ+a!3P$J(wTTXuQAlIk5kwmY@I%x_;!GPw zNN5YBHx~D7v`z$l9S9%)EQ4^xv@dz&a~$nuUR&3VHpgh#;xV9WUeq)MRo}iS^D_69 z9%sbY7jBPyE2)l~qo%n|Rw>JgUj<88ScKo&)eO^bpqioURV#PLx9aNK9lS~FDIYlT z>yQhW$ZB_h3c$*SEtn@QG$usbp$CP6uh1;`dkyzfQ5^db z3ZKQ?HZlcdQWfXI^Z4mn{7%Z#7l22sH*niaqU7l!Pp|V-gySR+_4iPW+WMi*7Ji)p8E>ul-v*p@R6+lZRgJ_5h9xF~%-7DD>;F13-fuBdLBZ zmB3=ln=>-Le2_-!tH7dzU}?)bz`pHHsuB~(UP_2;n{zC(Xv0tnA~;268?&&>j^v?8 zDz}T|zu@~9n;YZ_(Xqb0yt|#6oF;f?N+~{uBX;g6O1d$NtQ82K-lttww3Vr();d|S zz>%RsAtw~a(WTc^)G_m4zAAN2yy`7!;3t}6CduY3smZJGx^Enm%Jg14;WzhTW395% znm1;6OWE2ws5#_ibAQ-zF_EaJR4HG^U(f+B{Z?*XSRv|trCnF;z?|xruAn);HR6f3 zc4&{_)LTXCNM?odkrVz3oAJs?QY)6Q`~f1wh5t$N&d_< zKNQ5QnJ9cp!Ygs&tl5c1udrW5KTNdT;pR9kL7J=r9`X$djquBhB;KtHIMGdQuy1yb z{jrcHp{y@w3IK&7v(TyKSyiM67pI^j8mwXy@b^g@6`3#e*3GHRHU)G^?g()OD)XfG z23_i%!72CvgfX!vpleH-{LpLDKM9-eA#oeQhRb7sXNCGV0FZ=rEipzKJQSi0l?v)!_x(iC>Z4TfWa~74ARM?+5i zGVNu5{3!J4ua5o9WK`Thgv}qcZRufz1w=Pb>-4g^H@8KeddUDzoK9+e4vyGwTH%{7@vk|gb>Xs*=^6iOf zf70_=0-7c-*_@e1;I*=P3BDHCI$0-2T05kTjX1aeamd{-HMyH1Zhe{KEipYXBfTHLue^#)m8_B`18K&Hs^37kV-u5U7WVs|ff%ywTw>-JFkNf+Mvb1ikbWTQ#=mliSq z31i1h!78}~qCa+==UiLIc(7J$Q*tcXrJ50*)gRVSn*U>Y6&IFhYvo;QD*2ng56_`ef<7jrY&H}+A)z|#&DvuE zVQ~>T8SJCH{EQ@iNvk<8MfmZ|#iSN8LF^i*+u@Kfl~Q?#eB@K$w6#F*YvM)|p2b0r zt@)?2@6n5!MQI9gOl}hYv(+&^c2ipWJcT()MU88TLi45sZBpFIs~?+b7)PAOR+t+DIgNW~ZLET6BsLTQQd zP*??a1u9g2;NEd79;C?R-g`_B(Q{K*7^PxLO+{tjEW=hvrCCg=&KJ{BsiX9!)mQlpGyGPp1+<{9z8Y*gBDv zJ4uiYeMd;KCv1<4>&WX*kCBIayE)adHE!K3e@su}XOQfPE@pwxt$BU)%O_LwNjUdK_F+OHl$%mW>6(hZV=LDM z2=~RS5(u59o|?$%GOYPoiA?%sWFkK@8{e`Z>^xf;NoFKU;&t$FOZ+KJ@kR*B+r2g! z=44HCPMZ=W3n-d?Cy-_Zl#u440h)I5G8FcJ2#R2rznIRHWz=U!$oIK6cplHLH|8sa zC$70}+}RL0%MljtlGYEnEyrdBqY-q1X7***RTb)DOK^*7sW=5s_T&_4Q%kxbvTP+3#?#pK*i7cw z{E6bvy*u!G1|HjzTxm=?yxmGi&0-(Mk}`qheUy~L(<4J-Ik7nH5dvj=qi7?w{G8Er z4AQ?UlpFmn@@d~)b(ZU7*V_?;cD6)P-R5dK0%be$8_FVWtFRc`5^W>qY(yB|3BWlG zol9*Fu(5b=o{d+JSED&%vZ4l@vT&NH$%r->kcih>(61hhkBzSj)m0s$aBq!K4~GJN4^^8&8(=KJ|inEj0qGz%N~OyrF|cr(4EE#EfEqW*S_lXs-O%%iwxIL7y( z)nx+l<8Hy`KW+#_uhcP~slVFFcb~j##r6qL^jz7C-(vn7TX>fh(qjcKGxEZXTk~XJ z(5$pccQ`d46fDh=9M}x`R1Q7LE`BiqDhqlg`+|oX<+kVQ;VVGKrHaZc(BcJU#GR+; zE%ISHCmlz$}cc>8IUrl&H!UuL|^DKZHop_J_8Q)hG?(}kZh>mty zQ0|U!3UfsG%Y4T=I1}7o`bL|*-xwS$Uy3W{}eD(@JF#-!pZ&m-$x(Pql>?QSg(&P+-B&Q3!aTzC&4r3B$} z_#!W6Am;)ux&IEZakSsv8c+m8r>vc38}j+@+c{U+l;xiF&az>T977vUBuBQ;9r(xr zc=o7xZBv}Ydfw5tBzY6a<<$ZzN5DH5V!e?=9L*8y>X4~CXuz3GtT_Qq)ACI9o~KJu z?1Q>PqEeMIO4QwrBq>YmX#EfC;18lrAaog)i$h08f4U2*11k3J(rsoF^(b12F{ate zwybU;3^%UXW%QF}m()~aX=Dk0)qO|ue)jCSCy3?l@5U-Xd;*xe<=)dM7}V4CBh^MXc~=~+=%b18=TbP#vj?LNgY4@9E)Yi(1OlJ3Bn7}d}wvHt9eKl=6uz7_Jy*Pq!gI}(M z_nAknL!-wjzXG3D%&M2h|8CYjsOViN1Y36h1w0`!s}{v*OC;Y>ui@6-#G!g@ATgsh zdpDOg7~=VT0p#Kx;4t*GCDN_UYy=aYJ-%tK%8m8s8Z{OkhVGbAl;le)z;2J|TVo%S zmPIAaJ4k-o)4r9Gr+|Oj{iWUYYwRQE&mUA9eAPk$(MY^y9Z9iKYF!u%w9d3CTy(j8 z1MYH4O`6S{HBk`(tLF1Xt8T{Gzc`QjM8B!IGj_g%apAxaQjW5_I>h^1iAH?hkN$&> zKlNa2j7_MOtst*tHc@-G8qn+GeIwsPH!{s|&HU`n7{vqbqN6I|R(fTMnUx4Q%IoZp z*Z7CMk8g-GBiShSF0s?XIv+q?dmn?J-O4b^53mdO@C0z+AJB!xMxj-K>h2N9R~O`J zJ#q(z3TQcl{GmE#$?yVsNQ|sZiD0tWP=!Bt#b4A4jV8gV5>6MwYBi@am8rtG``LC& zUY&f|lFCKG4$b6QmWrqvwI%1&iej%t&GlN@QX)&>FIkT>m!&e82H>tq;+eG*?U#Je~#WbW>5`5mE^+&w?f@cytgYCoqCG5QjoK`@mDl+dGa!`>Suy=ITl`0g(^T;Z=+!9M|t8V*bBp(_$gXm-Qrx^R&KAJHd);nP*;#DkKN0Q9lil+h;P* z25^j(NR)DMQ>UaKR&Wj1d$C@&ga~VtF5heYyh+VJ{f8#*mzy$)UN>JJu}kEBKWHEG zA3p;^vohU9s*6F|U^MBc%G7SKX{)8y;+P@~A=1oRQPZi;l&Q?tr5eLZz>1K)bQHP< z5$<0D`QV7J`Low?Z?uLC<*trpHsFaH7FnEO$K?;^@tnEKIqL%? zmUOj>A8oQ*GdAY{V#;W_g|K(c=kz<}xX0b+2)t!EheYQVzKT2pwdH1Sc;_77(mb`7 z=OQfPU#c>ywPh6NDk^!pN=NRhyPcBVRhCOy6$0Ibnv0$1+)p_jvR@)wdA!Q46}{zP zOC#q7PZABQYO$pE7~54D$KEQKwHCC(RSB2IyHQXssEzRn6R*0-gajhuDxLXKFjW_d zLAO8p?q!(spQi>>b2bVy_k`$cOYPkhiT(_TEU(mxf~c? zRGrEOItry3&v7FqVb*X02?&3!so=B4W)U@`anyEimbO^6|6WH!lfkfIGyk(+U^l`) z!Wx;gHiFMKhR#PcLZ@LEo@L}#Lmw#rhb~bWJ=cV4bP;`^l#vIs)w~_*9?cyntFo{J zeaQ^FRiJXAlGl;+mr}z^YX3c24meD@s!MUUhE9_4s6cqCrjI}>w4B4qW*ECuzZ-vp zm#IYdp4}PaxK6(o?2T{0W_vT6ZB{wbwBHuftWlA$$BJ8a?62jVyh_4BQdHZ(^xAXa zKr424XOO7!X^JL|0Wy1HSVb`iL-VI@Hh0Th%XLx-7B*2VD3%h%26>6Xu=6;Jsh~ll zc??75c$9~-iTkOu5ibimR2j$&P2QSm(yVJ?5-okoEL${V$Dq1o>i!qxz&T-MaZ)kW z0VKBc)H`PYMJDDFq)L9R3|m>Ud!s=8g)@|`*pMP3U5Kn05#89B#D+zgtgN}sVOXWE z%#2nZg3;1}f2FD`MKFd+25m6~%(O7;rSFd0md_J_pv$13mAKx)4+pXrB!c{<3&-Xlw-x zlKg{0_FPeOQY~HiMW=ykEx{1`jAb<#NJYIRkt9%%x=q5D%KwBBs^*iUTK!&QEwTK+ zud+P2WSM_&um0~w`}<~WLTBz`>tylkFzrZZX<%(n1LxNw*C6z7I9zbUZnkj({5@A?-fy9!$pUxeFMHE0Ls#n!kfE&DM}KirJK+ znNmO=BTk*_Xl4@Av`X16DpmNRsAb|D;<-3Z)6wqrF>#^x8b3!MH^R^_^bOx=oxwib zt-#TcsThG>Ev0k=u+-}l#(n=4Ed**U&MuP>1+crZ^kVmQQ>zCf0dFXe`O9SvSODWA zLy9|hInFcc1i>*kkxZH}A&}e?CTI*46Cp_b-qB5xq=tl0&?zH`RFuUd1f4vr^_R{Z z3={n^j@PsTKAZ5<87}?vu@b$w@oOJD1}Y)BKuwYb^9|sT^_jj$f977{si0wEMHN3g zEGQGtb6u1=j{4)zT*QnFBIr{tqQJATbHRq-!_Syr;>25k06XBJCfB~TMx;q`#nnVU zdGC~nAFYTOYY#AA0PjzIeCB-)nW=(Ups7(ah&XP*jGsT({s;5y32-Qk)O81}*BIdx z?)?!|^YIL397Z2sfS7Zqiyq?qDw!fUBom+$bX5zVG?v&^*PzkN=I^0y%hsQcXaLKm zWLG0c{-DUoe8D0cIP%k{+V$^E&mptHZzMRud%tj{m!rx3@DH@VW@#l^CKiJI^#n!> zF`8%HZ`5-Fy~Wwx4~dK{Fj_)cmI%)=+k22dW4Ip(4>OS36JU5=~b zbu7XZD%TMkX(etxw#cCGhGdmQgF^z?m8h#8Q;j$>Uyu4k6*Bs}Vzt>5on}!+Sy5Y2 zy1SQobQ)U8Y-k(?fFu^s*B$(pGKNyA<~Ke;-EONCQizaOhq3G>HMQIr2LzceN^{ek z6|978U^Bb^3>X48pibK`VEl&djz$)7cfcC?A+aB;TR(hQ71V-_Lx4& z#c%C#o-pPLDe~EFzSGV+Z3){f+$%i~rJVP1f{yHmO@1qrXLi1F?>{FK4HUNdRgLKz z4!SW~NII1L5{^z0g@23Ne8kM<_tjJ)4d%-6sa?g@GkJdxPVEs*klY2GyKQ7elY)iV z3+&a*$=Afk2<>hb{+1wzAyYc}hFO{}JM{1+FuiNUjY z5*PrW^;fm$|KZ~PfAhqD3pf6S8r#^}D%)9^*#3u(>qP79?(8%@Gc`4HaCGko?c{vt z7UTB(^5pUaRnPJ}e=s#vM z@&=AhCXTdD&IUI2!2cEeKPm6mb>Y9-|33JC%Q^l}@c;EIbyT&S3R#hTU!s13!p?*~ z>goZJHnJ7W28VQA8QcL&#}dQfu@~TPSJ^wSYj50$5tHuooDv7!Xy@nLx!i9-*>IdYp4*L!+M! z3>$IEvjfT@w%f}>DbeXVmTo}Wvu?gkt0}Vj{~clQ^AC1m03$U8$a2f|%+I{c+a$$h z0+`dY1B%VMZYI4#b@C@ui!LV|zY1X5Z9#Ltj=5zl1U|R_)1QXGz0$cOf@KPDK`N=p zen@XL2f;ryIVR?gjr(U3`IeP|DcbFp5WIwfUX(!{e=U^TceVPzN=Y5!3{bu!1#Eyf|8;KjR%MV<%p+6`=J!{P=j2KNGwyNT*Rs?`{)) zwGp!^f~MUS)5Ljca_z|RBBP9=bU~s1fWoDyS-#Q9S43-xw;^V9TKDNwtc((h##B?x z-0GEZy{?viK7wcW%1PMeATwq@o9EXXzCHv{rJx)<0rlD-2XG$k@kdP^P zHCCJW)*+fvZLU@gsY;R%83%ZhFsOR`6TaU;?CSbcm_Fj)!DsL4hk^3)3BR+K zieL{WmUa|XCG~BN)#Sqy6<1y&Jz;%?dA(1|$ajdA-|2hbQ&DNM~uzCwRiX z*e|_PT{g?VaI)|X*$T6?q`@x(yo?BrxwV50^Hf287jO>9VCJheblUj?0yjzO`r!(< zfdmXGLM25YaSkPpD8+a0Vj~2IjA0`x&W6V$v$9ypY^6Mb^m?4=t9kRFTpa}`Qk93o zmKI%qHd;Rb7m$%-JpG82Lm{Ro(H~-j1c)+{JGfImuN4C=#t=M|3ic|7>q*#@Z$Kai z#z{a#v=vucx#_4Gk`M~X7_OM8=E`%G(#~6TEPUnX^<2NZbyr2A@zX7+R7!_QwNNfR zVLlSpZE!260N4BAQ9ud9$s6;3);}T66*-^Z0cIr1PVw}K?mE{4L=m(CnT_}Q58Mop zZ+Y;woN9AEUAmPf0#J5? zF(t=?nz;~wdQk~Nn35WTi*g%c)4x)6gE?Ccu)+rw1}0?XF9V`bN56h4^N6Lh>;HaD zdG@=aN*e$}f*;TNC!e)1qE_cc_S2bw=viD$D4e>wEwYso$iD|dVl}`c>Stj{O_|m{cqO) zKUTT_(|_#$@2c_N0>b`h{Qq^~FiDn6TxW+Lx>3Hv@g6mJf#+|iH>mWi46X*eLXS)~ zA>~lG49=J$4Je0BT=)LCBEvwmJfZijrFp5X=9_ZQ>QacV)gcrc62CUNkIa%j6b64& z{e0KDH~G0^_kDY3|2F%v;rq5n|M~LtetUgAyGDmQ&JF zS#wldf6`>jx!=p9yb1Npf;hi*1TOKQ8ZUE zU0X#IFQRo8y-<9gp_eus=c{%e&DKH?Kk`?P<6|~~ykLvGlzoqyv()Fr{hE7S)hZ!T zH?zc;j8-m7fkoo2aZ6>KD&b7#a{9D`a4ofMsYZmQp>~G3+2Zl2)7Tg3h{b8yGhs+( zm6=NR>WyM-Z3^kzP0sPVceO;dB;VQbLBH}`R%zWYt~I$>`FoYRbM8~}ec^hk<>>8` zfJ%&F#co+jvV9+9L!F>ld&VSHsm4etlw_ldE>`SNN#)3SV;)(e7BszngjwXeEUvp!=E4G!pRT`70SL(i zRuP3nzxz)ut8Og?SaqttiY`}*{}WH(B zG8GsHFl#N9=A$rdyjDvZ7d)){~{DEnr4K^v(_kUwRi_T+efBxi^ z0f|*}B!lOX3v}q^@dY5Gh-(dPfnSwHK~n3|PaziR1{S_rHvTC~#V;>`hJleO?ZTYB zrq-hf@Kt(F@PITzjh&tD&|zl>>JD*p4G}-h_E_D;>uIau5nLIHYrNnMHePw z!-9j!(+IKc4SX@6S0C!IQANk|vZ*qkHZ}p4xf2@B0TO}RK z->Q)I*T9h0?8?W&?SQr6^d&3t$6xijI|W4BxM%&e~p0jz+2z#fWxm zx@F(P=^EqJ@2$JQC7TVW&j}W9@9!tIo8Iq;zO5rla3iesJ0m*lm%t;&+s?$Zhd-3y zbQ`e9b#XRyZQk!*Ug+Ao<8_eyx>9ss-m&9PZ33itU)G?KhB#@Z=`hYR>A z`AA>}bFGQ=>SOe-CXZcd;D1=MMA9d1XL;>;IBwN0+!4d(HBf<(lh>fQ<)#hUZXY~! ztLbQs$xo91R`SKX+nG5Q&no@6wzT$sOIk-FkwqDk(+0|a!tu`prKbtpNb<$3gY)y# zsd~{ButR@NbcZ);dnjg!_EF8~IxC+?PFuz3wW@M=MimwZ)w+$`>Eo*0pIM4jhcov+x z(#!p+Rk`Gu(*!h;1{jbh7;}55g^iNNJ*XxtA3`oU8)gbBL~K;A8}3e^lEMz}?@UYk zPhVo}O%z@q%TbZe0V$&)_1(v*6$o!VCvYD(@Rx^Zej8(Miw^5N8=RqyJfK-<=ud>#LvH zfX)H-PY5)W`I9wZf}~<(7CEFTtr2wg(Yyg8i{4~l`zFzGn69;6&#Am%Bsk*uL-WPd zMurK+gkB8^JlX9~;j@se|2VC_v@up`k%{x%vkA2M*J}FEl}Ohkrk9v3JJeu4D$?q4 zlfSs?#8%6g6H8;%5p~<+mY;p-^orgTH-7lB?hy684fU5tkvo_tJ3a?IMBFV9?kQAK zqR>hzLY*>pjROB38Y&?l7}E(hZ{4I??xEI0BBi`fXJC@pdA2x==RZ;DCGH{wu7LX8 zo{$-s8a<(a$)k|Q=Y3yv&^-d@OtDYfeSh39g?F*($gH z(0aDy-dWo7VGn#=Ile?slf><3QuanGpx) z&g;e5lO6Nn!}rH{^Twsr2V})>;UZTWtk6h>xkLtTq;Li4+jkzv4JE_D&y$n)_(h_( zRu^=H=W87gu0seIjx6iStyBkT|5ASzuVUZtI+jeG{R}w6TD;j5t6Q7`&Xdo{6+Z@CB3P zIpl&XN54=o%j5HWEK{lgpG*wFrcR*fPpe0RRy?(zOfU9< zNHcu0g9cE)i;*q#=6uP$oY0CVG;W`smick3SVsfMgg9o@>2U#f5n<9XN_eF+@Bpy> zi2xYj3bCP0q^~HLJTQD;N&H?jUgz1qiFr|w%HOq2LODcxJmncTKq!||09v4hw$Wl{ z?*@RD-CqtY$-j5@Np0rVEVjVm%>JhduemkJMDA125oCQfW`jIIlAa!soe|BV86Bxl zfmLk>0a>LLM}DdpZYLrHu^meOUUso5x;){mRTJP5;j90E%){q)(AKk7LID#7*FwE_ z8Q_Odw`Sw(LQ8>j1^;!`EkF#?9j(Ymd5g|my~}$~(%Kyh!y`pV!UZc9svEB)mc}7*zg=?w8|6lv~;GWI< zfcOa6(~pF&WppN~7SHeyusYU6Gx;2;5SoV-wMMlwk?UM$bXQd5&TzCUYGZy7%n)2g z8^pKKrlsQ;!YjZOs{FOWhXhIlt9!1_%z-xP=Eoz7@tQS3##k`m>U*`K;!q@gTfXJ5 z&DSNZNka8no4vlhy`6k-Ix9Hr=$4LxV6gWPYuy;-RsA4TuXAlax8i|DPU$|)lKQY5 zD3v}JG%9|2pa#r7JPV=0WXs`e4X$1B?RAK`BFK>zTg0A~haNf;zxf3Iar24BYFPs5 z30hvhVq+r>=(TaokTj8?F-9yzdK5Ivjsf@0RW5O3H)nHD0LtlGgrWD%lxY~FZW!-M zan5FXbs_p2cvCbK5b=ac3#w%zi*vw(rm+mktF1Qu!%VULu@gFY-jX6TJ_k|`m9boc zuPVb(R}{#67II#gqcg9$Xq|%ib6K+H7BP0W(Dfg}H}m#%4CX=7bXlSgB+H!9;^*Wp zl9^*Yn!Ni(QH&5vUacEXMTyF}LD7Xv2KjXi&-=kPW z!@QF;UVdKmZIu9LdQ-Y<3aojLTE;Pb{<41D$zcKblQmMXvv(-{dv`quAtJbD+6mlj8i6U)TQMY=#sP>CcxQVHtc zmS{=Xwr157m~?Py>ZKeR0jI)O^Jcp-Pu@E{*?m)5NQkOsC#+k_mukAa-wFbYOT^o2 ztK-rk{2q0N{!a9L*Ft}k@>;j2E}Kn>>}X6n z;doAyKCybAh7)e&evg2#@@t1u=ECvG!|hA0XWGoUSwuhKgfrYlvwXej{xJxYaEpZ) zZ8-KpVcTWQatg2UO{BcizCNXpuae3kdlY+P9Zu#bJ0Ph!?2e`ZEXlJ61j(ZG zg9V(HUNh4b#|N-H`k+R7&{W&_xZ&txu~?Dr=e$ zX=w6*(8290%7E8Nv29Ag?T|njd zK`^l4wQN4vbq1kzpXujFB$NVJu%&u-2E%=3#}^F^c*LE4EI2b z^Eww5x&9l_j4seSS57gJa^&Ku9U3ms{%r8(6>IW}bAtcI4 zTGz37J&CfC+_G^KakPm(?MN>T+k*VRdpptXC7#MkW zrOP0M@=~655yzZnxa3nM%k|mYOlv?EDh=jF9ksHu&lDUBdrM#J3+Qr+bh^|orA=4Nt-O}rO;%j^ssa=t3|Z|M#!_1H(2Gk3iP^v6USch6Y-52!YtMDJ+Ro^xZFcTUqTr>~%Ev;#jsbbLi zV#$VEb)zi}b3Mw-h;$n57J#Ux+zgFDnp*~kqG1rIoWU~wsg{WeR`DY+j^yl2o>s;t zlzYbEXy^;-t;|(kp6@gF$M@GuefrBx4+yRW|5k8R1i@w)z(?K{3vv?ysJYiaCy0OG z_VX3~aVaN!O%B(fJeDH%W5gd8y|11wPUDBLI`#o{p-Lb;)^a1cK3BPFgbC@ zz5vsij}(MVL`SBxpP>c8FKrdHmDr=nXw1y^V9o9ju!0S9e%r1M@y_sv3BYG&I?l_e za4n;jWqV^{$l1OGvi75d-6m@Yps)LyJ&3a8+S`L8LXP9clrtqY2AKLA4NS49xCQQ&}qn zyjnz7ag24PAU>C)!mRU%W6@8?qR-kt2z>9Bc7r!Tyyv^Qa*%cg=bcNnTqSG6Uh zxZ!QH_b_8Lp&Ic97>#3@IUtZfywJRSt(^%O+W9Myb(w%XV z<)=#_m$K`B=F~Z%SPMetz-X-vK5@PixQr?QX~(X%9*39x7>oC}gdOg<)r=i0*v866 zC?dy-b6{9N((oNlEb$w7SV-E=R7QLRoT0Lf>G)_KIy?hkpSvBxA78RhBX-w@z+!HB z)TCIyWQZu(E9!^4-!EsMZ)cBhCo_cLoEd2yIW@mg6CmqEl;Kk&2*Q zJ0iR=)`*^j))PS6s5Yb(SoRO|1;92eF3M6SVDDC`!bfmv(3QLS{eIzp1Ep?;_K!rL zk%#P=diuv|MnrgyL0ezo;Wz?Q{paaviQE+4O3+@V2YY&V{5j^~sa}>uh<6*=-|l3? z?;>arwd?8KNMtL7kH<5k4GqGczr*`KE{}*BB5S+C$!rw@oL$Y>PAHl#%XDE``;Ky_iI%tO( zV~I0|&RA^~l+(W-aoQKm_+M%T1a!+{>J_TC#pM^p^F(%Q2lQ@8#WGaQ%QZRqNsH?+ z7oxQUW7ZljX(nJ+il`xRDE8J0>Qvh&qSNbUO{O=7XyMDnh74qZF3AT$CIm_d;po%% z>5&~n{2;N6QG+2K(4`wRlbo%2;V<&UAuT*YSCjBg`ruUc3yyr9bfAXOEre+ZQw%U2 z^6+V;I+6%uvoAx_asFW!QT>u!>B`i2t#;0yaMyX^td}JgK^BA2;t14(qtA1l`+3^y z1%+q$fSKX}mv#A)jw4I$vG^@yPL4@yMgYYt1)p7b;wH5=q(0*$2@VoN0>O?b9qc#x z$Ru*efU-Xc%v}Fadpc_jC$2_5BqvT}n0qi_=Tlg_8vX z-2Y>XCwer<8h5Zge#3H1TYz7NDMHqE<%-wo=*;hOC9z~ngG>r2g**}P)A5hsPcoJg zFABI`{^bPMRr8PLPea$UyW&HkIQ;onVwt3sALPB^!z!|sw_q`G2ASA>fann+AcLaU zp8Ye!NdQ3HNX^1z)(|10M0m?ACvNCYx!a^)ld3N|*9ZFx5rOYq-OrOp?*Y z{ZS~UCi&w19z`di91{&f4Ya!NU7_x4e=ND(lc~&-`1bzXNEDSB{PlBMyPW>Ihn&79 zCsR-Sgj2$}lM!>!0~<0z0Y1r8Y2S-9K*p2otDu+e#i;z3>9aY7ZXoj8QH&S7%Xyl zAska`L`U-#xQ7??-y8e=%vSXmoULk$8#*t>Ei;$3*nGiTbh_g>FW@-VXKphb0m#X9#D!^quoo zx&yp2J;xk1nqACpvF%tJw=bP0?*4pD_SJ=+E7!kLgNYiO58YXoT>uyE+WBNWWM+5d z)yptdKT)L!FcmcuS$%B}E;tqLAVFd~$JS~p$uvPYdZO>|BoguZ$j9-xfB#MoF3}m! zErIY(S(}S~4ElxhJplk)EU%ZIl0Iu~{oD9YG|R?*D#;``ekuiAW8uz!L$Mj|_v?yu z((l@tdMrh(jFwQ#RF3@3$LZcOLx#@jT5J02!9<_|JsJDGi}cx`F?|N|uT5dcyS&~Q z$gaQsR5^~bFyHm#ZP4SkkFf6J3QtVuR~JWPgxmCJcn*eGw_e4ZrKtWb0c01Y<7+4+ zdFz1*3W2#$#W@Mrd5w3-@_js(=YC&ir?Z1%*1`Twht+TS&Z`@Z9Xef`Q~uLkl>J^M zc=9!iLIWD#BwtqP03OE3!a{uP<`#qwT;PPXj>Q0L7U@|7JtHYgPF~+O=6@({^<+wj z7^eVf;)Dyy=TcD~I}7AItZ_!S`y+FK>G?@H6Gs&6yRBj_8G`mca*=6|Cif6R5BW(hF9Nw05W;i6`|s}BnhR9Pmb zkeS68{VHs#9}v$~9p>_dg+3ZyvJeplY`;5v-|qGkt6gz+;Njsvw6Px&hnd7Dt%(C@ z>%F46ccx752Ffm%J~jkbX@rYu22{oFe|YXY#V_Mt0J;K@ma>0n!m>KV)H5GuEwxfr3LqNI+ttgL9js8a(DcR&Hkv zFf>c4r4D1OPwd+i(+f!4QH=uKCAY99oHoMjKbfx{Xr!hYbu-VsfV%27ic7+y zYmi4{ox1TIS+-q@{B)elb`52fv-=||``y8KCrunLeJaQ&WrmRjJC4$FKZwB3Vl%*N zbL@xm{sZ3BsM)XwtAiwb0^d{2eZh|JW872C^YAiicfhYZYYMrgHMn`!$p<~GW|r=K5*zz?ozvVSudmu%|HPpaIxAj`ClnH z3)4m}A~+)IllKDoTUDVdPiqf~J6GTof}&sny(F43!}1;gE65 zITd6s%39!!0AMZuqxh4*0>hCAP9-`6V8F6@J*a=Qn*wp|jog&AUpWw7eJ$fVW0{un z5*gS^Fpkrp*>0(ZG`k2KVL8h~F7URCbV64xHF_MNFC)DS{#qnw8$6j1MHvy|t8% zG`Rn$?afdo5Nk-)I_?%|*k>~9NF|>RP!YQ*hnW~!04CT<*Q4Bqp7I~L-%JiOOr?ab znpxCT2OGiceXO2CTlqEbX;d`GNgwS0?FXF)Za~nGhSQhY+2R6x`vvlFG2l}9Txi1+ zJf^``Icw=3FEaEr3lTHHgZf>vrcA8BIe(&wH;WfnT~)Y0T0A@mfrsC}658B{7gue# zz||;cmu*GYJh?llhMmVX$pRcPN~qN)(da?q^AStG<5zG7w{;C{!eLf(g{$kZxZk|+ z&dI#1J@HPs;?H+UX%knTnKNFkRHL}1vI<`38tNz2|hkh2!fLl1@F+SWt$;xm7 zR?CC&=K{oSo)aV9gIRP&a0zj?5tN&?l?s(US$BV}a${L3s$+`D+P^m$DB1nCB2Ytr zN_B6b4W`xBL&`}(DY z171bI40;q*^pfn>ObPNgSt}co`wy3YCM2qLK*7HM7sxr)@m9?t+)dR07vI>Vv&%1G zg>O$PeYQ_=+nUiFR=MODP@%`EFtav%qmd?Im!(iDhEiF&tZJJieCJek1%hlz(PydR zqdh|&%o!zND@q9FvLT!FfWg@)(^Y(wua3!P<-mhdj1aA{3q!}l;OX6Ia1GYi+sh`l z;!U}Nt=GTs>S%Tl4Kcuko>`*y2V>IYp4Ns~l;LByLZP5X~&S01yCZS1bL z5j)PN^mUpPs3#>ky->wQW{WA{*b-K_c&GeFvAaHvP>6X^`MHAsCC7Y3Cy)-$%eA-y zBDY5lqrB{wGI2y~!8_;^mY{Vb*J}@-#w(oMxlD+Y-QrMz&X}cA^7W8T6%CM&GDtV+ z8gRR<)F%+ysRl{e4|RObhP?GJ^i&)Vq4NaY(e!`@p>taNFAJyxW{NbywfGv^4$AXE zIE9O>)kLP1!>zg#orA{QwqzG@=o*f;0s~nB?u`sJz<;}~%#}mqQaqz5`duI>0TlVm zqxHk7@#B$xId?bNXQcFM4U#Vt@OvDj5HL4K>ex-yLXK~X#4gA&TU{PMoBd`_-QIT~HDV%H zc}b5`OEJq{BV#2tcT#f-*WO>d_=3JI-eQbQ(O;AU*F;UOM3+?Ksj)MiTe_V0o%C@5 zhkf4;l6{0902X^W+vO6(&6HiFJRazu^ zm1NILv3gT8;BGY&Nef#XcnVKPU0X8qR@vPReXtlw0jiL(Y9_Ijoxw7P55!IB2-r~I z*6plnYg)r{b1|c$Y@NOppVojs{{)j;SHM`^ZAnJ1r=co41$i^8J$&77?uFkg(c|{RQ71C=(iB=I4 z*kyO+g^ttW_X8*=;0nh$751?eq^cd_p_ipSUe}n zZm3_se|djRA08K>5)Wc??JoWq>$2@AL?YmkKJ)d>kFQNEr|xjIS*yrmmr{@?Pg`Um4qw2QYPB;!kF-Bes6q~xlxp-ZHBfQQ zXzY`c!~FA3uQWP3U77vJ$#jUl3c-C_%D|&vC1%CzwL%c_Dn*;peRiGh#4B*LagkHs!{_ayFEJa2mjtZi%_)RL}vve}s5ThtnQMUw`gIVj~74s^}k=Bp1!e%B?XclUSmx! zm&sYv>nh$#OHW*v7N_Bu1`oi-@JWMfV1p5ok^!nWs}2=$Px`XcWlF~6#{GYAIx4Y2 zAka|q>)?jh#^sz z9D7x?GXoz^^ejVCZ}g^Z(e_->Z|lI{`y2iV63j(#kXbm<05?e+-G5V0jmhJ4cr900 zrqmp6wbpEk+nfewC)R&15-4+f2cc{(GTq=AG_dK*>=Zq4&E|-t*Ib{D&sMT|nnY0O zS3VB#yWq9O+6+!UFx_Bixu+(@^{zI(@5U}0ua0@fv-vDE4_}fwBnD8!oy=!aPjoux zYZ_sGwO*m-!TCbb_t7KHWQm7e$qv!!vq<@b~o)~ zm6)KopaHrQ>q}NXI!hl7AWR4MN6C($b*GM{QC zUQPWqg<=8Inpdi;P3B8aF^*I0ClZzAaL6&Nz1&y7TLc@eYHMz4cZ6XQ+1RN{WxkP@ zF}pe|a#={f=dviXakqgUw(AC`M=sJZ%^r*pse0N(r;V;#QO?pe3knU@EfSL^S6Q23 z(b_CY(<+-L6DL`S&zc4g{xZZwgw)EbTW zf&NFEZR-k4)=8F^p1LVY^{w#{b3~#luY^j|BzRuW=WFW%V|qwL+&Gl!^>A+jkbYGs1^|+U*2s_ zP#-n8;#R)($CLGJ9h;&zOU6Cb5I~4;*4U{wcyOn!S4^(zcQ;gc+A&L^V0bq4{P$LU z7+Yb3LWq|@K*qTqmj@)Wh;SZfxRx)^-o50V)UjX5_rKcsL|Q&|TQ50Z(wljl$S#TL za&K-%H|=B6cYCX2{>QJp{SPSfs)`fV%1s{3k=LQv`f9cvvR->TRZC$Uxvg$!SA@B+ zxiawDjm3h3x*Uj5oVA+*WI~5v`-S}j4f6CKXRMTtz%Q02;@f%^<+D&y%;O8&u0MAG zS9}ImzFj2J2ECVMvi!DZm;^*A2$M-`i=*`~cdJ7&wVq7!kCpw}!IT6)wv49{6E80Z z;q6#gVPzlJ<(?rw^hLJ{#%@neQ!r))AxBdTD8Z~Q^!m|T>%o9ijg#Aq9R>F|gBjDy zBA14^zeR(_C?may>Nd*fJjU?KnQfx;TKF1`$JH@S`oOub6{ZQA6o%~P-V_Vp1bI)l zH&fZBad-N^WbSTApiM)c1onkc*^Na$l<}u)6??g|{+*kiz`wnK-(Qg5-q7Ft*jxL) zt@TZrISmOv)1d_T7*N#rSZP;DCp-a)eJP<*R0+MDOgrV_bs19b^X)$&=e^7V0WAEh#wBg}Y!&B%r*{jgE;0uRI zvuREyWpw;P?F{zt_H5o&h)cRyMg-@ChMTa$SwqynL8!cc{!qDGyWeynTZjJ%?u#9&V*xLjuXLTedt}FCGa(JdRi8WWP&s(Vcfl72- zd@?rn`5O9IXe1W$Wej`9724 z>pq+$K;-@G4KzzoPGlBEz)JIUO8DV~=yOKc&`Wyd$A8mH@wglN3a4K-@>R*mW&gp5 zhpjN@+{Eum?g}}&_&c-%?mAp-isl`3Qz<{`$%}p4=!!C3ovQtTmQ3{pjvDus`{o(y zMGiU2KQL+dJAHqS)MapjZeHJPERH9C$H+15*_=RRi&JvW=Dt2m$jfKDMFhWT_3s|y zK5jqkPia&b-~Hlz%#VGApL{b zpdf!r!ma5Rif}b%Y#I%^zurp$+Ch$oJ=%w~;Mpc1AFN-*S~;9OKQjiNwGG;+=WpJV zHI|aiz;3-#4vwPw!?3*|YWwM4?Llxt*v<~P6`!XpnA9qJpNAmgINk|NO~ldP9dAzJ z2u>MS7#)$n2Ja{Tb(Zd|lD*URZg>NNtA>=ga8YXvB%BuWA6IvD)~lj%-0J zpsEB?&8-6|u#1{$CtHaG1K_bl16ofySGpcODW8K;tWU5Zv@dC*YUxKy}g`8uG!nGdMn+8%h)M8YgGqG3= zK^fpT(92-Aum96$WgFSkNALyaCxw{voTq01x~1BkFsZWLY}E8z&VDrEST8VD@@=&RstXQWEiX6vGy&;-_2b z9cGroRhqKkV}}*g7t$>T5S!;X3*jN)xD`qNFuu1&w-pCDO}&@11P#M$Qq-08n9&VcLY>(+2!PMl*GF zIsF<)H*J3T+UL#p{r>(Bmi86p;^*zZM7ine{}#p}`M<(A|6`{A&q)96w)vlt{+74& z7qsANMWtZOVWE3F*|;>~FZ+fIZS8T>`6M}Cl8B}arBZ6qRh#6?KR;#wLLjMtlB?&f z&#g|*witOpzX1c#2@D|kbf)WV^B5EW7>S ze_r~n@0Uz^l{NjE0*>iamqC`W&hNy>!$t?}&;8@bXYZTgPSs+Bf@3CV{g1|U3?Z^v z-5ha(E{4j-Os`|t)p7#o*l$wS?%UCNFXPX*1zB|C*|+fr&os~aOfl>YMelW&04|tX z9Ff%B-xb~%I{NMjkey@hK+-Gj?ltHg?7Pw7dwmaTKo0ZMQ-4dhA9=gAI0CG`0TSitM((AVOxWt-rourZ=^lGc}%_B&1z%Uf$g4>FGfi2J7C8 z=_b`0Ri;0uTQHs5pg@F^QleQqG)48ALO4~#sC0x?`#go=H@xF#ud?fHme&!T+j4;} zk_Zq;)e93oo`%}mLhuioO<;)`nEW0@;>OBu?BBopT5oY5CBIA(3J;;%pt3ZC`zyeUPXijbW1W5 zo?BSXy*}6?T?f<`fCDxqkK!6Uyb^%3TZfKrXKEj}$M3OE^9o?^d09L^z#U7YEifQw z0OL5cIA^>XTKL^Au1UJ+^*8H!+LBi4{#o3v+MCMkyd=aMazO13x`*>u@}iAi-Ki0J zqv*G?A)^crUJp!N!6q9yi=8C{g2Tg&N^RPRG1PqG7m7zG2uo3ms-+a+rR-A|zh?I5 zbEVL;_icRG<4(8&`zTM=pun%rEA4Yy3hM);5MwuO{nrJ82Ok>(XuPMx>3;i+Je=?6 zcU^yT=iu8lg*+{6j2!Hrr}JXv@Z;n<>h-(Hh5MwBfqYVjuyAMMyUoRgr3;}DE`#yQ zLO>WIIPJ}W2ikJ*<2hjnp*RIJ7XAn#jamNg5q#&qX|M2eU;aY#=kI6|D6E?T*iQk8 zgZJQF9=s4?gX*QD0Chm3)3X$$%L-&ux%mYb@{nz8is&^58_z zctC>HBAy}=vk(GV+fRhTdEQHPeLM#-r=b#aC!3pu?;GIx7zm0Ln`*ep(2p)D+jR=q;v>Z&u$q!SoB)2dDj z?ia*&4802BJSD)-OD%+@CV)CSVv%Rk*-rzF2j~v2*dbGWoE^g=nh$_K!TA!y$c~N> zTPnaZ3*E4Ot~QL@V5`+~h)^FQ z>*Q(k4`gG&;UU_1T5QOZx5B{15@#Uk$06CqC4OdCgZW7~pt_^2I^J^z^KAB|{{hdtqJrVY-5xQVsyS(=WUgyPMsf!g!Zi+1b zj!VZlsbz#>;dD{q-^&u#*o<{pkt&4BN4;4)5ufGjxM(fjn_*$9p?M-cq8j+eg-%@dh6f z0)==UQQVM$cIe6?sm=!W)h22R-$3_3q|nP;ZctP5!A21*QUF8Ed6;Y=Ly*lsV!vsD zKkI*E|G;v0qk8RNEF!`UVx_z^I0*4gqC}uT#e?9j!j!|T=Y3&%opZs%9le}pf=nvw zC9KM`Y&cD%hX1Xriz|o#`%c#oqW`9u17|i%vTk}I2VOYL`pbleHV>WRNlH$^h++dI zth#{on0%4a3C`ktro4(^zB4+%wSMs*y@SuIX>mr%5{+do@@;4XCbI<=Cs(23&m?=W`g~NytS`s0gI&C=?C2S;qV!nEJk-P7YWV%Y zIz1*)ulc&k?;d2WaHbNp_Xs`qp0CZijIh3x{{oHC&MzI6wPNGjSB3D;# zWqD9)pF?(@Xw0jD@RuCr+OR&ymuB>_DK2iC&=r0zbC-UyeV}{d@_Ap>ul9p zG$<(aY>Nh-gkmkuahZS$)L2Ch z_2t{-p@%?P%OgC^?hKbZMY75^ar?M0&GIOsmq4E56}W9i|2o%6=v7kpi2)Zp8s{1* z<*vsd$$3kU%JqbI0;HIm02?m9Ia4EADT($Y@UG#lb&DMXeo2K{W zJ8Y5i)x_3i2Jekl+401LBViUN%=om$+ObK(RuD$`)zqBtjijL$eU3ZK%SL0Sa&ghd zuOZs`QV*rz&|&riUwq=>W5hNIBv2s|k0bVjy1{+ro39mM*x7da@mBf(GyMRgUmKZP zvn4BoS5#^|86;urbf;!+I3D&H%}VFPn(Imid944Ux*8$G>GUl$h)caEv;!d9uXhIgn8_4+?ieZ|!0MBNPcFEU{#rly6V|g^ zziO%eKEZyrH4!lP$4W;>JRld^jdkS`{LllF{v-Q8!ZG#69)dSm2FOzZBcxtknUkajY%fN zed3Ek;fKM(n7Be2-Z&ZirQ_k=*HU_EC_Xic8~}5nVpyCd!ZiLg$tL_IjKRl`0?}$y zFC!gLc;71g(OwC&?7h(4{9QFboR& zh7Lmcb|#nJsXPl6#TcC=Hl(m#A!^OQ)sfm=j3x0!D^sGm>s3V-QVgzx4>r#V<&%hm zdzh8jYjmZe;3;bGf^nt2SIlE02WI5tC#Gc9uPRUUtS2l?bo=*v$NkRAVh(8iJK2`W zGH3Orre@3J2n(G9v~2J_PXKrLg(1h=zyV_7k*t+mDIM8Yo;VK$1gyF(1iB|0dMne0 z5NO(~p~eI@3_El(`WbU*;98_6AhnsRkJbadn;9vE*HpFLJOe36Ze?flbJDFOS(Hdy zU1f9r$TO+*v4(>j3@p=Q&T|Sws@_XRurnoJ->#&Gs9T^-M`%!ehlKbk8Rrud zh9RUzEWNhHMPM$6(I)?(hH)RbtxyiPt^sQ~^npC8+j$Z^Z4x%uEA^l81^faAJ&(m! z($sEab>47!u{ESc`@&-D&=KIJI>I83+G z+R{Cz8@VkST2Pr^Fy!L4*jelM+VwtemtXSuedVCvAA=?C+($BNknRrdL7;4cDDj-k zhYWv5U2I$PGu(x5X9OP<#SmGmC#TGQ>&VAHW_|vH;V5uvBbg=bxK**M!<`>)EZ_B)$aV7*lBKc(6?yAJ!qgHDrxK!trWna+bs55)H3 zR6$fd^xbJ&?-U%AsIZ722mflS(vteat zq_#JMO9;Hqd4;-RRU#<=E^1I>ak-G_j=`wh1SGSDG&<^x&ts^}Pl$R+_`_L1LNqM# zgSS!|d?gusu8E2KUYdr9dfB#Wb#UJr6d2GZSPQJQ?YcJJK=!iM2mE&`q4t{=e7C|`&OaPs$TfQBiNAP%MsXH?RI6XUA-dFxEJ zb&M%XB0ww$xlo`zjM4H0L!uCrbs`odV(t2~u!TcH>*z43DnM81s4-F%MP~FcBK_{V zl7UjH?Ix(>6-4IXfDqD8$&-M<6=6XBWjN9|Px^-JS`cQya7Z>i6~s}`b`8by&Z(lR zna;R1oM9Il+4D1-q`BIo2``Q3vWXk&E!$+mqGRc>w8k;#fc-;|D20`{%ha>`B(g`_ zaIM)&lXj3skl=MH6i{q?E4^HvzZ8c%kxo6Y5CcR3`_qC0@f9%NPqU4%Nz z2K>blD0T7%p9<~cOgs!IqFLiJ4+*IuezFA{AyRlpo0!T^-?sELy&}4z*9`FbH<@n= zLFTz(tvI~Go969Z&X&dzA4t`y@xfq9pX3C(ZLZS3d7W}ex`?05(T9AO+iW?1;Qy!Q zL~XFWg0T~+i~qVDT6J&mEQ5PmqAXpc5eG|_?o6$UIs55sGLkUEmm#ACCW-Cx?&3+d zwAi<0$0ftoJcUAAv=q;8MRKoqamLwb=WrrFRCI{@qrrREjDp(U&_M=HO)u1=J0(nZ z&%5}X`}$NY1HC^ZJVQQvp6Ybf9nzUG5!7w(vjq|PCn=7yl2@UndnDf2R&{83 z8)ZMv3X8p%Jc`4{2CRcAV|!wjPCBOHw17b62cpU%75}Y}X-`TK zd48koQIC^k#$#Lmf>opT;z<8gyi;dqaf27)k^S-df8cugz5k-z9Rx^! z7?6t*StZ35d?g;PMwS5|MzbAfrN3ys@nO{x7KgFWTv;+=V%1QOtnHcE&=M*$ihQ*O zIl2_Uk;%>s9%J`~opJ)%EWNAvoac%M=0%l?fMrE;fG;{C|CwSQ5kj;^YFavU@vsXL zxEi(~0$av+E(TIDS5lNPUs;6>RmpabmTFpqcx#8bEsR99cC#4F6Hcz1E~70>>kFp^ z)mT9@)cLYO@FwEV0~)bSMLG@^Bm#5AV=vNJ4QBrqD90Z&OslFdXa)bx7A4k)iIfZ> zdQkXh>A@aWP^OS5v}LFj$|XUEWt}IkkR*=gx?5ykhcYG}lHy~OvJEZk5sBXt(T=OR zuz2SlfWvH-HLkb*PQ5E+r`^C2?a}<{eaTEib)Z0WMtOiCqjBLB`j?Bg{J`n4USJ2i z)iH0Vq3m8YgUzV?kGy%eqY0e94@HkMeEeLbZAMlA*y4K4y+VWyvJ0AV(tmIiR!t-k zbBmQ)%NAUiM2DJa_3R>};6$50l_}0GhS)2jKRm4e`dlR_R#T~8>_C9DW}iT~45RZi z>#W>?q;A!W=AI+v>n`weUuGdFa7E;Sxu*8!7~|ZRxeEhj6`~e%hCoY7pe)>_>&2r# zAUnaHu;YdftPwFBIFF&;8xULly+g17g1@;UkP;^_~+q2zK zT!2VNJXGrWYXGj%Nh2egDY+ZgElqp>(F@FhIEUJH@X?XTZMs4RmY?>w0&bg)9r8s zE-GIU-py;>x*yds;g1M+yU6rxSHB@FeURG9PGhnQBp9Z@nRKFdUhwf2BxH?7K2)fk zi(006VO)PeuPC?t>*fJUBRx$)cGNRS2jP>=PrVVLNO+3%Z@F=9A1pvoIwS{Z4-6XK@uW`3?sVyJ9d109tdsIceu zo7tTMnlYaqEMH`SF8+*^kwS1twV?WIL>Q=E({_Q+8R&JrJmbEie|{V)kH0Z*=uf8H z4wgR(6F1&V(d1g3A$8R-mn@Z<9iRI64l)5}I6HkqFB_=5l?UpK0zg+NHIXdjRIZTY zr6g_2{k%k(D;$bfVhtV}EXM%Z5cD5r-r>6B?BP8E{K|1?=jG+ZrsKzCxF40$5}DU< zS^a@=S~T?yn4(3%K?BLs>uZ{F45~{_G4rD((|ey*-A4Uih>MeO*Y%|VKx_Tx+DGDM z>(5XJ>M{KQ!(JXg12sJUI9|2Knsq9IBu)u>DiFi9DWamQRl5sji=HX(2911yJWoI% z@-Z}U@4JQ+taYb29k~D)Lp!93r>7S+?{<)sD3GmfJQI~jhcr(r&G;VH?1gmW%qHz8 zyaLdX5RnJx^^Hw;fzB}0Yl^22?_HBE$2j?_@=arX>zDp^Hn*$vuHRCC=(NzN?m~m| z16Y^6Q(FiSJ9Vh82N2?TH)3B1nu#ZYE#*R4IMr(VDwtXoRF5ox^)8&Np-6-=`4Y)E zW0Iw(6=`z(42F#v3q{#s%)tT~^w=0(e=;mxl!td!v$Xg(IsN5QR=d#^vSYzeJ=z#! z;%$6|79!yxz9knNYBV=JwmEszg4hguL~ypw40Gtp!cxr~Ap#pTyZ2_Cx%~!BeMh4MFv$SJ^eSlh~fDA+nnRF8N7Q;Lok zD{)pd2HmYKz8gkZqUT%e<8usBZbo@q+3F#F1Fs0@lO^+wCcD6Cfo)7x1;f^B zS@!a8GNcgvhL`YO(qB93Or3Ry^aFR&q^xlX>qR*`>dH9=UmO0qp)t+SHA+geRAAQ! zc5vTmdkq@7l(lwZ#!fRMY+@fZEzCX|59d-`b)w@(M+|kb@a+W8Ar6LRlM@h+o7w5C z%}UczL}D$(Ep;8oR&Gf7y7b#8{fnlx?5i(e(Tv9PJIJ4nS5PsG*%IS{E>ie5m%e9N+C2>0WR7P83RhB#Ai!92BEIx~RYC zfo!f<+Ck{Wieq~g(5rO^Z>pdy6Tn!@_n3YHU&Gmlf3Zi@RV>C)`R56}3m9x#!wTO3 z2jo_?KrRkQE`~@c&%0SDRK0Z<)c-VT71BqKd&DU=xj7N*EI(6;%!xE}iKi7~_97Zr zfn7iLPp6yWY1lOFH-{Qc-J5NuW_ZjCA>Kyn-cvi}uo#TC+16N+%$m zuR>2$LOrAsY%!PF-44L55{3yS9L@(B7EP6PICEa$#YPKJwjQdve;j^?_uTCzFvbe0 zSnIEp2j59#QWcghCUXJEluIVjEd#r%D9MUw5%r3FzQKyj=0l{~#0V&qpWLF4rt!itJb4R5Zv%?R!)57AbK!}B$5AcKlHFeS{Ey{i)7~66J zIx4A(=X)0WOFRS8ZBLL<^W>K&@l0=Oe2Iy!=4e|P*<%e?m^ORZ))V8QoNoB6B{cw{CzN<(C-2_-mu`Kyo z>}gVR&UE@5fkw!-Fr*{%<35f4e@&UYD*1c9U)F|*w8q}}Kue(db~ zz2B5Ca2~SCq;R?*4^Ulaq`pA#a$q%Dga60aImU_-v|DYADz{2RXw$q0r%0GVw zEEsY&NjcF^B647*XzQ|@twR&|Zn}L_4iaeNOkcPc6z>Y;2F$E4d!dcfg`{H>2zHob zb$ScYo^O$F@?GhV38Rn;STwB?!Lf?7tbUnMozWs9-i=^iGynz?NeDFNRCt$;`v-JQ z_WHr__YnoBOv`kNb6zKEYK_N@_@>{v-XNy~rk9dks5@Mw0h{HQXjwLfRptJAQGsTu zGZ_JWcEJ{)WZfaK4nw9@0$l;RjvyHH({n}Ds&+EvJe6!M>7>AH&0pjg!lckTWY$TI z$-6X`fRv=_ z%v&!E@CU@(xU_Mm!@iJeB7sLo7a6m&MFWNk*TK&!NWW&eB#Ag*|EoKufLsT2gw=9) zCH<55{uFqU)cj2!LlyRhI|-3qWExCNmy|JHp>}N@sx{(E@vz%QnS5i|&8G410L<-A zJ3wQ3ed9jxIR?hFopE(`0=&G zXu$wv8?v0Pk~cPvit3)X``DV%5;j z!pfCCvg-XPuMW%zd3X;C;iR%KFa&x|)r@t>$4gdN02wMqdVkvIs=VD+Z;X%^~L&I0_q|HhaPDsoriZ zyEgz+vTuJ&qvtj^qQ+ttHZQaJF&%1PxZ{>DxgVpMo!#fIuGYalo_Ho=J0l}EaV5PA z_NlS6FT>mE<I(C?z>YU2J*pF9RDDJ8h}KH*Tdm zg36-?+daMqLC0@knxi3Ih^?VX*@8 zosa{t1JM9beG>}HVR;%Tve{2cTu58mf;EmXqRh6Cjs4VkqHIbTfjCb%(KuW11^8-; zYlAk#z~HN+&`?s)s|dMC-{^k61cfYby!m<9%;Eii0Y4xp1NoVn<=*xHlt1O5ktCP{ z)W`rhm&mMHYQF8Vl@R8%6cO(Sz;(72Hs9;o)!On-_W*}WASAS}F5yAG=+>S1Vl9#g z_b%Hw=^CJR`gZr}S}sUNoUeR@v(~Mp;3NIV23rtU66JENfmdNp+*B}-s%ISxYixWU zQp;>{aXD}{oW?C6IbQ&Mqw9Uol>-v}b-7Z3f?ehWIfd5%$%35_@e!94T=b7fk{^h* zX}VW(9WYXD##o$taEawWj9{gsGH>vv3FEwWvby+#IpDmZZwlO&Cfg}Q)WsuFv=-lK zqVory4Q+N{=+&f@d_bkz^|)N4N(5j&l1WM%o+6t8krVp)`%(yaSy20<4>c{&alGf~YC;DorGGcOwH}H6tn?~D5#7xnBnxSjaF^C6vC0QpH~ zXMKS&}?BFP8Hp)t3uSb<2{9!D)oW2n1JXLM&Mk#I7qXGkZ{nb|R<)L$cS z%9vN|bEk25chU-K@~#L}ZmhrO7rZyse(1GriDEG-=;C;{3{mQxmhrK88OJ(bb=^Mw zc}@Bw>a%?EVpR`wYPZLn&^hqO<&h`brKK5mU&QX@k}FD1q+2NH@E&$4a2oO&YYxUX zwKO5uGq=v&HbIL&i=xK1$~2T2)TCro6ab6V*;@C5Nopx~ykA8cc7#{w$XuXgvupb4 zL8@tVxW=$W=HBpH=Wr_2W`J`?m~Sl}siU8s8!Bs%i`@gZmez#6J86giO|_j3e8e14 z81Z@>6HVa(4IA83Ws3X@`xL};igwvB%B+~GDnT>R<>|VsmPF6DbQ3tqg0@0NCKb&{ z70XCE+4~GvX64lKNhrnC@WhAs@NBY4WOtmFS$dL*n*+PM13iau({q?erDmXtI9NGV zl#Mgw6;Z5Tyf7_k?+I-?yuU{WnI#1AeZgbXwb!l*Gb7!{`|}7V^$^zYoL9xoQ{S&6 z*`~L&2$S8OTtM(zZd)BRoiLt}O>YXFjMml7l3~sE<;aDhQEOYGu@~C*0=5xaDYrrh zK6>w^0yHSgt_)1edn&H5xJgh4Ce|UXx=pYxsA^ ziQm+SE9E@vh{zFm6KXRsd`8V-UqRP_Hw#wtfgS+<0xuvO@39G#pUD#lkk8LZAFbnq z#9V4C)Fkr$tI)b5m-Y=_lJz9xG(7FP)RylmK>_x*s8Qk9nVGlGU(pZwoP=q*8#m*J zUPFU~R{kPx)Fg}XFcU7iMFz+^VKr0SA0;ps_ZP&vh&IycfsMebgQjsgG=!*$HDD%l zZAtd;OqW6X*p_al?1kYGR4%0NwgJ2Gm*D*u{@~4E?tcN$tZPYH0pW#wNh{w}PLaGCrN~hjW6p?xQT%DdM>KDxq+EO+rck< zbt7f~C&SMVJD8 zvU`zu#xGWJC=NB$FYka~m(IOfI?!BLNuh}LcfMglJt+RwlI-b3+Khn7ExmE?Jk``= zhXez(kI>&YJE3|kelzQ^-^XI0l@+BOXC8-euI?E-SrnY9ICbwp>?h(I`+@9fJJ(g#(kPpJ&Qq&7+SxVp5+KWW~ zd`&zU0!>i!vUH{;=bMrn$l!c8Ze!w0zxKy5V)mLnw<-# z+?F6y67WB4N1$Tz&iuPI;avC{;6@jSE(*Z;W5?(x;XoxwcKf>T3fcusUvN^}4xh!_ z&u?qkK1p%#=g`pK_5BMb1=VDGt61-1h*t;0c+fYG~We2d(#O zd**nv`$;^HBC}+mj=PljLKH+bou#p_Px4-1k?oL~rvFChUCNIE(V4;a`oKYggE4EX zKzGF)XxUPL#0StE(t4isVFsS8Yz5nB?~$A?B>=cy|55Y25Z{x+JY&Pe?oT8j_4Vew zP8)!#lRc=((2L+nJ)`GweLA&=EYYitEq=3T3a*fN;EPQ*Zh0Q&BsYx=RlgvCrhn&qN!cGpgzY?!uH%YWurNC0_W&Zwa3hg1Tr*A>vH1g*oz~QvxX`h^k zn=}9^!sgdXQ_Cc7IigaVn#-g@f9TRy@V%I0mvSDDuPUl)jxEQMhL59sc z?T4g%72$;!%rBh6y`v#=AEDc7eGX=)%(kAyvVcq0iHa0^+4v+GzbRhasZaCXy!ze# z6vF8o%gV_!@&D0$q6DF5ijBSyNYe0>Eee)3>c%j)9=P+5(-S5luYqs^VsI z^1>(}4<*-2>sOO6)U0YNL{CgiEQrR&Y;RW;gZZ2O?tMqY9q4OV?p_d5nCbjZ=y5$l zV|cY7E;<2>QCV#~i8@a%bRd!B3Bv>pF!QR=I;n~`LJ=SKMGQs*twa72nfW~ltrs8s z)PIGeUbQhiaAQ{q1_kpqtrL}B!yIoh~&zbVS&#Y^sU-pA)5E@^>| ztOOO@{-8!1g9al?xCG@I;)!m)k6Tscb^VQ0qK8EDSWY5c&Mq4@^_=pp#uegEHbRqm zq}XWDR6MOKIg5K~Z^53(&uoC81mNR$%7r5W&=Ae}KMEVL;ixZL^>{PtvDyE{T|m}2 zfF@F$==*Us=*WV%);zz3LZE{1H8mLy#Z98H)$O>jUs&GOBgPXG~C5@wLYgH4J?kF%3RwgC;olf9~ z%&$@y`RWhYmA~TloqyaQLxM+PJ{W~q zGwYv%kf@*8wHa0H1?g674v&7ESQ%U`hE~kTLWC=uS^|cCiJKEH4G5mG3s!E8>nIEN zxnQ|CIB*?dOmQ24wbuh>HJ}pwukoG0EFp3@7g6VY+nW%BFOen^)K=H$|B%&VHjC8M!Ai|nS}&oQW8}OSr04Wm}fhu zo{*5nf>I2vBBbq#QjnGI&@iVE&M5Ece|dPQsLf@4OPJXD6hn2eXAPhOWNZKHWW6EtDPr^54(`W=v^{M`O9SrP9TUrZ^=j&)lX9s zNcEDCv!vU$l1e=*SLRxxol7=UWjKSH7pz?|OiK7HQy5ua!l;!FwP=(MXHqK|;e16b zRT=h0XSQ>o#nA&Ln_;jhU$dpC~>W~hj-rV#AivR z)m3?Kry~U2>}JEi3WsOj=-0+;Htv@7`RpD4IU6HoLc{e3J$=Mdn_um#9rcMKZwJ3e z3s;};MD3JjK9j>RXc#hD!IU~9L~PQ2Q_)dtx>a+N)$kc>%wLx+HfarUfB^#GDdel` z{^=j27ePuS*I7BwGcF6kn^^bo;sfcSk~;ki?P;fWt?|Tn+Nr#N-aL2*(dFhxjXUm2 zqXp%U+>-3@3(}i5!D&sVq?8(z22v~VO`A&Qs{J&Xecy?EQ!UnGhB+UULEY{TECn@K z9|+1Z2SD&^<#OIs7Gb+|jWkI2G?z@#!BaG!z;zl9YyINC-_Wq~XaWaqI3-9nx`#r* z%?|f^4`mqqF=JEr3dI_9pY=OATdwaP4NELRqx;7!}_8R(t{m=bBX&n{WdE1-Q>f9o23OcGb?IR4THbD)4e(& zC-XD>K(YFbC!ee`=MjBr`HFR|Y|Z8K+nrRpcIf*0msxd9nJ!grEfv2|koN1OA%p+c z_qCGT_hTL?k*jzB#Mw!oPqENU4kx5LyjmR@p@Y}jd^P$9LwbhjfB{{&ZsOHB$HT}n zlF$-+|3`?O(i)NfaX=x+T`RY_iP*aK?f|8%X=#<*rkDX?MbwDj?e#KVC6+5C!HcsJV_(~Ff*_lHyx>s`2_6d2j#`Uf9zHz%;~X-<|EKc9pKA!!yK;t> z*5j$82Q4Z}ZD+4U`ah>wWFfz%@^fopPEP#kz@}6OR^#BDF5mvuI~M)5-PIH`0QMrz zLMe-49j91B7=$XR_o}48^g*EEg;vZE;Y-ym+E<6#O{0}WSzB){j{(BZpi^VU7<#|*A{H~~3@^CF^0&jjVUJ~ia)Mo(slCBY;eb(_$_Xrlz2_YgT*4L}B#ag$rsD4uCo z-{(7&Sy41e)_wBmrlUnH>B>lgBQ(XuP@{}1*-KCl2`tosie%Rmv0giWsVYgmh7bje zL;IG#(y6`OlaX zyQ+cvhB-U_kW~1OoKMZGrnp*EXsY4Bx2TsWn2)(2#6Pkfry+^s%V1D!sD6Smne{!w zuHj)sshxM$Ex%RWJz@2J$vg7uq{G8mhYSSWw_tEF2dzmvv+w-Xr^eGJDJK^AZC;4uTe$&_xeHM63o5_wA65|kw}1omD!&RyI{=6 zvo#fCkJa1bbL8F>?HbxWu9YM2b1um@KUBqjoYB81QGE=K+T8_yo2sIq)n}tE?Tan{ zSFih_YI$N@V6noRwwWv6d4DY7Wr@08bB|<$Pdcly8JEI*)wF61La>e40*f*vj zsy(_MybI@p@t?m2`oxnKOk?JUJy&4J*NR|bPGup+)&t{>NelL;b!7gMUT7wXLksQg zB@h6gR|~N@FdUjYf>kBgNstb57|5QEP+D>bqp}mUMpt*MeSH_#a$ zp8G+nU5*A5{WM`7wBvTn*N%|38~_Wo%J;YQ0aTPGAqriGfxN#IAB8m9=-UWTCj9-S z-HQ?snm=c8m364yl6|~?QcoWyj~Zx*4ITd8^Nn?H(p9FWh6z*}cbCZe0%IV3-zHNY zajNM0FW=Kqhn*xFqr6oRWf^#Ub5tqhoN2|T-B`@wt25RjfEGsbY-k#gT3XDP|7iW{ zD4@(o9?7|BwC#F}HVXXXWJOYvdf zPdJU88*kOc@K7EYW#jheX46P*!+cZ8fz;5MgqA5&CT>i?(ZqdlarsTa8TxXSW$^&l zUE*N_Ii(Q;Rc{j@=%?j5ti9ClG~y?qv^n*%_KlDxSCeV4JK(xKss8(TG78mZTx zra8KTP% z=9CsvhnZtUW4km7kR!-chsJ6zZ5G;NE+8Hy!|7XbjiR{>gmsT&7W;WD5mRw9e$T8v z)@*wLkTK?@;Hr#JsBlzOEz-6PKH_aub6LAqEy+~FQTol47$0soSOs@ofOn>3Uy>@gW4_8Gc(^e1z#Dk`*FiHf*zzc zBq{7F6%L+3mL$S(T`jJ6f6dkx{Rm(TI7`#2l3H$p+gsyTlA?DSTKAxUrY(NycuYh8 zr65sNd1GHKo>dM$0W%Oj^mh`j{d-MSg7@nqUmFld2{b1(O+*9f9)PwBMgaNo^3Il} zTt}eL`cCiwzZoa&N9<|Ao%)3ijiSrd4%7LeFI?Mvy_ct_7q`VwqDJiod3lgr<13C} zq3UMv`v%FSN`9pn2USK>KiMV4&X5 zJD_qHfGOSgAd-u1>Y9Nj5Qat^pgasfb8E}bPnb>6qLop~cH_itQg<|$t&743as3cb zqEh;9$hi&=7PSq*nQNGM!+1 zzqSmgd%}%#M=XYU_J%mGIXSGd6$58yfKAJ-BL(4f9bGWkgr_|Dn5#Wv`Zs^hpMyI+ zFwq(~Y4acV{AEG`=v3z#-N)!hd}ava5NRJrd>n{u1b8PmLrY264NZS98#gK zxdwX}6*}nd;gKiZ($tYWHSf?+X&eXop{o&ZKDoO(u%>tz{ve1F?6%HUqn#tB4 zKFsG@S7MLkroYEsv5y^GjD}urkxhxDO9HkYfa0cAO^XaUbG448YtUx>J$Jv4m@O}8 z!-c@R&gDRB>g21EgTh~^9d6CT9E6c+C=;<{b>oX3K4dOSxlIH9-9c%8edGg{&}4_A zWK6-}pgJVZ?~j2)gcVhJr#YE>LS?pssrS1*g3=!sd(lTLbcXj9w1a&eb&x1r)*i3b zX80^T78w~fSGMx7IGyDt9!*Ul$G=3UC^-f&7ZE(w*q`!hY38AdMmOS;IKb0^<=N+6 z(*>VT&h?CQc)Ow|?19?eca>U<3E|fL8Qk(JQQFpk5nf*J++jL5Ssz}%r$75={FBIT zeL&n~g;7KRFu|{Yxb-#69e9~|ITL5pzAWV#Nsm36vF$rD`-Cq#U9I?d-@4wG<5?s5 zd5?!|_-%A7e`PsLd;b)su9>8{0#OIZ>~(t#t?}#ga^D0lRNMs97yv4-M)j!pkMfge zE6;#FLK@P^MdhJRrv*M)ghQCG3wTSyx(0C4BK}jH8rgHI>O)wQw^Eg(?VRZIkBLc@ zVb7{k;Q>^=Qo`>1Bpg-PxJIE8j)1ggwOJmMm-5_!wk}ddUelYVfAe+lN?X%5g6xrj zf~jZq9ntj=Kxro-74xCkx-Ct=``I?fmfL>?b4LJ$xqVfF#?vjuT{Z>;-Fy2Xqi1pC ze|WU4smcu~n^$Dly+)(++la1h%&tU(t8<5A$}#~}cC;D19ufg6ngS*nC zcTh$liz=sflns6^FuQw1GxyF)J)5QGPr@*6?;B$<1Pr+oHPzvV6Hq%(aCG!2_-ewl zNN~N3nedK;k*`FY6S(!FOFIZxr`ybnCbPWw5B<=PGy@J@GQ?4}@XUjf3>Y`Jy_W9=Vj6a0zR`;-heRsOue0cY7+kT&G7kEU1%n4Nm-pm1 zJn5yUK9@N^uP)*F(%ZhITd3%G?3qY+70XH`g>muXl!cGmImm6xc0O&>BXGfC9-fll zX-CDxVvPr26E`o?T>6@iql{^~O`2*x9HPd$By; z`V`I}wz485<(NDsv)-kmOHsPfy13X-JN^Eb6Rs{j>7|~5L=nn-?%L_z&sc?6WksOP z9cIrSK$mL(XR0@;^N295>+hbiYs$OUS<~0tT^oXAxE!!{5?tYtx**X4@t?puLuhnp z>d#_#F;2$5{2K~YhT56J+;^;x&V0cUSkm8}4{+TA zs2*6S0>D%HgLXesif?JFJu&))e!vL(Ss3PD#E(i!u;!HXdGa>kZO~~BYW&~uqHFHk zF|{O8i{>kbn1PETcce>yCy{~G|Ddq+k)vv6iC74{o|v|O6eEwM;|h>-luw~NIJ0>4 z*79py!qM1jYRYOd_6cqsz{O+g~Gs_FN8bLkz`K&Jlx-9K-G} zSY;0S#Y1(8`-PI10s{|p{=(Rm007{U{_{U%w^RJT?4s-qjI0dIOlZxWZLDcx8eoR# zp@BaEHulNtQQ;Sj5k(742$(U#rT4FC&}(bi|I*quOkKW@<5i6vZ84Wu1qsUsZ*MTD zleZH>H!uW#L1_^bU(3am(XBR%v4L2O*r^-5*4ktoJC`|i>XQAZ+sUzqCqydUZgzccw>+o2pEpNESZjO$^-xNHJ|J97 zN-if+?@+EJPP>#Tr?e)LsZ2U8rPtBN?In_?XN6W=AYJr|z4}}b-~q5c^y;}eG+bnn zA%WM~u2iiompT^k=7kgb9m+W_z{0Bd0zU0$>&XwyO*m@#UT?I8d6Z~ZK!6Hsz2ZqL zL#H*TG%jRA@gioKW)Nl0&XX-vfHA3;n(r80{rRWB2VhaM3)g7o;x4CWM)AGS%ta&- zTo@OFa0RxsN^DTHKF1ntIzh!pNnXoi1hKg0XWQzC187eFK4_T?JjI!cQ zES)AaO{N2f0T;{3IuiQwtQb>{&_dRNR<^MvsOEAow6Endu;}jSWW@riB^Dm8c4lwo z%-ApWO<>U3gSs2YaTEC)TbsNDHhIkS{zZzI2K%H{*wB}DCdBoL6N_=XUM^ZnLv1+V zm29fh%URaFK_LN7=xHl{k#rd&<}XID>q^IvQl`_(6`;8*Ycv7sy~bM53EVohst+&s zg`Rb6J#D%ZG@BEj3b2Fhzhldg?;k6(yGmSmxM~DsA)6dz?RAC26oW1(Eean9+gsCC z>PD>8`6{%plO-~=*S8P!fic=_U5Isjo3b^Q~Zk!IoyVv$9|_NkAS(QdN|Pwj(lf@6>O z&+l&^+}?^8hi#xF*M-O`iPb975{;e?BSvjwhc=rN%2|JKu}DH-NAN4rhf|r>3oQ9` z#`+0@7%`?1j-8C<4SG*dK74UT#OyxKWI{L!i*;~4l?-AjDN5(1roFhQ$2_!lw?T%WtTKIJK zm6|p8HkG!4%x<;t7VMnaAeg1PAJ0!dGm#!RF}?-b-AXwhQ1$*J!6WU~i}x58_U>oA z=QJLHMDK`5?~owhFq+;#Xnl{Z-eKqt-LyyX++q9VHD*iW z7iEB@UfG(y=4d2enNKsHo~7ICCi3h2&M!xCypO;4GS#~GGI>meVQa&)4FcnoXmvb? z6*7~jf^oeNIPTkxQvqKm@mM?~?&aQ#!}B$m^=rZlW$HbIv2_RolFf%@7lL;PHP*Df zzD_8~?Oy!;Bi@L#-x?Yq007d^|C4yr{Qrr!tevsR|JLjnH7#dlHH@E^i6d5yj&!Jk z4mm+_M?^&M<3;{JcpzZM0PXhTWXHs8VxS@E^o(ZtmX+1YniS0z6myZOoTQ8);Bifk&!6AD-|OGTQ#LogH}HN;Z%TPK+ZO2= zV4|M}Bh~ifatv^pJWGi5fe8$!MN5XD1^)IDI%eAvA#ml*!`b=!!-Bu70|nndXUnp` zZ|x}9kT^|&3C_jf$ha(dj3wZ^>^7k@3jjEBD0jj&NeTg9xg$713-x^L9TNCF=FPF%|iGky#{zQ zu88(H9&g!bxX5SY!E8vFk-(1c+I!RY3RK*~Z|ExK)6iE;L%z6G|BMeN@es_1a<`#l-X>FTAu~o_og$QXU?O! zuD4z!K@2%-;v_c2^LETrRojVUqIIiqwrx{-Wf(EmRu{xyPJW2RX&NoaNc)W(Sno;W z*OMK=AsXqBja6H)lHqts$d*_3^iYaVVW1zeYg~^2gn~>S2(s&o66Tl^W4bx_@i$;y zv|{+_Z$p+H=A#jj;EX2eat9C{>7G0>hxGPW8k6o0 zr2z61iZYC%pBX!;&?DDC$|yT{mSeVM=AhfQ8nt^6gl2JgGSTlZw!#CwuCR`5ei>^q z8`E8|hvMc!yF2*5FPl_GQom^_eG8o?g(Bb(NINa()-M?fclO4H^GM|q2}W?JCf^mH1~Cp$y|L!;*@#(bpDf(tc%8F6T#^99t7u0Ct}aoccaR;rJ_~7^tWA*b zWV6r~6d!_dx;6!64`}>!TaU3WRUXo`K0y1XOXQ&p6OBa?Ym9+-ofFd49PL{CbdL&E zn%BS`Dnam%mz%tPJP!kl-E(EbYWBFJ-AefRl*j)qVkE469LNJtUUl1b+naOWgV|m4 z+4JE$_38U7=dXBo1|4$#Q1X%#7Y9O}w7ttjtK?eSxoBfLd{DJ~&&&H4m`_e?=x3s$ zJQnUcBW^qiOo(Zp!Ky27%8ztRpNZ<>&3pss!Ju**w|4i*AMq@vJLBRy8S>mAWj!_I8wrJfZVZ zzLI#SSm}J3l`}DVQ6m{krm38H(rlk8lDny#AyUyy!3w!#rqEVlMN$#qO1|<#;u#lN zpRNL%9|W`kP>7zMn&7H=g&cg_XejuKfh6;)VS%D?jM?2dE|=phIwwy%1k6eo!KiTLk{Q*;QH4XBqXJzb3i<-&?3@lg zEfrLHj~=Qd|K%}WSSijhex?_ZqRp5S6i|CV`vjA%8$kJqK=8>7>gfow6PfK>%~uAy zk?&hb%Wv~+Q0Eba?nWo2oQz8jX-eIj~gLZ*y0a6hGC7@olocdYb@yQkL1hKRxQ(7y%k@* z#lydZI#X=iRGyt6D)P2oPk0o6)|PYFdM#uBe8B!}B_rz`jX9qSKBt3gzsHe?sC58( z*HSEWBLzEf0(y_0-S+8^aU%mcaQcIQArWxp2uQu3N~yyy{O9|NMjLQkkb5BsA0mDd zixwY6BH)SCtauxyIKUrW3SdGd`iaD(czb5N=wE}mk|v>;PLF5ZEb$qdjb#QX`X5{R5d1JLb?m2e92gD~Fmj^GE`3)QU}) zo0)7E4r{Cu%J3ZHHQM4RUE>H}Pgt0IY3Kq;Xd|8$n*)H>aD*%Puz4ETCA&N#bYvq3 z3D5O?19UkBOf+QfDe{!Gaes~w3zKDo&6#c$te7L>Cq1O0v{^;T5?h+@wFv`4L5=AV zX2%hTw{jihzRd;A7&;|6ah*9z9be9|k&<N#Ix^7SoJyc%LzycIMwNzrk6gd@Fz1UGD=?I3F9AHEo?f-0GSD2(hh=85O zFH(&^RljN%WeyfWjqh*kxFT3EYx$z?62@UUFs*2XuN6eFogK{LYh?@dxU|znF(jlI_G>S}<3^NU58~Enk%_8l>DbU#t!RL)~C?*BfNp!~L zFM;;Ts;?*X2G~(j>rhHFnK%>Qr}4ov_z}nbSY`Jaa}F}4q(OQr^b`yC7EN!}4u&Rz z@c~en_mb?pn{;t%~wEIiXC zNBI@0et}gD`!&dVhq^kX(O&pD2wS_=+mh}5;2KDesCw&(C>K3WZ&t~hk$CAyP%`HP z=IvT*%4WY&i+Q8!s`={G>n1!9Nk~GcAycHG zP^ckOs6`;>`f=@-(DG<#$%0G8*Q6ARQwepb#%k68{u{kkFICRhzR#Da6sc83H094V z?ikCyaF#0R2YPgW)z`hm_T63@51|aryRn&BWqRi0d|eQ z^8^0R0IFk?0NGORFTyoFWiuJXHG<(Lu^hTc6>BI=CW;yh8>h;n5ygGdFVKG~Sdt0R zW-~|tfDE+%se)zr|Epjn4O|WWyNXRwhj3OtM)~=fkS5LOrWV#9nxst1fDiyd5ERlV zjLs2ewjghxPsyWr`AjPaB|{@S6g(M?@u}&z7}>T&xDBIG@2MCxcdBiWixz>-oIocq8VI%$&Y1U{ zR*t38xw9h`!exTz{wR=#-2zmTh;5rE%86J8P#?ncbbndhGSFkF6a)Rn9XmH{;V(jA zj`|Z_D2OWPSF~)j67Pk*MVJv84v^`eU@*2wa8B}R95%@>S+XOVh^w7YNb%e%u*{eY zgO?2f&5{E#X9ob`PK*i!G0aqtsIAn4nT#)>iotNI$KM;5)zic=Q@v7ySqcpz!rAMU zk5UswC5pIkq$Xf7D^gr(r|*4hjpOsXCWoS zx8|~6R<4vGw% zxE#|=)a$pfbd6-DEQb>hz7R$XWL~gHH=1)}ONm8~!WYfy za3I1+kyI~hZx5n@rVnkdk6$O5-s zqsM9y9ORM)g|1m2Q*uZvf5QbrO>Zm*-&>OpQe1F}Q-{M!2>zbqg8i9r|3=)tjV!y^mMB67AuKZ5BlIHY`eEitKsnctJ=B$E#=XY~eai?|KOzLct4MsGlj zHu2%CCM<{1QF-#9x#piiro6e$J}ypQF%g#rEXU_NK_4;$q&ZYqU7+VA(>75cq>fMV z2$`_pCsFg~zAZ^=$jV)3_1m@COP$tX+dWCZqyQpAe>b(;7wVRtRDlyE7K2l+^R=dG z5X{)si7*Em>s0jkLm`uc$rK9tR9SRoBFcy$k2~S*Bw2H2l|T)v>G-`rRRyiYRLis# ziG3&v>C~FTj`V7%n5Q(7l6OkJ|J0E3S@9~0J*1~26`nMU z^f<;jU($mJhn&LhD1d@X)Scg7@_2?$Bkgi9wb{!u}IatOpo_R;D~$>ARQ0EBu(;$t}YtTPYar zukGw|*w^=1Z267`_EP&{|MB)O@`BwUw049>d*n~C1=9%EMk;sS>E=3f_N)v~6gV;) zOVF8U>%jmv%EPmvh7nvTm^FPj+v&f^R2lr?isP7oAEU7EpoQ(hU023CSMe|oYhhsH(}g0?SG7)C^HP0@v%Pscd~~CFg{x1gy9>Zq62w+ zN>D&I19g1rKG7m4`nbU)HUM9Aq2C$b{$qY?w+Hq^pU{M>yVFH1!)C)T{y~J7}Hb9oCpg=vP`dd*r+15THu# zSRp5tD#QD-{)raGMxMdKg+YOCVu0sF1iub1pt1|*wk2ic3UstW6Znc)c@u-y%&-P_ zR^18W#TQbjCk1U&0k0L>8>k;&wikHQH2`*uFK;Fw7()#hiExYTXz?}Q%PoMEP%|k% z?NdGc>XndIOdO8K(eadEW{@UinI>!+CtQgoNMGLE7(2>An>|u#<8vjHLJ{pC_sXPQ zgNl0fs(wf3vh$!>z+_`ZfVHOFc*&Q$)-(ec<+&u;9^}6Y9ds*){x~>n>3o71brDQ{ z-wQHg1tpi4SVP5Ry$?@~y`B=RRWZ7PoVya~Pz8HQnJ{i~sR_T-h)F6}{>|#G)82ET$I#ius(%=F*>#P4))w0^s$Sqw&x~ z@eM>;k?tg;W-_y;k>a8tLpG^U(l#$uqf=hr)9;C5ySwvXns*!VK~4H{Szc*LaReNFYR-hYiKZLESyD^?OO$nVNOG%kHD_ zGE3qs!FbVH>T-iR=E8~w()KP}PdM|UHivlEfa5J4oytvK+7;CkADuFOuCz}W$wu@! zL$#8)eZ@O&b3>Q(7cln{{@dIgxi8Nrrq8)CPt|vT?~^)?QqHdJ6T5fecTDV3$*am2 zXik~mvFWR#7d-DPdiKDB8CK^X^arZK$zMm0Jfo4+8Rb6in(NBXd+gv(340%R<^5~Z zc$rjPV;^@Rpb)ocKeW!W&Z^uKl7<^|0Lb%-vTv75j_lDg=AsTRaTyTms zCSOqDE*{HTfK1BJlHg&Pp#tx934eM<8=iO{uy_Lf;L}!i!F6cCCx()5%;^VzKL@vN zmIU2^aB?q!}COEvJ|_d=o40-~Isqr{-mrkwQ!USMzG2{dYAl z$N#+MHL){RFm!Y>btGZ@ucn)Vtn`2Yg3rRR*n(A)6>6tD#jAg+TBm9!O0WctP|=HR zePh{KwGC1p|3u<$AO3DE68W6;osrvG+S*=Mi`~h?#TTdm#79u1LVKbNsp2h3G&gFU zZ+1tW!huXw5w!{y_KRF+m;wZRKgoO}7h9P9BfOq|=)72(LR*ANk{)vUNH)J|6UZ5y z5^|Zti-|<7XH=CTI4T618k7saQhm;p*gQ{!A`R4UeF!2vXyl`po#JG<{2==?`k!dJ zymch0iZ>Z^$qa#Qp^`-Yw-K5?%+pD*dp0T=+OX^sd!Z?1sdPP>1d;l-_h@LNEQSxg zVq{#T^@;YTIT379JlXCrc=?EispL>5yIwwC4zGcA>J(BA9NcLE1)vHY-0xn60Z&3> zW6&p|$zif)3|+AT13TlAUFAHW>ublxS_tp|g-z6hOF@Kyfq-~G{<}E+4_l-E!6yG- zoc?!|swl+iYA@rltae)Io%j)ax@41VzCH!630#gW|w!ZV~CmNHy!%WZl>y zZLbbiteUF6*R>+)t;%GJnnhu-FVQXIl{`QHXKlRIa; zj1@1!q1G|H3UC(h(2CO7jPeLeL(3V|j*bt)jKtWhY#Cvk;@aCN3-|a}*V{Lij6^Xe zgBR3gYZ>>Rp0irdc^o&d=VED%tIT4`W5ff9m$v|qgJ}@~8?`1^21F>;w#>+>@jI9i zLBfa&STi>=A|I0yAJf3h)~<<+f7Y(2Yukj;euK$FE~?Q`B;KXV8w?@|Rt^kC%d{`m zF=63d#xlrSSy)-#oa!j|)cG#8CudQwu(GnUv@ok?xuZr-9$U18vvy`_M^}rmG$)=- zCVI#cj8{}twSbvUUPe5N2;n1u@0gw~KdN+Uut2+q4`s^K*h&uy#p5v!k6VaL#;;lg zLCDf4_eJO$6659ga4mq1U{e<f19i#Ep@ZVZWDe;b| zTQOp^gc;Y9^zmHqQe7PDq21-G+{>N1*wY@il-glG`E(1_i$FSpo#fNseLLvcm4z&I zMukDq!DTEET&o;cDa36+J;ifB`1}26&p*3Hb@mQ$%Gq55(oSLKT&zvyMSj{fh|C?> z#GrxU%|Y=DwwfpJqoVeuYg@;kEa`7(>2H)Q4=tK9o@FtX;~0#S!qln5FR9_VxK~zG zPOYb@hzcdDi@OEMjauaJ9z!nly?moVO)ydJ^dNbm%aGU5_*F%@atCAN${8->En2i( zviW24R!f%9vdL)8Z$b8prvQ1;$>GuEQaNnV2r+b`)N;iF@%KIBv%?38;*YrT}oi;$LK!6MV$x8xhbkjNwCVcy0maUT?sOCHNMymRr#7O#1c;S+LKl1{Msi28v1&~5mcAnwNWyHkV8 ziON`QPoufan7nqOIjsx@(Qr8jsaFcIz}kq_FiR`b>9qVO(?;RNbVg0;0hYN~lnV zEk@L0R9040!@FNSh6y?*RHT5%xu-`=3_|8>jaRbPr+=$ZpR*%FN@8yos}lqo~Of_#7cPloe5(be5t z)+1@LWm(yBjI^E99W1;L=EoGJ_291hF3nmis+X6KGrNzfmVG(ldpdHNaxZ(Yu{sA9 zyGy(J{up07d<=;zs3-@`i}l}*yy0Zu?m)c2w-DSE?ZrOe8Jo1z@y zlXhTYvq!Hp^m?I58Q5WlTk713$P5ZmKiaKPK0@NlqMZnVivcQPL-#YkI=jo5B|_#X z(r*HygFFfJ?XQB)jMHdQ`be*{-=``mVXop`k7VxU8-U?`=s|skTGoiLXq~1p*NNf9 zu>qn1?NEb7tY{*zFJXcpqAm^QIw`537EwC07mqVsMfr4ELt>OWCYZlh<%P!%OjR&V z(J2oi1{^_wXwF9P79!^jY(g7h%yX%Htqvv#POyEMmWGz3`${|no%}USJm}|-f0w9! z8OV&FK-J4EmGNvP|HY`Ova{Atr#=R8n;yfA)JEm2s=gtyMhLiS` zM|<8l=;YNMP1h3Dbs1CPM9R7px-ho-c=F0@bpTkSC9lavmm0}6CPAJI*!%Yk{>+jN zOzPFsi5nZ6T_rqQ_5D4FJu+Vhc4FGLI_LY>UkwUqw~e&G!bmYY0de_`*X~SL632T? zZ!%~(J{YSJzc0Llf;uy03gca!D`DVmrAN#E+?>hkhD0xVnQxlOg5)$M&7acYZ# z`zz0=N=!Gvnv5}UDuT9i&pRRrKtq;J-8l)6I_het*oeKTbkF&)d`;0z1NF^;4e!bbs~Tui zj@mKKt+a6LD_@4?8N~Py4J{_m&4C;AO6dF1%49R1>2U9uy2YUc{zoB3|dqI_LvcF26W_l7p0vi)Fv0Lx|=}*8M3fKkumL(e|I~r|w-)sG;Ezor!-jM@uLT3v}(>aCGir&mrr)T6`t{$&kSv8_(Lo3YZ zdv_DRh<)NuP2-RBx)HUBucQ2OlJhl;7rPItCZWma-psC(g85=MDT79-t{4}Ryp>st zji%Lc9T(w}nc>x8b*=SEr{@N$Lpsm8ZWpM2jA>Em(O!STcl zFRq15DNmM}sj%;yl+>LmIqmDZK2`B|re0qE7!`a9D$po65ATO3cR^xtY(ym!49z{? zb=|M~IC`*QM5fhW=`yPPW{{r52^&WGU6*>9kVZ-QteX`!hQmtIkezxpiJB97(^9$m zw|!{w4Y-h+Z#49e>!m8sr!7AIF(<{kvRw(R!=mSpAg1{AgJI`b)JR?J^iI5nS87kB zsP?(`29_4L>hi-qqx)5OQo=)JyD{zWnDIeJuMN|k7SH#pB7rW^wO}!t{Q3Svy(BS1 z<-!8z#6q(M&H=4vN)+)%k@?1IUYvBk;NK;1X$a??p?{`wj?IT39DLPu97g_Nu*?@c zJnTn|yoC}gZ%w=RU%uS_5TK;ir9S8ce&R^t@4bnB-?{t#JMWX_hiI%UMFrzaTZlLB z)Sxq;A0>7|(LnR6*U<%!!Dy}zG6r(DxPOAaPZdW$K@idfh02{ zwKaYA$<;&H@gYw@<+V8Arv|k&_M$N-`n;|0^NIeA{dmLvF5}!>?xU=Vi31EcgKFN< z{)CUelix!KZEbdKGI#k-S^9}d&R@ct)2QYlN-uUw2t_1fMaOC6Cp`Iy*bV=Z+;8jZ zstegP9N{O@Uz^aRV`s$|#jZx+1S=O~TTI>{?%(TC#FUrN?y0s;m~NyTB$! zT-0^kGaWut$sEv?NC6}W+z`?yl#r<>ou}FHyHF|22vI4?lR!MtD9$jowW{Zk&zU@B z3Mt>wj7V^r$SeCSM0PntPboZfu_RJ4I8yOt`9B?%oFYt}Q@Ex~ViuR%DedY#DY1T! zs{$*cqv=btmaE@?=%m}hXn+DA+&;d8R-YSc#eE&al{P7NX&O!y1ZyOzT*z?2C>1tA z&a#reTy8q1m`rqmIM(0@Un^;`NnN)!Z^|1sclNB}V-!Dpl0LmGyg`)C`GqaJ!YVHS zYo%CLzdQi{bMe9c9C+mGu}-C%-c5xOM${GeScG+54qSCjm)$6h=rgwlM z(_)TxVEpG*4H7TiT~-@^1*Iy zR~^RN9B9X=9e46l4dZM1+%jrn;aO8od)F%63aa1$<$8$IA>)T|^Q9B!x(4`VWu!N& z{>NfdM!RfexC@7v>G&A}PJv>hC!zMDcEI(z(VP7cT`+`f2V%9}bpYE`?Thd{Fn`Y= zmqdvvuJB6o9VqEXL7YGmzsr-zr}C!V@ck9IeZ42A8V;vW-kL=uxKG&GM||w}z~dV6 z3)Qaq-p+{)2QxwXDMjX+;N@dzX#(ExsaxJGV|jr%u6FKr$f@Yg)T4)l7MQ8)94+)^ zl|A_HV=`0+SL)RlfiWHjacoy)gYBls&rR>J5H7g6E!y%L=C;m#5U%~{i8yk zRqZ@WU+$It#FUFc2Dwx^N11vgpzx3yR9PH z4CIr|rYX?2`CQ+%;5w&n@ZakvK?CjUrjupk+jgGn5Wr7)UdLgYC#t zi-+7&+WQ}MekN+Dko=M0!^piLSu$MULTe8H2#LBJI^8TDjb)$MXrOG zRtI{=h;6@6H4G>pOTp-=jZe__A+?d#s_e{EAZU&2RFmk(9X3e<#KJg7tFUm7xISA* zYG`gSR8>+OKT^sV6m;z4=#%XIv~pWF0dkZR9Xa$`hj22E8@wLUn@D-v$3&kUgU21J z&^+B?Jl>3`cSS7m>k+K9+Q!sD%*&Cep8?^%cLRk6c zdImd$VpRJKNK=A%23iU1BCMt!5FXqm?k*{9Ag0$Oez~xVey=z)Dl;PAqf>5i9g|)1 zW_o?j6WsFm-HknTDg9}7{el-}STi}HGuuLmZ*1ke+@~zvi6EU2uQ&O>@bbyJGuGem z+Jkz40WY&`+cm9LszV+eR||$iFcp7?l0&dW9s4;*+C94y_~EiLy0KtcXIV7l zT;;gWKB2lp4*e)Q*mMPL6kMq0SbluJABhhW#S`pqQ|`?ZJ~>fjI;k6gRmb=3`glUi z;_wS4KM|522B1p;;dTB@JN+%|(wBYO<#K;6bw@^>@WG!YA1HS4f-u)-x1)EsK|kK4 zUvZ`GSJKNP1s_)`q>IVlu$P!P#}b~!f6a^l9XhOjNxBa!vn0kY@bG|svM>!X8|-R= z&7U}-P!+M@U&?`X0$n-)(b^M0NMYY1yL!x<-%S6GRq*FY_^cvyjD{h38#TLJE>;|X zUmJj*uzv`%P>P<4>AD&|CAO8;Ijgq@0vFhjhf5vyIe!i8h?nnkq37GlA{$lls<*`h!+T^$>qid{MRSa>re(DIF7h3bAQ z%r&$L#B^DXyLmD`w_cyRJ9zxFSq`H1$W|F|m-|byip3hj0%o*?HeYgmO(l;uZ*5&k zJSi` zdc=u%>V5TPoyl+-z)pdS;2dJyk7*1q8HY4n?|;#keM^NfwV83$&=M=$Ft5@Q@l+D% z{{c@SRIhm9<+#;Z)i9@UHKp)8b0&BM#i!^~xE2Fe_o*)G+bOgaGi=q}$Mr*#RBn4w zEC-$YE7o#P|7IbS+IJC@H%mKoprNp_Fx0`dN|?4&IhUu=n8fR!Pjk>q#A>?3jT88!-wXp2O}Z+xREuma}HNhW#msBslPFx zFFfoHzwx=p7evtK1{$x8^$GPwse}$?o_a~^w;T-^ZS<1{^rA3b4Jq|qHkhWZzAJ?A zplVD@6mt8~Wh=-4ilnO|VhI z_PC7D=wvr@y}UC7Wjl|N<*^=GXL$nI8=ESfKKdjL(3xHtEa25;#HVXAw+73ueLo&x z({`)MJ_|GNnn zcBucaLmg>1?eMNn1%-b21(?TPcF=pjvX-Iwfd6c)W|y2z=NMzx+FlTnoM0mQ{wrl1vl5dJt$GYc^UdxLfuPy^>rya1lUDS z2+OptHJg+35g{}PM~W!h@$h^&K;}^>*6jfMTs(kM@jD_YKVBGC(m``e#CP$F^3fsy zo=P&c-*E)?qB<3&KhcP^Qo~`74AnCj`U}k|vo?WuF3F*nZv~0pV2CVPs2Q_mZq>aa zq9a;0ZC(;>Q_~Bq fg49+d$l^kWmv;Bft(tI(YcC`OxKaR^G2We)+TJp& z-S}7s&FzBg>%qR2{%By}xsI5niZ>C)`<2f1V!MEE)A+_isHpy(SB(hKJUe21IvKO? zpQM&TGLyph{NUA0!oBJ<* zf*HB`u}J)AW-?GU`Mo!uPmC{E)s$qJc`&g8YUe+($);WWC(WJ?3ZD46zG%cJR)%}&ZSQ@Q{Z=c~QkL#^7QKym*+;yP3@h03TN3*n z7VC5xhFh11jMVyX1KSTK4oPWDOg1}Z+Zn}cgmF+$ufRrU1nKT4oznRj6C3zsATq#r zsNNR++Q8oiD15<5N8a`Wa(b|A6zt)S6)7e&;`)y{#b4~jP9mt~417fmAYrJW(SGMO z<{PXbP)(0g77Kb#xfrv`Y6^oc=Z9_i#Aq@jAqdQ-D#`>pQs~#>s5aw;JH>K26LAFO z?Ph2!V_*!fE6TvAz!}=|s~n$xxJI=)#!#rs9^=rvis!_0Q_ z5|#a}PQVd#VOIAz>`L(0P6+WS1gBU)-6U8Q-o} zJzzlM*9ly%2}W0+v1QH)hBknF`?{BAbL^#~Hpm8Z&}VoVy!o-QYQllIyv&P>_M(85 z&UlJ&B%NW$#ZS=y1&>pWG0G0h3F9P#IcYtNTdE{G_r1jZ@#9m=olMwJQOgiP<7xfu4;UwBi7tE3OhvMSQPV4C47BlyEXw7T>?h{^p@%{_d`PBDd4N?lEoPCsN zO;Uq<=C6S<|1!ATKCs}|>h)c={#=-hS%` zU$4!Q#&i|KF;>8=PnfYO2FTsUV(3aU!oRNab+^KWDiRO-nI+9a>qI*96N;$UQ@+*83IUEUR!$$y}^c(1)~iW zK=u0+_&B3(OjqkA(sa#;)S(%4q2G?QquP`L!1u+=Ci@)Ia{MDvEj!c-3mPZG=RH1q zruv4IX^=PirE#ogFni%G59Ehg!6`%4shA-DnF|s^&@*sJ?eY)J*jQHUNvV5XoSMn) zE+%3f3M^AW05}B|PbB6uOanK%Vv^ngxuXqMDq|nNaVh8PB{>^1Q?{`GnK+Ff6r|!W za%R7nQ-4{{PST%wzc6* zpbg*$DRx!q!h~&mSpZ^g>_CIi-m=|H2M$`%poy~rF@z}|Qv<0-8&VQyU_pS5)}Y~5 zq?`Ig>OrbF!t$lM*)zX$u}JdyOn^14X*9|SdNW)au1SDVZCkpt3bjqygM+*kdZVS`&3NZb}GuLHzX-!QAbnMqtz*W z=hZ0}@K9SDyZ3wA^nk26Mc@8#=p*Qnju|Nvt3wna>KVK&J+6bJl=p|k_ee-UT&~3R z8j+-ZEm?5kWPwJF)AJqX>ePBhMJRZ?_|T*E2z)XQ9rHPbK|H46`1VRtmd!Jv?w2KX}&9~*edGHj0 z$UUR!tpl#`wjsriuz+uhVoTbjL5tv(XpaL6|FKS|RF+;Ldqx|y{0xt1@rieEQAt=z zPL=OW>tA|&ghYI!V(%cLw^a8}WVEpy=F$$9s&&RfqnGY!p%dJ47S(KSwk&rtbd)HnJZ7 z>#l5J=xAyp39xr@R(3XY{;#>os)Px^f&fa$kL0{g)L5_(bP_kXBc+SBf$Ac-zeJf5 zTUkAr?7rmwB5q1u^!kWUfQnHc=&eE+v#Ufwgp^2sWE%6x&)abh=flIw3qDZuZNOd? zZKWcGPl+Ez66E&M@xInpH(0E{D zjp(5i$OPE4l^Ev$-4MqjTx;UK40{FytCID9{W%`(R1KkZ0cgz-p^f-`ANNJ%^FJ>- zefCvXPi-4V<8v35OsG*fIeBZ}_@Qft8jdFPI1DsDL*&BsN>^AC7JeT3U{3sHN>Ea1 z8e)pl)#5bocKK04F-+7di!X=0m?2U)?x8|Vo#mgAcW&hVam}>_`KRp>{%~WB&{)~n zc!&{AGL`!=+h=qG$N8(U*UX2fV1DjpQWfj0cL=etJiW$De%&S4(c$EG0C`L%74#FT zx=txKQOA(0p_vf_=T3zu(S6!Ir#^SI(8%au)funBv(x;0^XTCt$kYwp~`EKOL z*T)o)1-tlR*eX}boLo-biX6h1;CwJxtZ0f4|0H~e;C#o*fba@L(r6y&!P(0Fq^ATH z8lyVqB)WPVB{-tLm=(n|o?p!DQ)So%Y<TB8B;uCY^MY?=`LKxA|yOY@>%=RFzWvH~?hf)BjT4Ua{jUo2h&VQ0K zcK>FV^dE-%1NPq~r@;Shaw?nJ8#)^P!`zYpGrRvn+KLl${R#-YEhHjiZ|0M#`gz{E7YT`dJBV&eTCnN!b1v6C^A|s&)!y>{U>f4Po02vHpfgO{@ zNSz!^gUVP2f9Z08sA>WzR;bO%D1g;b(KW5hRxN8?0IIa~cP_lvhrVar?99j#v5_tx zMh>?>ww$J4_$S={UPS(QdebA~j{OX&%v&W@T|kS1(qczRtaf2}$Sjq?D;ryb?W>@6X1X?S(?$D6x zGXnkN<_w(QiN7^Ch&B-mNH_7IZCGzv2HXUc7s(|E$Cq$mTUub${poQm=^xzQwU;qX zH8LBzCrkAFtzcavu#9e&?WI*)3kD#E@@KzTFc`3|BN{QNqa|1n;24j@qhfA{{Tn%L zp}&;$#}g#i8SE*O$N$xx_*(R9j%h@yWLkDa8fJ|6E(XUYG-U1sLtC52cK*RF49U2u z`0m^Ta{`m4Y?wi9`QQNP!DD7qlqrp|!&2xLtXW20G94D>lDQ=A02V4^tfN3D>kh7e zO1q=)CP85k`ptd#>PK;qdmCCaHI06Bv^2#KiZb@kDj?rD1#s;c%Rl8V-=qE2&1{_1 z;>3R-!m{g>O4gjCLXYR`WFjNHeZ=beR!b!Ua6 zMTW~Esjl=hvmvCC;ks)p$IJ-BX^pe^-r^kObEN`Aug02OqMNv~gbu`JnaWozD>p40 zaUf)r6f7I*A=)fWe@3^FqA_vlxKPK+w!&y5gSew5U;!NY76x*ejP{Zx3l_8H+F zaCtUskK8he+R^i1he`{8A|F?3R6>B(01F^a=9owW0Ji&DnaRF@Hfi9YP@=}fvnXWC zC7UbM*C4+{e6c*8yMus2IGiai+N7R1=_YEhkNu; z8cKwc*ujY;iXAT#I$0zUq_(t46P1OxE~G8{@kF|GCMtYrLY;W-jOL^MI%AgZQtPoQ zdUEazCX2oS7|0%=0noMo8DkIfr}c&)V{(eJ9F630Ce*D|298GONs$6(F?yn0YB33; zRUWSi>&&dao%L`g4Y>RFqoV4>D77u76@?mE-SkX7;w!MGl_o>Zb1sw~wjS<*h(ezj z-*D1b*gVd>|HNi2Tsn)}G3ko{fNo^E+E$A32^=cCXCOyzGdP$e=P zQPzYD9qf;HsXKM7-!lGizRr_j!`>Vih<*%KPh$Pi>e(*er(DeNAeQ<#OLQ+wIZ5vR zyIwKb=!NtWFNQWTlGK?(RtcJy(n6n3kT^l3qBW_S^WG>d%xbDN_<5b@t5RyPfrVB%I9grglmz zug3>f?Zql{eov%$gYtrm;y6ru zhfu%3ymCsM$jl@y{XTv;12o$hOb+lWD_X^;@=z+#v#VYfZqD0J89Grz)2L*aA14nw zKBT+(fNp{GjUiE1*R2NzDhvKKAkK^v_g9MH-n17$-_55LLn=51;aRFI~#8jr{ z{lLW}=)whL_nz*kIdJ$Y&cSR!{TV_JTT%Y@CM;=jE_%ehtj`%+LbQ%PCkgXF-)_ja-UL)g3D_S)Eu%Wc9! z45NgW#EZJ*&3Rw-vLa0xbJYY<+IKmnzuo@r=WNq9djBT7@)QraNFpfC!BqICtEJ$r z2U8f^khA{y2-c(-KHRCC&~~coc#}yPy=zx|7{R6&J*J1w{3XgbySWr`uc))Z$bDbu z;frkv4|=#0UuQn+^EO);M$Zd4SQ_GZuB#m@ekf9snm(RDfT10Mnr_j!Vv3GTDOyEh@5C7I*?SMxzyk==&dM|ri^1ZXhDHS z-vRR>Vc(-T>jWK%Y_}7leb1dDZo9xpfhKLIiZLR4!VaU>ksD`Pn>+zYsq?Mw%^+r7OuX1!V1iL#ST5 zVI`ClZ~XeJtHV18@AXRFiQMkbSt{feuA9Rdg}U(@?+9;=AO_mu7P&r>F(_J|4FR%} zpuX!><=9A72><2QxYMgNe&-N~t{j*#o8CF9yQ1MfZVq1XQj`VKbo+546`5Tvs9Vb+h znmc?h=!Gp{b7#H$fxFX$U-IUt`P6c7Cu6 zM_Qn09dZT2YMLGR#V3Z*lnaszk9wCZBi)kn3bLHy#V5%0>S|FI&=t#FIx_lGsautR ziqDhjRpFx8*~(DVqxe^9Wb8aZE5Qpz6IH$W0#2k8CQa_Qo539*edF+|=s?P|j412J z+rrO(KgUFA;f_WBDpeNd6s*aMO%)`qxG-fyq6X<~DNZku?u$sG$Nisz=kySG9$kB$ zeyCwK1y$J5_D;^~G!J#CExN8lAkq>fb-AVuaAt8m5%BT(lY;gz~5A!eF zMo}935IGvK?g(Sy8>svNk>U|U9y%}U9^&l&f_PoIGr7pO=~q&+GrF7RdH@ZZc!`&&}E03;0%O}@|#h8qcU-_gHq8P|2GCxKc-#0~C3 z@LMT(^hUenNkMgFszNz3?~FJU*gJOg7k$o}GeXPXf+k;s2~P;THU*1;FC~;u5midu zwrMxg=DrJm-w?fMJ?EQVfq3xY4C7mAF*r{yjm=@P`21|9d?$|Hr=VeFOHeM#(H|O3pWlg;vR@4vCnhluPu!x{J4QSk0%jO zFO&jBueJ@o9w5CsYELv1@6lsr6{&Gx#Y`0H3VitT3m(88Z3$*~LR|6ab7$U2tWLU8 z`*-BdFAL^UFJ}~}ISc4icRZ1+%>Rx9GaU%Oh}e1*OGF>Lsc8!EH3RW%E9eEj1&7P! z?^fu`OatL_v%eidFAn6-;^|Buc4EdI_T|ddKGgsenBwIAx>ngeNi{&)RiE{%NT+wp z4|#+kU-+4QP;lg#Qihh)ziSck`NqIQInf6<(7!67TETnwQWkT_?6$OUyeyVak2t7& zsxQbJv*c}CR5rtlwYc@CtW6X@y0f5vzx)K0$0wgi$R}|q>*2*V44RUdn!?giR3SK` zx49$ZPGwj!=7=_Z>RKH-o!aoFR3F+>0y@X*2j?s<;PyaH-Pxk+uSG6Oi=IwqwNB}o zo2qe|m$yTTBuhz)rz7F@PW+ALS-T;z^o1H2kLdQP$41oWpuh2Kk8T!p;_RSB7M=G#f% zj{%3Whk3O>#1=yvlN6F_HO>Gp+u!|Su+0UQ<=Il{f0^a!W(SuS1(6RntxQ1SS@_|< zMS%}7C%@$Z;faMqjt%V6G1^-` z9cwnLEQH*a*8C*F?fW$clR9-pAfOMj~ z0A0=&;Y>>|YN94&@|QKT)?2+vwIEAA|42X5a!!}*8Nl1V%slI6}sYX_^ zZcxJ-UiR2o`d*He7m1c;?4X&W#x9-TFW;5?$esMze)ZyVkGZ{U^rE+kWCZ!7)RSAO z>#A6hlvA_57%!1RiqR!OO$_f!0;_1Mm~kD4YB8p0Op6oM5|u?cLtfk(rc9_JU#g0W zRG3yq!;o+!ZcKB_Hi(*K5@KXbT$MvK5gr@u`{kDAK;F2nr8Z@T%I)&FA!B#M$@6W~ z(R_Gw5@ck%ts0Q7uuEfqXpV<^0)quZVwQe%9UwD3GwJqqn(=bCj(Gwzg?`dF{D$Pw z&4Z~ywPaN>R^rYoG-*mSt0l{<>1mD@B&xz1H2(FH}GCqb-ln7k%NV&3BDO04AE z45BxpPF->&JS9eAOaANnOkxuNb}y3Nzp^_W{NO{Y57ATuK`+I$Ls3r5gqus0eLhsz z4bJt$Fx_%;m*voH{ylirsJ%Xi>)gWEjb7$6K^S?V9}^R!|?R#IRgDSlNz_SEO9+HOt#EARFA7LqZLq z(~iAoGl{u8MZauos;^k@yU6lO@4G3Lv!M5mBJ|+Xvu&XQa5RHyz5iKU)7uv5$Is5p z-*788PG^s1RJFM#3;vd7-&+b|?pxfnKR!k8HceyCH+*Bo;Z;dl!mzbr5??e^!;ufl=5MEprdo`9vqX zxLty|4&j{njF^?{Beb+$!r`8ySnv$qWZ@Uw@-3E?%dP$qK{x*`r*836c+q5cdJJ3K z!IbGNACiGLep`sM=o22;E`Nln=7z8RWuIAdEN`&H&Nat+@enfq2(ts5Rf1J|49XVaLfJw z{CEF{7LHc`hD_=HO_|b}U-5i7txMGN+m+w*%dB>QcCwATEji)bAoVh$!}=1Cx3zb* z2C@8E7BYG=42^8?`*3-QD#Ro-tk3XrtD#Z}7%J^BFYYP!DlP(V!NJ?^c{%&;N;cKk zbehK5)*|seTvz9@`7-k8v)a0+@yqU=`g=5@_qzYxHS=mGLo{!uA#DUut z)DQVYl_}#cj$0ebu7~s7r}0fHfjl0|%j@N)j@K0sj0nF*1G%OTybfh!7U^V%D6M!35g%EAmIS9@|uvz9_aC?oQj@r-uUfIe-;PGcN)Zo8N4&~ndw0QzLb z&+j$Xtl^C)1N_+#G|)f*?cr6N1;Pezx5y$cOG0ioTFhT)(D-kqM&~XPDI5lZ%PI}* z-^ET&C=eT9GD%69yuEkuai`p!6HFj269-eX0QT(B~VL*f(GJ9S|L6!&3~Kf`78qf z00?@q@E===*${SO;A5&ZHY0VY1-s^EP{yB%1!uu!%3@LxynfMtfOQ= zK|o`$_5!AhScs~mfVNRrfUP>3N3yZPS@R!=m3$M7sCtVR{4HxFFD`S7Uh|BAwRA(!Ch@d+($fLwV@?M^ezSGZS`+g!edowzj1dSG0HmH59ORhQq zR?Xs`Ld`$hm79W*jHK>f3^%B*6Cg%>5BS zbe+>OVk>F3$xJ^i?7(~WbSUb#DoO8k;Omt;i}*Wbt9eb0kWT)+%m4D*){dud`b^x9 z;}qWOY}SdZzKi=jN}O0Z@CshuzZj~e(d^Z;K@v!N2I8uFdu!u)S7^Ey$3;9~s(0(g z0`UXRrifM)D4PIC9hlAoxE{og+*80B1l^og&~O1wSmzIW6enS^k;#hxMJ;$4mKH|q zFY9v$rQQ%0&c;j|N$`BxXCrRTMJ{VVwR)$&8G`nM&#wyB_X7;9xd&(v22uutk*2;X zQ6tI6UXq3(Oa^Vzz??RN+tW*91qsR3&kYaxdW0rbLyM|%?!sMewbRe*Z!$BlRomDO z%h)nZ^DR>(Mo=_hPZsUSQl<_?+J;8(*0QiWZp+ZYQw51iDTNPM9iYJ=iTpGzi~onQ zbBGdz39@zBw%ujhwr$(CZC7>Kwr$(CZ5z}7d;2-FiB)cLktZ`F?!6x`FQeXvV=?j{ zGZI@oM$~{3qdI84P^mI!gsly=CT76RIj43*kftFK6yrZs;OaUghoC9IAM>wf0!F4D zh!nwajuKQH9cKF1CM^#}LWNLR1rx^SR(Ayw!*5v^Kt_Hxy*5Gly0J4}gW%;jYi_Wt zuvyQ4YFydpNjE1ut&Az1BAirjY(yqIE?`8Hc7Pp%niPk}-)PAVz^_t<>yrC(TOjqy z3=8i~HmMZ>)IqTiG5uR`z`J}w)H1vXsH;H}(Bcqo7<_s9YfImrVR~~avkA{}AfJ&9 z6PAJYxY-6A1kXSM!}`FlPf|E;SURUM4V;vj&D92uwOlzzJPI}yIx+y2>f+M8aI(St z+v-Cy;Mdv`w;3U-J;Z+w(2kHg)U>ayE@tX|EIjajWJ(fnJ1Wy^2oDi^li}2&<`k22 z?~g4FL=fyCE)df9y&Y+Ki%rn%B1r_!KO$>O0YCm~x!Q!#&cO8RI1>b0tn=G-D|^PN z;skQh-R?Ztz>M2!{9dtm6LZmKV-ocexdKYzXqKW9l~Hxj5@1P&oP-*wbdK9QzJXyo z(~bo7=2ry3^>U}+r8nKPc6&^YoQrJy(RLLzGwUY2IQIZwRWC+1itEOT=Co6{n-fZd zY-f}o6!TauTol7sl$o9?bNUcp-Wa8PJ7m23SCLV_BryN0>Bx>dEsdxA#U7O4D1K?2AaC<;$|?BK=#x`rnw;$ zK+XKxEYB$Nt|05tfTyq|jm`R2)3-_y(~JSi$DzEtpo3!QOJLF!$h5qZJO}Z*7ZB@- zbvnqmn!jO>gl=5NEuj4jTr9I-@vrAccfjVl2*UAW^={BNQA3FWE!gMT00Pj2YM;@J zgEEq`eZ)tnfAP2KGC@nL>~Kl0Mg+Yz&HFPqphJD5(X?>#Q4MnMNxSvI_-%{YPQYfM zkZqm-*oIWTA}|S0nxxnUgxkjh?UORNh}E-@p%X&lg-Q0j1S0mijI@cXkJ(?q%np zbr-Q0BCvbU_(lE=Rn=^dpPx{v*B@Retc=o;ttG(8Wenj z|1*d0HR}c;-xibrvHf9)Z1_ z>=>k6*8Q;ytv(@H7J+Tq)N0TXcICbGnI|ghAuKsG{Za|I5Q++WUH@KKq3aONDME1J z3|hvy`{F@qm}UH_eJyV?RUDx`?lpE$Nt#DT8+6C$T6YKskTPhoAf=GZZ)lw33vidP z{yn#~r(QVEAeWG~ZlhX;P*rJq+pQ6Oo|j%Ay8)JJV}VfXh>UzT)fDcrRxpRY-xIjN zwi)CrHi#&r$$7*fh$Mbmg zo_6?y-Az1S1c#@H#_;xI<#YADN@+7?p}b&r-OpbdO+zV~@m;2lUhA9{rG_O+D3-{6 z3Yz7lLug!(5aK5Ir9oL7ulPl&c#(ZR1-*2HlFo+JL(2%C;ap0k#I!7v4Z}kHR{bKB zp1C3SSw$~kE|0JJ;>cSQDVk`(p|F>ic4HOq%j^1TF5=Z6QeT@Tm{%NS%n+wG7 zF1D>QRvWltMw9JPVi4ZY_3@|=e#jBsz#V7H{uFc&IlUN~J0ehHt0Cymjgy$65FnGe zNgG*Ve)=Qi7Xz!gXPVuMJd+{nB6OP@#QFpHi^TTpR}L#rv&_H=^h`J5r>`J`*)l%ur6LiH_6Q4?*EG~uiM8TFmX zO?xVSCnINm0WOocTlI3JD?52eQdntb3#woAqSI1J8ZhY$y?ZPNM@i>8V$JNm|9Z@7 z6B%CB3K8I_jJ@eJz1I=5EEeCjTX=-&X!jT##ArKggEkc=Cx#8}!+!Cf-?OrUQaIGt$&^)ZmY*$$j<2f!5#Q-rk7=ZuHkx%Eo_8 zQdNz)+G!%_st9+=*MG;Dwnat7Uth2z$sO%&B(>_t>EUjFknC9%x<*!3*7Lbm6J3BG z!AX|Aj?A_8{)u6mV@q*R;BmJ+_|OVXSDf}Rza>HnVpg`YKRt3freW}kyGlQ`@#~}5 zvCxIVn+c~Iy8`@_5h?gAu9kapfAJ>ng-&YiFFUvpn&zbZ_c0V~z ztW+=O2)4F{Lo~eNP;{T%JrRs8(F!2Df?C>bClHIhgpUykaa>;uvO3KI?uE5gM+FuU z3Jg=VMd5hGCxyw&(S(ixy>OU7qQH@(|2DTXUkj@lQ4|hz`HFVA&SAFbugV! zc9O1jE*yH7AY#PV)=^sod_sYGiTqZ91LXjbb#^-;^Dam}Fc5g8k}kWvBZYUhT3H%1P56l-jkR5JVURgG-1zv$}aVp zposyDxJaaNAhPwRtX4EdA;npL%;%Z%tBIikY_=Xry{|#GV!xB zRe33Ac`2ykEVJTlOQL5MU{D4+F?|z2ZJrVJ)azuYUK?= zTLWd$8m1MD*R6f(ZGdaZB1OKwIMRppowinp=JkdUBBEmnR!NGjcHB{Wk7}Orl@5&9 zp{?E4B_nr3aRep!c%bCL^~Nt)MS}ark|Go13u^~1szXqA=Qck}V1+GW;{JUDI}c*% z9A(An&Bi5I#eO?#x2qS~w*kIXZR5M(?)E`lcD7kpfF=7!^l(J0C^wkOT7oCys{H|w zOIm{H*1E?LsPv!%RMDrA#3HO4=?1>hJ!wwDWz)7MZ7A4RZJ5i;x!m&Sk2B-1;CjX= zQOw74wzwS&$)B7hpV=~c{?YCohsXzdJrT6i@6HBubBAr&9=!Q!%-wO;hBcy$OiHIA8iuQ_pk?GP5nh`-0N8&GK?8)m4*r;{aBmUl zBY^6tYeWPoLnt8LgLb1pU?c|aOcs|<^U`MesDOiN6T?L{$<5nO+rlmT)1oz3gRwEn zL5o7M%T{}UE2;^71ah1iNlWZGqm6EgZ77I(N@2`oW4zNZ`U_{x#Bm2-86z ziXzNARw#Rmw-0x2+=5jgqHp=>jyQySf|no6*oqILXq1R*R&yeD-*yq$6=2!+cbd3R zF0@`>EkK2jD3etsmyM-aoW_@jTabXFkAr!m;ZIR>4;I+Cy+-0M>T>DE*K$wHxHJUO zaUa_wiLZAPv^CI+1sFtDU@V;^XdVifrfP-C+vX`RZrTG@3*@?Cl%5GUvgH5x!y0vB zV~;ckY*Qlz0p75~iSow}vRNj2HCHTqvLzgAUu}(xAc$k44|1)qt&fb{$@03oo)$WQ z6LXnFGvDkP6W)wRRuyfxKW5X&jWPqMu<;b*N%_k|uGSo})xiqVIXm1-Cd#@#V-!~X z^K5T%Lw+n%FDlT&~-E^-|x<~3nX)!Ybk?#h&9KI1SrJ8~3x*hsx?xsAn3vR7B+%}$O4 zEGZ&keAc)FU=;=y+pn|CugA2fA`6s44_F+4vGv8J0Za1FQ-Iyt;;rPN_-jpI8OxN9skZ2;weg8~^-1-hh zdd>(|;Ty88bd(!W#St0woBmXiTB8KQ#XfbP9$%J?FBnD>&aS8eZc^bCPey-OB3V&31XWVtuT-j3MiO zX;8wT?iHXQ6F>sYA18`165jrCUcvX}wgT5tz>K5xXWTC8xu5f#p#+9+8oJjV?^pU5 z!|$6@$g}ZqJ+R^Ks!2=&@i$`73dwU*Ry(7ul!qFXiF-8ajfvwjf~{sRtl})x2!P3* z7=WuQK?+)C&)!g{aQcOQe>>yrA8m9sW8+mNKUXt7Om%W_BmLQQcW1cj?ahpM&OPkV zPgfOpVmlyXH4jRt2dASTY3nwDoxf9L{yL_ExFZ2IZvSpYs;1Eoz$5*~b z@z(yZMAg5|Jt6wsjwh957%BgVI7KZ|Ibcjs-2&>E6m2){yHYxaHTYQT9psU3y}IuK zdis35#kA2HOeIfm8F-G%%wwKIOF`{%Iurp8Dm0C7RcZToCwOl~xG%W3!SfC0`xcJF z)in@gDkHu+4RbS04YmplS)G8x(IM7jIIX~vuMKX8c~eX*h8RmOW9bXW)Kd^v0@V)i zMm{jXd*8zkk=y(^n(f~p#fVsP3_p6_8`7T~irW4=3LjjWXg4z$Mqv^Fn&Y%E7?v7R z_viQ|2V$3;ppgb&PUh^~m6O!~P`;U)lDYUmDqOe33NU^ZC0xBY&?{~^ zoj1a6X(NW`!Ioy=M$K?0TuUPAtQu7Ua!PekO-6;euuae9t&%`Jxf9a-s_HN#kWK5TE9Oh*g%>bhhzQS>E0^@yJgzxs}6?g&H;lnErvSY=ivpOiNr z5Db6udM({~zfb*4p33AJg3+*{cbRWweZj{%5*r#{=f9LzUtYT%&Z^L#Cw^*7I=vP6 z2T)*N+||rBO&sz{&>sLk|JmYYIJj7=Ol7-cJ&N<`orNc3BO&GCl=Io!k(XZpR%$Kq z2}YHJ!zT1Z;~oC#AUqtLr8J+i56FIcX=UhH^xaZ7*H|&rS|dYD(OVwsp2H{scqXbP z;^F%)rH1N6bboJ|)<+hf=~Wkcz4=OS8MTM7@6q4kOFn*{$bK%7oZP3jBpol&XViMt8sso9P9B$6K(d&|fepj$tcF1$bwz?+1}h9180>xv46tEt#vt>nXJm5P+-h7}@y} zi}*bIRL8$*XCUwX)0Rm2OpPEdl$((HaLc5>>U*A9UZ#lK9p5*^X`hT3h2*WG8mv`G zb8%1V>~tAF(yVtNnD=UhcXJpE-3=G53;ego$qH3Cfh&X=JvUDD!87|Gl10uYSA|0N6i0zvO^u1Zfw2 zt188C5c&W@jpK&_j>dbSU*as}LqVxZFXwoo6*yH!X4UM+;kdm;Dr%lGIAUyC$n$ZN zJHav`!+iW@)Nvfw+Z4?d>_uvB4EajegEnl`wemSP{Axl69e2R`-gL=c-I_iUmaiPH zj;IAmm*=(g8H*aIx1Vi|#ybkzP@{4Y_bsS(PY$&IQMYtg)l%?6%w>z}yBbKhiWKVY z)kWLjV`Ebm#a%mT>^>@~BGRH9g_1}#X%l+4Im8Iz?yT7%o!Z@}aycX7Y)WDbXUGZ? z3g59f9UEOtu{|{5x2s%m)#km$!JLN35>uBFW`lw69b!DLl3 zP^Vw5+sX}mU5!3C(J#s3AoyY@nahf0#AOmP>K)^)IA+;R8k}448_>`Hr+4l>6m(Hz z0{|SD{%>Qrf9VMS7YycqV>kwue?vH*Pq$6hg|pcUj(2beIBEDe@ z*Z6@^d*rxbn{JgwQGWO%j|iI|!P7R}-eq@D8`gfsvI7d9DZ;%5v&%wXy__1Pme*?3 z_87tuo{c#&i<91np?1scn!$zKI@;B8DGpsZvMcplA0&~3*3$s)PMolR%ZnF0@QNcc zN*|?ZPATPsCdoOJl0@jCRd`_?LqwP=pn8RhJF7)45|5*f$>B%kxwGe2J?h5vtL)UC zU$qt`Lb8?5h3CaCj+izlx0%P$=k3#t%mPh#WzaRidzUQviWY@&Mc>V_MjWbNsJ^m% zQi~+GAf0F(uxJO2Q7R7g>&uq&q@un$G4pT~cJYdtz-I(dM)y(qBhL3b?OEX;&i~S| zU=(}QfO*76mn4x#kFsEx!ZB$A-qWjR(J{F|_zxDTX3qESij0%!Oa*dt+R@QIo_iwj z&nCUFA4!fH;L$G0&3U6tF`m(W+3HQq-Zq#R?z46wsA)Tvu6s&05sHMd<$JOPHAwQ&POP~si~7~;q(A3Ah? zH%l&P_Ydx7g4$=ssknKxOgVx)xh?0t+c5U&bA$N{uZ42wr)**|^KXNy^Lz8bYWhcL zq#dOPS|~Q^FJ;7OPLh1&CEhW{Cek|z&?NzgyW!C_8rHI^9Flj-YjOAWN`-YOSLVp1 zzB}r!R?^6+^l0mYlTyOzlk{6-WS39sCjfM}wqHnH*d~+sw;(1@K(NWPgdaXB{;A_1 zeGw`Nls55*4`apvOV9yard2#5FiOkvqcONQ@yFbgoivulnDJK`&aburtK8{Q=?AfJ zYKuPTO3l)p7HVGQ`^#!DauQ_@cDD9QuSeiv!MzIk?1E}CM`|AgopG3z(Ft*2zGX`{ zpy8SSK0=KvR@a2~C)u`qWYWH@1)^{lLe#Ca?j-L*;MV!K$m{NBFbqB%oGp-$IzvC1 zstl==SUsM3(||N4Yi#JAZE;-Mlo3Rf2kn3>lp@X_!QUygZoywvbU*Fw;TQ#@DbkSz z=8&0VQXdY0u8$i?8&@D2WSHKPM;+TC1xRt!AEJ)~Ng*~F;s}p=rUkY3f;<%tPn17` zfa&HC0_-!4N0=jKAN1*cYaax6nLk|S8DfPDBJ-#Uj*8xB=wJZ57&=+y{;wtXz{%By zT?-GpQBE&AC%lT^8`YA>V~dR%q#VjrIg{OR`@7`HiQUc?jA#_XDHzD3A!Owf<3uT~ zEFdS0whNXdVr#r@Hs{m+OU&rzjA9lUMlC_@HS&Np<|*PsFnNGSWLfpXf+7Vu%pa&v z>?&x}X|11vZ89uUjU4tOnJiG}SSk7OnzDe{DQ1NHjo)|YUvs-XILVCFLPJ?|&MX>% zga&30D-nd3chtI~5H$TV3zwx)xnT#NYAhdlO>uuzFxE8{hc`gpIS|mmL9$(M;DRGy zh0CPc-Vw8NSO-EJin@Y&Q;czTI0+vpSSpeIqXs*Jv(Wxj`(L*pud9QV!_mwwk>Y6H zrY4*~eK61bl z5SA?%{h9qp^?rY_v@4p<=E(hr(dYz9aY`u65hAE_9w9XSRU_1&_467Kuj@+uVTVnp zfj$n*QT7u-Q)H{lv6K}xFf!sgTU_bd0eDSWK>TA8;oJMkbEjgA9XE0y{UpMAk%SO2 zBZvmmy9OK?=FIjFrtIa2JDYith5#r7ezb!%q!Rc&3~*-BSgweM zh~;56nou^1>NvCYg3p1b2+Bga`>fz24AHW}qOV{y!O?JKN&OiLQ2{`XR+;Y)oguFu zltIdPbcp1{Ji(J?;`j6gFc$&Pjz>sjfuYYFv5pN`#c2DgX!uPnu&(&c zK{7Hp!-p(@Bw_eK%6g1fUJQii?vUoHYQiDJ@{&zmk@`?btcqkxz$1_M6F<0ByLn@1 z0T!WQMUjSUlgxv`;P+6fIf2D|%`To5>{@$Uf3tc4+Pg`S=AY{h`39olQyuI@#6@vo zc=P59`R}a~JcEH*5aRty-WX;D%>k$A4dKVzsy+FwyTUDcI>buB$;!Bb`SJ4s>yk%U zK>TSyKX8J{3f%cq^`Yns!2q1UL~{s~X^f6=PdlE4c3w5$oFFnZ`mY0D6U~}j zuhbcgd=>euti&K~_QCbbp*-d#65!(9xc?q~-&p(x^Rnc( z>deV-Y6_7QlqKPz>Mb{qgaH6Ii!b6V;ShC0i0nZ8+nDXMw}T4X^1AMx1HpCvO$Z5? zCEhpMYM&BmdYED79;3zy{PfYG=7hrU$TK_0K2*wZ+LLb@D!=bv#m?t7sP^hwTqJ~_ z{Br_DMaCasEM z7PPhyS)Me*h0^ZKjyq3|S^>;9t?@1QTKwUZG~{1$W%MVxggN;FE||?SJTs@rV_7TvH&uCpbTB-2uY$kKC_YR>Y1VfM(>a~!}AdsW3S;cf9?$|%z@Q78DOS0 zm$*U24+u;k|y>to@qr2ltF0EfzI24iuFr zRro@vEi{-!56YwVHPlY`QK>^1s?{5M@2K8k#Zggj{uFCMnY#@|p}BJ(L~e-ST8mnO zt#nytrpOtvpFZu=%kb;}o<4AQPt6b?xYZRbGe@7c$<}EUytokM%cr>8gbv0PQr8Bq z$5{Lj%>f_e;B}g+&gkZ zBe}UoyQz5vt`CTfX*_R*%g29^pdqD!D}pm=8l+QvBDGVU%k+iOcvP9BP!1SJvf^@e zXT`!=jMqDKvukPcDZ1c~Ndf(0)l5Wx4Z^C_k=J?L$L?x!OQ$pr+{qfe$W!q`&%uZe zkScRF{&5`s5k+UJI~JkOCBo-_?23H3k{l=*EiXx+h@9bgKu=Tko0ZBFvnLxaU^J$ADo4p6W1~rs2ZHE|-lEjH;*TT2PwlS$a z)J!(O6Fai~LF6xu^2pIFPnurTMiWg&%^+I4YMS?styXOaCbhH|RQCh?jnunl)Cu%t zB7%i5i{Aub4g?8-lh@;Ch29j|q#1)MGE;l>MFMz5TX5C~*uYVuxAK?-;zjz#I9`kt z?F245R&?l770V92>hDhwMP4?~W1U?n#Qm{?WGrE@WX-%dB06`!m zl#;?V+BXsky%kAlHni7-l`mI?ePLJphl~nV<%j{RT%S13Cl*)w&_-Q^u+B!_$srqj z&^pLkWgYyGkE9r7uFk%+Ok9F}#wg7A*;8y4x5bY-79p{E|G4jQ@X>na5MVi0t+Yuy z5%C%pF+Cw<)HJ#6UI>9ThxEE`RX?^08GRTm6IHY>PM%NXgK-Nz#uc8}-$QwkwfDgr z3)GQ{+$&|r-2Eu#E_+DiL;MavOhD9SN;K9yG14#4Wav{r{lon>YNLHaL2HxcXLC*d-GmZ` zM0W8}AF6~qIgkT*fP`%VPH-n>p_BdD+)F1s40J^i7usJ{bMX0|QW~!R4qy8q_Wm5@ z#3%y@Q!!KC&mWE4)eP+$Eu4JrSvUR`LnoR#>bq`tf_1NT;sT2{4zG08S97 zGj$>s&cmds9^KI4{`J6B4HkFLXwOI<{RER3Jg?>pk+qkMZ3!USvd+&{Ih#RU>`?JX zJ)LNXKVaLLRSNl(34jkG)Ihq^jcX!8p^gUdmRBSg9~i&Tw1|!!fe2uI5}<}+Qz)Ex zlSiqRR}ap>B;C*@GVjg#7P@;A>{%D*$?dnk8t&7pJGJ{eslVl-_f0?-4$d=Z(ME(e zrTaT|a|2mumd{nra~mD}^9dT@IToyRyKwvawYv~cIS{|JTj$;3WA@O;-)RmPrp@sd z!n!7PTSw_%pW-v_hU%xhgN$t3Z-7{t{ao;H)AM$pr^|x}K)!qMFz9>myHM#dQa{T% zKa3gTaS8#xgYE_X<#orXwvDS(2S@YP-0t`E_1mao2R}>D&n=&kSKx88<`R<2!MlJ< z>~KHnV_xdI7#j~{g z2Qjcv&OG*^3_ecom%_()o$CVcs*bA?uG^h~o#*@}=Vobpyt;pK=jMF!FuTJwLufs) zP?|Iuf13IOf>@qAfU)npa5XGi$}>>+&^h;k>gvVU?bVBkZ@aLN_aCHpJUU|+IM~L| zQw07MUXLH#_X@9T1nyb3tCl|p+)Kp%_WQgqJw&Zm7un`cI&=47@elIvaLY%zTV3lW z&$^c!N+nIwjP-6{_~zKMaNu(Hh|q5UUT$Tqb^AYc?Y3t$LM86SA5c_&%M>*v7CL^Es9S;C>i zxK&_8{`8V zgpA?z)gXy%lx=cj8XM%sR48!{=7TFD&ISizDVQ%BAyY#iA}d%I%~%AXANziD2IQgO zEHlhDOc|si6}awmVsZzSJgq2wGPgA|Zh4^J(SqnZ#1ntB#oim06|qeXHT(uY@P<1i zuuzy~p$0XFCawK11m}Fp&OV)d5H|THblzZN4Pc7Q`jwD0vnA}R zb(K`Pr_*VAP5r;gQs{AD3)D>#1IKd468_Z;BFs#@i$B~dIZ4>L-9C|sW04QWHGso_ zOCIsVhC*H@JnUXBTE92#3CGQBfC&+BmtzVgv?ZIjaD`XNKh=c%vWwK`cj_HHB9+2g z{oa&wv(f!|flXp0F-ntokYLe@@Bk2Iv;rH$Q!!MhC_|NMojAjLQJ#@Q+T=>Ab#9XF zUqp>I+)OuVx1I7h_>)jWT+lp70-ITK%ON4bT6!H^o`9P&V5Tu;t4Hx|PPC^-G00=y z3s?vB58#(dxWjj`^{_L2OL!C#{KLQ_UKTr;6(X<;*k*<&2y>wfK{?Ls*HffZ-^;A z^O{s1PWrECyt`{q!Q8CfeGTGk!ijY|A^yZi+4zmt0VlrXDL2`!(LS+wNqv(JtryG* zdsFu<12g0&wXlr(id)LOBFv-OYMD$mI-z}DFi#!=%$DNd3nVj_(o<@pJ_!Y_he z?}}nL)ybyyK%gOZysFbDmJyCb^booWYi_?W#P3l&Kn201Hl?GgqvqQ@w56jhXpJ3p7HT%kQ{sg;(8nXakY?1n^m<4?+nWJl~!>a387gnEgcveElfBJqz$x8~DL7MjLSimWBSKR+y3^hOh_+ z7W$slsXmM8)xk4mhLYj0g)e-CS!>BdTBTASkEmCSx;6ZTFcWq0%2QG#>PvincfT&T)`a8?iIE}02fMETDR0L}HNFKw2C@R;-u z-m&<^elMq6TNq3&6S);`B;Ykj=K4|vMnIh}6vFFj`Frs-dif2Q@!8h!Yl7BdR_%mt z856oq{x1z5ny1c~yKUPi;LId)*@yR;18d}2t?afT;sB9%?aI6@@~?9|elWU$^a>S) zVDR38n9+%2ExfD%HuEhW&p~U5#`iZgIw!l{NmKefuU05hV)vuEj$S9&tE>Y;+|mh| z<_gP`lCw&^(1x@{d?7}h{8&2V#?47z5H0AC`6^W6SMr*}H*es42tN9xFZwsjcRcs#BhM8C@qLODSAe ziD8!;D5SSNl=IH>XgagyO=mqFLQy?qWFBV`gOq>PsYDt|74d6O&Zu0d zOP_wj4?e_Ie{D8Ym&+=et1A-Sguk=nbsIz>60-xiHi$$f&;71pwq>wsVNO@d+dWjH zMds0dyDrfzF;J0%Ox#P;jqIOdKkW9~B;um|w*GdZEw)-18X{Eyyx=A9l z0+6|0{<%O`=TG&>=v~t7zAq`^j}eCxxJ{Lu2k)8A%pQdID;}c5$c_@?`Fex`x!0UF>h6H=~=+ z{6puU4jGR~Pw+l#1hsOCW$Pn-S=g_0$mL*f5^qb62-$40vF^fE$tc8|>X+tnGvNhP zNZCUmJ_k6?DIYYN=Fb^3Emc^V0GnjF z;YH5kKP!K-8Q?B3>|F^dX|djAy}!*Ys+HI9Tm$h}7wQ9c0iiIBrjZY^!@~$c*Lf9i za;;Sj_|X|9R;|MMJDr<=gL>$dVaOA$=;6V-9{S-??!dQ4Or6Y1y()UX6u0@VqCg*?xgA1 zo+xCT*^G><)URGd0Oci4Hl$rR|$Zdl3%cUk;9_Sa)FO-Cw&tq3r00o z8Bu9;=D%yxoMa=@j>2Wf!DoE~p-H>GcB{0`(yIaL_khwgmxZA9IhIVVgC1lL!gb(X zYbE@J-`XZBfFW}QFduvuS=vV_9YJu+=NVOebuEOW03V1G=z{Tj>7y{;lP94|<$xnP zK*9Qe6;W*p%mw_mma3&SX#bdCg{=ucFkBplqzyA}Q_}s3 zR01NgSKzp%>J;vBOD6UF9FJJ+bZxDykrF5VvkY$947J`aw{29*C!0!M-zX+NM1{VI-+R>>w}?Rz}x!wizy~OYwpl~b^k9S zR|}90M{%PDzXrV`40|(_i`GQDK-g0l&}*qhS{I2-cyJ*@eld(u9OQ_5F)#4nDPw?Q z33F@+9l&>+aFA^&;yjbX^K~~AJQTsLQBAg0WSy8O+Iq*3IJ_X1UTSg%V z^s#>3iS2o9fnt@)D$j`R$5w0>pfN}R@H97yj4Y1W!#?@K8Q6=S1UwP;0mCo<9@Xt% zSZm`WsZSm{8R@+-uXT)i&>OGLjw<4@5v5XDlgo*-k*gd}KB2H9FI9`{5ve>K?-=i$ zd*V?KchqKJSAzS9VAgq0)(ez+eJUj#6Ir`^L}@Y$prCM3T(7=K;DC0;w=HU1dD&65 z5Ax`p(wdl1T((278A(7BMha5?MisU=dQ?vz&1_~XL?EsAuD>yw^JOep4Lld2#s>UN z$SEq8O~;xb@S?dG1Jy}8jo25cpSP7{_(DuoB|oJ|0JDU2Fgg6OB6W-6P8hCJ(6W6A z+niylad!GoE+Y{_!4LQ5G=O-TeKR;}`eG;RQ9U-x-MKs7YBKI9Ed`xZt|E^=(PE5; z4`!r0aS7@?`39x2B2rH8daVT{oP}s`TyJN48@G)o4oHm9TQWJe+R}B=1Dymbc9WwP zXZuZp;GNKhZ(SgY)^sth0&a86&I2k*CbW%y>_Hid$ehlmYbt`b%CVc&A+Et zZ`EseOw(nd+s;gM!#+-nJLA7R*qSo}G-km4BX*ZGG@m0^c-f zw$P&<^E?}!_TbzoiZWZ_(7jdtV%Ma>>OZ=D;YRW@s!769 z`rz+ac-4}rM;W#Nm63)ne`zUfP)+3HTX4eXuvJGV1Z%@rLl?98B3ENz^-6XC>q7?I z3Ye8Spva$Fz$3{z0Ta=qu0e+fEd|;x# zu-sI^w4~A+|4X1a25(`vz#UU=&bs*+PIT4IczP8-55w^{4F#gE2X0FUYy?Nd32+@x0_VeEvCD`}%F47fm=oPOaCluH zS)og7`YKjFl_Nv7o~3MaPoH6)$yIVrb4ttd>^@xSdS8P~ zR8xNi%Ay4ke4gm6og+a zeSsQF)FIhQXO5%r_9SHl0xbJ>#3d>P>^JP)5;Hrrk-OlmoZX48yPm zft6nns%{AAO2BQ1<@)MksGnZBJAB)TiADk$sh!N6nV=$C<3iJUZE({V@7zb9SD2Gf z<&3e9*=;L<@>KoZ9UQxeTeCOnL|RNpa21P%SZ)g!RIQAjV7i=PukVe7yt{Lds0#+# zMh-?HJ(i-~4EiAQSDON~n;m*xdqn^xpVuzqyvoDhS3od1-4Z61t>kR2BD~vsX;z>-UX4^N%!Znz3O^W#|xtY*+Am+(#|&v!P)RF10qL8onod1MEonVY+SMr7oVtz(0#dnZ>{dPI%Z zwO`*Zn+*wO_4mkjNth}Dmum^L_bLzBihtr25d;NeRkWBGb#(k_Vz-!R z^Y+B9X32lPtY7~!*XW+WXx--hLbk(F+$;1GEd`Cy^M7inL3;Ovo`tSKJDAo@l3K~i znq2#RMsQ%+%96Us+m340JwK(vUtWs@g>pCR_?#!MUj`_H8qE^?e+t>ZR{^EQd=H|pWS#1p$!4oOWhf!j8fNAgR&J5g$jR}}%m05-B? z!I~7sIVD~prE<-J_TFWZj6t0x6zjkAKEJFX!&&2by#vfUZ>%g8Q`e^s}mg?;Nh&_WZMH%|-~Y4A~|W)8iF<{KK!?+kSV|0v}+J6((}! zKuEul*`58Rd|l*$fn$F^<`mUvo;SC-$O(t8Y)62_8OYvoFPv|hkfhG*RZ@1^A-iY8 zPSHn=HsIiqW@ZM}Q0psFwqXf4XUrpSZpj^UwyQTrJ5dMuNCIIT4oHL!vDf~En}Q(_ z4jtFz3wmN}L%Wr7eF;%o=x?S~>xYfmXXcpXZ9V}0Xc3KZ5$!V}2KcRIXvhepNX_79 z--q2PPs}(i?v{3P} z)C#Oe&0G3OhkWCJzWj3NrEfFLr>Li6{BCv|i1;)e;Za=_^z=$gb#?w@%~ISjRJuVC zfeM52(lNhX5dGyOMs@x>Aeap`Tt~`$-^s!U>;FTk!liQ%cV>$PI@Jf$h6Jw!>5g$$i={x64j0@evr*Kq-} zGpXvI_x?f?1y!|sZ>1NeU5fPyl#>D&GZ5x!HrSl2zml9-{EA2bRn=Vm8x8Dq+6zMn znI_CC;|78V+nR?oJ*Ts|#JZ~LJ-)K7DcuB^A@Dhzm8MS07-={bQ?P>g#wn=m0$r)wA?y_?wMnK)o$VK!;c zzqPkCv=UW&3+aXRcdGSxAw^E8Je+0h43fi|StHr5iSHx)LXFNl>XjPmWuulHIvz!I zO3dx>(e3^DmWj39(Tkt0h%vFeDu<|mO3?(UHBo4il63mzNA zx8LXTc@5t*#Gt5V5I%|~N*!Nn zHQ4W8v5QY)pg@q&WN){9p;BsO54e~kUKtuKl|1cF6i!JFvrErB zlv~a{lY0|GdG461luSs-)*kmRBy+?JQu~KHo>~W5f=AMe0N8XL?NlK-|usXamQ-exkp_SLk zOQtQ88mrc3_4)Eh)FpL)gpNW&AXNcY&N}J($~SLRw&(L10#VlHIbN0_H$N=7g)e5H zEi8TXH+^ht0ArZ6l4H@<$$DankXLUf(jat*{aET2;vH$KT2>t(54A=q@6?eoy28!o zs;LpWcULWm)o+^bOqUuOE)bJ zJDjU@GJ?FBW(=%bU}-*rD7&aFXTgbB8WOT5G^J|oR3Jy5Tf9UC<_B#~2aSOs%r*fx z%qcl9xdU#tIX<{w3QxYCrIQv8!s`{Ze3=qEfT+uHF`!%HSf`ZhqfuPTObB_@I4L!x z(ZhF{nQ^E0=m3pwrJGJ$ue_8>on0KL@Q?1AOxpO;M~9WnU0wRVa&+9jXKG$TLo`y1 zFyo?x9XwOY@-k60uq<+_=LR!Sy^dw2kmMx{HzYD$_T+Plds|~n>V-eSs6Bh9-ync> ziN;dB;M1Y*bf`r%8{7yXw!I^ev>m^~2_r^|?uY))`8F}9DCwx=`HG@UNdUZS=Qs;C z9Fjb&JP6e1dAjEE?kADo@yKs;W|0x2(LvH4>z?`ggSe}kKqhOaXSlAz z|6%PNm~8F3WYMy1+qP}nwr$(CvCFn?8@ue<#a*`R*4tm7xVLY_`Qr46juq<%thsXJ zGiK&^MlREDkt!c8>#vXTv-TEUJoItq9QG0T9KwfNZ!z*5hEafQ2(}M_2^ntqiGz&# zD-Ms)BBHfj@@%0gG!O+89<)T#pLUx0N!n!L8qrdYFYF#v608(9g;9k4W_?RlmL6v5Y5O%dvq>?&iX6QB`KW}pxaJupye%OSQv>dd0p_Y$%hIBz+<;>o*KT*on{Jq#? znKKU}qJi|6ACNJ1-ZPT^Izn*)Zt-!7O5zZuUxSZ2K^>SaoO@&}crZhPLT;(UYA@kb zYmqD%A1Ik491SbyV827%Kc`WmC_3{p4@l@>qZ~nef=LH-FC8wQVxL-L&W}>% z*v~E|h^ghSEc?cK?#nO<7$C7nt9Z(Dza5|5L|6Isz{*!d+f|rT)I&Ge-KjW1I{7^^ zoaFb_8Aj@s3*TCPdI}2dl zKl@`l2ttU3t0`>=);C1B02XC?I z;6S!;)Wuj($zyA;;z2Z2L%ZjZ zu2t-BnO3`-Ypj8E0V<;(H`o2HX9xB@#S&>hQgqo`+o{-8a(xeWF3)JRgHr;8$2d;( zs(RQkL$|n_?pi8(U-)SXwi*Ht>sVI%TF;LWy-cT2n`}M!AlLZ@z8f(TkA4)+++;|y zd1>I23|`tNcL#BM22xNA%j9%LvDe2MrSr2|muT!N^3~b2uHX6Xxxjur z$>|%-5j6oTFQbJiiOmvCP0%}edJq;ckGU~1gRT$R)SxY~;~hp-rzX%_(f8cT01px2 zWfy8qYTqq5yJ9tcbTY{y5$18)e@Y+MCJF5hf0cpf+$&S+Vk% z{2GVrSI)MqKZAX7UnG7i=L6E2p^^;#XkT(g-5Vq~6kzFhk5<-MffeTn8@gG^DCZpV z$0lg91`cW2-0;_2Qb59&Y=JvRp8`Au+hlpMjtoLjP6+0p2S9GBduGEsm@Tup6y=Cs zZ;h9g+^k?ij*~JF#H(l28Hn;NmJ)cW3*lhO_%bLkC{oLcp7p*c*stU}S=^hrMnHW^ zBgl3Jgz+iR?USw9(lgVcr_EYXsZ9=$%W2!7#*cko3TIoJ!y{4dgS8Wuyuppey`qPbP<`SWs)VbDtEAem6q+lBbU|XPt;;So&Yo{LKbCFl zoLCFoRCwSCpZ7ll?t+Jq?-a5l{@3zJnDKn2~{$V`s_oVp9;%V=8u+r9L6AG_mcofYfN zZ7j>194NcNTPxu`OvXxI=|!;U@KOnlqTdm#tOmV5C7d#pjYy=QN^EX!>^pbqOy7Ql zv_rY!P6f4seUalbzi;0+eq9&%b^p~tcxfe-wn&)Ht!cDZXVJq6^{G56!?_|`ESYC! zAFCC(Qw?o>r25mX!EW#Gc&GLPprjDQMN{SO?VQ5RwPB@GZA06Ot~_JW`AV^Sl*zPg zAgRLW4SFH?2H?TdJ&_-m-Y6a64jOmB zb{EG!f6nLzzLLBJ)KuIiJxLq}2-7j`ah6+WZ74Dg2zbv=AVD1p`rZqNyuSY)5IpRT z46L=Dueoo9T)NFcGa`kYJP`ig<{i3+PPPEJPE>1p*fvZZI7-OGagk)Vm zdK5xp$RfzX_^ZIZ62TY=s@Hv%uol5K5Dn6O4^uUIU%*)$9PVhd$1Ns)=|*YxN37pv zyolxZ0q0vzqJob}Qr0t&P;cQB6!RrkbL#*LrHE@`j`W~{+bZR8+vV%fPO|Vt&jcET z!8qy@Ur_poxAsD99*Y{eyF&8y;-Up!D*cOIpo#kgMu_)It;q8^SY^Uxo%DG{6V~*G zvy&OuDyPvj3s}1oKxZlyEwYS_Tzrc~V!>An<0$rE6_z3UD-fD;CXPwh{eBc{>?qb- zt-(kd!Qmt&4xF%HieW}PX#W$roFhYtj@4&2};1XCE zYXNy-9|#FcmMrH!#2c}=L4Salqf{+(4O`}Y(e1}X)KFL_h}-)FtvKxZL-k;k(}Lj3 zI8TU4n?Z2|5%M(+xPwZ7o!uZ`+f3cQqZdc z8hL2**`){!y-_|&^{}hPE%Z(yuvRg9{nu+Oq&R{iT+|%cDM!?>CzO*N%Mk>-Y`u?D zTzOihm}GbgDUY9>m+uySPH*^X3_s{0b~vt5?hQh^K8)U9=fVKtBOM961J><&k%tB> zNsqqr6T98Ef2H%H-2bj%QQ;lqfgZVY0+0&= z&=JKXc)lp$-qB9<2X78NLBupjlFj*8t$W@c*Ld#fP5#WqA`Ct=p;a%cZF3x2i(|s& z&N74-Y;Mu5lDCEzV7+MK=edx-;NeHYv2pJN_02&q_Dq>Mr2ZKIhohv45?fz;(DW_7 z7Jp5PZ{o==wk+a{3AXI9JTlZoXsz%+hJZXs;NX(A(qz-}d{mCW?nQAAU_Z^uvUQCb zAdb_k3C$E<0E2p^VJr;^1sz){WTkg~gsh?w$w#K~ncNFXO9c!(P=XbhGN!M$+G`D? z0VKCWiyt$vLqQr*OrvGx*7wyLiPB&f1qz2Vp6^Cx<_Dooe1z29$~NSA8w$c8mU3b- z5trMgFmT2SDsCcF_jzOiHEN*v?UXu*W)TNKip;>`94E4Zddm>9+P-N1r;1F4b=JK# ztJ6;XdeYpo+eC|aP$NJUd7&oIQK}m@4Qzz^Zh-Qsi@uPVtJwilr^UJj%U&Cx$2h!_ z6esU_p$nS`BDiL8qkb_VuqG*8cI4oUcxI>U1O;a0{neq*7zOEWkA9AUDXngP­) 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 z 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 z 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%0A+Px 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

#xBetaiyWou z8+}wXa4!3NqAP`*Th;tA_^XCl+iqT+ucbT8AD@?fDHyoR801B=6uGq5u_O!baVIvb z8ao$9)^eTp>}X;=rX=CtVZop=`{Kc(-WWdR9-i7hcaO~>@&~lyUEM~$32Ts%$br9% zBMtn1SI-}Q(R8%$tH44;KV+Va8jIhsA9a`bBRc7f;=p^;$pJqKgD4-qK~&gw`Kmj& z>nBpE7M0Xq8rE=`4Ur3r+=|%la<)H&-?dMec)B96cwrSka^#BI2xju|eb=)#<#1E*Tr^+E@+ z724$P{%f&1Pa01$(1ZM$mzKx zO?$<)2DMgW>CY{VERxahl(U3x!PC^kIR6YATyTEUzd}1^T8NhDlo4|sVc4|mzp6>L zTF+)G?EDfdV}otmJ9B_OJhavubsv1h8uafELZNf} z-M3;>P7Zwu%bl_?Eby@ycg^LGsSKb)6i}+Zk1(_v%2{y%&G7+97k;zIJ^cqq?29*@ z?w}L>XL9lCL+X04Op&0|m4mojqpbI*DB^EkkQzUO(MNK06oT8CP>i&F5Zy}q#;)7p zD=P)`)|2%lfk>&ww6Kx~EJ)a2Yukxf>TOA>cK;xegwBWwAd<6S*N>~QCNrMisl$?V z2qohd#mKRvdjHIj65FwV%p^%YUW>5aECS(V*OLg`y>dof_T()T>!%9Q?nb?SPUU5X z0L_{)RLXQ9{Dg=u+LCj8gx>l9zQXLa!tBYKY54l^waPhg{s9tT9#(;uy1m+<_@|`r zOzM2^Gs+cL<6d8$ra>$D1}g&#QOF0=1F*`Eq^$JDLlt3LrT>IV8v{s&hN(g!3Rs167cSDjAv$156-(n!#gJ$xt#f1GuOV_Km zofv=wO;3@kzrssVx-2Aizw*;e!joLl1<*2@TmbDII7-u>LNcSpLmsT83}%B$z8U#H zr63w41cy;kayXeISHh~KhDGfxJJMWabM_(_Nz45o091ay2kb7<+~I09clqhz*X4ZtDoRzl#{klhWAt7It27i?^x zK4m6+Dz@XdsBq1@Vy@4%?J}31&RCmQ*C(=6!Uj^b1mr4zZ^Bb2@DSs_iiNQ&xoQ{~ z2nghVnEL*AuVnm>#Uf?x>gMR;tzm8MY3}m>c}(Ng)>UvNk@!g`YFlgRiLcSer18k5 z_DIG@n&`)%DOSgmnVQVN$HVCs#c;aMD?KDZZYf`a)bdrqxuR>{Gb7)n0|pQC^|5n+ zsMBmTHd*;M{S}_>1sOkm5R4#j;r>9(we!?7{#68IY&YWn*_wFM9kf5f3~MNDS4H)U z^*zM~jWc!|x?J=2l|A&%=%O)9$1j-UIB(m_52hLlvVj)lmrs!O_hDcn>uO7Rd@et~ z{nLrEXpTjFDz)ANyUU=RzmRVK=kn*&#s!lepV_0)=`ZLkgbj>(B~Pq$R{shYz4;Up zGh4VO?ms&i3dTeUP_sHrPCByEu+Et}GR$JEf3m}c<1(Xm@kEQs^m3EEkV9)s92;iCN} zSpPzup?Cses=?SA<)x_K(~oEpXkoo37^-4FbPnP0%Uq(d$Dr#@MBI}yjWa$OZwjUx zN~6#uU)Mwr(bVj2GOPKWyJ07ru~?QqVJ6y`AiqLT@0f(#fj<@&jYomKXPcjDlPojp z)Z(b)n>{OHNS^2|cP3_8=_L6!(k}^DKKHA;=1ht`%3Q-8)Gy>L^ckxFr3x~aQMxF) zS6U*>p1ZK!swikZduwj+0v)y>64wwZJj;aHuA+;=!8l>}Hiuj7{;3HiK`G=7;wU=3 z)2(YmRk*ggb{QIqzp;svhm?z^`!}K#{fW|3lhGbQ4BT;IAPht=3^C?ry8^97vL(U~(GLc;DvWgYEfkGGA@*HZl9j=BKz)0k zY1B1Ce8tzPM|B?|n*x)eillD%xV&W!qN8II&%^ZQHg}v2CYf+qP}nwrx9=q{5f4yYK7QJ;v*C-y8Se z8Ry>_XV1CUTzjs$;;tSqMD6!I#12Rv=@Qa6`fabsr#^Aje&$qTY~+F50HKM`HJ`%L z?Aq7xhEa0+e8#a}+L(CaEqnWpT@uuWPw*6tA^8|M5-jk(p@_!?>HF-7fOPLhsO0(H z0h(1#u5dK!Wp5An45$0?T>0j1e7lJ&rLXcN&eOdr%$b{_uYZzq3)A%y(5Xd;9DS2c znorS3wXOj{Rf}sgfMAi#oeZj-oC58!*Sq7^)p+@C0YV*^eM4w@*TIKeogYQ^j>%6Y zW0FRI8Us>iHODGat=<9h7eUA?rT6@$AyL03EdH6P_wNKD{Qp1@|DX#cdm|%3BTGvK zBWpt=`+v$vE7^HDWN#YFb27oLieC&FAu}iid(d5gZ3e*}sx&}`oj1k05wfJ@T2wC{ zz29~urhf_8$9+xCgyg=Lqig(e$| z$uQ&Un=_qhW~vVu^Y=I|`MP(QF2Q}v9pi3EnkrfAMpyQ#Kn8Njk<13%fcsIw?qRgZ zvO~Pz*2W?2QTx+L*y*{HE^G=X41iklc^0p-N_A;8bOQC_38WbKWCY)doQ1&(bQBsO zVj^^o0P$u31DBTC5%JGHdY}qhUJHz@;hD-Jhi)$*BNAU&$1zh;G{NX`?&7ng7MGci zfdkh;t%!X#K@Y)#03<+V0v8?_J)kUjZu$>RVhSXJ)zx|Q9lPJTaCQW4hT)0Qxz(wk zX~RzutT;#^1Pgv786^9uhClviV?Zv)k)YwwM;UQ?D1c?;YdMVDWGVAI>nq-13Bi-% zCd@^36Qjl2)=S0>`EwGNpDo7rkryUmgL{_r7uzL&UaA2Dee8g6-zYjUT(~EG`DmJe z9U>TM5)u*N@Bkr)H()M7$H|(qH{HrJid?I^mcgE|1~^Zz#hj$EgsHtDf>o_zktTJ_ z;zK$7p0O^>&aH@cd#J9bx6rR~&>^poLaR zG*(bA|BxWNKh-6p6J-y0Gh__PeUpfX^zA}0%&^uDwZborj3Q19K~&ZcYXJXUTjV8V zj%KhX<8O3~_Esa-uY>SlF|dN=I9FNIELP{zu)Ho-`^2<(nG^BGqofuTGiAU$#zY4TbYZ#`@XlyBfd?Vlu=`Zk zs0L?Jm@DV|daDsf^TdYlo@Vb8r=34Ek}Ayw5R4QO7Qd8M2($qJ+GPmcAcWFDtJHO> zGubQ^b#6fXi09)o{Jk;q26+ly;B}acTn@bV8s!P2JYi8OBLXkhfUk zyCV2;mviz>OEl9b>QxJTl+SMnmp|w!ByyAZd{ui6@8L?+e4*gNYRp%qkBjp_a9PwV z`y%zdH3;QUXB8RJGSQPxy_crKB3qKMXXe@xsXb~#n4vDTD3<%iV)i;eMNL^LsY5l1 zl{ z3apgnfmTX+V2w8F^&5~AQis-e_^a4=aSeqWuHUvl}iHj38d(J<~W!zDy& zE|nI{#E3t0at|krioNTJR|=88F4*}>munFp&mde}V^o_#t82Zl7=SB;(WJ_kIlUU$ z4@AijSNv@;pD?$O{1%7eW#*?Jp{r2N)Uw@j3w_ip8NKA#LQ1NfT>|5JD83(Nthkv( zRNM4{*lxQJN6_%b5 z=d6-0&VGlN-;^8)XGSfMLZIiauo(Osh=Qe#>%^U4Fr~|!AbBoGYfycFq5~4(Gl@NAE00wBF#yhpP3&~N zYgF{?{egkHp)|Ldddn>VX~p`I%anh;>**3&-j4{ZYPnd^N)un>U`L)gf&|EC=8mi0 za#z8gc@x8VJ2Sk@u=S`LRQVp8KoO15zGbUQo|1e&Ir+A8B(&;#(x}Ru z+-f+$BeK;B!oQ{0Ecs5(!Cp6lR_njJC4kc8u{;wm9oN{UB_-UK*d`&j-JVf-`ZM1A zB>!=bv$5xadC!}pq80q}jZM}~GfN5!2m-NThy6nCxhEICk-UPi<1W1AiAxEZJ@~cg zSnV=n%4S=J%Eqw!Dr4&2q5y>NP3X;Ar1d%Q`8_OhkJS=^wMO-gC)$K*nlbHI{C;zH z)uIy^#tp3SJG8}ggV*+OwA)Ie)>o1e*Pg6WNH-PwBJ55N#D!=u(i=x3EHhk?@htnv zCWpU&EFWxaR^DT@JdUN=N?L!e+6^P%fDWDW7!ig#nYYc2P;Aw$!jveORQ~}vx=CdO z8&PRUMYY_8EZ7h>epVeD!!ncqNFZy?_{=_}J9LegjBqzG%+Gx=(AeEtImsYcA%Z&$ zTstg`P$E^>D}6Cj5Y`C}w!h#=?+)Rs-fN` zfG1cXP{D|~ECG{=!lH)1R5)BgH12FRpDC`Q$Sp9My{;^zjasr-Q>CN%Hi|e|RlpT( z>~A{0zBB`R?(5>P{Fl7uf3LiF{vR$61tTjPXCrY(BP)IbM>8Aizuz8_N|K65{O}*f zaWRIWd_V*?@Cb46b-zNyzPX_zQ~m-~qQNa8#?Yf*m21a}Y47fBC!JQoSHopY(VJeKk$1NzULp1Fc zPh&H;D?ODQ>FHb62LMi97;n;%TMkgBNN3+wp`NoI^~Z|@^jhh)s|Oh}5n|<|GBLDS zrw^ouwU%0_Dd2Ai*ZYxd7|125&ZS$N9xhsP{89-@N|*C)XwReJ75tpcLsP_e%#-8? zZ^HocFybsn88dX-!F&juI9sY3StVbcemzNi_w13&o`tDZps|K@5L}PLiZ+yBuZ&rg z()L!3(_sez#4q9=CCcZgmMmwSG}3J+P2`O*I;sLJz?&!@1NF+S?KFm_xByC}$HPDT zZRS}(Q>`YnuuoO75(<)F@G*pdChK5?lECqy`kYEvIU9DXOfM#hSxR#xLa2T$ ziJ~jgg$+BN71bN1CbwwH-GOB33gENKVzjK7oU~LT3|M9UA&|vsX4lu{cuz8|nxY3> zHWMT`nUJ749Y53lW+t}-fE8J0;hX;9 zb!e72-%ic*jM8|Ev@l2r6Fb7%AhZ@W>)_W#3wwmm{YvZ?-8T%5a3Cn>iipn>!BIsp zAvz;w$9VW!$|CeO5cXZDkV8L26`2#_UvT@si=6-K&WFE^ zkpD{;c(i4UX9W~8CP;>S#KNjth9zTCBnU2Hqd^E{u(z;ln{FU$WGN_IB*UKxb@j@5 zypg`aRN5FN+j5-o`RCmy`uh6z^IfL#ySlEjUIRO_UoxGel3!OocoDyFR zTWKsPfjQ26CDx-+e1|tiLQO@K%TgFL8Kn4b9u0=G!kZCC`nO?dOW^?@0j{jmop=qs zYt~tnU3NmOHE}k9W`nL?)`D~4N&!j0M8Tp}tP_QOfMK2L&L(!Ku!1H?pz>lTkSr2A zMoRD>Z&x{z6dTP{8R0ybUe}Qb4IZkzNMMz*M!}krG7h#(^LXDuwLMYxq&QuY0#7v& z;Y7G(cLG5bO{!D|1N<{(&BY~Wmf^G1@2oZ0iQZZPC}3eb)coI76!;q{^hF4pXVVtV zrN7f4OhAk1tC+Z-MMB@wVUBwGhttfP8}qHCAH~tfhba@A$u<$Hx_@zC zIfx3;#&ms^3$ZRpG1he=*aBp*siuaRKulHJc0l`P=!~WJ1$yJ6U*rrAGeW2zl9Hrk z1iJf3&3!~7#hk2mHDJ=4X-|XyPXrNd?q-YIzG(T^Z*a| za&G7-W*8hyI%GMiOqH_9yh<~MsYv)(XBGmhDGBEuFG~YuHx{}jJ?C}j zm?FvzNku`Xsz6LfQ|3maAu86XQ@YTO!*BhY^xc~#!}xlx7pxYSxuz>6zlVA@E?%N# zreOtuR3(WB%bNy)2HPXV5efB~Xri7?=PAWow~4Qgq>jScI$dhfiOg1dOg+xYPi7 z6wCAa$pDISm4cfIUsSShe~5Vrz>IFP$Vclp9*ZrZyE2&Fy8YJKbb)oX%5y@PG}cY7 zTKJJX@Odr&YBZF}`@gQLl?k7>n{vX3Kmu z=M7EL?ma9A-d2AE;hPfu93JE*6JgF&rIR z@Z>@cE}4myUX(^zR?g9~*bfq)j&5Ev`j9XJy>=#K;f%P;&{RRLWp6aNM7i)Mtdwwt z-@Dfi(M}d?5hNz$(o|eNzmPDcqfJe-2)w;G5I@c@^{n3%jKyWn>ot9Y>|tZbLP4g@&2jMh<%C1M2v$< z6#ez7fr+vlZ#;ownGp}#(fsf&B<}~Z&k>6U%#l0`vLzpxrfh&Lq6sx|Q~KvdwCt`O z5Ff82afLT!Y)#+h1%+CycB|X^<;DvWPd@!EQFKz4?!E6)(^Xbx`)gP%0#&9oEuIXg zu~YluMcwM;7%g1(U;v)U4LdOLjRmr&PR&lm$8@lXcjB;>|7Tyc$!&%&J6*yuT8ixB z#|s%}@zp|!`*}E^-m2EO1chcOnauJF&tW3yx!R%6bmzS#O|&MW+kjiK*q^;W%SX^o zVDvX|BnI+l52n=aM`|#jEk?J?m3;is63;9iA>*LZLcbRSFrGP&C$||ZX>)Q|)n`wv z!_^aKK0fi@T*cG3+!E-2OHW~$;Ik%xBI9Rh5@z5#y**_>3_ zFqGYK9rxrahQNJh;n_=bUGCHSU2$CTzPW;ardl~B=zDPSclsTfa!p#lD)V*~HYKh+ zpQi2Pk-ud$!ZHp?9HiXgbQI~mX}h|XDKj~)BC3LV3# z-tIow2BS#6-VpL`$sMW?J2(i_G0>%~8Jt#2uVBwJ5?JmGpWU$DAoVgZ8?n@VI*oXf ztk`zh)vjCbt}86fG{wy0d^&P!3Fi;ywkOAv=)~leNE!g^J#d+dG)OV>E_AeWV6a zCVz;oG2{&0Ot#xddEPYfE9^IKAwxuxs=eVN3eO2sqDzYet#suu;=%u_w9fJoDWDj0 z5;DV~Zn_-$>|Tq&K^Jl=ZvTZ?mkpY1I&3v(N;*AClC6H?fQ)6zU;XV!S}*|gQY%tS zk*f%{jxdSPlAJR29Lnn8bhCnUV=3#)w#CuCAlB*pgRnpv(;jr~y+yprF`7`+y*w4W z0E}nXv5iRjM3yaY3R2UOCKE%arj6p~o|Ir(MKX-HI%x*n@zLseyfkKp z#pC9CV^TE*coMRJK+ zxE8M{i=;)CzUN`Q^HpR4l?TxrhVj`Ji%TZJZ;oEnI%djpI__zURC^7{K8)Fr^;l_@ zcvBs?9=-*pZbJ-wHj`B?Kj=b!O{aB~z1)4$bdABVy8am!29I&ojB#^VFH!2rgwQI@ zon7rN@RXF4R3_cN|HTqV49&yD!>}UdccZN96&2>pJZ0)!;6|%~7;n?-AYzkrI<05b zyo9YBfd&cettD4*-T+-3K*P8jUl8*kQeeKLv_&Kgzh4TJX45?S&b(`Apy8yjq`(%a zJl;`X7{YFo04rh zv7VWrNj+$T{8|BfyOJ*eIiwxJ?QvXX#aw(KxNTz^IXP>%q}X_i@X018 zxPWRJ?e|!iQ6=?Id=9xeNqmy`eM+G`A>F*^a2(V7&5*<+Htsj!$4{LP)RPM6_vp+z zFQa6OpX|K1%fC*NWj|UcEx5_8QllWr`C+QFwEk7UV0EBfGev`#i|vfSEQWU=d3ufDnA5_YszMmn zVHZu{R9{QZyT~h!TPvU)yGIMc|s0T00E7DyDJjB?=& z!U<)r9d-}@QJb^@Qi<3l4?56M2-sPVHBuuekZDTxK}AsjZrfelh0qdQAE&=`1_1$e;<2Wl|F4qia5qJ>*X@L&v?9b2=HK28EyS7M3U171mH zR?y_;2qU|C;?YZQ7D1jr*{sKRHao^itD8qH&KX><*`kaJxzujRP*>B#TUtjpxiDbY zPjz;z{hX`4iF*__qLp2L#bA??!R=CTO~k&iRrO#07=iT0+lpqB*^$W@p!bA`-jT-| zOSf8)J<8!S115Xiw7Vm(xyBu`K^Q~4bH~%Wms`VqW7$TPHzrj@8T-M=zqykiarmf> z-~xA`Uzmsu<@Oug+&p{W8ev5I*uyF`dL6UUvBVzpj|1i(t0$BdEpY9s>05C|8&#P7 zY6rmjS&>L~FogFG2n7XK!UzPn8xW-h#mOYErzIe~zTC$X$lIlHDso~PMJjs21OsbY zkG|`dglFvPZ(^;;YJEx_Ls*`1wb!=FHx1F$jJtOGvFo{MvZlJrXNdjUn2xF*(cJ87 z=!b0B4YD_=-kB5c`U`{NTQxd5U)kT(G4Id^Ui+>D{)*qhj^BbrcMYoCpk#M}zjJz< zj}0-phT*$F$vPaa@@RZKuzlPiXB}_e8~G?d9s;_`nj7wIHqVzyZxpuKK57NCAqTp_ z9!UI?vwLxh=@@)f6DIHXpQ~l=-cZH6Gkec{+v={3zJmEXdIMRpxU=S;%>sijym@?^ zUx4=ghVsJl`WO|IenG*_{|tK~ONYF*&`@$6GO`vyjj8FF#VWapk__yknGicP^u)uT z=o$BXA;EtI<97p59}U)_R19A_Xx3nliUSwf#x-A_y~#p03&=G zerEIblie$R26zV*-#D~gqq+L}&oAGw6z?|Q)K&DA*I`zV6KB{jNs-gqw8=c!gJ|HR z&2!6R$0ruh<^+6KpTr3~z)N7ZC(nFFW*ITEXK(aMlnRmpi zqlx4s#yhwlW1Zp*eGsMjv>4pIr2C)c(%U=7O^nm|i1lgSt?h~@m)q#Y$N_MsOq~?R z3n)-k4v1M9s$?3ax-07gC&uNpLXWU1>Q*XqJ0}*kZC--rn0fo8(BMI$9MCm^7LKQz zNC7R4_*niUAJH6VEm+wxn#JY|hHxX^TMoLyjf5k^#Jv`w(drZkC$>Y8c4pN+QY}bL zGJJ0!Nw2!qWl@sbX zwy{H%Jcj@t%w7$h>csWpAN9n=m#9w%l)=F~9sV0C2w0W0R2z3w*bL&T*AnKhSy5}p zwQO>XG%n}g_w^HFUyC?Tb&yBB$YKr162aNVxk8|HlE(!Vf0a*^Dx3nT4$SAqyFhKc zkI6^bC8wSAN_x7(ztlGKMaAz?>!>3Sp2m%R!2R{m@lxYTaRmGAn+)FnDWLz|b3*wa zdsRw$`j$pgUtWU$vJhk{ODcX@2tGsz)!@gm2IgraB8fnN(o=LHRz^ZnATB^63TLIv3Z-D3l|N)?*bB5yb;RL82MeEbQnOBnoqgV= z&!3j3eL(3VXhCTPf6pArFc=Ip{dP2!WUO4smouIgvkpjVU{;LA#AtU>^MyZIn{#fA zX)+0Z(B?J^CQz{?bzrP2wB)YjgHjrTx!Z;}jjTKE_snS3oci6uH|VY*c>+W|_yVyV zx0X2wO0z!$ZM6)1?`6mPsDQBXltC_$3=SQLATgNjZ``BIC#B<(@?^BR&#xH83<#=^{h`i~^50r8Bg%3i;c z@aiJ7W?j=p3l4lKX2dJX3KQH@A?JWax+Mj;G$!k0lDS?KQ{M# zs;LfNyp4}?To8JK9qKxbIlMIlLDqe!Do8S{wn^3pOHVg4>Bw~b;?XpFcQgash`lzx z{_aL7k`xLv!d(5h$*q3m+pUFotjD7MzI6&~{WKIk_g8lUBVI&!N(y86(xL<7(#2wM zU!Xfhxxvg=KE6U^6WOfhZ5N%XYu7f&D!wBqm zFUpF}U?Y*6E$g=#42}S;7{iIP-*H$to^VS^Um~71pHj?i>@Qrw<3TN&K9k z>mcHgd-I;D;zLrDf=Bmloo4c&xLJN6DYqyvl+c&x1RWa>$BN?JP$r

#L`&9Goyz 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�$9^p7DW_j=woNo4h(Y zIsEVsnJm2N=hcJmy-uOl65Ae`=hqG^A0d51KlKlG&5L z!r~KyQ9~AaAclP03wHk0(6lF4TG8p)fkuks_wEQWmH7H>(K;J&1+$hGqna>OKY%|v znJbDRszZM8hFDK%;}V_z+u$E_Kwm6FEwfj*(+qju)@QX2RT2hCl z3dHi5OYjK%rY`vdH4ZGB#mc=Cb_M3uS~Dz#>Dfw?Y}t0va3AK;uI@=;Y%tlx9EHjl z)+U6#y|V}>KD+}i2zb;Aq8`rL0mzH#LCmdtc$3y)G9jU0ovtiWaXW|jkCF$89z4hc z1QL(9I8RnB;R-6&?0K;%o&6D%NYEr$(HXHXLcjm0TGs{%z!OypsIads7DrsVK_E~) zXC?)t%UCX~ONs3S1M>sXrel=f)jG>kP)j}G@<=LiVUoMWg{%Z88X`VQytBR68hyxh z0;R#5oFgxBI98y%XGb?vQg|Wj)6Fq3*XG~Ct}V2@CtA-=7RF1>iLIQ$B>kE#d8*)R zOt#N5%jmqa#`OlAh)R)CqSHyQQjO<@@Ke>G-oZBdzeYrQGDrdla&FaL01W;@ObH21 zQTjH&qoCWle&socj0m}n=&j=;ffwr*=ZO1ByG>@Am~ZSVw2@qi*s_QB{_W1|G%Vf> zwIS=oFFVJBbBn2JPNAML8a`!oTp1b|P{Q0mYJ>#c684OyT7#?nt9#Ey|^@Rl@rh*hi`K*#=6XY+sM|O_e%hbf>y!AmYXA;s=h1?phHybSCd)au4>C1lmPJ}u zYvZ~-^77d%#nPml_DS-bO^if+_TT!f^NncfVkzeJjF|XtWMR!r2F1P0)pPiHhn^^) z$|~#Y3g^`hT~o_et~2{1AZ11|HC;B?7|Rm)>s*G%LS+4*Z217?I}}A8rMR8q7jZOy zAS~I`^mo9?O8omMP8)T%1Ywqmf9yCUXi+EDm9*Tm#!Hb#oB(_9Hv(sT>{iLrGixZ+ z+2oUwsphH?)J~7?_D_FS%0}2Q1Qf67k?U*7jze)~^R$#lF0ot|MgLUM7(yEQ%+k0x zFY&T71|J1M(;qA2t6X^86-dy5+n_et8xN;C0Cz6*jTj;=(VnlgF@uKK-LW47QVHb% zgEV(PA>6t*3!K4alrxj~F^R{%UWkFz4Lmrc_!B)=3SW>_Vjh4OwrMf(0od>g{yeG7 zXpNGs_^z&Ee=RpZyGo~1M7VEPO1;}xgwS*`d15-B=4QZGxQrPrHVQEFQK3i2l0@s> zOoKI8p&SFuhoxhFiqamBEqnbPJWk_^>46U7JK8FiH<~YQ6hB(3S9UL#PoB;4Sc7rG zFtRC(LbIOn0&2*&=>jK8=h`*XMZ*P!N>F$oY?j2nD)u)?=~suw4Ls3678~M;A#`>` zrbXqW>C|;ZGDeg~r3TQ{eg_Cpb7U+q;Tva;APy}PEjuPL2o zwH~R~42rjXe%HXZp7!aU4%VoeLp9?s0-~~FP)fRLY8zPzP|}BWQnmmx9=ep80rD+I z39pIg)IR>Ml1*G$ys=g19F4 zVsByy7zfnt2d`y%4%6TGi?ECmC8mGcG%HM3L;2l>o4cE2=g`qb5wS?{hsL7$T=0s3 z0+>B=tX~d(goWBy?k>?GJ#pILZw1Uoy1}x?v<9WOYb@`TV=vmru+HVvaHq9myz=Tl zAQQW>QI!?etcp#e&23~4EV~a*BNJ;Y@4QCy2x5++kk}0XlWLDc6>N}p<KSUs_^~<$ji&gP z@AEaWn$_LOtC{S4&cD-n*eM)N*#xo_k-5r?)KR2~E7x5bGVj0=4tbd%O-B#?@%=DV z&}U3+zJClDORS?`S3hxo@3^vMOYp`(aVeJS><@)i+F?(Zg#=d5cRg|%ufejvS6d&% zuxHzt7~;sDgcBBjM&*Dr^RK_LFw0|mHoIGCC_$!BU>z=~AJTgHQy9)@Mpri_)*BvH z$J%o50AVgDVm-bOQE$smv5dp5-u?l3+{Hg~vYY$G05~6R;uNgRhp$$}OXs~%r!oJwjo?JK2YGylP!X?M+~NCC z=Kh|=t&`j}A`WNog>@xnV$PIDd5|-gpI*}rXHJzzvB2(Y4m+R2Kj>!2bEosZR<}-+ z9MG28Xn6QCxrdV=5nekI?i5HNG?LSIA>%5%Bb>gGG-B)90R`u?VBm}IztL%lGc{G(Fw}KRF-0QnFR1b(VRJ`g&;oSEKP(5xFL#HjGK8W-*x?KTO#gCS0D4K$r zygJIUdN>)ONfON5gbFyw{lkUtcv*-L_mDbdS<5k5*%g80g;9?4MB$)j(Oc9{%%E(JiV zgu?)iXIHdI4lfyvPNk>VgPo&HkiL+X(}52<3Y8cF4cG;1Be!l+?Yz?jWWcCVD`t~z zK~MZa=Xi*T;k0JiCgq4O9Kkq5s92$N$c!HSVK7N2lI=2%)QF^t@F2l8M=~4A5X*Yi zxTD``mSW9^GC0h#<L>CFayG%nw?eK0PbaENpThecvZ$;BrT+)mGfCLG2^zn=WTE~HDI_Zz z%hgZd)^5$W`N)B%hD=7?YenpQJi=<0id{Q~-isiwvmI)7M43lGW_v}3F~66YHh>Ql zdKj4p7WKryArkk-bO)NdYbsTNGb0>Y>#$?eta6O^OOW2rq+()(@w^!60()zUSv1# z7J<=jD=f`n19BE+!J2^xry?V}G9iAfIVSy}yg&r4P@PT4_8g2SX3z~7egUbru-ck@ zJM@Luial-t$0uE(l=F;D^aC=}=T8eENa^mp`rNzDnl~sDxe|A3-EUjt;F$e?*+Nfy zG3O9#5=FSdq`e$C>3xJZgT3_97a<&hefd@Nw0go3P~vsv>wvG8O8xMyK&wi|fouJ@ zA!Qu;Z4pFV!h}819TCO&h0$kZpNoM|7Yp2dH-^Cr5U~ER7RWW4a#?G`PB;WsFbl>A zSOejQGZdcWy3pi07O*^rCJX3n@dtY0N#T8KpHZlz;xnkpC`;}6Lc6kz>&SvUYv&@_#q+}ywXOPv3sYO3tyvW(ZH1UFCj4tbRp&fw=O?#z!;%99*_e-GFpJk& zFIFdK9acYf;4sGpr8Pl#aOqEq(V_-0#iZmI6l-VLua;mt0EM?|UiXAhu2@C>gmzwa zgNkUFUQX(A4BdU0)lMdP$Zc<9O};jS+!EL32zhZ$OGa$NwzcOBfw6n$pX4rW+~eG5 z5D$QYedt4xo>d+CpGj{wn(z2q1?3%aI)L(yed>!9<_&4L=Qb5)Tf%MZy9(sD-Tpn* zjUf*J(&Va;N;B0${HaT#Ix!WxMtHX@=c~$=aLcFMo=4_ zH;K4cQuHhyUbvD~&Z@bk%eoK1p>Iy2qw7fj>R<(T)v5W!yj@ooz|=!{;88;~uxwBw z?F3Q1JB1yYJXB934}yON&j3M0Ayeo8Di?af9N~?oGDP9ElEPy%!*gpnV?%+YM#W=G z<+7rh*raLFUoX0qFUi5vY^9Yvqp0NHbES3pH}Pn4>$b+uoirU%>p9Zv4HZA)?&JEq zDhIg%oNZk$53_{(y0rHk$&1Hs|B!Hf5uCD16b2EiKcC!NwsXlIVp6u<+oUaj@%BH$ zsqG+8!jPrVy+z^_A{LW!{!XbTA5S_TXDyh+4yxOa=G$iyav0=7?MogyDrQCweWp&H zOsT;Y;1t)Q6dUiIhQEPpBD6gH64&V-jVf1RF(ioZ;iIt{!r<<(w*K+XGz9L@L_%`J zvg}UgI!rS=JQ|x)+5>o^_rp@G(d z`+GMSx4Xrk+TFX!4&}N@TR9a$2}SU1t&k`3|ESwKa>|TcSf-va@?{d@u8VyHf@B%pb8otZ+Zh zeXlLUAh~iB_wW$z47@O0LoFYOG@UXL505YR(YK~3??nuzWpDZ7HSg}aA%60v%I~TD z2m%ZuUu0j&2o4rsaRl-lPyTdA&F&csq}&`fzcPQb3y$^eV*-8g6ihna@q7o(?k6-p zQ~#v*9l^fx_DW?BV#+e~ie-;x$gp}z@nGGcYw@Nsrkp$+tH9Q0q~E3`&uB^seCMI< zSC^!`*_@;GO7P^>r>)$%FNFE^xWV_d)fQ0PfKswgCp1g_3vOq3D2MGFIno%2)cH)u$``D%O2`<-x)8fe=5(AKK=y~7a}*dl*gU`PHLVvq4-$E!uM zxu0yttCDO#CKF9hwQff#gWcLp-gQMXVa!IzSiCQ!Ys^k4-)i#>85mz?nq-gglhQWO zyt;A!X6Ti2j;BizIAB;5(W&bl@iYBHjB812d8g?$xpzqXcNNR~vRi`sz>x`w+e_*@ zsc+;m33{3z;%7~QCXm{2Xg5SAolV@p9!?><1-|tgxNF^|&JE%xavRUvv9cgggfN|U zHue40(m+w6BdyHH!~zgv-~nA0Zlzb zhvLqfXPaxIrh>{}!2BY+o=SU6!ET{Sw|%5imTLYOmi%fsMt4D|edtkORZ)ZzJ-?h8 zQo04-Vr3CGIEAlGj~E&$pUi|rM|M!t>pseBHKOJ%u5M`y0p>;!P5L>EaAPi5>F zCzmhnDY0f#-AF@7FIzPBDqy@4ep)bSk)kOxs3fzFy^2xv9Me(hr~rOOHN7-YGmmQ= zNu0+qC1u2OOrGn^)K=El)5n-15PA&~M)rdJ%}0_=chc`J+U~t8UQQmR zfJyy_oP|}9>i&A!+I4jM==3Q~J0#*}TAsltFv#AW^)z^U)1XAwogsqYOQxOLR&I$E zwUSasQQVMF;%yD(fc#}!|4G*wQO4BzN7+G@eU#S&4q|2aY!+}_&E$qe5;(NzO=>dc z3!-2)Vtv)#t+n0Fr2X`@J2GNjSe(I4jNdFb{FZ}gB3hS%aeiU2(&BzZ2{=n+a+o%! ze;k+BoG;RPOYOFdD$|#igA_aJ68A8oF^~LWzhSkc_c0uJ+oO25pvyMk%q1s6Gyy5N zCJDUEqoI_j%B#eO*zTAwa5l+G*P=6{X#f8H#G1=RGpTdS1Xb?@?h(rFg7$Kcq^b0^ zZk@S_R|oMBm6`Cw)4v2`<5&jbOLmeYvY7%jn)nP8m`;r_7zUE@2ag2nHm5YFGWg~H z^^cIR2I6USB#N1i4{p$-O~Z$dT6IOSq$6+n`geH7NG>b=3y=Qd)66)PLDd^?`g~)w zhi**h+qz&D>}IOZfri(N(4igU*7Ub+uUwTkTnU-oq&Ji?J@($$P$nyXq4Zj`%~4-? z)5bu&RbM*#c)Yz+wR2jD&P*0PogSt`*dJ{UetegwB_U^zlO;nMWf z^wdTd$)}D`VEpg{)C7jj8Pagr7Uf=Yii}i@<_Et$Tv$4)_0%jxXg1fnQ zHoQB&N94BM&tv5CX5i$FqIMuOd)rnpQ<@W)4KLwm?pBYz{d&8(^WVdve(fZIz3ph5 z=Tppn#y_O(ltCz}%32qA!+%^-TVlKm zSB6GWKdhyFVB4c;-?%AV$R2dKG_`Hac;B;@lNl|fZfEfR=DAJGQ}}gu_Sd5Lx1946 zyf7Dys?KO(Jm!Kl<)RZLe6eb7iLxFaG!FD3+JFi9^n-1;eA+_DvHtU_j~{UYN0PIt zyLoP^JSC45xz$->rce71N`1WM(+#*Od`imMANaG3-3RH(2-59*5N` zT8&DRCUp$W5I5Th=f3U8XtB9xpo!vU(C4P;?n%Hg%2I%XJ(8s~jiUc=yo(YC4{8MP z4ov;5F7D&SOt+RGOIu2G#hNf`C74DXqN8_!f8mOPxx&9U{#M~uT|F7)QJlk7fh#9$ z2$yVxG69xL596l`HHsX0Qz)ZW*{zhz3XHQXY9lu)rg<&xBI_$GY3dy0$4CAc?rT2+ zx;0(LW@F7SThvy#P#lv1uX5Hl*-^puHj0sQ1@Cz%-u}~K!Ei#cmqKR&-T0>8Hp*K zrKzKG&XAR>dd@)atdb&3;G`lL(v96%$M5aj_^G6nY#?X*A=V%nGz&&rkFk18ME zog4k@;_kR~WEov`JIxz4*R4+2KR;!GT3N+#ZXat3%eMIV{vAT3yzt|%8>PM!Eq=={ zhC#B}%)c+B4eWSdDxsTM572; zBicDBAq#0oXD~&|I8Hr9(^SL6R8yduhTQa`yke>#bXJKL?pZ|9*H$t}Ry9!9*U?bQ zSJl?JE*XP67|TnwK@yx;qFtE})6Qqn%J)$53^`tRs+eG;5`z0I7j9gY_J@x?b&i08 zmlJ<*iH@#%pg3wjel}nmH*`^H68;wwRXZo>=Ppt@_rPKNq5{A*5* zO;5)=-meqP$5OpF+M47XM9alxwwcnJmhn7I^YWkIs04}uiCvN;095UmaOh4f)&R4H z^Bw=!Ug6EzZu@Lf*Z33XvUkpCal|d>pS3eeyM+cRbN{*1TGp~G2|V|##6p}r7TRR^ z>hFjE=egO(YV)&SZ*c?ZiA$!eTd%09@#OoS@1ioVsMh0&L1xQm5zHbY7G`dPyAx_t z=9{pDhh`SR$Jq4hd@cc2(*k+5Q9zS8V*~VS;ifBBC)#LJGlTT9&_bsnEAsq3Z z4WjRHskVDaJo2ovE})v1)%-a*^Tkz*0U6a)d^Nf#hDbox`G}jYmpdQb5)_;2Ur@c$3 zYI1d`+bRT*QdbdIu19*DdD{`UMpQLd1G3NCV}C@0*i-}sG#LDH4IGAAsOFQ0>>TjJ z(jac{?sBIn3-fH-d=G`5ax{q}P`d?MJUC{A(4khKcv@j;;Y<2%rs>AhlI=sOd2a@(d5gvdat}DyV27ojtWv*M z2YU4om$Gt!7);Hrp__Ha6nDuBE0R-4P49x;Cg&nkbMcV)ivoGP1wYV-+rD-7x;DhV zQ1eI1Dsa-g29RqG%D@<=-K%v$f{yvmr~b3Nzs&1}G0Q$n`YExr&nJTDpzwU>H?e5s z)^qjT&xREnI1f)$m4qp!9NBg5GPJ)jxxqR^q^*GclonzB8>iS@aOWjhFjCRZ6gy zz!@=%oIO0{3|iiW>Fdc5R~vJ)Zj*r`-C^&(e7F~@3JQ)C&oOvXcxhGkGTMKD2AJ~0L{4_ z-vDcs61DbpKB zJv{)JlmH`^6P(wP+0n=h6*0Z`-*-A2m)M%wWTIw|!j7Mhe@@C}rie=?T<|P(62y_O zXaid>ws2VO66d{1-en7#v}wHhI@fnPC+t`mc3vGgWqa_J>vA zzjMMzAc`Re`BTOT4&?kMky>g*Ha-4#o6FB#wDe$ZY;ZPBZY91sO?X0F z9?_erSJBuA^i?7FSu5zJ5om(oD&>gbInC2^08f)!64x3u zJ&=cN{-C3ZE`Snxtx6NwC7EVt8CPeL2U53d%erAT?2T?0gbL=d2%^9Z4IbRRT#f7} zGI(3^g5U>Gy2wFrU<`?U9iViH{TWED6&cL7g=2^VnjrP0$Ymf~5@b%0ni#PykOl#n z>nk8!k|+)kyLhoJSf@ZT6WIP0sbPIz1P5%X6!?r#I(Rg>=Ux{^O`=-c4!S#@O} zR_K2~1VmQnObfk|H5LV#1M=&NGlai5_5wQd5fB zjkeMp_R-!U%NKpF!<-E}(>@mM{Xn*7M41R=Ja4I6g2zBR&lMQTy4qto?$u(;7cJ_F zeZ3I2Cm+rP97esU?e}HRjC=o;|I-q{wleOf-;4F?$o`Q_P(krtwI!#ZwEPu4cDIoK zllTgLmqWm8hl6;r$$1kG)`>TPcmd(2gjC)B(Rw`C!L_l$GIp{@9HeZYox z)3d3#Dh@RovS1Am#mkLNs3ODSxe!e=kqofjWA<0FJ|-ZBv^z9yU4&hrWo>ib)wmWE zQ&wYVW~SE0ZHj}W0U!{tJc)4&mZU`>tZZi}X5pmsHudO@PipAfNM*uU&kyQVF#t+0 zetEI6@w4l?T8CdYGRV)wvU}#@pGLD{@LZkc%(QkK=y6=~vN~iG%goDEFSRewOlxca zI@XB*obLFD$P8WB9d^90QyL7`htlhJS#_@(`JH()N&8cC{y1>I|K_9o?wUM_&H$Kp zcvbpaB&x}%UD`rNswo0pYQ~NHFHB9w#Gpz)hHS8zYVc77Y6e8x#Gk{X4G;e-G**rn zjXK<{&J@e6=&4|m^U4E-rpk7AfCkR7%)B6FNx4Y1d`YRB^`ZB=byi)A#28 zV^Tcq*+nn8Yj9~De|o2NS*LYpr^MsxvNU4#BHgldf(oU+=0C`8on%a{oE=QXq%jETEN z+Nh0{PTX;A_@|9)0b0dcx~7O_G;@V7qElKJGSm~Po6qoL4Ml+8SY-M%l^t$Gt-o*p zN193~eX%UB?r1HJMBBaM#X`KL0`sf7t7r zpf`g6cgenm1gYvDW8AMPg!izNb4rC`!VccA(XTU40;#}zEenAVaLmR*^BNcMe+2)- z^ZtS`nLpWwUI_2KKw}Rm9=Bn3r?OnZnvE%rM|Ee{DRb47#k>mpnA~ZG`)qFI)K+jQ zulNc_U%BxR^|(I81fQf`uZq_UXxG#zuUJWdo{`Ee&Dg_$qQnGr2LS~%*Ffb_P%-jR zRc6k-kH{>)?%R9lq9oQ~5(2XHJE6v8){!(mt(tw}gMb+n#5<)sEJW0yoKg8Bb7oHMUTm=UUh!3GeJQyMuVpN1KpormeqgwB=!5BY=GLs^vW4dIxbxD%MB(3 zo@nyx4G`PYahKq?Dt0Dem+UVkBOO%=j)FQfFsm5vN!$td`r5VqLv)usy`tXP8P)qv zUD;0_*ur#MxD0C6-~8ya80S>HvQ|(VI2l)2yuvtgHEm2^N$3k0mnd#Wbg&JJ%b}yz-vec1wE3 zZU6ZDH9vFg7Ww!8H9sHuciYN5-N3_Mu=_>@%`j_&)DPP*9+z9DE1`amcK(^KFmA7U zF1gAL>fLaUc;T1J8J#O-|?B{3mJnD7p8pAijX&mJ-lwi zKSRy+&9>XbVU zD^Z))A(w!S|{=Pb|Lh- zHq794u+Vy#SszRPHq-l83r-D9ei@T3BV6lH^aPD9TK3kB5+0{{ZYVx!eG;>NRXgKt zyK4%vNB=EpG^Bn7Qv0ya@wEr&&BtO2^$+%;C*u)Mhw#N*tc1;j``Z05%3IP&#PT7qDJYKC{f zECpCTeDLKUI)V0$$@?W{+(ULJBi@PoVXc3V_QnfJ)O~?rKdBxqBqX6Dl8O?DNPNZ; z9?dH22Mj3QA_rvmiMhX__XYFZ0|kO!+`QU;6BH9Bss2p&Jt&GC6Nbk1VIq7ZR!tg; zk^Io;ede4^_r(N!MsQ&q0{0^h`%(N*OF&_iLleV*LANQ1g(;0_lPKiU+Z9Qyg((il zNbDm4ClUR^Vgw0*KAA;TaIQR~sY8!4sXZfcK$bQsmcq~#tMU>ni7FTC^ips`WrWJ` z5`9E+jLAPJJYzrrerY@-7eMYAIW0=zVw6pu9chgVWh77H99hoJfz zb_M`Bce^BW31ic zcW`NUh~yUOQA<#*MkWE|O;Vc-Vl^Bj^<5!HJ%RhMA6}yEmZ(hAD2KVs6R?W;7!_0v zFw1En#r`d2k7y#q^Y7EfHG9#)0f;8u_l~iF5Z{_pKg2N0Ui%uV!&z0ba!S52Q5QnW zB?zeG7ZXKl_|$+U)?qSs!_?}qB9XkHJFz`kCP8VnD%KISW!kbT0cLG`w8bUzA{l*Z ziwexBtPAr4x+fXuR-d>E4M()o3Qp*RPJ#l*v8}wqbuyc!+9HK*>h25GB8_cQi^`8- zyC;2SO@6wQN<)}}_Z};yK-2(v)Hof?Mj=^D;Mxo*o3R)Q`$Vgi@aV7&szxndeY*M4 zm{Ofet9hE?jtw~Hd=1)kYu6DMdLo87j41RC@B@)66z8OGBCg4b&YCJWaKU=bQt1tp z0O5KWN!w!ybpT}Q$6nXJK&t{8+*k4`o7)sk=Vqm}LEYzrfZsIgh>H|GE6vr03qCz7 zDL)UcxlgsDt`!!?#eIa%9wa3Dy;nyPiEfsyceWBlf%w7QX}c^*H(29e6fTr~h-IL) zeoU+rzxN0iY-j@$sVi0AlxPWO?2Z**68(srZ;nXSk?zcC15v+6P08E`Zf(#;tErUr zM0K6E^(O{#^woxs)h-l_ zN!aitm;1s0bSL2J=?ylB<{DbACb>%^VWB@zG^&eX$m=05#{pb_=tQZ8u>hmeRW6Bpn7nCqGiLj+r#55ENds5sB#s;fG#1J zav=eXSn1FBNl7N<`s5_Y`ngvco)*_;IEEXKRY>h02FR#iq8+lWWHZ7xjH*)n3$-D(PyWr$i=O*E;-y##d9%aos zoN12)hNWSXAR2LUUET(zO`Z)bF*L@HsUgIAjmrJ%!5=?cfw1EGtcn^&C2nj0W!bmV zkiS@s%(2NqDRY}V&8H@P`8*Y89+*rtb0YA;!F|h&MvS9R!{r@9oV_A{aNZI&^e4jWJ}GbPUbD9Dko=iP_<&!Ycv*T1 zj5vvtf7w}^^kpT2R{!D^^Jw|nVF`JfyJ25B)n93HaF|8D;$5s14IrrY|T$a?jEiZ}fKT+06= zfW1`JUhyA|E8tm&i(7#zEu)I47tIRx5y-G{SPU6uI!X+R@UykWcHL)--BVWhCrWS# z%;o^{KUkbxU2GyCnT3W97N_}^7MA(z1%16gKuihb;V$xCyuQXH)r8`g>|RLhg5DFo zaDR7jcFCKGQ%O>49y-Sv*Not@ARL_;_d>n9wvp7$Nk^D0iu??{i^xTe`Ri%0!+PaX zp~UTqV}9#ijgtw^D%~-vKj&4%gq+AqH~54ZH;jb%rO=WeIH}@Qs8j#K5uI7(k-XviN-L<0D90Mav)9FW#7P90J<5P&)fh;b`u-sYvqG*%sY>X^3yyhbu#N%$>YMuiWFq+gT;Ht!!$F|3>98n-#Q(Rwo!J2u zqy^k3m_rChX}gNCun0yiI`k+#x~SVRmw0_|EooIcxKHGO?RJ%*jdH*+AgNe4cMkrfZ3l!l<7+^u_{Fe%Ve+nv>)<=^V}Me|9^*Y|4mkvFG{yX`YT)LE5kq`MowF8e+fv^0VF& zAr4$${K&L;`4N5B5n2s`5C@+AqYYnNM}-b@!6fI%OTaXAO7|kSbXj=I`K@ zZzOPN=$}P*jX+rBnqVu(Q=Xq}7wyFsys2ut+^0BcoE~x=Km;w)VP8C2y}H#5pS|>! zc=58w>hnGYJ;^Rm^0#zlz?!*+n&PUiV1~iMeI{Yh{$|0Tph4u$-daELo$??4W5|~4 z?llv>to542InQK;P3zYgs_tt6zskLWMQ@Cci!s3B{@pdT^N#Qz-V={XD9`18xWcmk z7FYQHc*3*&kFrtwueJyg4QctCp2`aNu2e?X009kM)zkzDB}FC5O8(PBZ?(y*$Nm~4 z`kNNDcJ#koQy$jCV5Tb5#}1YSdHyHsS?eF)hkrSNs9aGaO?sl)h z8gGlJJ!;N9YdmET-7x3Z?l3(j_!MexxZDQKei>C31y!LO7LsIWR-bwpQwh)3Waw6w zsjCVO2hZ<<sb`t_voF;dHja@|kzWobk}d#mF?f(12v9>xn4~v``x3a{J#e=$x6h z3~(uc7e9b6))34~089;P>U8#Ge_s%AfaD&FPkya?KJG9*qu-#_8*39`jpB@vM;NOR z!|1w9v;7>jUc;-n+_M%B2LhA+cjP={<~qlr3FfM;Y$ZdqtUg`t!ihEl6==jLlbrSu zRfIH-WIlym<~_7JV{9Wv<8W{|wsyFsww}NS4a8fAz4wjLvZ!1w=uM?CxgQp*Sk@k1DX!a_76VYbwI%F2zy!)j7eGNxj-2W`b|)G_~b zr)!z{`fv1~peT*Q{~GeXY$m_5)m%Ha*VnTw^Rx1{9e4Zuz#HP}2eWA}hgu0I-f59H zB;zq#3^tV|-{HG1*t|C|ou^bEhpi(o!x2cP2)M`MuiQ*@@n8j8Uw(Oz5p*cfV*HL5 z9(3}fDz;0Sr~T^BSaX$qX9SmHANyI_V*78R}e1ihf!8-&lLc;76y|}%%V^z)xIv{VZ^Ub|;cq*izDS-)0{yEy z?hPsdiVY%Hu0jTCGW0&RT0V}&jB%j96CaH zOQd9UQDr63Rl=M0e()9iTiU03o%oT#vnWMC5B%L_jOyGjhdSus|*vn1pNc4)1-%^P>h_5 z9nICS7W<7Q*pLZ#83bwS1~r7aW4=~=jguo6r>!)-wb$SVBLT;Z6WSHY3FU}RYgsFC zZb?kW;o5VqB^wt$8GmkFks;EY%CKF$&=HO+B;MQn>p=lenJXlx zWRIyK8Ic?!zQ9bo-Fb&@CQ>uA)=|`0tL^%!#Wp`HT{*LMo8KtTeu}61%7f$SEIK;- zXT&xnpo4r43T2!HN~%wS4%5)RFwH4DMU{fbl)63zA#1oVlTnh8!O$hkrlRA-4UJ~H zR8#=ian{A6U>vkqD_s*Agf5Jppo6$9p!dD(foFZk?xez!2Q|rfO?9`dBnnY)+-Ww0 zEpQKU?aupb$^}+`+b6`38cNWCVp zVvEW2q?B(a55!RrgBq$`>$#so77Mo0T4aC721#EkOr_9#=Jul5-T4o=TqR8qlH9Yc z`n$vz*B#+lBXkYg=XoMq=skMtvf4Vr3c@dCOCDn2!j!Olc2X*Avh#(yuShP6Jz3l0 zx*Ew%zitZ-kbLy`C|i(Vdg4Z=^VISQq_*WUQT+HV?C71e>6C@%2yI))-8c%2&Dn{q z7;0g8yCjkfi&Y!#-Y@=-WECsi-A=IT77tAVJROfeLzs-Tg=J$>{i@&t#8x|3s!cjJ zO%sx*rI<}8cr&GNOEZOdWx1MHp$jwR#hd!pas|bOQNEZB&R(I!-tLBkGWmg|@c9xJ zx#q_?6kSHkx%FQqaFn6Qpq}Uwc=995!~-?e5;F*Y;^{TfQRCNsJZ0(^RKG&>J1-RD z*$`*XZRM9oAvG(WZgR?Q>D9k|Z?;ZT8VZ`Zu8lmnz$F)B6_BcH$+)XX3lt_gdJlu{ zTti-+I$vKdoT-y%-Vq%$Jl~90B7lYKL*^~N?akdzXt!40W{!V~9uvsU5$X8H^<*5Du|zlzv~J_XlpZf z1NboqoU|0#@fm(UcI?~RPa#Vk=IN#pEO5`>MmH0E2fr z3tn|@*hc2t-#L-|t}}dok@Y^lm~y|H>_~Op>hL@tZg={TA`}?#lBuy+wyC?YW!r#S zda4SPd)-!cjOkrdK34vCJyUVQ2{$X+D3v~2;Am>z|KO#wWC(-+*}k}Vy4KQ{8yZUO zS1%SW`g<_H$^55aESY64K_#idS^4`cMm$E$BZTHI_YW|VTN`F)uP zLZetYttEl_sbFRr66*>Myv=QsWDuQwpRX1O>OKOpX$IRFpDK|-;>aiixx9L+P}l*FTs!Jb>BUbSg>4AO5?@r7-Q+9VT#?I6c^=BAdBz?BRGL~Nq4~77YDtq z14e3I9JC%r=wCx(Qlug1^rK^8mQIC5M;b)ph)5z}W!Ciyv6U=eEndtciIx@4&__F6&PSu^AenXfzSz^bdn1}0$72oSaLnVyeNrhU53RM$$#`g$ zpx=;^3bN|#Wymbwn1eixb!1gWwAc~mhYT9-4_!^!<3~BH^PUBKMp9v1ZrY^=d0tbU z>~v{?r8Nk%n>Z{oFQ}w;R3+>eijiK@03?f5Q<)V_F-w^vl$Rbsxq#Aez~GIFTIb5& zfK+5Om=~~4W+qg^7hrja_xguddW~c#;suK07(_7S+1|?$H)pJo>>smAVYDBr6>Hyxq9Epf|c@#J-?PEAXev zsc+OIqIF4m3R5^ko7Y;MO^O#V$Bw@8%9@xrVG>ity(ex#_jRHzFjHV2oU@J9YHR;7m z^GoV`dls%2$4Rnw=pWlFhHw7ovdodj8$lt?*uo>dBY>g}f_PSXGNTiMEW&0aPB)wo zJ(gj%oXUkvb#ut)9(AJ6DivyusRV4flq}VzqI%H-=J8>n27YzW)8>q{lGwBXUWjqU zJQi-)MXS%n<@Ue*PP_M-r&ygm$GkO$;9!C8F})x;o87kPF(`@b+ch!j zNK-b)S8jc=|T}Q zvY;|p&BNN!?=jPB`#8QXK1jDAI_L1B)gAnV(h&~VB2Z932)|o&gD`I`d?wvqg{4&S z2*K;Pt?x0E%TN*mAR_3>FYt~?DK|Xq?)gJP^zlt&PnG(+nS>eL?o|`{`FEcgLyzp! zly$+ownA)?OLa7!gU<1fWBG!3y_0nH5W-|lJE&6V-*?Eb*!DM0q37Lji)U6-QZo-6 z8s}a2_nd96_YqUGBQ6?mJ&bjduy#D>_R8ELHRq7>RoQn44hF|OuhR0?$@T@~s+#!3 zYBQq!99Nv>4~^wDSQ=`$xJV1Fui57h+I97@C%;_;C2{yQ4Z%@ysGw~%<335?2&nee z7AsmtGt+mQwUUG~t%*zg?1eTT%*e444yDn6ZdhP%OW!Yob=;V2IzH8x$m~=j{co;nzmse3?$?o{uwYHEjXxM$Az{W9eML+LVirvCuj+jB?L4gQLaf>dt3JrJ0IRmZ?o+EE+2&pLw#aUG);)_gzwl#Nivr#*m*JYg z*O$Cz6o$2+i*F@%-Q^Hb1CHDrEcfJ|{re{&j4s+=|K?+zOO_{FxsB1ulb>}n{sl81 z2~u#g>TW4c#bPF)Jd!B)>?-r|%2IN(x%bR8xnw33JVG@0)Hov3N^G6{WHaFooSni) z^R#UNIz{CtDs8?x`84;C53^?t{+qf3&gysCqOQR#TSk@5>U%tH-*ma?W1!bK-U91m z{aBG~a4=6|yJIB<;p|X}`_>fcKOu^^<0qO7!CgpqE*r^R2zMvu3Nl;aZm$9^$7Hj8 z0Zzmp}nARN1?U5dJM7^Xh;K&dFmUa zL*ZNl!nVmN#Ft3%gCBZuH|)`Jp`C;FdPOcO3FrlAtS8j6Zt;V#-2TR?=Z}aC+`&h! zh=*ZVH@|cYJ{?2DZxEk|p;*ISRsxe#37sLJbO66u#hie23{xZZ0fXi)I8F+YFfRVt z*t^`!+cI8?D`T22>jg@jJ_?o8v!h(*SiJW-(WX$;w-%dG)B4Yfys3$waQ?<$nT@4> z6c6bjs1m+>+F_+b8i=LlP@{UZO%`K5%HpdK0pxx8R59BD}44N&q-RgcCJH3RnJ|ulmbkV^#?Q+a{BFun56Vc-9 zUOHGYpJDiJu>nS+M=;C}ZMjEgp3Qj!ZtQnrcZ~olSGK6Qc)7HAJNCzVh3IPX@TSQ7|L0Nio(86m13g*+mHT#H{bk!59R;W z>8nF|#4n;s%$Xef{yreyRoU-vYf))qXL(`c>S9Y=%+cog>S^h%Yf3Q*w!xfPU%{GV z__31A#^bY2!u&HqqNS`sx znmM2sRE>s!r-YS+CE#M5IfFPOH5evd3A7&rZ`~u*?-h)a$;Q>`pS?y1)5~HF1&;h# z+fJomCr!%piydWA;0Wo zz2x54G0vb)iJpXD20OHOmxjo3d>`yDgo-_$6sSiW0MUm43!K^>hSQRWatHce(Pviy z56cy0xsnHWWBU1g0J%tpuJJDbEeyRC= z-L}^Yv7R6=X!x-%EkAp&U}{~Y`t(ey%q=rUmIfl~DJ^h>E-y}Qly$CgDK+YKd5U1D zu?lozt@p$Z9@RZ&sy}bKsQM#AfdH;QgM9~%R$@}&*UzQc{wc9TX*gWpJTrSAE^HJs z2gtqW_7Xi)<5rZdL%pNWPT&gm@Ut`ZOIk4+J|JwzN+%DoFpl6%a#jbHCeCy$Y)8H6 zyJx~E+ri`u_CJgs(bnRS-RZiKu|my})z z#Iws>SlDM978`QJ4=j22pq-knE9$n|l#WXE<&(2xNq_N6t@neY8w_Ciy!!fbvTp?> z^x?Y;u`BzkG>MNY&udz6Y!9=Mj0)Mvro7wtyZ!y)>nW!^$pA*2d%GRZQk&#=LlzNt zmy!pOshCGNNgYJk)x_aP7Wc0_yi||3>DGGfu9dSpP5R1`t;rv#Qi4o1Pxi!0IC^87 zV&oh-n$kDj3A<1B8*!QXlCLO$%b!{XV=s{jcl6^DP6-r8v&tN!my8GRs$(zO=OIR1{fQVhD2EMU()2V<*FIibaB@YwgIIaPihj+Mt!R%3Cx)vNd;c%^jAG) zY0y{VLCz4txZ;5Lcf7dw58M3{{VzI+&!5F@9SG^I3cGVAgWX6VYwC@A`Vwz=U7`9A zk9?QBLvtyLe2EF!p@#v5ZOcm>8`_ppM#=e07Y)1N!UORHT+V)e@d>pcjT4d@73}Re zjk3<+iHt~N7*bAklA>123o!l%s%ZmcjSc$mKpQRbCX9Ud6zP$&+-5EPHSo=5Nt|78 zoo+Ld8@VV2t*6?w6#8Y6cBYt2*H~IM^|kt0o_Zn{q9DrTtW~Nm;r*N9MQBj!-yB^oro6Q1@`a?`>NS3p=c7a)qMhV`G7FxPNH%OV?x#m9s=h z8f?y)ODKA_XKv=9MDQYA0Pkc}xf{L+f1k7-aD)@btG_$ZWZ_t6trb%`*VB^}gvo zv$Ee-xshfeSfwPUo-X`O2*U@;=!#lZH$VFQ z^aYE2QZtTiIu6sdI1*G1F?Ej^IknXEGs^|h4e*1yGi;t+9Lh9?zsCr$ID6vS9g5{~ z6wp`M{5XOqFkt2P3aFg3qS|^_*qiP$_=s~zn$tMVj)=as^}%f-3dbBPnbA$~PwX&% z4hpj|%})Axu`G!%gCSR8a{=L(^GaH+HO!%Z(h`!E=q;Hn5sGZ54G1f9SO(H88ik#t4(;J zhSn7+R@BqRr(w(PTm=bsVltGW20dAegod@OlvsXHLJmfIbEo};@@|FNt^I}dl?lxC zHMyTSI$~r1IZgRY^=Wu;0GqE%7Iw)xVtoDQ#vRXwIi7AvS|3GP3){Hzuv&MD606tZ zlaH-8ZPM+BV?}KIDi*X;JMmC1IfE1RP)AA*=pkaCrQrclO17*b()zv3p(QJ^O!9)Q z1S@uwqEIS`?Ln1(7xX7B)q3D9fZC~?<-olcZSYo8UQwq5Z4vS@*C=(UC0~3Ur1-hs z3_a4AN}2oYl}<yV0bfAp=IG*qu$_R#tnEUS+-iGMyf%b_}38LdxszC-% zYy&!~1FXH2R@>nT5juxWK?J_7u}W&|+mOlGsj*ahJhQb$g-@j++3Q0~jGUZ7KX>iT#KUCKzHOj8U%d>%IE&M!#OG4BGI6)DcJEfae1hv@)DSfBsg=8P98B z1U)b)(p3|)tqd&;>);Jbm!?)ZoK$$97^qXMSMY0q0R)r(iG`Kxfwz~Bz) zB!~QTz=K~qO0nXvz-^$nO0iO%?=mn@RG=Fza?=ueKwLwnf9bKdK*9#1@BKMDaH~lF zc$6(o&G#L4ndm7geTP(}tTg|GMtbxAgjl4iF@CjtUq*U?6zFevSEQ;5-{BThEyh1# zHYqF9_s3o)dV>(>M5!%bEV;i&D?%i@N7{2)px(kq09y( z=UMv8BA$-NA9?riPIE{rBGcE;Am>GD4ARzsfN#$vx9lT4eLBxDcVsA06s||gmlidO z0Z&PYOEpPXtw68@l9l3xZGl46Zsk+gF3h(?QtpC=JvB)%ugZ*&EpoCO4Ln>`4;SIk zZ3ROvTqW6qm*3BocDP=}S^>j}Qa1s19Mjc<@nbU2opxYZikAcPlE~BK?Jkzc-tvz- z(PKm|s;Zi4I)|sQWB7a^{1sbL%=~0R0GR9o z{J@;LtTzg21QQKjP!lSc+i>Ar%UzFIc*`SejOvB!bL9OSQ-x#YeTDQJ@sYiVgssTi zH}8Mu(?jmDdw$p-KT`4jZ9e_?gV(Z-mU@PELe`dg)`He9|BtJliSe4&hyv(ATR+DD zQc}}km8vC8P{>QT+=)p|%xStIX)`e;Xhyye+FC1Z)ZZ*M>mC!mjz=+!?$y7FrlyJn ztC^`+*By6L=U04N-oIA(qX<+E#w6NT=P0jQOBYoBvVT-G@S0Ah-RAuzx4#=PNr=pt zbuDCV#r>hL-rlw^SeM+}UCzQnHI6?X*!HTR;*fY7mLzeK+WbY`NxkekI5r>!-9?l? zhCxbu2nJt(4}%5GWcO~@O-~#l2~L1L1pbcbfo>cV@JnW~k#1puYFG*&t*htbz73t1`H1$RBW}vKmdRW`s9rBx}ofM5JnGA z&}yzFkUG(qgkbDhL9p6g(_C-7V`C74n4n(-asR$6^HzgPBogr;Jh#duYB9<#Of78| zoKUYPgsDZ$gB|bHa{~zgWgR*fwHbR9di>T0!Jn({!!txoa8mzvrqcc@^j$Q-IR;@z z`Hb;E9NgnDzn!YjGnH+#*<)M>c12mA0MYEQj~@Bt|wt3@KwuVx={6G1J82$o>6 z{{j#q^ZMLm@?8NDWhL+sPKXF;1tXFyDR6Ii+G^l{QEN@|!rKG);VQaFPhaT*x&ZTA z{r2(q^!0x zIZw6PA5OeKzdT_1U@rj|Q7Q73aCWJ9QSp4tH2mFrYV+3PczZQ^C?W1-c`DhjYAX&5 zLut{WEanG?#!F*SVw3x&y;Oj7d}h^pTCF^>$L|J7_)ELj_n^24qI(5bKxbQWvO&q0 z8)k{dR1G+3JwTiV)R`6@oN*{-p-hne{PI`Vo82T2-EoqP`|>^Yr!}nTZ#Umm zC#cC!_T|rH-esR*@DsQnu?xbh9##wvSADOYaq$@)U0U3`F+cVP#r{jJ^qI zOhG!1VQCBa;=rTTyrmdw{#&M&bcU*_Uy>-V6d|aH5hbM5bn+JWxTI+_)^vvS5CjdY z)fSYQ24IG6^)t0INyv&3C+sB!MU-f=c_smxmj-LZEy+2Po;73g#%FSk+LV68_Dqen zzc=RHTN|c-<9xWWL9v~mckn0Fkuj$aNZ)y;w_>^B9*dY!8_&qCj%vqRy%P8EORC%x zz-fg8_C{^`q)VyXJF$*3P#>mV

YUOX(3DVOi=ix3guA=B{;|pZGN-)MZRCMwry6 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%0D^o_! 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 bbrd!;rZ|>Fc)_g5^&+}$IGphq&P4Nn`{pug literal 0 HcmV?d00001 diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/plugin.xml b/plugin-version/it.micegroup.voila2.cartridge.library/plugin.xml new file mode 100644 index 0000000..f422d55 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/plugin.xml @@ -0,0 +1,4 @@ + + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/Activator.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/Activator.java new file mode 100644 index 0000000..89cf78b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/Activator.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Obeo. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package it.micegroup.voila2.cartridge.library; + +import org.eclipse.core.runtime.Plugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle. + */ +public class Activator extends Plugin { + + /** + * The plug-in ID. + */ + public static final String PLUGIN_ID = "it.micegroup.voila2.cartridge.library"; + + /** + * The shared instance. + */ + private static Activator plugin; + + /** + * The constructor. + */ + public Activator() { + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance. + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/entityUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/entityUtils.mtl new file mode 100644 index 0000000..3b32227 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/entityUtils.mtl @@ -0,0 +1,307 @@ +[comment encoding = UTF-8 /] +[module entityUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::angular::folderUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + + + + +[template public getEntityName(aClass : Class)] +[aClass.name/] +[/template] + +[template public getFormName(aType : Type)] +[aType.name.toLowerFirst()/]Form +[/template] + +[template public getEntityTabsName(aClass : Class)] +Tab[aClass.name/] +[/template] + +[template public getEntityDetailName(aClass : Class)] +detail[aClass.getEntityName()/] +[/template] + +[template public getEntityFormName(aClass : Class)] +[aClass.getEntityName().toLowerFirst()/]Form +[/template] + +[template public getDetailComponentName(aClass : Class)] +Detail[getEntityName()/]Component +[/template] + +[template public getSearchComponentName(aClass : Class)] +Search[getEntityName()/]Component +[/template] + +[template public getListAndSearchComponentName(aClass : Class)] +ListAndSearch[getEntityName()/]Component +[/template] + +[template public getListComponentName(aClass : Class)] +List[getEntityName()/]Component +[/template] + +[template public getTabsComponentName(aClass : Class)] +Tabs[getEntityName()/]Component +[/template] + +[template public getEntityCriteriaName(aClass : Class)] +[getEntityName()/]Criteria +[/template] + +[template public getEntityServiceName(aClass : Class)] +[getEntityName()/]Service +[/template] + +[template public getEntityPageableName(aClass : Class)] +[getEntityName()/]Pageable +[/template] + +[template public getEntityPageName(aClass : Class)] +[getEntityName()/]Page +[/template] + +[template public getEntityListName(aClass : Class)] +[getEntityName()/]List +[/template] + +[template public getEntityDetailDashedName(aClass : Class)] +detail-[camelToDash(aClass.getEntityName())/] +[/template] + +[template public getEntityTabsDashedName(aClass : Class)] +tabs-[camelToDash(aClass.getEntityName())/] +[/template] + +[template public getEntitySearchDashedName(aClass : Class)] +search-[camelToDash(aClass.getEntityName())/] +[/template] + +[template public getTabsDashedName(aClass : Class)] +tabs-[camelToDash(aClass.getEntityName())/] +[/template] + +[comment]FILE NAME[/comment] +[template public getBaseServiceFileFullPath(oclAny : OclAny)] +[getServiceFolderName().concat('/base.service.ts')/] +[/template] + +[template public getBaseEntityFileFullPath(oclAny : OclAny)] +[getEntityFolderName().concat('/baseEntity.ts')/] +[/template] + +[template public getEntityModelFileFullPath(aClass : Class)] +[getEntityFolderName().concat('/').concat(aClass.getEntityClassName().toLowerFirst()).concat('.ts')/] +[/template] + +[template public getEntityFormFileFullPath(aClass : Class)] +[getFormFolderName().concat('/').concat(aClass.getFormName().toLowerFirst()).concat('.ts')/] +[/template] + +[template public getEntityCriteriaFileFullPath(aClass : Class)] +[getCriteriaFolderName().concat('/').concat(aClass.getEntityClassName().toLowerFirst()).concat('Criteria.ts')/] +[/template] + +[template public getEntityServiceFileFullPath(aClass : Class)] +[getServiceFolderName().concat('/').concat(aClass.getEntityClassName().toLowerFirst()).concat('.service.ts')/] +[/template] + +[template public getEntityDetailComponentFileFullPath(aClass : Class, extension : String)] +[getComponentDetailFolderName(aClass).concat('/detail-').concat(camelToDash(aClass.getEntityName())).concat('.component').concat('.').concat(extension)/] +[/template] + +[template public getListAndSearchComponentFileFullPath(aClass : Class, extension : String)] +[getComponentListAndSearchFolderName(aClass).concat('/list-and-search-').concat(camelToDash(aClass.getEntityName())).concat('.component').concat('.').concat(extension)/] +[/template] + +[template public getSearchComponentFileFullPath(aClass : Class, extension : String)] +[getComponentSearchFolderName(aClass).concat('/search-').concat(camelToDash(aClass.getEntityName())).concat('.component').concat('.').concat(extension)/] +[/template] + +[template public getListComponentFileFullPath(aClass : Class, extension : String)] +[getComponentListFolderName(aClass).concat('/list-').concat(camelToDash(aClass.getEntityName())).concat('.component').concat('.').concat(extension)/] +[/template] + +[template public getTabsComponentFileFullPath(aClass : Class, extension : String)] +[getComponentTabsFolderName(aClass).concat('/tabs-').concat(camelToDash(aClass.getEntityName())).concat('.component').concat('.').concat(extension)/] +[/template] + +[template public getEntityDetailModuleFileFullPath(aClass : Class)] +[getComponentDetailFolderName(aClass).concat('/detail-').concat(camelToDash(aClass.getEntityName())).concat('.module').concat('.ts')/] +[/template] + +[template public getEntityDetailRoutingModuleFileFullPath(aClass : Class)] +[getComponentDetailFolderName(aClass).concat('/detail-').concat(camelToDash(aClass.getEntityName())).concat('-routing.module').concat('.ts')/] +[/template] + +[template public getBaseComponentFileFullPath(extension : String)] +[getComponentFolderName().concat('/base_component/base.component.').concat(extension)/] +[/template] + +[template public getBaseEntityComponentFileFullPath(extension : String)] +[getComponentFolderName().concat('/base_entity_component/base-entity.component.').concat(extension)/] +[/template] + + +[comment]MODULES[/comment] +[template public getBaseComponentModuleFileFullPath(oclAny : OclAny)] +[getComponentFolderName().concat('/base_component/base-component.module.ts')/] +[/template] + +[template public getBaseComponentRoutingModuleFileFullPath(oclAny : OclAny)] +[getComponentFolderName().concat('/base_component/base-component-routing.module.ts')/] +[/template] + +[template public getListAndSearchModuleFileFullPath(aClass : Class)] +[getComponentListAndSearchFolderName(aClass).concat('/list-and-search-').concat(camelToDash(aClass.getEntityName())).concat('.module').concat('.').concat('ts')/] +[/template] + +[template public getSearchModuleFileFullPath(aClass : Class)] +[getComponentSearchFolderName(aClass).concat('/search-').concat(camelToDash(aClass.getEntityName())).concat('.module').concat('.').concat('ts')/] +[/template] + +[template public getListModuleFileFullPath(aClass : Class)] +[getComponentListFolderName(aClass).concat('/list-').concat(camelToDash(aClass.getEntityName())).concat('.module').concat('.').concat('ts')/] +[/template] + +[template public getSearchRoutingModuleFileFullPath(aClass : Class)] +[getComponentSearchFolderName(aClass).concat('/search-').concat(camelToDash(aClass.getEntityName())).concat('-routing.module.ts')/] +[/template] + +[template public getListRoutingModuleFileFullPath(aClass : Class)] +[getComponentListFolderName(aClass).concat('/list-').concat(camelToDash(aClass.getEntityName())).concat('-routing.module.ts')/] +[/template] + +[template public getListAndSearchRoutingModuleFileFullPath(aClass : Class)] +[getComponentListAndSearchFolderName(aClass).concat('/list-and-search-').concat(camelToDash(aClass.getEntityName())).concat('-routing.module.ts')/] +[/template] + +[template public getTabsRoutingModuleFileFullPath(aClass : Class)] +[getComponentTabsFolderName(aClass).concat('/tabs-').concat(camelToDash(aClass.getEntityName())).concat('-routing.module.ts')/] +[/template] + +[template public getTabsModuleFileFullPath(aClass : Class)] +[getComponentTabsFolderName(aClass).concat('/tabs-').concat(camelToDash(aClass.getEntityName())).concat('.module.ts')/] +[/template] + +[template public getListModuleName(aClass : Class)] +List[getEntityName()/]Module +[/template] + +[template public getListAndSearchModuleName(aClass : Class)] +ListAndSearch[getEntityName()/]Module +[/template] + +[template public getSearchModuleName(aClass : Class)] +Search[getEntityName()/]Module +[/template] + +[template public getListAndSearchRoutingModuleName(aClass : Class)] +ListAndSearch[getEntityName()/]RoutingModule +[/template] + +[template public getTabsModuleName(aClass : Class)] +Tabs[getEntityName()/]Module +[/template] + +[template public getSearchRoutingModuleName(aClass : Class)] +SearchRouting[getEntityName()/]Module +[/template] + +[template public getListRoutingModuleName(aClass : Class)] +List[getEntityName()/]RoutingModule +[/template] + +[template public getTabsRoutingModuleName(aClass : Class)] +TabsRouting[getEntityName()/]Module +[/template] + +[comment]FILEs[/comment] +[template public getListModuleFileName(aClass : Class)] +list-[camelToDash(getEntityName())/]/list-[camelToDash(getEntityName())/].module +[/template] + +[template public getSearchModuleFileName(aClass : Class)] +search-[camelToDash(getEntityName())/]/search-[camelToDash(getEntityName())/].module +[/template] + +[comment]COMPONENTS[/comment] +[template public getListAndSearchComponentFileName(aClass : Class)] +list-and-search-[camelToDash(getEntityName())/].component +[/template] + +[template public getListComponentFileName(aClass : Class)] +list-[camelToDash(getEntityName())/].component +[/template] + +[template public getSearchComponentFileName(aClass : Class)] +search-[camelToDash(getEntityName())/].component +[/template] + +[template public getTabsComponentFileName(aClass : Class)] +tabs-[camelToDash(getEntityName())/].component +[/template] + +[comment]ROUTING MODULE[/comment] +[template public getListAndSearchRoutingModuleFileName(aClass : Class)] +list-and-search-[camelToDash(getEntityName())/]-routing.module +[/template] + +[template public getListRoutingModuleFileName(aClass : Class)] +list-[camelToDash(getEntityName())/]-routing.module +[/template] + +[template public getSearchRoutingModuleFileName(aClass : Class)] +search-[camelToDash(getEntityName())/]-routing.module +[/template] + +[template public getTabsRoutingModuleFileName(aClass : Class)] +tabs-[camelToDash(getEntityName())/]-routing.module +[/template] + +[template public getParentIdName(id : Property, aClass : Class, parentAss : Association)post(trim())] +[if((aClass.getParentEnd(parentAss).name = null)._not())][id.name.concat(aClass.getParentEnd(parentAss).name.toUpperFirst())/] +[else][id.name/][/if] +[/template] + +[template public getSearchFormFileFullPath(aClass : Class)] +[getFormFolderName().concat('/search').concat(aClass.getEntityName().toUpperFirst()).concat('Form.ts')/] +[/template] + +[template public getEntityModuleFileFullPath(aClass : Class)] +[getComponentFolderName().concat('/').concat(camelToUnderscore(aClass.getEntityName())).concat('/').concat(camelToDash(aClass.getEntityName())).concat('.module.ts')/] +[/template] + +[template public getEntityRouteFileFullPath(aClass : Class)] +[getComponentFolderName().concat('/').concat(camelToUnderscore(aClass.getEntityName())).concat('/').concat(camelToDash(aClass.getEntityName())).concat('.route.ts')/] +[/template] + +[template public getAllEntityModuleFileFullPath(oclAny: OclAny)] +[getComponentFolderName().concat('/').concat('entity.module.ts')/] +[/template] + +[template public getParentApiService(aClass : Class, parent : Association)] +[aClass.getParentPropertyName(parent)/]ApiService +[/template] + +[template public getParentDashName(aClass : Class, parent : Association)] +[camelToDash(aClass.getParentPropertyName(parent).toLowerFirst())/] +[/template] + +[template public getVirginParentDashName(aClass : Class, parent : Association)] +[camelToDash(aClass.getParentClass(parent).getEntityClassName().toLowerFirst())/] +[/template] + +[template public getParentFEArtifact(aClass : Class , parent : Association)] +[getRootArtifactId()/]-ms-[aClass.getParentClass(parent).getModel().name.toString().toLowerFirst().replace('_model','')/]-fe +[/template] + +[template public getParentFEArtifact(aClass : Class , parent : Class)] +[getRootArtifactId()/]-ms-[parent.getModel().name.toString().toLowerFirst().replace('_model','')/]-fe +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/folderUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/folderUtils.mtl new file mode 100644 index 0000000..937e1fb --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/folderUtils.mtl @@ -0,0 +1,62 @@ +[comment encoding = UTF-8 /] +[module folderUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils] + +[template public getModuleName(oclAny : OclAny)] +[getArtifact().concat('-angular2')/] +[/template] + +[template public getSrcFolderName(oclAny : OclAny)] +[getModuleFolderName().concat('/src')/] +[/template] + +[template public getAppFolderName(oclAny : OclAny)] +[getSrcFolderName().concat('/app')/] +[/template] + +[template public getModuleFolderName(oclAny : OclAny)] +[getArtifact().concat('/modules/').concat(getModuleName())/] +[/template] + +[template public getServiceFolderName(oclAny : OclAny)] +[getAppFolderName().concat('/service')/] +[/template] + +[template public getComponentFolderName(oclAny : OclAny)] +[getAppFolderName().concat('/entity')/] +[/template] + +[template public getComponentDetailFolderName(aClass : Class)] +[getComponentFolderName().concat('/').concat(camelToUnderscore(aClass.name)).concat('/').concat('detail-').concat(camelToDash(aClass.name))/] +[/template] + +[template public getComponentListAndSearchFolderName(aClass : Class)] +[getComponentFolderName().concat('/').concat(camelToUnderscore(aClass.name)).concat('/').concat('list-and-search-').concat(camelToDash(aClass.name))/] +[/template] + +[template public getComponentSearchFolderName(aClass : Class)] +[getComponentFolderName().concat('/').concat(camelToUnderscore(aClass.name)).concat('/').concat('search-').concat(camelToDash(aClass.name))/] +[/template] + +[template public getComponentListFolderName(aClass : Class)] +[getComponentFolderName().concat('/').concat(camelToUnderscore(aClass.name)).concat('/').concat('list-').concat(camelToDash(aClass.name))/] +[/template] + +[template public getComponentTabsFolderName(aClass : Class)] +[getComponentDetailFolderName().concat('/').concat('tabs-').concat(camelToDash(aClass.name))/] +[/template] + +[template public getEntityFolderName(oclAny : OclAny)] +[getAppFolderName().concat('/model')/] +[/template] + +[template public getFormFolderName(oclAny : OclAny)] +[getAppFolderName().concat('/form')/] +[/template] + +[template public getCriteriaFolderName(oclAny : OclAny)] +[getAppFolderName().concat('/criteria')/] +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/generalUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/generalUtils.mtl new file mode 100644 index 0000000..07723ef --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/angular/generalUtils.mtl @@ -0,0 +1,91 @@ +[comment encoding = UTF-8 /] +[module generalUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::angular::folderUtils/] +[import it::micegroup::voila2::cartridge::library::angular::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] + +[template public getAppRoutingModuleFileName(oclAny : OclAny)] +[getAppFolderName().concat('/app-routing.module.ts')/] +[/template] + +[template public getAppModuleFileName(oclAny : OclAny)] +[getAppFolderName().concat('/app.module.ts')/] +[/template] + +[template public getAppComponentFileName(extension : String)] +[getAppFolderName().concat('/app.component.').concat(extension)/] +[/template] + +[template public getConfigMenuFileName(oclAny : OclAny)] +[getAppFolderName().concat('/configMenu.json')/] +[/template] + +[template public getConfigFileName(oclAny : OclAny)] +[getAppFolderName().concat('/config.json')/] +[/template] + +[template public getI18nFileName(language : String)] +[getSrcFolderName().concat('/assets/i18n/').concat(language).concat('.json')/] +[/template] + +[template public genInputComponent(aClass : Class, + property : Property, + value: String, + type : String, + _placeholder : String, + arrayName : String, + formGroup : String, + controlName:String, + errorMessage:String, + label : String, + buttonIcon : String, + col: String)] +[if(col.oclIsUndefined()._not())]

[/if] +[/template] + +[template public genInputComponentForDetail(aClass : Class, + property : Property, + type : String, + _placeholder : String, + arrayName : String, + formGroup : String, + controlName:String, + label : String, + buttonIcon : String, + col: String)] +[genInputComponent(aClass, property, aClass.getEntityName().toLowerFirst().concat('.').concat(property.name), type, _placeholder, arrayName, formGroup, controlName, aClass.getEntityDetailName().concat('.validation.required.').concat(property.name), label, buttonIcon, col)/] +[/template] + +[template public genInputComponentForSearch(aClass : Class, + property : Property, + type : String, + _placeholder : String, + arrayName : String, + formGroup : String, + controlName:String, + label : String, + buttonIcon : String, + col: String)] +[genInputComponent(aClass, property, null, type, _placeholder, arrayName, formGroup, controlName, null, label, buttonIcon, col)/] +[/template] + +[template public getAngularJsonFileName(oclAny : OclAny)] +[getModuleFolderName().concat('/angular.json')/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/associationUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/associationUtils.mtl new file mode 100644 index 0000000..36430f7 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/associationUtils.mtl @@ -0,0 +1,111 @@ +[comment encoding = UTF-8 /] +[module associationUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::common::entityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::common::utilities/] + + + + +[** + * Get theParent property name for the ownerClass + * @author: Vittorio Niespolo +*/] +[template public getTheParentPropertyName(ownerClass : Class, aAssociation : Association) post(trim())] +[comment][consoleMessage(getErrorSeverity(), 'ownerClass: '+ ownerClass.name +' Ass: ' + aAssociation + ' ParentEnd: ' + ownerClass.getParentEnd(aAssociation) + ' ParentEndNAme: ' + ownerClass.getParentEnd(aAssociation).name + ' ParentClassName: ' + ownerClass.getParentClass(aAssociation).name)/] [/comment] +the[getParentPropertyName(ownerClass, aAssociation)/] +[/template] + +[** + * Get theSelf property name for the ownerClass + * @author: Vittorio Niespolo +*/] +[template public getTheSelfPropertyName(ownerClass : Class,aAssociation : Association)post(trim())] +[comment][consoleMessage(getErrorSeverity(), 'TheSelf property name ownerClass: '+ ownerClass.name +' Ass: ' + aAssociation + ' ParentEnd: ' + ownerClass.getParentEnd(aAssociation) + ' ParentEndNAme: ' + ownerClass.getParentEnd(aAssociation).name + ' ParentClassName: ' + ownerClass.getParentClass(aAssociation).name)/] [/comment] +[if(ownerClass.getParentEnd(aAssociation) = null or (ownerClass.getParentEnd(aAssociation).name = null or ownerClass.getParentEnd(aAssociation).name.equalsIgnoreCase('')))] +the[ownerClass.getParentClass(aAssociation).name.toUpperFirst()/] +[else] +the[ownerClass.getParentClass(aAssociation).name.concat(ownerClass.getParentEnd(aAssociation).name.toUpperFirst())/] +[/if] +[/template] + +[** + * Get theChild property name for the ownerClass + * @author: Vittorio Niespolo , Jessica Pascarella +*/] +[template public getTheChildPropertyName(ownerClass : Class, aAssociation : Association) post(trim())] +[if(ownerClass.getChildEnd(aAssociation).name = null or ownerClass.getChildEnd(aAssociation).name.equalsIgnoreCase(''))] +the[ownerClass.getChildClass(aAssociation).name.toUpperFirst()/] +[else] +the[ownerClass.getChildClass(aAssociation).name.concat(ownerClass.getChildEnd(aAssociation).name.toUpperFirst())/] +[/if] +[/template] + +[template public getParentEntityName(aClass : Class, parentAss : Association)] +[aClass.getParentClass(parentAss).getEntityName()/][if(not aClass.getParentEnd(parentAss).name.oclIsUndefined())][aClass.getParentEnd(parentAss).name.toUpperFirst()/][/if] +[/template] + +[template public getChildEntityName(aClass : Class, childAss : Association)] +[aClass.getChildClass(childAss).getEntityName()/][if(not aClass.getChildEnd(childAss).name.oclIsUndefined())][aClass.getChildEnd(childAss).name.toUpperFirst()/][/if] +[/template] + +[template public getChildLinkName(aClass: Class, childAss : Association)] +[camelToUnderscore(aClass.getChildClass(childAss).getEntityName())/][if(not aClass.getChildEnd(childAss).name.oclIsUndefined())]['_'.concat(camelToUnderscore(aClass.getChildEnd(childAss).name))/][/if] +[/template] + +[template public getParentLinkName(aClass: Class, parentAss : Association)] +[camelToUnderscore(getParentClass(aClass, parentAss).getEntityName())/][if(not aClass.getParentEnd(parentAss).name.oclIsUndefined())]['_'.concat(camelToUnderscore(aClass.getParentEnd(parentAss).name))/][/if] +[/template] + +[template public getParentPropertyName(ownerClass : Class, aAssociation : Association) post(trim())] +[comment][consoleMessage(getErrorSeverity(), 'ParentPropertyName ownerClass: '+ ownerClass.name +' Ass: ' + aAssociation + ' ParentEnd: ' + ownerClass.getParentEnd(aAssociation) + ' ParentEndNAme: ' + ownerClass.getParentEnd(aAssociation).name + ' ParentClassName: ' + ownerClass.getParentClass(aAssociation).name)/] [/comment] +[if(ownerClass.getParentEnd(aAssociation) = null or + ownerClass.getParentEnd(aAssociation).oclIsUndefined() or + ownerClass.getParentEnd(aAssociation).name = null or + ownerClass.getParentEnd(aAssociation).name.equalsIgnoreCase(''))] +[ownerClass.getParentClass(aAssociation).name.toUpperFirst()/] +[else] +[ownerClass.getParentClass(aAssociation).name.concat(ownerClass.getParentEnd(aAssociation).name.toUpperFirst())/] +[/if] +[/template] + +[template public getParentEntityNameCheckSelf(aClass : Class, parentAss: Association)] +[if(not parentAss.isSelfRelation())][aClass.getParentPropertyName(parentAss)/][else][aClass.getEntityName()/][/if] +[/template] + +[template public getVirginParentEntityNameCheckSelf(aClass : Class, parentAss: Association)] +[if(not parentAss.isSelfRelation())][aClass.getParentClass(parentAss).getEntityClassName()/][else][aClass.getEntityName()/][/if] +[/template] + +[template public getChildEntityNameCheckSelf(aClass : Class, childAss : Association)] +[if(not childAss.isSelfRelation())][aClass.getChildEntityName(childAss)/][else][aClass.getEntityName()/][/if] +[/template] + +[template public getVirginChildEntityNameCheckSelf(aClass : Class, childAss : Association)] +[if(not childAss.isSelfRelation())][aClass.getChildClass(childAss).getEntityName()/][else][aClass.getEntityName()/][/if] +[/template] + +[template public getTheParentEntityNameCheckSelf(aClass : Class, parentAss: Association)] +[if(not parentAss.isSelfRelation())][aClass.getTheParentPropertyName(parentAss)/][else][aClass.getEntityName()/]Padre[/if] +[/template] + +[template public getTheParentObjectKeyCheckSelf(aClass : Class, parentAss: Association)] +[if(not parentAss.isSelfRelation())][aClass.getTheParentPropertyName(parentAss)/]ObjectKey[else]the[aClass.getEntityName()/]PadreObjectKey[/if] +[/template] + +[template public genParentPermission(aClass : Class, index: Integer, offset: Integer)] + [for(parentAss: Association | getParentAssociations(aClass))] + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_BY_[camelToUnderscore(aClass.getParentPropertyName(parentAss)).toUpperCase()/] = [getPortNumber()/][index/]0[intSum(offset, i)/]; + [/for] + [for(childAss : Association | getChildAssociations(aClass))] + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_BY_[camelToUnderscore(aClass.getTheChildPropertyName(childAss)).toUpperCase()/]_OBJECT_KEY = [getPortNumber()/][index/]0[offset + aClass.getParentAssociations()->size()+ i/]; + [/for] +[/template] + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/entityUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/entityUtils.mtl new file mode 100644 index 0000000..dce151a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/entityUtils.mtl @@ -0,0 +1,12 @@ +[comment encoding = UTF-8 /] +[module entityUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::angular::folderUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] + + +[template public getEntityName(aClass : Class)] +[aClass.name/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/idUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/idUtils.mtl new file mode 100644 index 0000000..4debe15 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/idUtils.mtl @@ -0,0 +1,124 @@ +[comment encoding = UTF-8 /] +[module idUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] + +[** + * Get ParentId name of the Class for the specific association + * @author: Vittorio Niespolo +*/] +[template public getParentIdName(childClass : Class, association : Association) post(trim())] +[if((childClass.getParentEnd(association).name = null)._not())] +[childClass.getParentClass(association).getClassIdName().concat(childClass.getParentEnd(association).name.toUpperFirst())/] +[else] +[childClass.getParentClass(association).getClassIdName()/] +[/if] +[/template] + +[template public genGetObjectKey(aClass : Class)] +/** + * Restituisce l'identificativo della chiave in formato stringa. Ritorna + * conveniente nelle selezioni da lista. + * + * @return L'identificativo della chiave in formato pk1||pk2||pk3... + */ +public String getObjectKey() { + return getObjectKeyById(get[aClass.getClassIdName().toUpperFirst()/]()); +} + +public String getObjectKeyById([aClass.getClassIdType()/] identification){ + if(identification == null){ + return null; + } + StringBuilder output = new StringBuilder(); + [if(aClass.hasCompositeKey())] + [for(p: Property | aClass.getCompositeKeyAttributesWithMappedNames(true)) separator('\toutput.append(getRowIdFieldDelimiter());\n')] + output.append(identification.get[p.name.toUpperFirst()/]()); + [/for] + [else] + output.append(identification); + [/if] +[comment] [if(getCompositeKeyAttributesWithMappedNames(aClass, true) -> size() > 0 and aClass.hasParentsWithCK())] + output.append(getRowIdFieldDelimiter()); + [/if][/comment] +[comment] [for(parentAss: Association | aClass.getParentAssociationHavingCK()) separator('\toutput.append(getRowIdFieldDelimiter());\n')] + output.append(identification.get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey()); + [/for][/comment] + return output.toString(); +} +[/template] + +[template public genSetObjectKey(aClass : Class)] +/** + * Inizializza la parte identificativa del bean in base alla stringa tokenizzata + * da "||" fornita in input. + * + * @param key L'identificativo della chiave in formato pk1||pk2||pk3... + */ +public void setObjectKey(String key) { + if (key == null || key.trim().length() == 0) { + return; + } + String['['/]] array = StringUtils.splitByWholeSeparatorPreserveAllTokens(key, getRowIdFieldDelimiter()); + int ctr = 0; + + [if(aClass.hasCompositeKey())] + [aClass.name.concat('Key').toLowerFirst()/] = new [aClass.name.concat('Key')/](); +[comment] [for(parentAss: Association | aClass.getParentAssociationHavingCK())separator('\tctr++;\n')] + [aClass.getClassIdName().toLowerFirst()/].set[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey(getStringCheckedAgainstNullContent(array['['/]ctr])); + [/for] + + [if(aClass.getCompositeKeyAttributesWithMappedNames(false) -> size() > 0 and aClass.hasParentsWithCK())] + ctr++;[/if][/comment] + [for(p: Property | aClass.getCompositeKeyAttributesWithMappedNames(true))separator('\tctr++;\n')] + [aClass.getClassIdName().toLowerFirst()/].set[p.name.toUpperFirst()/](get[getJavaType(p.type)/]CheckedAgainstNullContent(array['['/]ctr])); + [/for] + [else] + set[aClass.getClassIdName().toUpperFirst()/](get[aClass.getClassIdType()/]CheckedAgainstNullContent(array['['/]ctr])); + [/if] +} +[/template] + + +[template public getClassIdType(aClass: Class) post(trim())] +[if(aClass.hasCompositeKey())] +[aClass.name.concat('Key')/] +[else] +[for(p:Property | aClass.getAttributeList())] +[if(p.isID)][p.type.getJavaType()/][/if] +[/for] +[/if] +[/template] + +[template public getAngularClassIdType(aClass: Class) post(trim())] +[if(aClass.hasCompositeKey())] +[aClass.name.concat('Key')/] +[else] +[for(p:Property | aClass.getAttributeList())] +[if(p.isID)][p.type.getAngularType()/][/if] +[/for] +[/if] +[/template] + +[template public getClassIdName(aClass: Class) post(trim())] +[if(aClass.hasCompositeKey())] +[aClass.name.concat('Key').toLowerFirst()/] +[else] +[for(p:Property | aClass.getAttributeList())] +[if(p.isID)][p.name/][/if] +[/for] +[/if] +[/template] + + +[template public getIdGetter(aClass : Class, relatedClass : Class)] +[aClass.name.toLowerFirst().concat('.get').concat(relatedClass.getClassIdName().toUpperFirst()).concat('()')/] +[/template] + +[template public getObjectKeyGetter(aClass : Class, relatedClass : Class)] +[aClass.name.toLowerFirst().concat('.getObjectKey()')/] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/utilities.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/utilities.mtl new file mode 100644 index 0000000..3a2fa58 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/common/utilities.mtl @@ -0,0 +1,22 @@ +[comment encoding = UTF-8 /] +[module utilities('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] + + +[query public getAttributesFromClassAndParents(arg0 : Class) : Collection(OclAny) + = getClassAttributesAsSequence(arg0.getAttributesForPresentation()) -> union(getParentIdAttributesAsSequence()) +/] + +[query public getParentIdAttributesAsSequence(arg0 : Class) : Sequence(OclAny) + = arg0.getParentIds().oclAsSet() -> asSequence() +/] + +[query public getClassAttributesAsSequence(arg0 : Collection(OclAny)) : Sequence(OclAny) + = arg0.oclAsSet() -> asSequence() +/] + +[query public intSum(a : Integer, b: Integer) : String = a + b + ''/] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/AbstractTypeReplacementStrategy.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/AbstractTypeReplacementStrategy.java new file mode 100644 index 0000000..1b97ef7 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/AbstractTypeReplacementStrategy.java @@ -0,0 +1,36 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** + * Abstract TypeReplacementStrategy implementation. + * + * @author Karsten Klein, hybrid labs + * + */ +public abstract class AbstractTypeReplacementStrategy implements TypeReplacementStrategy { + + public String modulateType(String type) { + return type; + } + + public String composeReplace(CharacterSequence type) { + CharSequence t = type.substring(type.lastIndexOf('.') + 1); + return t + "$1"; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/Beautifier.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/Beautifier.java new file mode 100644 index 0000000..392e45c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/Beautifier.java @@ -0,0 +1,35 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** + * Interface defining the signatures for all Beautifier. + * + * @author Karsten Klein, hybrid labs + * + */ +public interface Beautifier { + + /** + * Processes the characterSequence and beautifies its content. + * + * @param characterSequence The character sequence serving as input for + * the beautification. + */ + public void beautify(CharacterSequence characterSequence); + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/BeautifierContext.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/BeautifierContext.java new file mode 100644 index 0000000..7e3aa23 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/BeautifierContext.java @@ -0,0 +1,144 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import java.util.ArrayList; +import java.util.IdentityHashMap; +import java.util.Set; +import java.util.TreeSet; + +import de.hunsicker.jalopy.language.antlr.JavaNode; + +/** + * Context object used during a beatification process. + * + * @author Karsten Klein, hybrid labs + * + */ +public class BeautifierContext implements ImportBeautifierJalopyConstants { + + private TypeContext currentTypeContext; + + private IdentityHashMap processedNodes = new IdentityHashMap(); + + private int packageLine = -1; + private int packageEnd = -1; + + private int importEndLine = -1; + private int importEnd = -1; + + private Set typeContexts = new TreeSet(); + + public BeautifierContext() { + initializeTypeContext(-1); + } + + public void preProcess(JavaNode javaNode) { + processedNodes.put(createKey(javaNode), null); + } + + private Object createKey(JavaNode javaNode) { + return javaNode; + } + + public boolean isProcessed(JavaNode javaNode) { + return processedNodes.containsKey(createKey(javaNode)); + } + + public void addToCurrentTypeContext(JavaNode javaNode) { + currentTypeContext.addComponent(javaNode.getText()); + } + + public TypeContext getCurrentTypeContext() { + return currentTypeContext; + } + + public void postProcess(JavaNode javaNode) { + if (javaNode.getType() == TYPE) { + terminateCurrentSequence(javaNode, -1); + } + } + + private void initializeTypeContext(int type) { + currentTypeContext = new TypeContext(type, new ArrayList()); + } + + public void terminateCurrentSequence(JavaNode javaNode, int typeOfSequenceScope) { + if (currentTypeContext != null) { + currentTypeContext.reviseType(); + + if (currentTypeContext.getType() == PACKAGE_ANNOTATION) { + if (packageEnd == -1) { + packageEnd = javaNode.getEndColumn(); + packageLine = javaNode.getEndLine(); + } + } + + if (currentTypeContext.getType() == IMPORT_STATEMENT || + currentTypeContext.getType() == STATIC_IMPORT_STATEMENT) { + if (javaNode.getEndLine() > importEndLine) { + importEndLine = javaNode.getEndLine(); + importEnd = javaNode.getEndColumn(); + } + } + + if (currentTypeContext.getType() == CLASS) { + if (currentTypeContext.getLength() == 1) { + typeContexts.add(currentTypeContext); + } + } + + if (currentTypeContext.getType() == PACKAGE_ANNOTATION) { + if (currentTypeContext.getLength() == 1) { + typeContexts.add(currentTypeContext); + } + } + + if (currentTypeContext.getLength() > 1) { + typeContexts.add(currentTypeContext); + } + } + + if (typeOfSequenceScope == -1) { + initializeTypeContext(javaNode.getType()); + } else { + initializeTypeContext(typeOfSequenceScope); + } + + } + + public Set getSequences() { + return typeContexts; + } + + public int getPackageEnd() { + return packageEnd; + } + + public int getPackageLine() { + return packageLine; + } + + public int getImportEndLine() { + return importEndLine; + } + + public int getImportEndColumn() { + return importEnd; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/CharacterSequence.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/CharacterSequence.java new file mode 100644 index 0000000..2c7cda0 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/CharacterSequence.java @@ -0,0 +1,225 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** + * This implementation of the JDK CharSequence hides the details of the + * realization of the underlying implementation, while tryping to + * minimize conversions between strings, stringbuffers and charsequences. + * Moreover this class is used as part of the Beautifier interface definition. + * + * @author Karsten Klein, hybrid labs + * + */ +public final class CharacterSequence implements CharSequence, Comparable { + + private String string; + private CharSequence charSequence; + private StringBuffer stringBuffer; + + /** + * Constructs a CharacterSequence object based on the provided StringBuffer. + * + * @param stringBuffer The StringBuffer the Character Sequence is based on. + */ + public CharacterSequence(StringBuffer stringBuffer) { + set(stringBuffer); + } + + /** + * Constructs a CharacterSequence object based on the provided String. + * + * @param string The String the Character Sequence is based on. + */ + public CharacterSequence(String string) { + set(string); + } + + /** + * Constructs a CharacterSequence object based on the provided CharSequence. + * + * @param charSequence The CcharSequence the Character Sequence is based on. + */ + public CharacterSequence(CharSequence charSequence) { + set(charSequence); + } + + /** + * Returns the content of the CharacterSequence as String. + * + * @return The String representation. + */ + public String getString() { + if (string == null) { + if (charSequence != null) { + string = charSequence.toString(); + } else if (stringBuffer != null) { + string = stringBuffer.toString(); + } + } + return string; + } + + /** + * Returns the content of the CharacterSequence as StringBuffer. + * + * @return The StringBuffer representation. + */ + public StringBuffer getStringBuffer() { + if (stringBuffer == null) { + stringBuffer = new StringBuffer(getString()); + } + return stringBuffer; + } + + public CharSequence getCharSequence() { + return charSequence; + } + + public void set(StringBuffer stringBuffer) { + this.charSequence = stringBuffer; + this.stringBuffer = stringBuffer; + this.string = null; + } + + public void set(CharacterSequence characterSequence) { + this.charSequence = characterSequence.charSequence; + this.stringBuffer = characterSequence.stringBuffer; + this.string = characterSequence.string; + } + + public void set(CharSequence charSequence) { + this.charSequence = charSequence; + this.stringBuffer = charSequence instanceof StringBuffer ? (StringBuffer) charSequence : null;; + this.string = charSequence instanceof String ? (String) charSequence : null; + } + + public void set(String string) { + this.stringBuffer = null; + this.charSequence = string; + this.string = string; + } + + /** + * {@inheritDoc} + */ + public String toString() { + return getString(); + } + + /** + * {@inheritDoc} + */ + public int length() { + return getCharSequence().length(); + } + + /** + * {@inheritDoc} + */ + public char charAt(int index) { + return charSequence.charAt(index); + } + + /** + * {@inheritDoc} + */ + public CharSequence subSequence(int start, int end) { + return charSequence.subSequence(start, end); + } + + public int lastIndexOf(String string) { + if (stringBuffer != null) { + return stringBuffer.lastIndexOf(string); + } + return getString().lastIndexOf(string); + } + + public int lastIndexOf(char c) { + if (stringBuffer != null) { + return stringBuffer.lastIndexOf(String.valueOf(c)); + } + return getString().lastIndexOf(c); + } + + public boolean endsWith(char c) { + return charAt(length() - 1) == c; + } + + public boolean endsWith(String suffix) { + return getString().endsWith(suffix); + } + + public CharSequence substring(int start) { + return subSequence(start, length()); + } + + public boolean startsWith(String suffix) { + return getString().startsWith(suffix); + } + + public boolean startsWith(CharacterSequence sequence) { + return getString().startsWith(sequence.getString()); + } + + public int compareTo(CharacterSequence cs) { + return getString().compareTo(cs.getString()); + } + + public int hashCode() { + return getCharSequence().hashCode(); + } + + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj instanceof String) { + return getString().equals(obj); + } + if (obj instanceof StringBuffer) { + return getStringBuffer().equals(obj); + } + CharacterSequence cs = (CharacterSequence) obj; + return getStringBuffer().equals(cs.getStringBuffer()); + } + + public CharacterSequence subCharacterSequence(int start, int end) { + return new CharacterSequence(getString().substring(start, end)); + } + + public void append(CharacterSequence imports) { + append(imports.getCharSequence()); + } + + public void append(String string) { + getStringBuffer().append(string); + charSequence = stringBuffer; + string = null; + } + + public void append(CharSequence cs) { + getStringBuffer().append(cs); + charSequence = stringBuffer; + string = null; + } + + public void append(char c) { + getStringBuffer().append(c); + charSequence = stringBuffer; + string = null; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/DefaultTypeReplacementStrategy.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/DefaultTypeReplacementStrategy.java new file mode 100644 index 0000000..e562611 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/DefaultTypeReplacementStrategy.java @@ -0,0 +1,38 @@ +package it.micegroup.voila2.cartridge.library.formatters; + + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** + * Default implementation of the TypeReplacement strategy. + * + * @author Karsten Klein, hybrid labs + * + */ +public class DefaultTypeReplacementStrategy extends AbstractTypeReplacementStrategy { + + private String suffix; + + public DefaultTypeReplacementStrategy(String suffix) { + this.suffix = "(" + suffix + ")"; + } + + public String composeMatch(CharacterSequence type) { + return type.getString().replaceAll("\\.", "\\\\s*\\.\\\\s*") + suffix; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/ImportBeautifierJalopyConstants.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/ImportBeautifierJalopyConstants.java new file mode 100644 index 0000000..55b02b5 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/ImportBeautifierJalopyConstants.java @@ -0,0 +1,46 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** + * Interface collecting the constants used in Jalopy to identify the different AST nodes. + * + * @author Karsten Klein, hybrid labs + * + */ +public interface ImportBeautifierJalopyConstants { + public static final int TYPE = 18; + public static final int CLASS = 19; + public static final int PACKAGE = 21; + public static final int EXTENDS_CLAUSE = 23; + public static final int IMPLEMENTS_CLAUSE = 24; + public static final int CAST = 32; + public static final int EXPRESSION = 33; + public static final int IMPORT_STATEMENT = 35; + public static final int STATIC_IMPORT_STATEMENT = 50; + public static final int PACKAGE_ANNOTATION = 55; + public static final int ANNOTATION = 56; + public static final int ANNOTATION_VALUE = 57; + public static final int GENERIC_UPPER_BOUNDS = 65; + public static final int SEMI = 74; + public static final int IDENT = 79; + public static final int DOT = 80; + public static final int COMMA = 85; + public static final int AT = 107; + public static final int THROWS = 118; + public static final int NEW = 168; +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/JavaBeautifier.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/JavaBeautifier.java new file mode 100644 index 0000000..4d25023 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/JavaBeautifier.java @@ -0,0 +1,208 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +/** + * Copyright 2008 hybrid labs + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.log4j.Appender; +import org.apache.log4j.Logger; + +import de.hunsicker.jalopy.Jalopy; +import de.hunsicker.jalopy.language.antlr.JavaNode; +import de.hunsicker.jalopy.storage.Loggers; + +/** + * Abstract implementation of the Beautifier interface focussing on Java + * beautification. + * + * @author Karsten Klein, hybrid labs + * + */ +public abstract class JavaBeautifier implements Beautifier, + ImportBeautifierJalopyConstants { + + private static final Pattern PATTERN_NEWLINE = Pattern.compile("\\n"); + + private static Logger LOG = Logger.getLogger(JavaBeautifier.class); + + private String conventionFilePath; + + private boolean conventionFileInitialized = false; + + public String getConventionFilePath() { + return conventionFilePath; + } + + public void setConventionFilePath(String conventionFilePath) { + this.conventionFilePath = conventionFilePath; + conventionFileInitialized = false; + } + + protected JavaNode createJavaNode( + it.micegroup.voila2.cartridge.library.formatters.CharacterSequence sequence, + File file) { + initialize(); + + Jalopy jalopy = initializeJalopy(); + JavaNode node; + try { + jalopy.setInput(sequence.getString(), file.getAbsolutePath()); + + node = jalopy.parse(); + } finally { + cleanupJalopy(jalopy); + } + + return node; + } + + @SuppressWarnings("unchecked") + private synchronized void cleanupJalopy(Jalopy jalopy) { + try { + List toBeDeleted = new ArrayList(); + + Logger logger = Loggers.ALL; + + for (Enumeration it = logger.getAllAppenders(); it + .hasMoreElements();) { + Object obj = it.nextElement(); + String name = obj.getClass().getName(); + if (name.equals("de.hunsicker.jalopy.Jalopy$SpyAppender")) + toBeDeleted.add((Appender) obj); + } + + for (Appender appender : toBeDeleted) + logger.removeAppender(appender); + } catch (Exception e) { + } + + try { + jalopy.reset(); + } catch (Exception e) { + } + } + + private URL testUrl(URL url) { + if (url != null) { + InputStream inputStream = null; + try { + inputStream = url.openStream(); + } catch (IOException e) { + return null; + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + // ignore + } + } + } + return url; + } + return null; + } + + private void initialize() { + initializeConventionFileUrl(); + } + + private void initializeConventionFileUrl() { + if (conventionFileInitialized) { + return; + } + conventionFileInitialized = true; + + URL url = null; + if (conventionFilePath != null) { + url = testUrl(getClass().getResource(conventionFilePath)); + + if (url == null) { + try { + url = testUrl(new URL("file:" + conventionFilePath)); + } catch (MalformedURLException e) { + LOG.error("Cannot read convention file from 'file:" + + conventionFilePath + "'.", e); + } + } + } + + if (url == null) { + url = testUrl(getClass().getResource("/default-convention.xml")); + } + + if (url != null) { + try { + Jalopy.setConvention(url); + } catch (IOException e) { + LOG.error("Cannot read convention file from '" + url + "'.", e); + } + } + } + + protected int findPositionInCharacterSequence(CharacterSequence sequence, + int line, int column) { + Pattern newlinePattern = PATTERN_NEWLINE; + Matcher newLineMatcher = newlinePattern.matcher(sequence); + int pos = 0; + line--; + while (line > 0) { + newLineMatcher.find(); + pos = newLineMatcher.end(); + line--; + } + pos += column; + + if (pos >= 0) { + while (pos < sequence.length() + && (sequence.charAt(pos) == '\r' || sequence.charAt(pos) == '\n')) { + pos++; + } + } + + return pos; + } + + protected void format(CharacterSequence sequence, File file) { + Jalopy jalopy = initializeJalopy(); + jalopy.setInput(sequence.getString(), file.getAbsolutePath()); + StringBuffer sb = new StringBuffer(); + jalopy.setOutput(sb); + jalopy.format(); + sequence.set(sb); + } + + private Jalopy initializeJalopy() { + Jalopy jalopy = new Jalopy(); + jalopy.setInspect(false); + jalopy.setBackup(false); + jalopy.setForce(false); + // NOTE: the convention file is static (done during first initialize() + // invocation) + return jalopy; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/JavaImportBeautifierImpl.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/JavaImportBeautifierImpl.java new file mode 100644 index 0000000..90e6522 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/JavaImportBeautifierImpl.java @@ -0,0 +1,489 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import java.io.File; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.log4j.Logger; + +import de.hunsicker.jalopy.language.antlr.JavaNode; +import it.micegroup.voila2.cartridge.library.formatters.DefaultTypeReplacementStrategy; +import it.micegroup.voila2.cartridge.library.formatters.TypeReplacementStrategy; + +/** + * Simple oAW beautifier implementation based on Jalopy and the antlr JavaNode. The + * implementation substitutes fully qualified class names (as long as there is + * no conflict) with the short name and the according import statement. + * + * @author Karsten Klein, hybrid labs + * @author Jan Labrie + */ +public class JavaImportBeautifierImpl extends JavaBeautifier { + + private static Logger LOG = Logger.getLogger(JavaImportBeautifierImpl.class); + + private static final String LINESEP = System.getProperty("line.separator"); + + private static final CharacterSequence DEFAULT_PACKAGE = new CharacterSequence(new StringBuffer()); + + private static Set startSequenceTypeSet = new HashSet(); + private static Set terminateSequenceTypeSet = new HashSet(); + + static { + startSequenceTypeSet.add(new Integer(PACKAGE)); + startSequenceTypeSet.add(new Integer(IMPORT_STATEMENT)); + startSequenceTypeSet.add(new Integer(GENERIC_UPPER_BOUNDS)); + startSequenceTypeSet.add(new Integer(EXTENDS_CLAUSE)); + startSequenceTypeSet.add(new Integer(IMPLEMENTS_CLAUSE)); + startSequenceTypeSet.add(new Integer(TYPE)); + startSequenceTypeSet.add(new Integer(EXPRESSION)); + startSequenceTypeSet.add(new Integer(NEW)); + startSequenceTypeSet.add(new Integer(PACKAGE_ANNOTATION)); + startSequenceTypeSet.add(new Integer(ANNOTATION)); + startSequenceTypeSet.add(new Integer(ANNOTATION_VALUE)); + startSequenceTypeSet.add(new Integer(CAST)); + startSequenceTypeSet.add(new Integer(CLASS)); + startSequenceTypeSet.add(new Integer(AT)); + startSequenceTypeSet.add(new Integer(SEMI)); + startSequenceTypeSet.add(new Integer(STATIC_IMPORT_STATEMENT)); + startSequenceTypeSet.add(new Integer(DOT)); + startSequenceTypeSet.add(new Integer(COMMA)); + startSequenceTypeSet.add(new Integer(THROWS)); + } + + static { + // these terminate a sequence AND inherit the scope of the current (separator types) + terminateSequenceTypeSet.add(new Integer(10)); + terminateSequenceTypeSet.add(new Integer(11)); + terminateSequenceTypeSet.add(new Integer(39)); + terminateSequenceTypeSet.add(new Integer(45)); + terminateSequenceTypeSet.add(new Integer(DOT)); + terminateSequenceTypeSet.add(new Integer(100)); + terminateSequenceTypeSet.add(new Integer(109)); + terminateSequenceTypeSet.add(new Integer(COMMA)); + } + + private boolean isOrganizeImports = true; + private boolean isStrict = true; + private boolean isFormat = true; + + private Map strategyMap = new HashMap(); + + public JavaImportBeautifierImpl() { + // populate strategy map + strategyMap.put(new Integer(NEW), new DefaultTypeReplacementStrategy("[\\,|\\<|\\)|\\[|\\<|\\(|\\s]")); + strategyMap.put(new Integer(GENERIC_UPPER_BOUNDS), new DefaultTypeReplacementStrategy( "[\\(|\\,|\\<|\\[|\\,|\\>|\\s]")); + strategyMap.put(new Integer(EXTENDS_CLAUSE), new DefaultTypeReplacementStrategy("[\\(|\\>|\\<|\\[|\\,|\\;|\\{\\s]")); + strategyMap.put(new Integer(IMPLEMENTS_CLAUSE), new DefaultTypeReplacementStrategy("[\\(|\\>|\\<|\\[|\\,|\\;|\\{|\\s]")); + strategyMap.put(new Integer(THROWS), new DefaultTypeReplacementStrategy("[\\(|\\,|\\>|\\<|\\)|\\.|\\s*]")); + strategyMap.put(new Integer(TYPE), new DefaultTypeReplacementStrategy("[\\(|\\,|\\>|\\)\\[\\<|\\;|\\s|\\.class]")); + strategyMap.put(new Integer(EXPRESSION), new DefaultTypeReplacementStrategy("[\\(|\\,|\\>|\\<|\\)|\\.|\\s*]")); + strategyMap.put(new Integer(ANNOTATION), new DefaultTypeReplacementStrategy("[\\(|\\>|\\<|\\[\\,|\\;|\\{|\\s]")); + strategyMap.put(new Integer(AT), new DefaultTypeReplacementStrategy("[\\(|\\>|\\<|\\[\\,|\\;|\\{|\\s]")); + strategyMap.put(new Integer(CAST), new DefaultTypeReplacementStrategy("[\\(|\\)|\\>|\\<|\\[\\,|\\;|\\{|\\s|\\.]")); + strategyMap.put(new Integer(ANNOTATION_VALUE), new DefaultTypeReplacementStrategy("[\\(|\\>|\\<|\\[|\\,|\\;|\\{|\\s|\\.]")); + } + + public boolean isFormat() { + return isFormat; + } + + public void setFormat(boolean isFormat) { + this.isFormat = isFormat; + } + + public boolean isOrganizeImports() { + return isOrganizeImports; + } + + public void setOrganizeImports(boolean isOrganizeImports) { + this.isOrganizeImports = isOrganizeImports; + } + + public boolean isStrict() { + return isStrict; + } + + public void setStrict(boolean isOrganizeOnWildcards) { + this.isStrict = isOrganizeOnWildcards; + } + + public void beautify(CharacterSequence sb) { + File file = null; + try { + file = File.createTempFile("hybridlabs-beautifier-" + System.currentTimeMillis(), ".java"); + if (isOrganizeImports()) { + organizeImports(sb, file); + } + if (isFormat()) { + format(sb, file); + } + } catch (Exception e) { + handleError(e, sb); + } catch (Error e) { + handleError(e, sb); + } finally { + if (file != null) { + file.delete(); + } + } + } + + private void handleError (Throwable e, CharacterSequence sb) { + LOG.error(e.getClass().getSimpleName()+" occured during beautification. Content:" + LINESEP + sb.subSequence(0, sb.length()) + "...", e); + } + + private void organizeImports(CharacterSequence sequence, File file) { + + // create formatter context for this file + BeautifierContext formatterContext = new BeautifierContext(); + + // use formatter context to traverse the abstract syntax tree + JavaNode node = createJavaNode(sequence, file); + traverseAst(node, formatterContext, 0); + + Set sequences = formatterContext.getSequences(); + + // dump all detected sequences to system out in DEBUG mode + if (LOG.isDebugEnabled()) { + printSequences(sequences); + } + + // extract package from ast + CharacterSequence currentPackage = DEFAULT_PACKAGE; + for (TypeContext typeContext : sequences) { + if (typeContext.getType() == PACKAGE_ANNOTATION) { + currentPackage = typeContext.getQualifiedName(); + break; + } + } + + // determine absolute position of package declaration + int packageEndPos = findPositionInCharacterSequence(sequence, + formatterContext.getPackageLine(), formatterContext.getPackageEnd()); + + // determine absolute position of import declaration + int importEndPos = findPositionInCharacterSequence(sequence, + formatterContext.getImportEndLine(), formatterContext.getImportEndColumn()); + + // split the file in header (including the package declaration) ... + CharacterSequence result; + if (DEFAULT_PACKAGE.equals(currentPackage)) { + result = new CharacterSequence(new StringBuffer()); + packageEndPos = 0; + } else { + result = sequence.subCharacterSequence(0, packageEndPos); + } + + if (LOG.isDebugEnabled()) { + LOG.debug("Package: " + currentPackage + "[" + packageEndPos + "]"); + LOG.debug("Imports end at: " + importEndPos); + } + + if (importEndPos == -1) { + importEndPos = packageEndPos; + } + + CharSequence imports = sequence.subSequence(packageEndPos, importEndPos); + // do not organize anything if there is a wildcard import - this could lead to ambiguity + if (isStrict && imports.toString().contains(".*")) { + LOG.info("Did not organize import "+file.getAbsolutePath()+" - file contains wildcard imports."); + } else { + // and the body part (imports, comments, classes/interfaces) + CharSequence body = sequence.subSequence(importEndPos, sequence.length()); + + // extract the detected imports sequences + Set importTypes = extractImports(sequences); + + // set for monitoring the already replaced types + Set replacedSet = new TreeSet(); + + for (TypeContext typeContext : sequences) { + if (typeContext.getType() == CLASS) { + if (currentPackage == null) { + importTypes.add(typeContext.getQualifiedName()); + } else { + CharacterSequence sb = new CharacterSequence(new StringBuffer(100)); + sb.append(currentPackage); + sb.append('.'); + sb.append(typeContext.getQualifiedName()); + importTypes.add(sb); + } + } + } + + body = replaceFullQualifiedClassNames(body, sequences, importTypes, replacedSet); + + if (imports.length() > 0) { + result.append(imports); + } + + // populate header with imports + int numNewImports = 0; + for (CharacterSequence type : replacedSet) { + if (!isRedundant(type, importTypes)) { + + int index = type.lastIndexOf('.'); + CharSequence typePackage = index == -1 ? DEFAULT_PACKAGE : type.subSequence(0, index); + + // make sure the import is not redundant, because it is part of the current package + // and also the java.lang package does not need to be imported + if (!currentPackage.equals(typePackage) && !typePackage.equals("java.lang")) { + result.append("import "); + result.append(type); + result.append(";"); + result.append(LINESEP); + numNewImports += 1; + } + } + } + + // separate existing imports from added imports + if (numNewImports > 0) { + result.append(LINESEP); + } + + // supplement the rest of the source + result.append(body); + + sequence.set(result); + } + } + + private CharSequence replaceFullQualifiedClassNames(CharSequence body, Set sequences, Set importTypes, Set replacedSet) { + + // body consists of import, comment, classes etc + // the existing imports should not be touched by the replacement + + Set conflictCache = new HashSet(); + + // At first replace all java.lang imports + for (TypeContext typeContext : sequences) { + if (typeContext.getQualifiedName().startsWith("java.lang")) { + body = replaceFullQualifiedClassNames(typeContext, body, importTypes, replacedSet, conflictCache); + } + } + + // And then the 'ordinary' ones + for (TypeContext typeContext : sequences) { + body = replaceFullQualifiedClassNames(typeContext, body, importTypes, replacedSet, conflictCache); + } + + return body; + } + + private CharSequence replaceFullQualifiedClassNames( + TypeContext typeContext, + CharSequence body, + Set importTypes, + Set replacedSet, + Set conflictCache) { + + CharacterSequence type = typeContext.getQualifiedName(); + + if (!replacedSet.contains(type)) { + if (typeContext.isValidType()) { + // ensure there are no conflicts + if (!isConflict(type, importTypes, replacedSet, conflictCache)) { + // access the replacement strategy + TypeReplacementStrategy strategy = (TypeReplacementStrategy) + strategyMap.get(new Integer(typeContext.getType())); + + if (strategy != null) { + String replacement = strategy.composeReplace(type); + Pattern pattern = Pattern.compile(strategy + .composeMatch(type)); + Matcher matcher = pattern.matcher(body); + + // check whether the pattern was matched + if (matcher.find()) { + // match and replace the type by the short form (in the sub string) + body = matcher.replaceAll(replacement); + + // mark type as replaced + replacedSet.add(type); + } + } + } + } + } + return body; + } + + private Set extractImports(Set sequences) { + if (LOG.isDebugEnabled()) { + LOG.debug("These are the existing imports:"); + } + Set importTypes = new TreeSet(); + + for (TypeContext typeContext : sequences) { + if (typeContext.getType() == IMPORT_STATEMENT) { + CharacterSequence sb = typeContext.getQualifiedName(); + importTypes.add(sb); + if (LOG.isDebugEnabled()) { + LOG.debug(sb); + } + } else if (typeContext.getType() == STATIC_IMPORT_STATEMENT) { + CharacterSequence sb = new CharacterSequence(new StringBuffer(200)); + sb.append("static "); + sb.append(typeContext.getQualifiedName()); + importTypes.add(sb); + if (LOG.isDebugEnabled()) { + LOG.debug(sb); + } + } + } + return importTypes; + } + + private void printSequences(Set sequences) { + LOG.debug("These are the symbols that are candidate to be replaced by imports:"); + for (TypeContext typeContext : sequences) { + LOG.debug(typeContext); + } + } + + private boolean isConflict(CharacterSequence type, Set importList, Set replacedSet, Set conflictCache) { + if (isConflict(type, replacedSet, conflictCache)) { + return true; + } + + if (isConflict(type, importList, conflictCache)) { + return true; + } + return false; + } + + private boolean isConflict(CharacterSequence type, Set testSet, Set conflictCache) { + if (testSet.contains(type)) { + return false; + } + + if (conflictCache.contains(type)) { + return true; + } + + for (CharacterSequence importType : testSet) { + if (!importType.endsWith('*')) { + if (!type.equals(importType)) { + CharSequence t = importType + .substring(importType.lastIndexOf('.') + 1); + if (type.endsWith("." + t) && !importType.startsWith("static ")) { + conflictCache.add(type); + return true; + } + } + } + } + return false; + } + + /** + * Method to calculate whether a symbol is already covered by a set of import sequences + * @param type The type which is checked + * @param importList The list of import statements in which regard the checking is done + * @return true when the symbol is covered by the import list + */ + private final boolean isRedundant(CharacterSequence type, Set importList) { + for (CharacterSequence importType : importList) { + if (importType.equals(type) || + importType.endsWith('*') && + notLastPart(type).equals(notLastPart(importType))) { + return true; + } + } + return false; + } + + private String notLastPart(CharacterSequence charSeq) { + String result= ""; + int i = charSeq.lastIndexOf('.'); + if (i >= 0) { + result = charSeq.subCharacterSequence(0, i).toString(); + } + return result; + } + + private int traverseAst(JavaNode ast, BeautifierContext context, int depth) { + + // print this node + if (LOG.isDebugEnabled()) { + preparePrintln(depth); + LOG.debug(ast); + } + + if (context.isProcessed(ast)) { + return -1; + } + + context.preProcess(ast); + + // check whether this subtree is to be ignored completely + Integer astType = new Integer(ast.getType()); + + if (terminateSequenceTypeSet.contains(astType)) { + context.terminateCurrentSequence(ast, context.getCurrentTypeContext().getType()); + } else if (startSequenceTypeSet.contains(astType)) { + context.terminateCurrentSequence(ast, -1); + } + + if (LOG.isDebugEnabled()) { + LOG.debug("TRAVERSING: " + ast.getType()); + } + + // traverse all children + JavaNode child = (JavaNode) ast.getFirstChild(); + if (child != null) { + traverseAst(child, context, depth + 1); + } + + context.postProcess(ast); + + // print if a type was detected + if (ast.getType() == IDENT) { + context.addToCurrentTypeContext(ast); + if (LOG.isDebugEnabled()) { + LOG.debug(preparePrintln(depth)+context.getCurrentTypeContext()); + } + } + + // continue visiting the tree (traverse siblings) + JavaNode next = (JavaNode) ast.getNextSibling(); + while (next != null) { + traverseAst(next, context, depth); + next = (JavaNode) next.getNextSibling(); + } + + return -1; + } + + private String preparePrintln(int depth) { + StringBuilder result = new StringBuilder(); + for (int i = 0; i < depth; i++) { + result.append(" "); + } + return result.toString(); + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/PrettierFormatter.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/PrettierFormatter.java new file mode 100644 index 0000000..c885f3c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/PrettierFormatter.java @@ -0,0 +1,120 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +import java.io.File; +import java.io.IOException; +import java.util.Scanner; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.FilenameUtils; + +public class PrettierFormatter { + private String[] cmd; + + public PrettierFormatter() { + cmd = new String[] { + "cmd.exe" , "/c", "prettier", + "--write", + "--print-width", "180", + "--tab-width", "4", + "--trailing-comma", "none", + "--single-quote", + "--arrow-parens", "avoid", + "--end-of-line", "crlf", + "" + }; + } + + public String format(String input, String fileName) { + String formattedOutput = input; + File temp = null; + try { + temp = File.createTempFile("acceleo-"+ System.currentTimeMillis(), "." + FilenameUtils.getExtension(fileName)); + FileUtils.writeStringToFile(temp, input, "utf-8"); + + cmd[cmd.length - 1] = temp.getAbsolutePath(); + + ProcessBuilder builder = new ProcessBuilder(cmd); + Process p = builder.start(); + int result = p.waitFor(); + if (result != 0) { + Scanner scanner = new Scanner(p.getErrorStream()); + while (scanner.hasNext()) { + System.err.println(scanner.nextLine()); + } + scanner.close(); + } else { + formattedOutput = FileUtils.readFileToString(temp, "utf-8"); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (temp != null) + FileUtils.deleteQuietly(temp); + } + return formattedOutput; + } + + public void formatAll(File remoteDir) { + try { +// String[] paths = { +// "\"**/src/app/entity/**/list*.+(html)\"", +// "\"**/src/app/entity/**/list*.+(ts)\"", +// "\"**/src/app/entity/**/detail*.+(html)\"", +// "\"**/src/app/entity/**/detail*.+(ts)\"", +// "\"**/src/app/entity/**/search*.+(html)\"", +// "\"**/src/app/entity/**/search*.+(ts)\"", +// "\"**/src/app/entity/**/tabs*.+(html)\"", +// "\"**/src/app/entity/**/tabs*.+(ts)\"", +// "\"**/src/*.+(html|ts)\"", +// "\"**/src/app/*.+(html|ts)\"", +// "\"**/src/app/criteria/*.+(html|ts)\"", +// "\"**/src/app/model/*.+(html|ts)\"", +// "\"**/src/app/entity/base_*/base*.+(html|ts)\"", +// "\"**/src/app/form/*.+(html|ts)\"", +// "\"**/src/app/home-component/**/*.+(html|ts)\"", +// "\"**/src/app/layout-component/**/*.+(html|ts)\"", +// "\"**/src/app/login-component/**/*.+(html|ts)\"", +// "\"**/src/app/security/**/*.+(html|ts)\"", +// "\"**/src/app/service/**/*.+(html|ts)\"", +// "\"**/src/**/*.+(js|xml)\"" +// }; + String[] paths = { + "\"**-fe/**/*.+(html)\"", + "\"**-fe/**/*.+(ts)\"", + "\"**-fe/**/*.+(json)\"", + "\"**-fe/**/*.+(js|xml)\"" + }; + doFormat(paths, remoteDir); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void doFormat(String[] paths, File remoteDir) throws Exception { + Process[] processes = new Process[paths.length]; + long startTime = System.currentTimeMillis(); + for (int i = 0; i < paths.length; i++) { + cmd[cmd.length - 1] = paths[i]; + ProcessBuilder builder = new ProcessBuilder(cmd); + builder.inheritIO(); + builder.directory(remoteDir); + processes[i] = builder.start(); + } + int result = 0; + for (int i = 0; i < paths.length; i++) { + result += processes[i].waitFor(); + } + long endTime = System.currentTimeMillis(); + System.out.println("doformat Millisecondi per formattare: " + (endTime - startTime)); + + if (result != 0) { + for (int i = 0; i < paths.length; i++) { + Scanner scanner = new Scanner(processes[i].getErrorStream()); + while (scanner.hasNext()) { + System.err.println(scanner.nextLine()); + } + scanner.close(); + } + } + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/SimpleXmlFormatterPostProcessor.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/SimpleXmlFormatterPostProcessor.java new file mode 100644 index 0000000..d3be108 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/SimpleXmlFormatterPostProcessor.java @@ -0,0 +1,48 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import org.apache.commons.lang3.StringUtils; + +public class SimpleXmlFormatterPostProcessor { + public String format(String input) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + String[] lines = input.trim().split("\n"); + int lastIndent = 0; + try { + for (int i = 0; i < lines.length; i++) { + if (!lines[i].trim().equals("")) { + lastIndent = writeLine(baos, lines[i], lastIndent); + baos.write("\n".getBytes()); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + return baos.toString(); + } + + private int writeLine(ByteArrayOutputStream baos, String line, int lastIndent) + throws IOException { + line = convertSpacesToTabs(line); + if (line.trim().startsWith("<")) { + int pos = line.indexOf("<"); + int newpos = pos; + if (pos > lastIndent) { + newpos = lastIndent + 1; + line = StringUtils.repeat("\t", newpos) + line.trim(); + lastIndent = newpos; + } + } + baos.write(line.getBytes()); + return lastIndent; + } + + private String convertSpacesToTabs(String line) { + while (line.startsWith(" ")) { + line = "\t" + line.substring(4); + } + return line; + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/TypeContext.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/TypeContext.java new file mode 100644 index 0000000..a555c29 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/TypeContext.java @@ -0,0 +1,141 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +import static it.micegroup.voila2.cartridge.library.formatters.ImportBeautifierJalopyConstants.CLASS; +import static it.micegroup.voila2.cartridge.library.formatters.ImportBeautifierJalopyConstants.EXTENDS_CLAUSE; +import static it.micegroup.voila2.cartridge.library.formatters.ImportBeautifierJalopyConstants.IMPLEMENTS_CLAUSE; +import static it.micegroup.voila2.cartridge.library.formatters.ImportBeautifierJalopyConstants.PACKAGE_ANNOTATION; +import static it.micegroup.voila2.cartridge.library.formatters.ImportBeautifierJalopyConstants.STATIC_IMPORT_STATEMENT; +import static it.micegroup.voila2.cartridge.library.formatters.ImportBeautifierJalopyConstants.THROWS; +import static it.micegroup.voila2.cartridge.library.formatters.ImportBeautifierJalopyConstants.TYPE; + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import java.util.List; + +/** + * The type context enable some convenient operation on a type extracted from + * an abstract systax tree. + * + * @author Karsten Klein, hybrid labs + * + */ +public class TypeContext implements Comparable { + + private int type; + private List sequence; + + private CharacterSequence qualifiedName = null; + + public TypeContext(int type, List sequence) { + this.type = type; + this.sequence = sequence; + } + + public CharacterSequence getQualifiedName() { + if (qualifiedName == null) { + StringBuffer sb = new StringBuffer(100); + for (int i = 0; i < sequence.size(); i++) { + if (sb.length() > 0) { + sb.append('.'); + } + sb.append(sequence.get(i)); + } + qualifiedName = new CharacterSequence(sb); + } + return qualifiedName; + } + + public int getType() { + return type; + } + + public String toString() { + return "" + getType() + " - " + getQualifiedName(); + } + + public void reviseType() { + int removeIndex = -1; + + if (type == STATIC_IMPORT_STATEMENT) return; + if (type == CLASS) return; + if (type == PACKAGE_ANNOTATION) return; + if (type == IMPLEMENTS_CLAUSE) return; + if (type == EXTENDS_CLAUSE) return; + if (type == TYPE) return; + + for (int i = 0; i < sequence.size(); i++) { + String pos = (String) sequence.get(i); + + // uses java conventions to revise type + if (pos.matches("[A-Z].*")) { + removeIndex = i +1; + break; + } + } + + if (removeIndex != -1 && removeIndex < sequence.size()) { + while(sequence.size() != removeIndex) { + sequence.remove(removeIndex); + qualifiedName = null; + } + } + } + + public int compareTo(TypeContext other) { + CharacterSequence qf1 = getQualifiedName(); + CharacterSequence qf2 = other.getQualifiedName(); + + // FIXME it is unclear why we need this. Normally the + // replacement patterns should have covered this. + + // changes the order of types that start with the same prefix + if (qf2.startsWith(qf1)) { + return -(qf1.compareTo(qf2)); + } + + return qf1.compareTo(qf2); + } + + public boolean isValidType() { + if (getType() == CLASS) return true; + if (getType() == PACKAGE_ANNOTATION) return true; + if (getType() == TYPE) return true; + if (getType() == IMPLEMENTS_CLAUSE) return true; + if (getType() == EXTENDS_CLAUSE) return true; + if (getType() == THROWS) return true; + + CharacterSequence type = getQualifiedName(); + int index = type.lastIndexOf('.'); + if (index != -1) { + CharSequence lastElement = type.substring(index + 1); + if (lastElement.toString().matches("^[A-Z]{1,}[a-z0-9]{1,}.*")) { + return true; + } + } + return false; + } + + public void addComponent(String component) { + sequence.add(component); + qualifiedName = null; + } + + public int getLength() { + return sequence.size(); + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/TypeReplacementStrategy.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/TypeReplacementStrategy.java new file mode 100644 index 0000000..cdbb497 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/TypeReplacementStrategy.java @@ -0,0 +1,33 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +/** +* Copyright 2008 hybrid labs +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** + * Interface defining the a type replacement strategy. + * + * @author Karsten Klein, hybrid labs + * + */ +public interface TypeReplacementStrategy { + + public String modulateType(String type); + + public String composeMatch(CharacterSequence type); + + public String composeReplace(CharacterSequence type); + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/XmlFormatter.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/XmlFormatter.java new file mode 100644 index 0000000..cd57ba0 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/XmlFormatter.java @@ -0,0 +1,46 @@ +package it.micegroup.voila2.cartridge.library.formatters; + +import java.io.ByteArrayOutputStream; +import java.io.StringReader; + +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +/** + * Pretty-prints xml, supplied as a string. + *

+ * eg. + * String formattedXml = new XmlFormatter().format("hello"); + * + */ +public class XmlFormatter { + + public XmlFormatter() { + } + + public String serialize(String input) { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + Source xmlInput = new StreamSource(new StringReader(input)); + TransformerFactory tfactory = TransformerFactory.newInstance(); + Transformer serializer; + try { + serializer = tfactory.newTransformer(); + // Setup indenting to "pretty print" + serializer.setOutputProperty(OutputKeys.INDENT, "yes"); + serializer.setOutputProperty( + "{http://xml.apache.org/xslt}indent-amount", "4"); + + serializer.transform(xmlInput, new StreamResult(out)); + } catch (TransformerException e) { + // this is fatal, just dump the stack and throw a runtime exception + e.printStackTrace(); + throw new RuntimeException(e); + } + return out.toString(); + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/default-convention.xml b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/default-convention.xml new file mode 100644 index 0000000..e526c7b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/formatters/default-convention.xml @@ -0,0 +1,347 @@ + + + + + + + + 15 + + + + + false + + + [A-Z][a-zA-Z0-9]+ + [A-Z][a-zA-Z0-9]+ + + + [a-z][\w]+ + [a-z][\w]+ + [a-zA-Z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-zA-Z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-zA-Z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-zA-Z][\w]+ + + [A-Z][a-zA-Z0-9]+ + \w+ + + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + + [a-z]+(?:\.[a-z]+)* + + [a-z][\w]+ + [a-z][\w]+ + + [a-z][\w]* + + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + 6 + + + + 30000 + 30000 + 30000 + 30000 + 30000 + 30000 + + true + + + 1 + + + + true + false + true + false + false + + + bak + 2 + + + + 0 + -1 + 1 + 0 +

1
+
0
+ 1 + 1 + 1 + 1 + + + 0 + -1 + 1 + + 1 + 1 + 1 + + 0 + 0 +
0
+
0
+
+ 1 + + + + false + false + + + true + true + true + true + + + true + false + false + false + false + + + false + false + + + + true + true + + +
+ + 0 + false +
+
+ + 0 + false +
+ + disabled + + + + 2 + org:2|gnu:2|sun:1|java:2|javax:2|com:2|*:0 + + disabled + true + + + true + + true + false + + true + + + false + + + 1 + 1 + 0 + 1 + 2 + 65 + -1 + 4 + -1 + 0 + 4 + -1 + 1 + + + false + false + + + + false + false + false + false + true + false + + + + false + false + true + false + false + static|field|initializer|constructor|method|interface|class + false + + + true + public|protected|private|abstract|static|final|synchronized|transient|volatile|native|strictfp + + + + + true + true + true + + + true + false + false + false + + false + + + false + false + true + + + + true + false + + true + true + true + true + true + true + + false + false + + + + + + 0 + false + false + false + + false + + false + false + + false + + + false + false + false + false + + + false + false + false + + + + false + true + 80 + + + + true + false + false + + false + false + false + + + + false + + false + + + + false + + + + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/h2.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/h2.mtl new file mode 100644 index 0000000..de723ae --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/h2.mtl @@ -0,0 +1,12 @@ +[comment encoding = UTF-8 /] +[module h2('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] + +[template public genH2(antFilterList: String, tokenValuePairs: String)] +[comment]H2[/comment] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/datasource', getWebResourceFolderName(), 'it.mice.voila2.acceleogenerator', null, null, null, antFilterList, false, tokenValuePairs, null, null)/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/AssociationUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/AssociationUtils.java new file mode 100644 index 0000000..f39752f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/AssociationUtils.java @@ -0,0 +1,1160 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.transaction.RunnableWithResult; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.transaction.util.TransactionUtil; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.Type; + +public class AssociationUtils { + + /** + * Return true if the association is a OneToOneRelation + * + * @author Jessica Pascarella + * + * @param association + * @return true if the association is a OneToOneRelation + */ + public static boolean isOneToOneRelation(Association association) { + for (Property p : association.getMemberEnds()) { + if (p.getUpper() != 1) + return false; + } + return true; + } + + /** + * Return true if the association is a ManyToOneRelation + * + * @author Antonio Di Raffaele + * + * @param association + * @return true if the association is a OneToOneRelation + */ + public static boolean isManyToOneRelation(Association association) { + for (Property p : association.getMemberEnds()) { + if (p.getUpper() == -1) + return true; + } + return false; + } + + public static enum RelationType { + OneToOne, ManyToOne + } + + /** + * Return true if the association is a OneToOneRelation or a ManyToOneRelation + * + * @author Antonio Di Raffaele + * + * @param association + * @param relationType + * @return true if the association is a OneToOneRelation or a ManyToOneRelation + */ + public static boolean isAssociationInRelationType(Association association, RelationType relationType) { + if (relationType == RelationType.OneToOne) { + return isOneToOneRelation(association); + } else if (relationType == RelationType.ManyToOne) { + return isManyToOneRelation(association); + } + return false; + } + + /** + * Return true if the association is a SelfRelation + * + * @author Jessica Pascarella + * + * @param association + * @return true if the association is a SelfRelation + */ + public static boolean isSelfRelation(Association association) { + Set memberEnds = new HashSet<>(association.getEndTypes()); + if (memberEnds.size() > 1) + return false; + return true; + } + + /** + * Return true if both members of the relation are optional + * + * @author Jessica Pascarella + * @param association + * @return true if both members of the relation are optional + */ + public static boolean isBothOptional(Association association) { + EList properties = null; + properties = association.getMemberEnds(); + if (properties.get(0).getLower() == 0 && properties.get(1).getLower() == 0) { + return true; + } + return false; + } + + /** + * Return the optional member, if present, of a OneToOneRelation + * + * @author Jessica Pascarella + * + * @param association + * @return the optional member, if present, of a OneToOneRelation + * + **/ + public static Class getOptionalMember(Association association) { + EList properties = null; + Class optionalMember = null; + properties = association.getMemberEnds(); + if (properties.get(0).getLower() == 0) { + optionalMember = (Class) properties.get(0).getType(); + } else if (properties.get(1).getLower() == 0) { + optionalMember = (Class) properties.get(1).getType(); + } + return optionalMember; + } + + /** + * Return the optional member, if present, of a SelfRelation + * + * @author Jessica Pascarella + * + * @param association + * @return the optional member, if present, of a SelfRelation + * + **/ + public static Property getSelfOptionalMember(Association association) { + EList properties = null; + Property optionalMember = null; + properties = association.getMemberEnds(); + if (properties.get(0).getLower() == 0) { + optionalMember = properties.get(0); + } else if (properties.get(1).getLower() == 0) { + optionalMember = properties.get(1); + } + return optionalMember; + } + + /** + * Return true if the association has an optional member + * + * @author Jessica Pascarella + * + * @param association + * @return true if the association has an optional member + */ + public static boolean hasOptionalMember(Association association) { + for (Property p : association.getMemberEnds()) { + if (p.getLower() == 0) { + return true; + } + } + return false; + } + + /** + * Return true if the input class is the first processed by the generator during + * the association valutation + * + * @author Jessica Pascarella + * + * @param classe + * @param association + * @param property + * @return true if the input class is the first processed by the generator + * during the association valutation + */ + public static boolean isFirstMapped(Class classe, Association association, Property property) { + if (!isSelfRelation(association) && classe == getFirstMapped(association)) + return true; + else if (isSelfRelation(association) && property != null && property.getName() != null + && property.getName().equals(getSelfFirstMapped(association))) + return true; + return false; + } + + /** + * Return the first processed class by the generator during the association + * valutation + * + * @author Jessica Pascarella + * + * @param classe + * @param association + * @param property + * @return + */ + public static boolean isOptionalMember(Class classe, Association association, Property property) { + if (!isSelfRelation(association) && getOptionalMember(association) == classe) + return true; + else if (isSelfRelation(association) && property != null && property.getName() != null + && property.getName().equals(getSelfOptionalMember(association).getName())) + return true; + return false; + } + + /** + * Return the first processed class by the generator during the association + * valutation + * + * @author Jessica Pascarella + * + * @param classe + * @return the first processed class by the generator during the association + * valutation + */ + public static Class getFirstMapped(Association association) { + EList properties = null; + properties = association.getMemberEnds(); + return (Class) properties.get(0).getType(); + } + + /** + * Return the first processed member for a self-relation + * + * @author Jessica Pascarella + * + * @param classe + * @return the first processed member for a self-relation + * + */ + public static String getSelfFirstMapped(Association association) { + EList properties = null; + properties = association.getMemberEnds(); + return properties.get(0).getName(); + } + + /** + * Return true if the input class has a parent class referring to the input + * association + * + * @author Jessica Pascarella + * + * @param classe + * @param association + * @return true if the input class has a parent class referring to the input + * association + */ + public static boolean hasParentOneToOne(Class classe, Association association, Property property) { + return (isOneToOneRelation(association)) && ((!hasOptionalMember(association) + && !isFirstMapped(classe, association, property)) + || (hasOptionalMember(association) + && ((!isBothOptional(association) && isOptionalMember(classe, association, property)) + || (isBothOptional(association) && !isFirstMapped(classe, association, property))))); + + } + + /** + * Return true if the input class has a child class referring to the input + * association + * + * @author Jessica Pascarella + * + * @param classe + * @param association + * @return true if the input class has a child class referring to the input + * association + */ + public static boolean hasChildOneToOne(Class classe, Association association, Property property) { + return (isOneToOneRelation(association)) && ((!hasOptionalMember(association) + && isFirstMapped(classe, association, property)) + || (hasOptionalMember(association) + && ((!isBothOptional(association) && !isOptionalMember(classe, association, property)) + || (isBothOptional(association) && isFirstMapped(classe, association, property))))); + } + + /** + * Return true if the input property is a child for the input ownerClass + * + * @author Vittorio Niespolo + * @author Jessica Pascarella , + * + * @param ownerClass + * @param a + * @param p + * @return true if the input property is a child for the input ownerClass + */ + public static boolean isClassChild(Class ownerClass, Association a, Property p) { +// if (hasParentOneToOne((Class) p.getType(), a, p) && (p.getType() != ownerClass || isSelfRelation(a))) +// return true; +// else +// if (isOneToOneRelation(a) && (p.getType() != ownerClass || isSelfRelation(a))) +// return true; +// else + if ((!isOneToOneRelation(a)) && (p.getType() != ownerClass || isSelfRelation(a)) && (p.getUpper() == -1)) { + return true; + } + return false; + } + + /** + * Return true if the input property is a parent for the input ownerClass + * + * @author Vittorio Niespolo + * @author Jessica Pascarella + * @param ownerClass + * @param association + * @param property + * @return + */ + public static boolean isClassParent(Class ownerClass, Association association, Property property) { + if (isOneToOneRelation(association) && (property.getType() != ownerClass || isSelfRelation(association))) + return true; + else if ((!isOneToOneRelation(association)) && (property.getType() != ownerClass || isSelfRelation(association)) + && upper01(property)) { + return true; + } + return false; + } + + private static boolean upper01(Property property) { + return property.getUpper() == 1 || property.getUpper() == 0; + } + + /** + * Return the set of parentEnd for the given class from all the associations + * + * @author Vittorio Niespolo + * @author Jessica Pascarella + * @param classe + **/ + public Collection getParents(Class classe) { + Collection parents = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (hasChildOneToOne((Class) p.getType(), a, p) && (!p.getType().getName().equals(classe.getName()))) + parents.add(p); + else if ((!isOneToOneRelation(a)) && !p.getType().getName().equals(classe.getName()) + && PropertyUtils.isZeroOneMultiplicity(p)) + parents.add(p); + } + + } + return parents; + } + + /** + * Return the set of childEnd for the given class from all associations + * + * @author Vittorio Niespolo + * @author Jessica Pascarella + * @param classe + **/ + public Collection getChilds(Class classe) { + Collection childs = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (hasParentOneToOne((Class) p.getType(), a, p) && !p.getType().getName().equals(classe.getName())) + childs.add(p); + else if (!isOneToOneRelation(a) && !p.getType().getName().equals(classe.getName()) + && (p.getUpper() == -1)) { + childs.add(p); + } + } + } + return childs; + } + + /** + * Return the set of child classes for the given class + * + * @author Vittorio Niespolo + * @author Jessica Pascarella + * @param classe + **/ + public static Collection getChildClasses(Class classe) { + Collection childs = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (isClassChild(classe, a, p)) { + if (belongToSameModel(p.getType(), classe)) { + childs.add((Class) p.getType()); + } + } + } + } + return childs; + } + + /** + * Return the set of child classes for the given class without duplicates + * + * @author Vittorio Niespolo + * @param classe + **/ + public static Collection getChildClassesNoDup(Class classe) { + Collection childClasses = new ArrayList<>(); + Collection childNames = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (isClassChild(classe, a, p)) { + if (belongToSameModel(p.getType(), classe)) { + if (!childNames.contains(p.getType().getName())) { + childClasses.add((Class) p.getType()); + childNames.add(p.getType().getName()); + } + } + } + } + } + return childClasses; + } + + /** + * Return the set of parent classes for the given class + * + * @author Vittorio Niespolo + * @author Jessica Pascarella + * @param classe + **/ + public static Collection getParentClasses(Class classe) { + Collection parents = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (isClassParent(classe, a, p)) + // Controllo se il padre appartiene al modello della classe in input + if (belongToSameModel(p.getType(), classe)) { + parents.add((Class) p.getType()); + } + } + } + return parents; + } + + /** + * Return the set of parent classes for the given class + * + * @author Vittorio Niespolo + * @author Jessica Pascarella + * @param classe + **/ + public static Collection getParentClassesNoDup(Class classe) { + Collection parents = new ArrayList<>(); + Collection parentNames = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (isClassParent(classe, a, p)) { + // Controllo se il padre appartiene al modello della classe in input + if (belongToSameModel(p.getType(), classe)) { + if (!parentNames.contains(p.getType().getName())) { + parents.add((Class) p.getType()); + parentNames.add(p.getType().getName()); + } + } + } + } + } + return parents; + } + + /** + * Return a set of ID property for the given class + * + * @author Vittorio Niespolo + * @author Jessica Pascarella + * @param classe + **/ + public Collection getParentIds(Class classe) { + Collection parents = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (belongToSameModel(p.getType(), classe)) { + if (isClassParent(classe, a, p)) { + p.getType(); + +// for(Property parentId : EntityUtils.getClassIDs((Class) p.getType())) { +// Property parentIdnew +// parentId.setName(PropertyUtils.getAttributeName(parentId, classe, a, true)); +// parents.add(parentId); +// } + + parents.addAll(EntityUtils.getClassIDs((Class) p.getType())); + } +// if (hasChildOneToOne((Class) p.getType(), a, p) +// && !p.getType().getName().equals(classe.getName())) { +// p.getType(); +// parents.addAll(EntityUtils.getClassIDs((Class) p.getType())); +// } else if ((!isOneToOneRelation(a)) && (!p.getType().getName().equals(classe.getName())) +// && PropertyUtils.isZeroOneMultiplicity(p)) { +// p.getType(); +// parents.addAll(EntityUtils.getClassIDs((Class) p.getType())); +// } + } + } + } + return parents; + } + + /** + * Return true if the class has at least one child + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public boolean hasChilds(Class classe) { + if (getChildClasses(classe).size() > 0) + return true; + return false; + } + + /** + * Return true if the class has at least one parent + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public boolean hasParents(Class classe) { + if (getParentAssociations(classe).size() > 0) + return true; + return false; + } + + /** + * Return the child Class of a a parentClass from the given association + * + * @author Vittorio Niespolo + * @param parentClass + * @param association + * @return + */ + public Class getChildClass(Class parentClass, Association association) { + for (Property p : association.getMemberEnds()) { + if (isClassChild(parentClass, association, p)) + return (Class) p.getType(); + } + return null; + } + + /** + * Return the parent Class of a childClass from the given association + * + * @author Vittorio Niespolo + * @param childClass + * @param association + * @return + */ + public static Class getParentClass(Class childClass, Association association) { + for (Property p : association.getMemberEnds()) { + if (isClassParent(childClass, association, p)) + return (Class) p.getType(); + } + return null; + } + + /** + * Return the childEnd of a parentClass from the given association + * + * @author Vittorio Niespolo + * @param parentClass + * @param association + * @return + */ + public static Property getChildEnd(Class parentClass, Association association) { + for (Property p : association.getMemberEnds()) { + if (isClassChild(parentClass, association, p)) + return p; + } + return null; + } + + /** + * Return the parentEnd of a childClass from the given association + * + * @author Vittorio Niespolo + * @param childClass + * @param association + * @return + */ + public static Property getParentEnd(Class childClass, Association association) { + for (Property p : association.getMemberEnds()) { + if (isClassParent(childClass, association, p)) + return p; + } + return null; + } + + /** + * Return a Set of Association that link to child classes + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static Collection getChildAssociations(Class classe) { + Collection childAssociations = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (isClassChild(classe, a, p)) { + if (belongToSameModel(p.getType(), classe)) { + childAssociations.add(a); + } + } + } + } + return childAssociations; + } + + /** + * Return a Set of Association that link to Parent classes + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static Collection getParentAssociations(Class classe) { + return getParentAssociationsExcluding(classe, null); + } + + /** + * Return a Set of Association that link to Parent classes + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static Collection getParentAssociationsExcluding(Class classe, Association daEscludere) { + Collection parentAssociations = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + if (daEscludere == null || a != daEscludere) { + for (Property p : a.getMemberEnds()) { + if (isClassParent(classe, a, p)) { + // Controllo se il padre appartiene al modello della classe in input + if (belongToSameModel(p.getType(), classe)) + parentAssociations.add(a); + } + } + } + } + return parentAssociations; + } + + public static Collection getParentAssociationsNoDup(Class classe) { + Collection parentAssociations = new ArrayList<>(); + Collection parentsName = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + + for (Property p : a.getMemberEnds()) { + if (isClassParent(classe, a, p)) { + // Controllo se il padre appartiene al modello della classe in input + if (belongToSameModel(p.getType(), classe)) + if (!parentsName.contains(p.getType().getName())) { + parentsName.add(p.getType().getName()); + parentAssociations.add(a); + } + } + } + + } + return parentAssociations; + } + + /** + * + * Return MappedName Stereotype's property + * + * @author Vittorio Niespolo + * @param association + * @param property + * @return + */ + public String getMappedName(Association association, Property property) { + Map nameMappingMap = new HashMap<>(); + String mappedName = ""; + + Stereotype stereotype = null; + + if (isOneToOneRelation(association)) { + stereotype = association.getAppliedStereotype(StereotypeName.ONE_TO_ONE_RELATION); + } + + else { + stereotype = association.getAppliedStereotype(StereotypeName.MANY_TO_ONE_RELATION); + } + + String nameMapping = (String) association.getValue(stereotype, StereotypePropertyName.NAME_MAPPING); + + if (nameMapping != null && !("").equals(nameMapping)) { + nameMapping = nameMapping.trim(); + String[] parts = nameMapping.split("="); + for (int i = 0; i < parts.length; i = i + 2) { + nameMappingMap.put(parts[i], parts[i + 1]); + } + mappedName = nameMappingMap.get(property.getName()); + } + if (mappedName == null || mappedName == "") { + mappedName = property.getName(); + } + return mappedName; + } + + @Deprecated // VN Questo metodo non funziona per selfRelation + public static Class getOtherEnd(Class ownerClass, Association association) { + for (Property end : association.getMemberEnds()) { + if (!end.getType().getName().equals(ownerClass.getName())) { + return (Class) end.getType(); + } + } + return null; + } + + /** + * Return true if the association has identifying stereotype and it is set to + * true + * + * @author Vittorio Niespolo , Jessica + * Pascarella + * + * @param association + * @return true if the association has identifying stereotype and it is set to + * true + */ + public static boolean isIdentifying(Association association) { + Stereotype stereotype = null; + if (isOneToOneRelation(association)) { + stereotype = association.getAppliedStereotype(StereotypeName.ONE_TO_ONE_RELATION); + if (association.hasValue(stereotype, StereotypePropertyName.IDENTIFYING) + && true == (Boolean) association.getValue(stereotype, StereotypePropertyName.IDENTIFYING)) + return true; + } else { + stereotype = association.getAppliedStereotype(StereotypeName.MANY_TO_ONE_RELATION); + if (association.hasValue(stereotype, StereotypePropertyName.IDENTIFYING) + && true == (Boolean) association.getValue(stereotype, StereotypePropertyName.IDENTIFYING)) + return true; + } + return false; + } + + /** + * Return the first child from the collection + * + * @author Vittorio Niespolo + * @param parentClass + * @return + */ + public static Class getFirstChild(Class parentClass) { + Collection childs = getChildClasses(parentClass); + if (childs.size() > 0) { + Iterator iterator = childs.iterator(); + if (iterator != null) + return iterator.next(); + } + return null; + } + + /** + * Return true if the parent is required (multiplicity > 0) + * + * @author Vittorio Niespolo + * + * @param association + * @return + */ + public static boolean isParentRequired(Association association) { + if (isIdentifying(association)) { + return true; + } + for (Property end : association.getMemberEnds()) { + if (end.getLower() >= 1 && end.getUpper() == 1) { + return true; + } + } + return false; + } + + /** + * Ritorna il metodo selezionato per la gestione dei figli per un'entità + * + * @author Vittorio Niespolo + * + * @param association + * @return + */ + public static String getChildManagement(Association association) { + return StereotypeUtils.getStereotypeValue(association, + StereotypeName.MANY_TO_ONE_RELATION, StereotypePropertyName.CHILD_MANAGEMENT).getName(); + } + + /** + * Ritorna true se la gestione dei figli nel frontEnd per un'entità è fatta + * tramite tab + * + * @author Vittorio Niespolo + * + * @param association + * @return + */ + public static boolean isTabbedChild(Association association) { + return getChildManagement(association).equals(ChildManagement.tabbed.toString()); + } + + public static String getParentAssName(Association association, Class ownerClass) { + Property parentEnd = getParentEnd(ownerClass, association); + if (parentEnd != null && parentEnd.getName() != null && !parentEnd.getName().equalsIgnoreCase("")) { + return parentEnd.getName(); + } + return ""; + } + + public static String getChildAssName(Association association, Class ownerClass) { + Property childEnd = getChildEnd(ownerClass, association); + if (childEnd != null && childEnd.getName() != null && !childEnd.getName().equalsIgnoreCase("")) { + return childEnd.getName(); + } + return ""; + } + + /** + * Controlla se l'associazione è readOnly evitando la possibilità di modificare + * le entità associate. + * + * @author Vittorio Niespolo + * + * @param association + * @return + */ + public static boolean isReadOnly(Association association) { + boolean readOnly = StereotypeUtils.getStereotypeValue(association, + StereotypeName.MANY_TO_ONE_RELATION, StereotypePropertyName.IS_READONLY); + return readOnly != false; + } + + public static Collection getParentClassesExcluding(Class classe, Class classeDaEscludere) { + Collection parents = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (classeDaEscludere == null || (Class) p.getType() != classeDaEscludere) { + if (isClassParent(classe, a, p)) + parents.add((Class) p.getType()); + } + } + } + return parents; + } + + /** + * Return a collection of parent association from IMPORTED models. Usually other + * MS. + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + @SuppressWarnings("unchecked") + public static Collection getParentAssFromImportedModels(Class classe) { + +// ConsoleUtils.consoleMessage(SeverityLevels.ERROR, "Parent from imported models"); + + Collection importedParents = new ArrayList<>(); + + TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(classe.getModel()); + + // -- + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (isClassParent(classe, a, p)) { + // Controllo se il padre appartiene al modello della classe in input + if (!belongToSameModel(p.getType(), classe)) + importedParents.add(a); + } + } + } + // -- + +// VN Per la lettura degli elementi importati nel modello è stato necessario +// introdurre questa transazione di lettura. USare il metodo doEdit per +// attivarne una di scrittura. +// try { +// importedParents = (Collection) domain.runExclusive(new RunnableWithResult.Impl() { +// +// public void run() { +// Collection parents = new ArrayList<>(); +// for (Association a : classe.getAssociations()) { +// for (Property p : a.getMemberEnds()) { +// if (isClassParent(classe, a, p)) { +// // Controllo se il padre appartiene al modello della classe in input +// if (!belongToSameModel(p.getType(), classe)) +// parents.add(a); +// } +// } +// } +// setResult(parents); +// } +// }); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } + return importedParents; + } + + /** + * Return a collection of parent association from IMPORTED models. Usually other + * MS. + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static Collection getChildAssFromImportedModels(Class classe) { + +// ConsoleUtils.consoleMessage(SeverityLevels.ERROR, "Childs from imported models"); + + Collection importedChilds = new ArrayList<>(); + + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (isClassChild(classe, a, p)) { + // Controllo se il padre appartiene al modello della classe in input + if (!belongToSameModel(p.getType(), classe)) + importedChilds.add(a); + } + } + } + + return importedChilds; + } + + /** + * Return true if input elements have same parent model. Comparison is made on + * model name + * + * @author Vittorio Niespolo + * + * @param a + * @param b + * @return + */ + public static boolean belongToSameModel(Element a, Element b) { + return a.getModel().getName().equals(b.getModel().getName()); + } + + /** + * Returns a collection of all parent for an entity. Actually they are the union + * of parents belonging to Class's microservice and importend parents. + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + @SuppressWarnings("unchecked") + public static Collection getParentAssFromAllModels(Class classe) { + Collection result = new ArrayList<>(); + TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(classe.getModel()); + try { + result = (Collection) domain.runExclusive(new RunnableWithResult.Impl() { + public void run() { + Collection innerResult = getParentAssociations(classe); +// TODO Sistemare gli imported parents innerResult.addAll(getParentAssFromImportedModels(classe)); + setResult(innerResult); + } + }); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return result; + + } + + /** + * Ritorna una stringa che indica se i parent sono selezionabili tramite + * dropdown o popup + * + * @author Vittorio Niespolo + * + * @param association + * @return + */ + public static String getParentSelection(Association association) { + EnumerationLiteral parentSelection = null; + if (isOneToOneRelation(association)) { + parentSelection = StereotypeUtils.getStereotypeValue(association, + StereotypeName.ONE_TO_ONE_RELATION, StereotypePropertyName.PARENT_SELECTION); + } else { + parentSelection = StereotypeUtils.getStereotypeValue(association, + StereotypeName.MANY_TO_ONE_RELATION, StereotypePropertyName.PARENT_SELECTION); + } + if (parentSelection != null) { + return parentSelection.getName(); + } + return ""; + } + + /** + * Ritorna true se la selezione del parent nell'interfaccia avviente tramite + * dropdown + * + * @author Vittorio Niespolo + * + * @param association + * @return + */ + public static boolean hasDropdownParentSelection(Association association) { + return ParentSelection.dropdown.toString().equals(getParentSelection(association)); + } + + /** + * Ritorna true se la selezione del parent nell'interfaccia avviene tramite + * popup + * + * @author Vittorio Niespolo + * + * @param association + * @return + */ + public static boolean hasPopupParentSelection(Association association) { + return ParentSelection.popup.toString().equals(getParentSelection(association)); + } + + /** + * Check if has at least one dropdown selection association. + * + * @author Federico Gambardella + * @param classe + * @return + */ + public static boolean hasAtLeastOneDrpodownSelection(Class classe) { + for (Association association : getParentAssFromAllModels(classe)) { + if (hasDropdownParentSelection(association)) { + + return true; + } + } + return false; + } + + public static boolean hasNavigableParents(Class classe) { + Collection result = getParentAssFromAllModels(classe).stream() + .filter(a -> getParentEnd(classe, a).isNavigable()).collect(Collectors.toCollection(ArrayList::new)); + if (result == null || result.isEmpty()) { + return false; + } + return true; + } + + /** + * Con questo metodo si ottiene il nome della colonna associato al nome della + * proprietà per una specifica associazione + * + * @author Vittorio Niespolo + * + * @param association + * @param property + * @return mapped name for property on the association + */ + public String getPhysicalMappedName(Association association, Property property) { + Map nameMappingMap = new HashMap<>(); + String mappedName = ""; + + Stereotype stereotype = null; + + if (isOneToOneRelation(association)) { + stereotype = association.getAppliedStereotype(StereotypeName.ONE_TO_ONE_RELATION); + } + + else { + stereotype = association.getAppliedStereotype(StereotypeName.MANY_TO_ONE_RELATION); + } + + String nameMapping = (String) association.getValue(stereotype, StereotypePropertyName.PHYSICAL_NAME_MAPPING); + + if (nameMapping != null && !("").equals(nameMapping)) { + nameMapping = nameMapping.trim(); + String[] parts = nameMapping.split("="); + for (int i = 0; i < parts.length; i = i + 2) { + nameMappingMap.put(parts[i], parts[i + 1]); + } + mappedName = nameMappingMap.get(property.getName()); + } + // Associazione con nome + if ((mappedName == null || mappedName == "") && !AssociationUtils.isSelfRelation(association)) { + for (Property p : association.getMemberEnds()) { + if (upper01(p) && p.getName() != null) { + mappedName = StringUtils.camelToUnderscore(property.getName()) + "_" + + StringUtils.camelToUnderscore(p.getName()); + } + } + } + if ((mappedName == null || mappedName == "") && AssociationUtils.isSelfRelation(association)) { + mappedName = StringUtils.camelToUnderscore(AssociationUtils + .getParentEnd(((Class) association.getMemberEnds().iterator().next().getType()), association) + .getName()); + } else if (mappedName == null || mappedName == "") { + mappedName = StringUtils.camelToUnderscore(property.getName()); + } + return mappedName; + } + + /** + * Ritorna true se esiste almeno una parentAssociation che non è identifying + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static boolean hasNoIdentifyingParent(Class classe) { + for (Association parentAss : AssociationUtils.getParentAssociations(classe)) { + if (!isIdentifying(parentAss)) { + return true; + } + } + return false; + } + + /** + * Ritorna una lista dei padri con id composito per la classe in input + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public Collection getParentAssociationHavingCK(Class classe) { + Collection parents = new ArrayList<>(); + for (Association a : getParentAssociations(classe)) { + Class parent = getParentClass(classe, a); + if (isIdentifying(a) && EntityUtils.hasCompositeKey(parent)) { + parents.add(a); + } + } + return parents; + } + + public static Collection getChildAssociationsNoDup(Class classe) { + Collection childAssociations = new ArrayList<>(); + Collection childNames = new ArrayList<>(); + for (Association a : classe.getAssociations()) { + for (Property p : a.getMemberEnds()) { + if (isClassChild(classe, a, p)) { + if (belongToSameModel(p.getType(), classe)) { + if (!childNames.contains(p.getType().getName())) { + childAssociations.add(a); + childNames.add(p.getType().getName()); + } + } + } + } + } + return childAssociations; + } + +} \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/AuditableAttributes.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/AuditableAttributes.java new file mode 100644 index 0000000..2b710cc --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/AuditableAttributes.java @@ -0,0 +1,5 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public enum AuditableAttributes { + createdBy, lastModifiedBy, createdDate, lastModifiedDate +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ChildManagement.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ChildManagement.java new file mode 100644 index 0000000..8fd5d37 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ChildManagement.java @@ -0,0 +1,6 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public enum ChildManagement { + tabbed, + none +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ConsoleMsgJavaUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ConsoleMsgJavaUtils.java new file mode 100644 index 0000000..5f523ac --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ConsoleMsgJavaUtils.java @@ -0,0 +1,22 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +/** + * + * @author Jessica Pascarella + * @author Vittorio Niespolo + * + */ +public class ConsoleMsgJavaUtils { + + public static final String GENERIC_ENTITY_EXCEPTION_MSG= "Exception occurs on entity "; + + public static final String SEQ_NAME_EXCEPTION_MSG = "SequenceNameException: If an entity has a SequenceName it must have an ID of type Code"; + + public static final String DUPLICATED_ENTITY_NAME_EXCEPTION_MSG = "EntityNamesException: Duplicated Name for the entity"; + + public static final String MISSING_ENTITY_ID_EXCEPTION_MSG = "EntityIdException: Missing Id attribute"; + + public static final String MISSING_TYPE_EXCEPTION_MSG = "TypeException: Missing type for an attribute"; + + public static final String SELF_RELATION_NAMES_EXCEPTION_MSG = "AssociationNamesException: Missing association members names for Self-Relation"; +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ConsoleUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ConsoleUtils.java new file mode 100644 index 0000000..e60d567 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ConsoleUtils.java @@ -0,0 +1,142 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.logging.ConsoleHandler; +import java.util.logging.Formatter; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + +import org.apache.log4j.Appender; +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.LogManager; +import org.apache.log4j.WriterAppender; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.console.ConsolePlugin; +import org.eclipse.ui.console.IConsole; +import org.eclipse.ui.console.IConsoleManager; +import org.eclipse.ui.console.MessageConsole; +import org.eclipse.ui.console.MessageConsoleStream; + +public class ConsoleUtils { + + private static final Logger LOGGER = Logger.getLogger(ConsoleUtils.class.getName()); + public static final String CONSOLE_NAME = "VoilaPlugin"; + public static MessageConsoleStream out = null; + public static LogFormatter logFormatter = new LogFormatter(); + + static { + LOGGER.setUseParentHandlers(false); + + ConsoleHandler handler = new ConsoleHandler(); + Formatter formatter = new LogFormatter(); + + handler.setFormatter(formatter); + + LOGGER.addHandler(handler); + + } + + public static MessageConsoleStream setupConsole(String name) throws PartInitException { + + if (name == null) { + name = CONSOLE_NAME; + } + ConsolePlugin plugin = ConsolePlugin.getDefault(); + IConsoleManager conMan = plugin.getConsoleManager(); + IConsole[] existing = conMan.getConsoles(); + for (int i = 0; i < existing.length; i++) { + if (name.equals(existing[i].getName())) { + MessageConsoleStream out = prepareConsole((MessageConsole) existing[i]); + return out; + } + } + // no console found, so create a new one + MessageConsole myConsole = new MessageConsole(name, null); + conMan.addConsoles(new IConsole[] { myConsole }); + + MessageConsoleStream out = prepareConsole(myConsole); + return out; + } + + public static MessageConsoleStream prepareConsole(MessageConsole console) { + console.activate(); + MessageConsoleStream out = console.newMessageStream(); + out.setActivateOnWrite(true); + + Appender a1Appender = LogManager.getRootLogger().getAppender("VoilaConsole"); + + // Layout layout = new PatternLayout(LOG4J_PATTERN); + try { + Appender appender = new WriterAppender(a1Appender.getLayout(), out); + appender.setName("Current" + a1Appender.getName()); + + LogManager.getRootLogger().addAppender(appender); + + // LogManager.getRootLogger().removeAppender(a1Appender); + // LogManager.getRootLogger().setLevel(a1Level); + ((ConsoleAppender) a1Appender).setWriter(new java.io.PrintWriter(System.err)); + } catch (Exception e) { + e.printStackTrace();// FIXME + } +// Enumeration loggers = LogManager.getCurrentLoggers(); +// while (loggers.hasMoreElements()) { +// Logger logger = (Logger) loggers.nextElement(); +// out.println(logger.getName()); +// } + + return out; + } + + /** + * This method must be used only from acceleo's template to log in console, + * otherwise use Logger for the specific Java's class + * + * @author Vittorio Niespolo + * @param severity + * @param message + */ + public void consoleMessage(String message) { + consoleMessage(Level.INFO.getName(), message); + } + + /** + * This method must be used only from acceleo's template to log in console, + * otherwise use Logger for the specific Java's class + * + * @author Vittorio Niespolo + * @param severity + * @param message + */ + public static void consoleMessage(String severity, String message) { + try { + out = setupConsole(null); + } catch (PartInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + LogRecord logRecord = null; + if (severity.equals("FATAL")) { + logRecord = new LogRecord(Level.SEVERE, message); + } else if (severity.equals("INFO")) { + logRecord = new LogRecord(Level.INFO, message); + } else if (severity.equals("ERROR")) { + logRecord = new LogRecord(Level.SEVERE, message); + } else if (severity.equals("WARNING")) { + logRecord = new LogRecord(Level.WARNING, message); + } else if (severity.equals("DEBUG")) { + logRecord = new LogRecord(Level.FINER, message); + } else { + logRecord = new LogRecord(Level.INFO, message); + } + + out.println(logFormatter.format(logRecord)); + + logRecord.setMessage(logRecord.getMessage().concat("\n")); + + LOGGER.log(logRecord); +// IN CASO VENGA USATO COME PLUGIN +// Activator plugin = Activator.getDefault(); +// plugin.getLog().log(new Status(Status.WARNING, plugin.getBundle().getSymbolicName(), Status.OK, msg, null)); + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/Constants.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/Constants.java new file mode 100644 index 0000000..6c53ead --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/Constants.java @@ -0,0 +1,5 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public class Constants { + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/CopyFolderUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/CopyFolderUtils.java new file mode 100644 index 0000000..79fd591 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/CopyFolderUtils.java @@ -0,0 +1,259 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.tools.ant.DirectoryScanner; +import org.apache.tools.ant.types.FilterSet; +import org.apache.tools.ant.types.FilterSetCollection; +import org.apache.tools.ant.types.selectors.SelectorUtils; +import org.apache.tools.ant.util.FileUtils; +import org.eclipse.core.runtime.Platform; +import org.osgi.framework.Bundle; + +public class CopyFolderUtils { + + private static final String REFERENCE_FILE = "reference:file:/"; + + /** + * static logger. + */ + private static Logger logger = Logger.getLogger(CopyFolderUtils.class); + + private static final String COMPONENT_NAME = "Copy Folder Workflow Component"; + + public static Boolean copyFolder(String inputFolder, String outputFolder, String bundleName, String outputFolderSuffix, String includeFilter, String excludeFilter, String antProcessFilter, Boolean excludeDefaultExt, String tokenValuePairs, String renameList, String extensionRenameList) { + try { + if (excludeDefaultExt == null) { + excludeDefaultExt = true; + } + String inputFolderFull = getInputFolder(inputFolder, bundleName); + Map renameListMap = buildRenameList(renameList); + Map extensionRenameListMap = buildRenameList(extensionRenameList); + List tokenValuePairsMap = buildTokenValuePairs(tokenValuePairs); + + if (logger.isInfoEnabled()) { + logger.info(COMPONENT_NAME + " ready to copy from: " + inputFolderFull + " to: " + outputFolder); + } + File outputFolderFile = new File(GeneralUtils.getOutputDir() + File.separator + outputFolder + File.separator); + outputFolderFile.mkdirs(); + + String[] antProcessFilterArray = prepareAntProcessFilerArray(antProcessFilter); + + DirectoryScanner ds = buildDirectoryScanner(inputFolderFull, includeFilter, excludeFilter, excludeDefaultExt); + ds.scan(); + + FilterSetCollection fsc = buildFilterSet(tokenValuePairsMap); + + String[] files = ds.getIncludedFiles(); + FileUtils fileUtils = FileUtils.getFileUtils(); + + if (logger.isDebugEnabled()) { + logger.debug("Template files to be processed:"); + } + for (int i = 0; i < files.length; i++) { + String inputCompleteFileName = inputFolderFull + File.separator + files[i]; + if (logger.isDebugEnabled()) { + logger.debug("Processing file:" + inputCompleteFileName); + } + String outputFileName = determineOutputFileName(files[i], renameListMap, extensionRenameListMap, outputFolderSuffix, tokenValuePairsMap); + String outputCompleteFileName = outputFolderFile.getAbsolutePath() + File.separator + outputFileName; + + boolean needsAntProcessing = false; + + if (isToBeFiltered(files[i], antProcessFilterArray)) { + needsAntProcessing = true; + } + //check if we need velocity processing... + if (needsAntProcessing) { + //velocity filtering was performed, perform ant velocity by taking pre-processed input file by velocity + fileUtils.copyFile(inputCompleteFileName, outputCompleteFileName, fsc, true); + if (logger.isDebugEnabled()) { + logger.debug("FILTERED WITH ANT:" + files[i]); + } + } else { + fileUtils.copyFile(inputCompleteFileName, outputCompleteFileName, null, true); + if (logger.isDebugEnabled()) { + logger.debug("NO FILTERED WITH ANT:" + files[i]); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + + + public static String getInputFolder(String inputFolder, String bundleName) { + if (bundleName == null) { + return inputFolder; + } + Bundle[] stackBundle = Platform.getBundles(bundleName, null); + String bundleFolder; + try { + //String separator = FileSystems.getDefault().getSeparator(); + bundleFolder = org.eclipse.core.runtime.FileLocator.getBundleFile(stackBundle[0]).getAbsolutePath() + "\\"; + } catch (IOException e) { + bundleFolder = stackBundle[0].getLocation(); + if (bundleFolder.startsWith(REFERENCE_FILE)) { + bundleFolder = bundleFolder.substring(REFERENCE_FILE.length()); + } + } + + return bundleFolder + inputFolder; + } + + private static List buildTokenValuePairs(String tokenValuePairs) { + List result = new ArrayList(); + if (tokenValuePairs != null) { + String[] parts = tokenValuePairs.split(","); + for (String part : parts) { + String[] subParts = part.split("="); + if(subParts.length < 2) { + ConsoleUtils.consoleMessage(SeverityLevels.ERROR, "Per la proprietà " + subParts[0] + " manca il corrispettivo valore"); + } + + String key = subParts[0]; + String value = subParts[1]; + ValuePair vp = new ValuePair(); + vp.name = key; + vp.value = value; + result.add(vp); + } + } + return result; + } + + + private static Map buildRenameList(String renameList) { + Map result = new HashMap(); + if (renameList != null) { + String[] parts = renameList.split(","); + for (String part : parts) { + String[] subParts = part.split("="); + String key = subParts[0]; + String value = subParts[1]; + result.put(key, value); + } + } + return result; + } + + /** + * Determine the output file name by processing renameList and extensionRenameList rules. + * @param inputFile input file name. + * @param renameListMap + * @param extensionRenameListMap + * @param outputFolderSuffix + * @param tokenValuePairsMap + * @return the output file name processed. + */ + private static String determineOutputFileName(String inputFile, Map renameListMap, Map extensionRenameListMap, String outputFolderSuffix, List tokenValuePairsMap) { + String outputFileName = inputFile; + if (renameListMap.get(inputFile) != null) { + outputFileName = (String)renameListMap.get(inputFile); + if (logger.isDebugEnabled()) { + logger.debug("Renamed file " + inputFile + " to " + outputFileName); + } + } + //Check for extension renaming... + int extPos = outputFileName.lastIndexOf("."); + if (extPos > -1) { + String extension = outputFileName.substring(extPos); + if (extensionRenameListMap.get(extension) != null) { + outputFileName = outputFileName.substring(0, extPos) + extensionRenameListMap.get(extension); + if (logger.isDebugEnabled()) { + logger.debug("Renamed extension " + extension + " to " + extensionRenameListMap.get(extension) + " for filename:" + outputFileName); + } + } + } + if (outputFolderSuffix != null) { + int pos = outputFileName.lastIndexOf(File.separator); + outputFileName = outputFileName.substring(0, pos) + File.separator + outputFolderSuffix + File.separator + outputFileName.substring(pos); + } + for (Iterator iterator = tokenValuePairsMap.iterator(); iterator.hasNext();) { + ValuePair valuePair = (ValuePair) iterator.next(); + outputFileName = outputFileName.replaceAll("@" + valuePair.name + "@", valuePair.value); + } + return outputFileName; + } + + private static String[] prepareAntProcessFilerArray(String antProcessFilter) { + String[] antProcessFilterArray = null; + if (antProcessFilter != null && antProcessFilter.trim().length() > 0) { + antProcessFilterArray = antProcessFilter.split(","); + } + return antProcessFilterArray; + } + + private static boolean isToBeFiltered(String file, String[] processFilterArray) { + String normalizedFile = file.replace('\\', '/'); + + if (processFilterArray != null) { + for (int i = 0; i 0) { + ds.setIncludes(includeFilter.split(",")); + } + if (excludeFilter != null && excludeFilter.trim().length() > 0) { + ds.setExcludes(excludeFilter.split(",")); + } + if (excludeDefaultExt) { + ds.addDefaultExcludes(); + } + return ds; + } + + private static FilterSetCollection buildFilterSet(List tokenValuePairsMap) { + FilterSetCollection fsc = new FilterSetCollection(); + FilterSet fs = new FilterSet(); + Iterator i = tokenValuePairsMap.iterator(); + while (i.hasNext()) { + CopyFolderUtils.ValuePair tokenValuePair = (CopyFolderUtils.ValuePair) i + .next(); + fs.addFilter(tokenValuePair.getName().toUpperCase(), tokenValuePair.getValue()); + } + fsc.addFilterSet(fs); + return fsc; + } + + public static class ValuePair { + private String name; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntityCategory.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntityCategory.java new file mode 100644 index 0000000..e7e2ff8 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntityCategory.java @@ -0,0 +1,8 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public enum EntityCategory { + business, + mail, + security, + attachment +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntitySpecificFeature.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntitySpecificFeature.java new file mode 100644 index 0000000..c9c224a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntitySpecificFeature.java @@ -0,0 +1,9 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public enum EntitySpecificFeature { + Attachment, + AdvancedCrud, + History, + RtfTemplate, + BasicPdfCsvExport; +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntityUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntityUtils.java new file mode 100644 index 0000000..b61acfb --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/EntityUtils.java @@ -0,0 +1,1013 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.stream.Collectors; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.Package; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.UMLPackage; + +import it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils.RelationType; + +public class EntityUtils { + + public static boolean hasAutogeneratedIdBySeq(Class classe) { + Stereotype stereotype = classe.getAppliedStereotype(StereotypeName.ENTITY); + if (stereotype != null) { + String sequence = (String) classe.getValue(stereotype, StereotypePropertyName.SEQUENCE_NAME); + + if (classe.hasValue(stereotype, StereotypePropertyName.SEQUENCE_NAME) && sequence != null + && !("").equals(sequence)) { + return true; + } + } + return false; + } + + public static String getSequenceName(Class classe) { + String sequence = ""; + Stereotype stereotype = classe.getAppliedStereotype(StereotypeName.ENTITY); + if (stereotype != null) { + sequence = (String) classe.getValue(stereotype, StereotypePropertyName.SEQUENCE_NAME); + } + return sequence; + } + + /** + * Return true if the class has applied the Entity Stereotype + * + * @author Jessica Pascarella + * @param classe + * @return true if the class has applied the Entity Stereotype + */ + public static boolean isEntityStereotype(Class classe) { + Stereotype stereotype = classe.getAppliedStereotype(StereotypeName.ENTITY); + if (stereotype != null) + return true; + return false; + } + + /** + * Check if a class has at least 1 property annotated as ID + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static boolean hasInnerCompositeKey(Class classe) { + int numOfId = getClassIDsIncludingFK(classe).size(); + if (numOfId == 1) { + return false; + } + return true; + } + + /** + * Return a set containing all properties annotated as ID + * + * @author Vittorio Niespolo + * @param classe + * @return a set of ID belonging to the class + */ + public static Collection getClassIDs(Class classe) { + Collection ids = new ArrayList<>(); + if (classe != null && classe.getOwnedAttributes() != null) { + Iterator attributes = getAttributeList(classe).iterator(); + while (attributes.hasNext()) { + Property p = attributes.next(); + if (p.isID()) { + ids.add(p); + } + } + } + return ids; + } + + /** + * Return a set of id property obtained from class and its parent relations + * + * @author Vittorio Niespolo + * @param classe + * @return a set of id property obtained from class and its parent relations + */ + public static Collection getClassIDsIncludingFK(Class classe) { + // ID Interni + Collection ids = getClassIDs(classe); + // ID Esterni + ids.addAll(getIdAttributesFromForeignKeys(classe)); + return ids; + } + + /** + * Check if a property is in the compositeKey of the class + * + * @author Vittorio Niespolo + * @param classe + * @param property + * @return true if contained in the class compositeKey + */ + public static boolean isInCompositeKey(Class classe, Property property) { + if (hasCompositeKey(classe)) { + if (getClassIDsIncludingFK(classe).contains(property)) { + return true; + } + } + return false; + } + + /** + * Return a collection of Property containing ID derived from parents foreign + * key + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static Collection getIdAttributesFromForeignKeys(Class classe) { + Collection idsFromForeignKeys = new ArrayList<>(); + Iterator associations = AssociationUtils.getParentAssociations(classe).iterator(); + + while (associations.hasNext()) { + Association a = associations.next(); + if (AssociationUtils.isIdentifying(a)) { + idsFromForeignKeys.addAll(getClassIDsIncludingFK(AssociationUtils.getOtherEnd(classe, a))); + } + } + return idsFromForeignKeys; + } + + /** + * Return a Set of id properties from class and its associations + * + * @author Vittorio Niespolo , Jessica + * Pascarella + * @param classe + * @return Set of id properties + */ + public static Collection getCompositeKeyAttributes(Class classe) { + Set ckAttributes = new HashSet<>(); + + // Attributi id interni + ckAttributes.addAll(getClassIDs(classe)); + + // Attributi id da FK + Iterator associations = classe.getAssociations().iterator(); + while (associations.hasNext()) { + Association a = associations.next(); + if (AssociationUtils.isIdentifying(a)) { + for (Property p : a.getMemberEnds()) { + if (GeneralUtils.isParentZeroOneMultiplicity(a, p)) + ckAttributes.addAll(getClassIDs((Class) p.getType())); + } + } + } + return ckAttributes; + } + + /** + * Return a Set of id properties from class and its associations + * + * @author Vittorio Niespolo , Jessica + * Pascarella + * @param classe + * @return Set of id properties + */ + + public Collection getCompositeKeyAttributesWithMappedNames(Class classe, Boolean includeInternalCK) { + Collection ckAttributes = new ArrayList<>(); + Collection ownerClassIDs = new ArrayList<>(); + AssociationUtils assUtils = new AssociationUtils(); + + // Attributi id interni + ckAttributes.addAll(getClassIDs(classe)); + + // Attributi id da FK + for (Association a : AssociationUtils.getParentAssociations(classe)) { + if (!hasCompositeKey(AssociationUtils.getParentClass(classe, a)) && !includeInternalCK.booleanValue() + || includeInternalCK.booleanValue()) { + if (AssociationUtils.isIdentifying(a)) { + for (Property p : a.getMemberEnds()) { + if (GeneralUtils.isClassParent(classe, a, p)) { + ownerClassIDs = getClassIDsIncludingFK((Class) p.getType()); + for (Property id : ownerClassIDs) { + id.eSetDeliver(false); + id.setName(assUtils.getMappedName(a, id)); + } + ckAttributes.addAll(ownerClassIDs); + } + } + } + } + } + return ckAttributes; + } + + /** + * Return true if a Class has a CompositeKey + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static boolean hasCompositeKey(Class classe) { + // VN L'id di una classe con generalizzazione è nella general + if (hasGeneralClass(classe)) { + return false; + } + if (classe != null && (hasExternalPK(classe) || EntityUtils.hasInnerCompositeKey(classe))) + return true; + return false; + } + + /** + * Return true if a Class has at least one father with a CompositeKey + * + * @author Luca Barone + * @param classe + * @return + */ + public boolean hasFatherWithCompositeKey(Class classe) { + if (classe != null) { + for (Class fClass : AssociationUtils.getParentClasses(classe)) { + if (fClass != null && hasExternalPK(fClass) || hasInnerCompositeKey(fClass)) + return true; + } + } + return false; + } + + /** + * Return true if an entity has id attribute flagged as autogenerated. + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static boolean hasAutogeneratedId(Class classe) { + Stereotype stereotype = classe.getAppliedStereotype(StereotypeName.ENTITY); + if (stereotype != null) { + boolean autoId = (boolean) classe.getValue(stereotype, StereotypePropertyName.AUTOID); + + if (autoId) { + return true; + } + } + return false; + } + + /** + * Return the definition's stereotype value for the input entity + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public String getEntityTooltip(Class classe) { + if (hasHelp(classe)) { + return getEntityHelp(classe); + } + if (hasDefinition(classe)) { + return getEntityDefinition(classe); + } + if (org.apache.commons.lang3.StringUtils.isNotEmpty(getEntityLabel(classe))) { + return getEntityLabel(classe); + } + if (!classe.getLabel().equals(classe.getName())) { + return classe.getLabel(); + } + return StringUtils.splitCamel(classe.getName()); + } + + /** + * Return the definition's stereotype value for the input entity + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static String getEntityDefinition(Class classe) { + return StereotypeUtils.getStereotypeValue(classe, StereotypeName.ENTITY, + StereotypePropertyName.DEFINITION); + } + + /** + * Return the definition's stereotype value for the input entity + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public String getEntityLabel(Class classe) { + if (org.apache.commons.lang3.StringUtils.isNotEmpty(StereotypeUtils.getStereotypeValue(classe, + StereotypeName.ENTITY, StereotypePropertyName.LABEL))) { + return StereotypeUtils.getStereotypeValue(classe, StereotypeName.ENTITY, + StereotypePropertyName.LABEL); + } + return StringUtils.splitCamel(classe.getLabel()); + } + + /** + * Return true if definition's stereotype is not empty + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public boolean hasDefinition(Class classe) { + if (getEntityDefinition(classe) == null || getEntityDefinition(classe) == "") { + return false; + } + return true; + } + + /** + * Return the definition's stereotype value for the input entity + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static String getEntityHelp(Class classe) { + return StereotypeUtils.getStereotypeValue(classe, StereotypeName.ENTITY, + StereotypePropertyName.HELP); + } + + /** + * Return true if definition's stereotype is not empty + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public boolean hasHelp(Class classe) { + if (getEntityHelp(classe) == null || getEntityHelp(classe) == "") { + return false; + } + return true; + } + + /** + * Check if a property is contained in compositeKey or is an ID + * + * @author Vittorio Niespolo + * @param property + * @param classe + * @return + */ + public static boolean isInID(Property property, Class classe) { + if (getClassIDsIncludingFK(classe).contains(property)) { + return true; + } + return false; + } + + /** + * Check if a property is contained in compositeKey or is an ID + * + * @author Vittorio Niespolo + * @param property + * @param classe + * @return + */ + public static boolean isInInnerID(Class classe, Property property) { + if (getClassIDs(classe).contains(property)) { + return true; + } + return false; + } + + public static boolean isAuditable(Class classe) { + Stereotype stereotype = classe.getAppliedStereotype(StereotypeName.ENTITY); + if (stereotype != null) { + return (boolean) classe.getValue(stereotype, StereotypePropertyName.AUDITABLE) == true; + } + return false; + } + + /** + * Return a list containing internal attributes and externals attributes from + * parent entity + * + * @author Vittorio Niespolo + * @param aClass + * @return + */ + public static Collection getCompleteAttributeList(Class aClass) { + Collection attributeList = new ArrayList<>(); + // ID ESTERNI + attributeList.addAll(EntityUtils.getIdAttributesFromForeignKeys(aClass)); + // ATTR. INTERNI + attributeList.addAll(getAttributeList(aClass)); + return attributeList; + } + + /** + * Return a list containing internal attributes and externals attributes from + * parent entity + * + * @author Vittorio Niespolo + * @param aClass + * @return + */ + public static Collection getAttributeList(Class aClass) { + Collection attributeList = new ArrayList<>(); + // VN Attenzione ogni classe può estendere solo una classe. + if (hasGeneralClass(aClass)) { + // ATTR. DA GENERAL + Collection attributesFromGeneral = ((Class) aClass.getGenerals().toArray()[0]) + .getOwnedAttributes(); + attributeList.addAll(attributesFromGeneral); + } + + // ATTR. INTERNI + attributeList.addAll(aClass.getOwnedAttributes()); + + return attributeList; + } + + /** + * Ritorna la categoria di appartenenza di una entità + * + * @author Vittorio Niespolo + * @param aClass + * @return + */ + public static String getCategory(Class aClass) { + return StereotypeUtils.getStereotypeValue(aClass, StereotypeName.ENTITY, + StereotypePropertyName.CATEGORY).getName(); + } + + /** + * @author Vittorio Niespolo + * @param aClass + * @param category + * @return + */ + public static boolean isInCategory(Class aClass, EntityCategory category) { + if (category.toString().equals(getCategory(aClass))) + return true; + return false; + } + + public static boolean isBusinessCategory(Class aClass) { + return isInCategory(aClass, EntityCategory.business); + } + + public static boolean isAttachmentCategory(Class aClass) { + return isInCategory(aClass, EntityCategory.attachment); + } + + public static boolean isMailCategory(Class aClass) { + return isInCategory(aClass, EntityCategory.mail); + } + + public static boolean isSecurityCategory(Class aClass) { + return isInCategory(aClass, EntityCategory.security); + } + + public static boolean hasRelationTypeRelation(Class aClass, RelationType relationType) { + + if (aClass != null && aClass.getAssociations() != null) { + Iterator associations = aClass.getAssociations().iterator(); + while (associations.hasNext()) { + Association a = associations.next(); + if (AssociationUtils.isAssociationInRelationType(a, relationType)) { + return true; + } + } + } + return false; + } + + public static boolean hasOneToOneRelation(Class aClass) { + return hasRelationTypeRelation(aClass, RelationType.OneToOne); + } + + public static boolean hasManyToOneRelation(Class aClass) { + return hasRelationTypeRelation(aClass, RelationType.ManyToOne); + } + + /** + * Return the first string attribute from class attributes. If noone of + * attribute is a string then first one is taken. + * + * @author Vittorio Niespolo + * @param aClass + * @return + */ + public static String getFirstStringAttribute(Class aClass) { + for (Property attribute : getFiltrableAttributes(aClass)) { + if (PropertyUtils.isString(attribute)) { + return StringUtils.toUpperFirst(attribute.getName()); + } + } + return "ObjectKey"; + } + + public static boolean isInRole(Class classe, String entityRole) { + Stereotype stereotype = null; + String role; + + stereotype = classe.getAppliedStereotype(StereotypeName.ENTITY); + if (stereotype != null) { + role = (String) classe.getValue(stereotype, StereotypePropertyName.ROLE); + if (role != null) { + return (role.toLowerCase().equals(entityRole.toLowerCase())); + } + } + return false; + } + + /** + * @author Vittorio Niespolo , Jessica + * Pascarella + * @param classe + * @return + */ + public static boolean hasExternalPK(Class classe) { + if (classe != null && classe.getAssociations() != null) { + Iterator associations = classe.getAssociations().iterator(); + while (associations.hasNext()) { + Association a = associations.next(); + if (AssociationUtils.isIdentifying(a)) { + for (Property p : a.getMemberEnds()) { + if (((Class) p.getType() == classe) + && (PropertyUtils.isNMultiplicity(p) || GeneralUtils.isChildZeroOneMultiplicity(a, p))) + return true; + } + } + } + } + return false; + } + + /** + * Return true if entity has at least one date attribute + * + * @author Federico Gambardella + * @param classe + * @return + */ + public static boolean hasDateProperty(Class classe) { + for (Property property : classe.allAttributes()) { + if (PropertyUtils.isDate(property)) + return true; + } + return false; + } + + /** + * Return true if entity has at least one attribute + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public boolean hasAttributes(Class classe) { + if (classe.getAllAttributes().size() > 0) { + return true; + } + return false; + } + + /** + * Return true if entity has at least one attribute + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public boolean hasAttributesWithoutIDs(Class classe) { + Collection ids = getClassIDs(classe); + Collection attributes = getAttributeList(classe); + attributes.removeAll(ids); + + if (attributes.size() > 0) { + return true; + } + return false; + } + + /** + * Ritorna la lista degli attributi semplici (NON ID) della classe + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public Collection getAttributesWithoutIDs(Class classe) { + Collection ids = getClassIDs(classe); + Collection attributes = getAttributeList(classe); + attributes.removeAll(ids); + + return attributes; + } + + /** + * Ritorna true se la classe in input ha almeno una classe Gen collegata + * + * @author Vittorio Niespolo + * + * @param aClass + * @return + */ + public static boolean hasGeneralClass(Class aClass) { + return !aClass.getGenerals().isEmpty(); + } + + /** + * Ritorna true se la classe in input estende SecurityUser + * + * @author Vittorio Niespolo + * + * @param aClass + * @return + */ + public static boolean generalizeSecurityUserRole(Class aClass) { + Class general = getGeneralClass(aClass); + if (general != null && SecurityUtils.isInSecurityUserRole(general)) { + return true; + } + return false; + } + + /** + * Ritorna la classe Gen collegata a quella in input + * + * @author Vittorio Niespolo + * + * @param aClass + * @return + */ + public static Class getGeneralClass(Class aClass) { + EList generals = aClass.getGenerals(); + if (generals != null && generals.size() > 0) + return ((Class) generals.toArray()[0]); + return null; + } + + /** + * Array delle classi estese + * + * @author Vittorio Niespolo + */ + private Collection extendedClasses = new ArrayList(); + + /** + * Popola l'elenco delle entità estese. Attualmente Non c'è un metodo per sapese + * se una data entità viene estesa da altre + * + * @author Vittorio Niespolo + * + * @param aModel + */ + public void populateExtendedClasses(Model aModel) { + extendedClasses = new ArrayList(); + for (Class classe : ModelUtils.getModelEntities()) { + if (!classe.getGenerals().isEmpty()) { + extendedClasses.addAll((Collection) classe.getGenerals()); + } + } + } + + /** + * Controlla se la classe in input è estesa da altre entità + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public boolean isClassExtended(Class classe) { + for (Class aClass : extendedClasses) { + if (classe.getName().equals(aClass.getName())) { + return true; + } + } + return false; + } + + /** + * Ritorna una lista di proprietà di tipo date + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public Collection getDateProperties(Class classe) { + return getAttributeList(classe).stream().filter(attr -> PropertyUtils.isDate(attr)) + .collect(Collectors.toList()); + } + + /** + * Ritorna la lista dei soli attributi di tipo stringa della classe + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public Collection getStringProperties(Class classe) { + return getAttributeList(classe).stream().filter(attr -> PropertyUtils.isString(attr)) + .collect(Collectors.toList()); + } + + /** + * Ritorna la lista dei soli attributi di tipo stringa dei padri della classe in + * input + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static Collection getParentStringProperties(Class classe) { + Collection result = new ArrayList(); + for (Class parentClass : AssociationUtils.getParentClasses(classe)) { + result.addAll(getAttributeList(parentClass).stream().filter(attr -> PropertyUtils.isString(attr)) + .collect(Collectors.toList())); + } + return result; + } + + public static Collection getParentStringId(Class classe) { + Collection result = new ArrayList(); + for (Class parentClass : AssociationUtils.getParentClasses(classe)) { + result.addAll(getClassIDs(parentClass).stream().filter(attr -> PropertyUtils.isString(attr)) + .collect(Collectors.toList())); + } + return result; + } + + /** + * Ritorna l'elenco di tutte le associazioni identifying della classe in input + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static Collection getIdentifyingParentAssociations(Class classe) { + Collection result = new ArrayList<>(); + for (Association association : AssociationUtils.getParentAssociations(classe)) { + if (AssociationUtils.isIdentifying(association)) { + result.add(association); + } + } + return result; + } + + /** + * Ritorna l'elenco di tutte le associazioni identifying della classe in input + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public Collection getNotIdentifyingParentAssociations(Class classe) { + Collection result = new ArrayList<>(); + for (Association association : AssociationUtils.getParentAssociations(classe)) { + if (!AssociationUtils.isIdentifying(association)) { + result.add(association); + } + } + return result; + } + + /** + * Ritorna una lista di attributi sui quali è possibile eseguire ricerche + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static Collection getFiltrableAttributes(Class classe) { + Collection result = getFiltrableInternalAttributes(classe); + + // Campi Audit + if (isAuditable(classe)) { + result.add(createPropertyForClass(classe, AuditableAttributes.createdBy.toString(), "String", "Creato da")); + result.add(createPropertyForClass(classe, AuditableAttributes.lastModifiedBy.toString(), "String", "Ultima Modifica da")); + result.add(createPropertyForClass(classe, AuditableAttributes.createdDate.toString(), "Datetime", "Data Creazione")); + result.add(createPropertyForClass(classe, AuditableAttributes.lastModifiedDate.toString(), "Datetime", "Data Ultima Modifica")); + } + return result; + } + + public static Collection getFiltrableInternalAttributes(Class classe) { + Collection result = classe.getOwnedAttributes().stream() + .filter(a -> !TypeUtils.getNotFiltrableTypes().contains(a.getType().getName())) + .collect(Collectors.toList()); + return result; + } + + private static Property createPropertyForClass(Class classe, String propertyName, String dataType, String labelValue) { + Property prop = (Property) EcoreUtil.create(UMLPackage.Literals.PROPERTY); + + prop.setName(propertyName); + prop.setType(GeneralUtils.getVoilaType(classe, dataType)); + + //FIXME :( +// Stereotype stereotype = (Stereotype)ModelUtils.getVoila2Profile().getMember("Attribute"); +// prop.applyStereotype(stereotype); +// prop.setValue(stereotype, StereotypePropertyName.LABEL, labelValue); + + return prop; + } + + public static Collection getAttributesForPresentation(Class classe) { + return getFiltrableAttributes(classe); + } + + /** + * Return a list containing internal attributes and externals attributes from + * parent entity + * + * @author Vittorio Niespolo + * @param aClass + * @return + */ + public static Collection getCompleteAttributeListForPresentation(Class aClass) { + Collection attributeList = new ArrayList<>(); + // ID ESTERNI + attributeList.addAll(EntityUtils.getIdAttributesFromForeignKeys(aClass)); + // ATTR. INTERNI + attributeList.addAll(getAttributesForPresentation(aClass)); + return attributeList; + } + + /** + * Method to check if a Class has exactly one field of String type to condition + * annotation generation + * + * @param aClass + * @return 1 if num field string == 1 , 0 otherwise + */ + public boolean entityHasOneStringField(Class aClass) { + Collection stringProperties = getStringProperties(aClass); + + if (stringProperties.size() == 1) + return true; + + return false; + } + + public String getTableName(Class aClass) { + return StereotypeUtils.getStereotypeValue(aClass, StereotypeName.ENTITY, + StereotypePropertyName.TABLE_NAME); + } + + /** + * Ritorna un helper che descriva la classe + * + * @author Vittorio Niespolo + * + * @param aClass + * @return + */ + public static String getHelper(Class aClass) { + String result = getEntityHelp(aClass); + if (result == null) { + result = getEntityDefinition(aClass); + } + if (result == null) { + result = StringUtils.splitCamel(aClass.getName()); + } + return result; + } + + public static Collection getAttributesForPresentationWOAudit(Class classe) { + return getFiltrableInternalAttributes(classe); + } + + public static boolean hasParentsWithCK(Class classe) { + for (Association parentAss : AssociationUtils.getParentAssociations(classe)) { + if (AssociationUtils.isIdentifying(parentAss) + && hasCompositeKey(AssociationUtils.getParentClass(classe, parentAss))) { + return true; + } + } + return false; + } + + /** + * Ritorna true se classe ha una self relation. + * + * @author Federico Gambardella + * + * @param classe + * @return + */ + public static boolean hasSelfRelation(Class classe) { + for (Association association : classe.getAssociations()) { + if (Boolean.TRUE.equals(AssociationUtils.isSelfRelation(association))) + return true; + } + return false; + } + + /** + * Return true id the class has the attribute in input. + * + * @author Federico Gambardella + * @param classe + * @param attribute + * @return + */ + public static boolean hasAttribute(Class classe, Property attribute) { + Collection attributeList = classe.getAllAttributes(); + for (Property property : attributeList) { + if (property.equals(attribute)) + return true; + } + return false; + } + + /** + * Ritorna true se la classe ha almeno una TextArea nel FE + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static boolean hasTextAreas(Class classe) { + for (Property attribute : getAttributesForPresentation(classe)) { + if (PropertyUtils.hasPhysicalLengthGreaterThan(PropertyUtils.getPhysicalColumnLenght(attribute))) { + return true; + } + } + return false; + } + + /** + * Ritorna true se c'è almeno un'associazione con popup per la parent selection + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static boolean hasPopUpParentSelection(Class classe) { + for (Association parentAss : AssociationUtils.getParentAssociations(classe)) { + if (AssociationUtils.hasPopupParentSelection(parentAss)) { + return true; + } + } + return false; + } + + /** + * Check if the input class has at least one parent. + * + * @author Federico Gambardella + * @param classe + * @return + */ + public static boolean hasAtLeastOneParent(Class classe) { + return !getIdentifyingParentAssociations(classe).isEmpty(); + } + + /** + * Check if the input class has at least a properties annotated as ID. + * + * @author Federico Gambardella + * @param classe + * @return + */ + public static boolean hasAtLeastAPorpertyAnnotatedAsID(Class classe) { + return !getClassIDs(classe).isEmpty(); + } + + /** + * Ritorna true se la classe appartiene alla subject area principale + * + * @author Vittorio Niespolo + * + * @param classe + * @return + */ + public static boolean belongsToMainSubjectArea(Class classe) { + if (classe.getOwner() instanceof Package) { + return false; + } + return true; + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ExceptionHandlerUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ExceptionHandlerUtils.java new file mode 100644 index 0000000..8e9fead --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ExceptionHandlerUtils.java @@ -0,0 +1,166 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.Collection; +import java.util.logging.ConsoleHandler; +import java.util.logging.Formatter; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.Property; + +public class ExceptionHandlerUtils { + + private static final Logger LOGGER = Logger.getLogger(ExceptionHandlerUtils.class.getName()); + + static { + LOGGER.setUseParentHandlers(false); + + ConsoleHandler handler = new ConsoleHandler(); + Formatter formatter = new LogFormatter(); + + handler.setFormatter(formatter); + + LOGGER.addHandler(handler); + } + + /** + * Return true if there are Self-Relations without assigned property members + * names + * + * @author Jessica Pascarella + * + * @param classe + * @return true if there are Self-Relations without assigned property members + * names + */ + private boolean hasSelfRelationNameException(Class classe) { + if (EntityUtils.isEntityStereotype(classe)) { + for (Association association : classe.getAssociations()) { + if (AssociationUtils.isSelfRelation(association)) { + for (Property property : association.getMemberEnds()) { + if (property != null && (property.getName() == null || property.getName().equals(""))) { + LOGGER.log(Level.SEVERE, ConsoleMsgJavaUtils.GENERIC_ENTITY_EXCEPTION_MSG + classe.getName() + + " - " + ConsoleMsgJavaUtils.SELF_RELATION_NAMES_EXCEPTION_MSG); + return true; + } + } + } + } + return false; + } + return false; + } + + /** + * Return true if the entity has a sequenceName defined but not an Code Type Id + * + * @author Jessica Pascarella + * @param classe + * @return true if the entity has a sequenceName defined but not an Code Type Id + */ + private boolean hasSequenceNameException(Class classe) { + String sequenceName = ""; + sequenceName = EntityUtils.getSequenceName(classe); + if (sequenceName != null && !("").equals(sequenceName)) { + for (Property p : classe.getOwnedAttributes()) { + if (p.isID() && p.getType() != null && p.getType().getName().equals("Code")) + return false; + } + LOGGER.log(Level.SEVERE, ConsoleMsgJavaUtils.GENERIC_ENTITY_EXCEPTION_MSG + classe.getName() + " - " + + ConsoleMsgJavaUtils.SEQ_NAME_EXCEPTION_MSG); + return true; + } + return false; + } + + /** + * Return true if there are more entities with the same name + * + * @author Jessica Pascarella + * @param classes + * @param classe + * @return true if there are more entities with the same name + */ + private boolean hasEntityNamesException(Class classe, Collection classes) { + if (EntityUtils.isEntityStereotype(classe)) { + for (Class c : classes) { + if (classe != c && EntityUtils.isEntityStereotype(c) && classe.getName().equals(c.getName())) { + LOGGER.log(Level.SEVERE, ConsoleMsgJavaUtils.GENERIC_ENTITY_EXCEPTION_MSG + classe.getName() + " - " + + ConsoleMsgJavaUtils.DUPLICATED_ENTITY_NAME_EXCEPTION_MSG); + return true; + } + } + } + return false; + } + + /** + * Return true if the entity has not an ID (owner attribute), an autogenerated + * Id id or an id by a parent class + * + * @author Jessica Pascarella + * + * @return true if the entity has not an ID (owner attribute), an autogenerated + * Id id or an id by a parent class + */ + private boolean hasEntityIdException(Class classe) { + if (!EntityUtils.isEntityStereotype(classe)) + return false; + if (EntityUtils.getCompositeKeyAttributes(classe).size() > 0) + return false; + LOGGER.log(Level.SEVERE, ConsoleMsgJavaUtils.GENERIC_ENTITY_EXCEPTION_MSG + classe.getName() + " - " + + ConsoleMsgJavaUtils.MISSING_ENTITY_ID_EXCEPTION_MSG); + return true; + } + + /** + * Return true if there is an attribute without type for the entity + * + * @author Jessica Pascarella + * + * @param type + * @return true if there is an attribute without type for the entity + */ + private boolean hasTypeMissingException(Class classe) { + + if (!EntityUtils.isEntityStereotype(classe)) + return false; + for (Property p : classe.getOwnedAttributes()) { + if (p.getType() == null) { + LOGGER.log(Level.SEVERE, ConsoleMsgJavaUtils.GENERIC_ENTITY_EXCEPTION_MSG + classe.getName() + " - " + + ConsoleMsgJavaUtils.MISSING_TYPE_EXCEPTION_MSG); + return true; + } + } + return false; + } + + /** + * Return true if the Diagram is valid for code generation + * + * @author Jessica Pascarella + * + * @param model + * @return true if the Diagram is valid for code generation + */ + public boolean hasDiagramExceptions(Model model) { + boolean checkException = false; + LOGGER.log(Level.INFO, "Diagram Validation Phase started"); + Collection classes = ModelUtils.getModelEntities(); + for (Class classe : classes) { + checkException = hasEntityNamesException(classe, classes) || checkException; + checkException = hasTypeMissingException(classe) || checkException; + checkException = hasSequenceNameException(classe) || checkException; + checkException = hasEntityIdException(classe) || checkException; + checkException = hasSelfRelationNameException(classe) || checkException; + } + if (checkException) + LOGGER.log(Level.SEVERE, "Diagram Validation Phase failed"); + else + LOGGER.log(Level.INFO, "Diagram Validation Phase passed"); + return checkException; + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/FeatureUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/FeatureUtils.java new file mode 100644 index 0000000..3ab7797 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/FeatureUtils.java @@ -0,0 +1,313 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.ecore.impl.DynamicEObjectImpl; +import org.eclipse.uml2.uml.Actor; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UseCase; + +public class FeatureUtils { + + /** + * Return a set of Generic Features belonging to model + * + * @author Vittorio Niespolo + * @param model + * @return set of generic Feature + */ + public Collection getGenericFeatures(Model model) { + Collection features = ModelUtils.getFeatures(model); + Collection genericFeatures = new ArrayList<>(); + + for (UseCase feature : features) { + if (isGenericFeatureStereotype(feature)) { + genericFeatures.add(feature); + } + } + return genericFeatures; + } + + /** + * Return a set of Entity Specific Features belonging to model + * + * @author Vittorio Niespolo + * @param model + * @return set of Entity Specific Features + */ + public static Collection getEntitySpecificFeatures(Model model) { + Collection features = ModelUtils.getFeatures(model); + Collection entitySpecificfeatures = new ArrayList<>(); + + for (UseCase feature : features) { + if (isEntitySpecificFeatureStereotype(feature)) { + entitySpecificfeatures.add(feature); + } + } + return entitySpecificfeatures; + } + + /** + * Return the Generator Actor from the model + * + * @param model + * @return actor Generator + */ + public static Actor getGenerator(Model model) { + for (org.eclipse.uml2.uml.Package pack : model.getImportedPackages()) { + if (pack != null) { + for (Type type : pack.getOwnedTypes()) { + if (type instanceof Actor && "Generator".equals(type.getName())) { + return (Actor) type; + } + } + } + } + + for (Type type : model.getOwnedTypes()) { + if (type instanceof Actor && "Generator".equals(type.getName())) { + return (Actor) type; + } + } + return null; + } + + /** + * Return true if a Feature is Linked to Generator + * + * @author Vittorio Niespolo + * @param model + * @param feature + * @return + */ + public static boolean isFeatureLinkedToGenerator(Model model, UseCase feature) { + for (Association association : feature.getAssociations()) { + for (Property property : association.getMemberEnds()) { + if (property.getType() == getGenerator(model)) { + return true; + } + } + } + return false; + } + + /** + * Return the Set of EntitySpecificFeature's Entities + * + * @author Vittorio Niespolo + * @param feature + * @return Set of entities + */ + @SuppressWarnings("unchecked") + public static Collection getEntitySpecificFeatureEntities(UseCase feature) { + Stereotype stereotype; + Collection entities = new ArrayList<>(); + + stereotype = feature.getAppliedStereotype(StereotypeName.ENTITY_SPECIFIC_FEATURE); + + if (stereotype != null) { + + List entitiesDEOI = (List) feature.getValue(stereotype, + StereotypePropertyName.ENTITIES); + + for (DynamicEObjectImpl deoi : entitiesDEOI) { + for (Object crossReference : deoi.eCrossReferences()) { + if (crossReference instanceof Class) { + entities.add((Class) crossReference); + } + } + } + } + return entities; + } + + /** + * Return true if a GenericFeature is enabled. So it exists in the model and is + * linked to the generator + * + * @author Vittorio Niespolo + * @param model + * @param genericFeature + * @return + */ + protected boolean isGenericFeatureEnabled(Model model, GenericFeature genericFeature) { + Collection genericFeatures = getGenericFeatures(model); + + for (UseCase feature : genericFeatures) { + if (feature.getName().equals(genericFeature.name()) && isFeatureLinkedToGenerator(model, feature)) { + return true; + } + } + return false; + } + + /** + * Return true if a GenericFeature is enabled. So it exists in the model and is + * linked to the generator + * + * @author Vittorio Niespolo + * @param model + * @param specificFeature + * @return + */ + protected boolean isEntitySpecificFeatureEnabled(Model model, GenericFeature specificFeature) { + Collection specificFeatures = getEntitySpecificFeatures(model); + + for (UseCase feature : specificFeatures) { + if (feature.getName().equals(specificFeature.name()) && isFeatureLinkedToGenerator(model, feature)) { + return true; + } + } + return false; + } + + /** + * Return true if a EntitySpecificFeature is enabled. So it exists in the model + * and is linked to the generator + * + * @author Vittorio Niespolo + * @param model + * @param entitySpecificFeature + * @param entity + * @return + */ + protected static boolean isEntitySpecificFeatureEnabled(Model model, EntitySpecificFeature entitySpecificFeature, + Class entity) { + Collection entitySpecificFeatures = getEntitySpecificFeatures(model); + + for (UseCase feature : entitySpecificFeatures) { + if (feature.getName().equals(entitySpecificFeature.name()) && isFeatureLinkedToGenerator(model, feature)) { + // VN Check if Feature use-case contains specified entity + Collection entities = getEntitySpecificFeatureEntities(feature); + if (entities.contains(entity)) { + return true; + } + } + } + return false; + } + + /** + * Return true if Attachment feature is enabled + * + * @author Vittorio Niespolo + * @param model + * @param entity + * @return + */ + public boolean isAttachmentEnabled(Class entity, Model model) { + if (isEntitySpecificFeatureEnabled(model, EntitySpecificFeature.Attachment, entity)) { + return true; + } + return false; + } + + /** + * Return true if Email feature is enabled + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public boolean isEmailEnabled(Model model) { + if (isGenericFeatureEnabled(model, GenericFeature.Email)) { + return true; + } + return false; + } + + /** + * Return true if Email feature is enabled + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public boolean isAttachmentEnabled(Model model) { + if (isEntitySpecificFeatureEnabled(model, GenericFeature.Attachment)) { + return true; + } + return false; + } + + /** + * Return true if Security feature is enabled + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public boolean isSecurityEnabled(Model model) { + if (isGenericFeatureEnabled(model, GenericFeature.Security)) { + return true; + } + return false; + } + + /** + * Return true if Caching feature is enabled + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public boolean isCachingEnabled(Model model) { + if (isGenericFeatureEnabled(model, GenericFeature.Caching)) { + return true; + } + return false; + } + + /** + * Return true if the useCase has applied the Feature Stereotype + * + * @author Vittorio Niespolo + * @param usecase + * @return true if the usecase has applied the Feature Stereotype + */ + public static boolean isFeatureStereotype(UseCase useCase) { + Stereotype stereotype = (Stereotype) useCase.getGeneral(StereotypeName.FEATURE); + if (stereotype != null) + return true; + return false; + } + + /** + * Return true if the useCase has applied the Feature Stereotype + * + * @author Vittorio Niespolo + * @param usecase + * @return true if the usecase has applied the Feature Stereotype + */ + public static boolean isEntitySpecificFeatureStereotype(UseCase useCase) { + Stereotype stereotype = useCase.getAppliedStereotype(StereotypeName.ENTITY_SPECIFIC_FEATURE); + if (stereotype != null) + return true; + return false; + } + + /** + * Return true if the useCase has applied the Feature Stereotype + * + * @author Vittorio Niespolo + * @param usecase + * @return true if the usecase has applied the Feature Stereotype + */ + public static boolean isGenericFeatureStereotype(UseCase useCase) { + Stereotype stereotype = useCase.getAppliedStereotype(StereotypeName.GENERIC_FEATURE); + if (stereotype != null) + return true; + return false; + } + + public static boolean isReportEnabled(Class entity, Model model) { + return isEntitySpecificFeatureEnabled(model, EntitySpecificFeature.BasicPdfCsvExport, entity); + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/FileCopyUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/FileCopyUtils.java new file mode 100644 index 0000000..aaaea5b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/FileCopyUtils.java @@ -0,0 +1,33 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.io.File; +import java.io.IOException; + +import org.apache.commons.io.FileUtils; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.Assert; + +public class FileCopyUtils { + + public static void copyFiles(String sourceFolder, String targetFolder) { + File srcDir = new File(sourceFolder); + File destDir = new File(targetFolder); + + try { + FileUtils.copyDirectory(srcDir, destDir); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static boolean exists(IResource res) { + Assert.isNotNull(res); + return exists(res.getLocation().toFile()); + } + + public static boolean exists(File res) { + Assert.isNotNull(res); + return res.exists(); + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/GeneralUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/GeneralUtils.java new file mode 100644 index 0000000..46b88ee --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/GeneralUtils.java @@ -0,0 +1,169 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; +import java.util.zip.CRC32; + +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Package; +import org.eclipse.uml2.uml.Property; + +public class GeneralUtils extends AssociationUtils { + + private static List properties; + private static String outputDir; + private static String baseDir; + + public static void setupProps(List p, String oDir, String bDir) { + outputDir = oDir; + baseDir = bDir; + properties = new ArrayList(); + for (String p1 : p) { + Properties props = new Properties(); + try { + props.load(new FileInputStream(new File(p1))); + properties.add(props); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + public static String getOutputDir() { + return outputDir; + } + + public static String getBaseDir() { + return baseDir; + } + + public static String getProperty(String pName) { + for (Properties p : properties) { + String value = p.getProperty(pName); + if (value != null) { + return value; + } + } + return null; + } + /** + * Method to generate a SerialUID based on actual Timestamp + * + * @author Vittorio Niespolo + * @param object + * @return the generated SerialUID + */ + public String getGeneratedSerialUID(Class classe) { + CRC32 crc = new CRC32(); + crc.update(getEntityDump(classe).getBytes()); + return String.valueOf(crc.getValue()) + "L"; + } + + public String getEntityDump(Class classe) { + StringBuffer sb = new StringBuffer(); + sb.append("{"); + sb.append(classe.getName()).append("; "); + + // ID + sb.append("["); + Collection ids = EntityUtils.getClassIDs(classe); + if (ids != null) { + Iterator i = ids.iterator(); + while (i.hasNext()) { + Property id = i.next(); + sb.append(getAttributeDump(id)); + } + } + sb.append("]"); + sb.append(", "); + + // ATTRIBUTI GENERICI + sb.append("["); + Collection attributi = classe.getAttributes(); + + if (attributi != null) { + Iterator i = attributi.iterator(); + while (i.hasNext()) { + Property attribute = i.next(); + sb.append(getAttributeDump(attribute)); + } + } + sb.append("]"); + return sb.toString(); + } + + public String getAttributeDump(Property attribute) { + StringBuffer sb = new StringBuffer(); + sb.append("{"); + sb.append(attribute.getName()).append("; "); + sb.append(attribute.getType().getName()).append("; "); + sb.append(PropertyUtils.isRequired(attribute)).append("; "); + sb.append("} "); + return sb.toString(); + } + + /** + * Return true if parent specified by association and property (end) has 0 or 1 + * multiplicity + * + * @author Jessica Pascarella + * @param association + * @param property + * @return + */ + // TODO VN ELIMINARE QUESTO METODO + public static boolean isParentZeroOneMultiplicity(Association association, Property property) { + if (isOneToOneRelation(association) && hasChildOneToOne((Class) property.getType(), association, property)) { + return true; + } else if (!isOneToOneRelation(association) && PropertyUtils.isZeroOneMultiplicity(property)) + return true; + return false; + } + + /** + * Return true if child specified by association and property (end) has 0 or 1 + * multiplicity + * + * @author Jessica Pascarella + */ + // TODO VN ELIMINARE QUESTO METODO + public static boolean isChildZeroOneMultiplicity(Association association, Property property) { + if (isOneToOneRelation(association) && hasParentOneToOne((Class) property.getType(), association, property)) { + return true; + } + return false; + } + + /** + * Ritorna il package del domain importato nel modello + * @author Vittorio Niespolo + * + * @param umlElement + * @return + */ + public static Package getDomainPackage(Element umlElement) { + for (Package pack : umlElement.getModel().getImportedPackages()) { + if (pack.getName().equals("domain_model")) { + return pack; + } + } + ConsoleUtils.consoleMessage(SeverityLevels.ERROR, "Non è stato possibile trovare il domain_model nel modello"); + return null; + } + + public static Class getVoilaType(Class classe, String wishedDataType) { + Package domainPackage = getDomainPackage(classe); + Package domains = (Package) domainPackage.getPackagedElement("domains"); + + Class dataType = (Class) domains.getPackagedElement(wishedDataType); + return dataType; + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/GenericFeature.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/GenericFeature.java new file mode 100644 index 0000000..b5e077f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/GenericFeature.java @@ -0,0 +1,8 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public enum GenericFeature { + Email, + Attachment, + Caching, + Security; +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/JavaBeautifier.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/JavaBeautifier.java new file mode 100644 index 0000000..bf159b3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/JavaBeautifier.java @@ -0,0 +1,250 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.Properties; +import java.util.logging.ConsoleHandler; +import java.util.logging.Formatter; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.eclipse.emf.mwe.core.resources.ResourceLoaderFactory; +import org.eclipse.jdt.core.ToolFactory; +import org.eclipse.jdt.core.formatter.CodeFormatter; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.Document; +import org.eclipse.jface.text.IDocument; +import org.eclipse.text.edits.MalformedTreeException; +import org.eclipse.text.edits.TextEdit; + +import it.micegroup.voila2.cartridge.library.formatters.JavaImportBeautifierImpl; + +public class JavaBeautifier { + + private static final Logger LOGGER = Logger.getLogger(JavaBeautifier.class.getName()); + + static { + LOGGER.setUseParentHandlers(false); + + ConsoleHandler handler = new ConsoleHandler(); + Formatter formatter = new LogFormatter(); + + handler.setFormatter(formatter); + + LOGGER.addHandler(handler); + } + + public JavaBeautifier() { + super(); + + configFile = GeneralUtils.getBaseDir() + "/.settings/org.eclipse.jdt.core.prefs"; + getCodeFormatter(); + + importFormatter = new JavaImportBeautifierImpl(); + importFormatter.setFormat(false); + importFormatter.setOrganizeImports(true); + } + + /** Singleton code formatter instance. */ + private CodeFormatter codeFormatter; + private JavaImportBeautifierImpl importFormatter; + + /** + * Path to the config file for the formatter. See + * http://www.peterfriese.de/index + * .php/2007/05/28/formatting-your-code-using-the-eclipse-code-formatter/ for + * more infor on creating the config file. + */ + private String configFile; + + private Properties options; + + /** + * Formats the file using Eclipse code formatter. The file must have the + * extension '.java'. + */ + public String format(final String input) { +// CharacterSequence sequence = new CharacterSequence(input); +// importFormatter.beautify(sequence); //organize imports + + String result = format(input, null); //Formatting the code; + return result; + } + + /** + * Formats the file using Eclipse code formatter. The file must have the + * extension '.java'. + */ + public String format(final String input, final String fileName) { + //IFile file = ResourcesPlugin.getWorkspace().getRoot().getProject("gcerti").findMember(fileName.substring(6)); + IDocument doc = new Document(input); + TextEdit edit = getCodeFormatter().format(CodeFormatter.K_COMPILATION_UNIT | CodeFormatter.F_INCLUDE_COMMENTS, + doc.get(), 0, doc.get().length(), 0, null); + + // check if text formatted successfully + if (edit != null) { + try { + edit.apply(doc); + /* + ASTParser parser = ASTParser.newParser(AST.JLS11); + // Parse the class as a compilation unit. + parser.setKind(ASTParser.K_COMPILATION_UNIT); + parser.setSource(doc.get().toCharArray()); + parser.setResolveBindings(true); + // Return the compiled class as a compilation unit + ICompilationUnit cu = (ICompilationUnit) parser.createAST(null); + //cu = new BasicCompilationUnit(doc.get().toCharArray(), "it", "tmp.java", "utf-8"); + ImportRewrite ir = ImportRewrite.create(cu, true); + TextEdit editOi = ir.rewriteImports(null); + editOi.apply(doc); + */ + return doc.get(); + } catch (MalformedTreeException e) { + LOGGER.log(Level.WARNING, + "Error during code formatting. Illegal code edit tree (" + e.getMessage() + ")."); + } catch (BadLocationException e) { + ConsoleUtils.consoleMessage("WARN", + "Error during code formatting. Bad location (" + e.getMessage() + ")."); +// } catch (CoreException e) { +// ConsoleUtils.consoleMessage("WARN", +// "Error during code formatting. Bad location (" + e.getMessage() + ")."); + } + } else { + ConsoleUtils.consoleMessage("WARN", "File " + fileName + + " could not be formatted. Make sure your template produces legal Java code!"); + } + return null; + } + + /** + * Returns an instance of the Eclipse code formatter. If the user supplied the + * path to a config file, this file will be used to configure the code + * formatter. Otherwise we use the default options supplied with oAW. + * + * @return a preconfigured instance of the Eclipse code formatter. + */ + private CodeFormatter getCodeFormatter() { + if (codeFormatter == null) { + + if (configFile == null) { + loadDefaultFormatterOptions(); + LOGGER.log(Level.INFO, + "no config file specified; using the default config file supplied with oAW: org.eclipse.jdt.core.formatterprefs"); + } else { + options = readConfig(configFile); + } + + // instantiate the formatter + codeFormatter = ToolFactory.createCodeFormatter(options); + } + return codeFormatter; + } + + private void loadDefaultFormatterOptions() { + options = new Properties(); + options.put("org.eclipse.jdt.core.compiler.compliance", "1.5"); + options.put("org.eclipse.jdt.core.compiler.codegen.targetPlatform", "1.5"); + options.put("org.eclipse.jdt.core.compiler.source", "1.5"); + } + + /** + * Return a Java Properties file representing the options that are in the + * specified config file. + */ + private Properties readConfig(String filename) { + BufferedInputStream stream = null; + BufferedReader reader = null; + + try { + InputStream is = openStream(filename); + final Properties formatterOptions = new Properties(); + if (filename.endsWith(".xml")) { + Pattern pattern = Pattern.compile(""); + reader = new BufferedReader(new InputStreamReader(is)); + for (String line = reader.readLine(); line != null; line = reader.readLine()) { + Matcher matcher = pattern.matcher(line); + if (matcher.matches()) { + formatterOptions.put(matcher.group(1), matcher.group(2)); + } + } + } else { + stream = new BufferedInputStream(is); + formatterOptions.load(stream); + } + // add some settings for the compiler options + // which are not included in the Eclipse code style settings + // to make the code formatter working + // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=222736 + if (formatterOptions.get("org.eclipse.jdt.core.compiler.compliance") == null) { + formatterOptions.put("org.eclipse.jdt.core.compiler.compliance", "1.5"); + } + if (formatterOptions.get("org.eclipse.jdt.core.compiler.codegen.targetPlatform") == null) { + formatterOptions.put("org.eclipse.jdt.core.compiler.codegen.targetPlatform", "1.5"); + } + if (formatterOptions.get("org.eclipse.jdt.core.compiler.source") == null) { + formatterOptions.put("org.eclipse.jdt.core.compiler.source", "1.5"); + } + return formatterOptions; + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Problem reading code formatter config file (" + e.getMessage() + ")."); + loadDefaultFormatterOptions(); + } finally { + if (stream != null) { + try { + stream.close(); + } catch (IOException e) { + /* ignore */ + } + } + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + /* ignore */ + } + } + } + return null; + } + + /** + * Searches for the given filename as a ressource and returns a stream on it. + * Throws an IOException, if the file cannot be found. + * + * @param filename The name of the file to be searched in the ressources. + * @return InputStream for subsequent reading + * @throws IOException + */ + protected InputStream openStream(String filename) throws IOException { + InputStream is = null; + try { + is = ResourceLoaderFactory.createResourceLoader().getResourceAsStream(filename); + } catch (RuntimeException e) { + } + if (is == null) { + is = new FileInputStream(filename); + } + return is; + } + + /** + * @return the configuration file for the formatter + */ + public String getConfigFile() { + return configFile; + } + + /** + * @param configFile configuration file for the formatter + */ + public void setConfigFile(String configFile) { + this.configFile = configFile; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/LogFormatter.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/LogFormatter.java new file mode 100644 index 0000000..b82ca63 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/LogFormatter.java @@ -0,0 +1,108 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.logging.Formatter; +import java.util.logging.Level; +import java.util.logging.LogRecord; + +/** + * Class for logger customization + * + * @author Jessica Pascarella + * + */ +public class LogFormatter extends Formatter { + // ANSI escape code + public static final String ANSI_RESET = "\u001B[0m"; + public static final String ANSI_BLACK = "\u001B[30m"; + public static final String ANSI_RED = "\u001b[1;31m"; + public static final String ANSI_GREEN = "\u001B[32m"; + public static final String ANSI_YELLOW = "\u001b[33m"; + public static final String ANSI_BLUE = "\u001B[34m"; + public static final String ANSI_PURPLE = "\u001B[35m"; + public static final String ANSI_CYAN = "\u001B[36m"; + public static final String ANSI_WHITE = "\u001B[37m"; + public static final String ANSI_ORANGE = "\033[38;2;255;165;0m"; + + // Here you can configure the format of the output and + // its color by using the ANSI escape codes defined above. + + // format is called for every console log message + @Override + public String format(LogRecord record) { + // This example will print date/time, class, and log level in yellow, + // followed by the log message and it's parameters in white . + StringBuilder builder = new StringBuilder(); + if (record.getLevel() != null && record.getLevel() == Level.INFO) + builder.append(ANSI_BLACK); + else if (record.getLevel() != null && record.getLevel() == Level.SEVERE) + builder.append(ANSI_RED); + else if (record.getLevel() != null && record.getLevel() == Level.WARNING) + builder.append(ANSI_BLACK); + + builder.append("["); + builder.append(calcDate(record.getMillis())); + builder.append("]"); + +// builder.append(" ["); +// builder.append(record.getSourceClassName()); +// builder.append("]"); + + if (record.getLevel() != null && record.getLevel() == Level.WARNING) { + builder.append(ANSI_ORANGE); + builder.append(" ["); + builder.append(record.getLevel().getName()); + builder.append("]"); + builder.append(ANSI_RESET); + builder.append(ANSI_BLACK); + } else if (record.getLevel() != null && record.getLevel() == Level.INFO) { + builder.append(ANSI_BLUE); + builder.append(" ["); + builder.append(record.getLevel().getName()); + builder.append("]"); + builder.append(ANSI_RESET); + builder.append(ANSI_BLACK); + } else if (record.getLevel() != null && record.getLevel() == Level.SEVERE) { + builder.append(ANSI_RED); + builder.append(" ["); + builder.append("ERROR"); + builder.append("]"); + builder.append(ANSI_RESET); + builder.append(ANSI_RED); + } else { + builder.append(" ["); + builder.append(record.getLevel().getName()); + builder.append("]"); + } + + builder.append(" - "); + builder.append(record.getMessage()); + + Object[] params = record.getParameters(); + + if (params != null) { + builder.append("\t"); + for (int i = 0; i < params.length; i++) { + builder.append(params[i]); + if (i < params.length - 1) + builder.append(", "); + } + } + + builder.append(ANSI_RESET); +// builder.append("\n"); + return builder.toString(); + } + + private String calcDate(long millisecs) { + SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date resultdate = new Date(millisecs); + return date_format.format(resultdate); + } + + public static String logFormat(LogRecord logRecord) { + LogFormatter formatter = new LogFormatter(); + return formatter.format(logRecord); + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/LoggerUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/LoggerUtils.java new file mode 100644 index 0000000..c6bf9bc --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/LoggerUtils.java @@ -0,0 +1,5 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public class LoggerUtils { + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/MicroServiceCategory.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/MicroServiceCategory.java new file mode 100644 index 0000000..f3abf36 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/MicroServiceCategory.java @@ -0,0 +1,5 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public enum MicroServiceCategory { + business, notification, security, attachment, demo , generic +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/MicroServiceUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/MicroServiceUtils.java new file mode 100644 index 0000000..aecd31b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/MicroServiceUtils.java @@ -0,0 +1,241 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.ArrayList; +import java.util.Collection; + +import org.apache.commons.lang3.RandomStringUtils; +import org.eclipse.uml2.uml.Component; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.Stereotype; + +public class MicroServiceUtils { + + private static final String NO_SQL = "noSql"; + static Collection microservices = new ArrayList<>(); + + public static Collection getMicroservices() { + return microservices; + } + + /** + * Return true if the class has applied the Microservice Stereotype + * + * @author simone punzo + * @param classe + * @return true if the class has applied the Microservice Stereotype + */ + public static boolean hasMicroServiceStereotype(Component component) { + + Stereotype stereotype = component.getAppliedStereotype(StereotypeName.MICROSERVICE); + if (stereotype != null) { + return true; + } + + return false; + } + + /** + * @author Simone Punzo + * @param component + * @return true if the class has the Gateway stereotype + */ + + public static boolean hasGatewayStereotype(Component component) { + Stereotype stereotype = component.getAppliedStereotype(StereotypeName.GATEWAY); + if (stereotype != null) { + return true; + } + return false; + } + + /** + * Funzione per checkare se un dato componente ha una determinata categoria + */ + public static boolean isInCategory(Component aComponent, MicroServiceCategory category) { + String modelCategory = getCategory(aComponent); + + if (modelCategory != null && category.toString().equals(modelCategory)) + return true; + return false; + } + + /** + * Funzione per ottenere la categoria di un componente + * + * @param model + * @return + */ + public static String getCategory(Component aComponent) { + EnumerationLiteral stereotypeValue = StereotypeUtils.getStereotypeValue( + aComponent, StereotypeName.MICROSERVICE, StereotypePropertyName.CATEGORY); + if (stereotypeValue != null) + return stereotypeValue.getName(); + return null; + } + + /** + * funzione per ottenere il port number di un component con stereotype + * Microservizio + * + * @author Simone Punzo + * @param aComponent + */ + public static Integer getMsPortNumber(Component aComponent) { + Integer stereotypeValue = StereotypeUtils.getStereotypeValue(aComponent, + StereotypeName.MICROSERVICE, StereotypePropertyName.PORT_NUMBER); + if (stereotypeValue != null) + return stereotypeValue; + return null; + } + + /** + * @author Simone Punzo + * @param aComponent + * @return the portNumber property of a component with stereotype Gateway + */ + public static Integer getGatewayPortNumber(Component aComponent) { + Integer stereotypeValue = StereotypeUtils.getStereotypeValue(aComponent, + StereotypeName.GATEWAY, StereotypePropertyName.PORT_NUMBER); + if (stereotypeValue != null) + return stereotypeValue; + return null; + } + + /** + * funzione per capire se un componente è un componente di sicurezza + * + * @author Simone Punzo + * @param aComponent + * @return + */ + public static boolean isSecurityMS(Component aComponent) { + return MicroServiceUtils.isInCategory(aComponent, MicroServiceCategory.security); + } + + /** + * funzione per capire se un componente è un componente di notification + * + * @author Simone Punzo + * @param aComponent + * @return + */ + + public static boolean isNotificationMS(Component aComponent) { + return MicroServiceUtils.isInCategory(aComponent, MicroServiceCategory.notification); + } + + /** + * funzione per capire se un componente è un componente di attachment + * + * @param aComponent + * @return + */ + public static boolean isAttachmentMS(Component aComponent) { + return MicroServiceUtils.isInCategory(aComponent, MicroServiceCategory.attachment); + } + + /** + * funzione per capire se un componente è un componente di business + * + * @param aComponent + * @return + */ + public static boolean isBusinessMS(Component aComponent) { + return MicroServiceUtils.isInCategory(aComponent, MicroServiceCategory.business); + } + + /** + * funzione per capire se un componente è un componente di demo + * + * @param aComponent + * @return + */ + public static boolean isDemoMS(Component aComponent) { + return MicroServiceUtils.isInCategory(aComponent, MicroServiceCategory.demo); + } + + /** + * Return true if the class has applied the Microservice Stereotype + * + * @author simone punzo + * @param classe + * @return true if the class has applied the Microservice Stereotype + */ + public static boolean hasSPAStereotype(Component component) { + + Stereotype stereotype = component.getAppliedStereotype(StereotypeName.SPA); + if (stereotype != null) { + return true; + } + + return false; + } + + /** + * Function to create an unique Id for each microservice Abbiamo una stringa + * fill con length=lengthId , la substringhiamo da name.length in modo che la + * stringa builder matchi la lunghezza giusta + * + * @author Simone Punzo + * @return + */ + public static String generateRandomModelId(Component microservice) { + String name = microservice.getName().toString(); + String fill = "V0il4fRaM3WoRKM1cRo5Er"; + StringBuilder builder = new StringBuilder(); + builder.append("_" + name + fill.substring(name.length())); + return builder.toString(); + } + + /** + * Ritorna l'id del Microservizio in input + * + * @author Vittorio Niespolo + * + * @param aComponent + * @return + */ + public static String getId(Component aComponent) { + String stereotypeValue = StereotypeUtils.getStereotypeValue(aComponent, + StereotypeName.MICROSERVICE, StereotypePropertyName.ID); + if (getMsPortNumber(aComponent) != null && (stereotypeValue == null || stereotypeValue.isEmpty())) { + return getMsPortNumber(aComponent).toString().substring(2); + } else if (stereotypeValue != null) + return stereotypeValue; + return null; + } + + /** + * Ritorna il tipo di persistence scelto per il microservizio in input + * + * @author Vittorio Niespolo + * + * @param aComponent + * @return + */ + public static String getPersistenceType(Component aComponent) { + EnumerationLiteral stereotypeValue = StereotypeUtils.getStereotypeValue( + aComponent, StereotypeName.MICROSERVICE, StereotypePropertyName.PERSISTENCE_TYPE); + if (stereotypeValue != null) + return stereotypeValue.getName(); + return null; + } + + /** + * Ritorna true se il microservizio è noSQL + * + * @author Vittorio Niespolo + * + * @param microservice + * @return + */ + public static boolean isNoSqlMicroservice(Component microservice) { + if (getPersistenceType(microservice).equals(NO_SQL)) { + return true; + } + return false; + } + + + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ModelCategory.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ModelCategory.java new file mode 100644 index 0000000..38004ac --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ModelCategory.java @@ -0,0 +1,5 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public enum ModelCategory { + root, mainMS +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ModelUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ModelUtils.java new file mode 100644 index 0000000..227456d --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ModelUtils.java @@ -0,0 +1,654 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RecordingCommand; +import org.eclipse.emf.transaction.RunnableWithResult; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.transaction.util.TransactionUtil; +import org.eclipse.uml2.uml.Actor; +import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Component; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.Package; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.Profile; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UseCase; + +public class ModelUtils { + + private static final String CATEGORY_MAIN_MS = "mainMS"; + + public void doEditing(EObject element) { + // Make sure your element is attached to a resource, otherwise this will return + // null + TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(element); + domain.getCommandStack().execute(new RecordingCommand(domain) { + + @Override + protected void doExecute() { + // Implement your write operations here, + // for example: set a new name + element.eSet(element.eClass().getEStructuralFeature("name"), "aNewName"); + } + }); + } + + static Collection modelEntities = new ArrayList<>(); + static Collection generalModelEntities = new ArrayList<>(); + static Collection subjectAreas = new ArrayList<>(); + static Collection mainEntities = new ArrayList<>(); + + static Collection microservices = new ArrayList<>(); + static Component gateway = null; + static Component SPA = null; + static Profile voila2Profile = null; + + // Check se lasciare così o fare con collection nel caso ci sia bisogno di più + // gateway + /** + * Return the component with Gateway Stereotype + * + * @author Simone Punzo + * @param the Model + * @return the gateway of the model + */ + public static Component getGateway() { + return gateway; + } + + /** + * Inizializza la SPA + * + * @author Vittorio Niespolo + * + * @param aModel + */ + public static void initializeSpa(Model aModel) { + if (SPA != null) + SPA = null; + for (Type type : aModel.getOwnedTypes()) { + if (type instanceof Component && MicroServiceUtils.hasSPAStereotype((Component) type)) { + SPA = (Component) type; + } + } + } + + /** + * Ritorna la SPA dell'applicazione + * + * @author Vittorio Niespolo + * + * @return + */ + public static Component getSpa() { + return SPA; + } + + /** + * Inizializza il component gateway del modello + * + * @param aModel + */ + public static void initializeGateway(Model aModel) { + if (gateway != null) + gateway = null; + for (Type type : aModel.getOwnedTypes()) { + if (type instanceof Component && MicroServiceUtils.hasGatewayStereotype((Component) type)) { + gateway = (Component) type; + } + } + } + + /** + * Return list of all components that have MicroService Stereotype + * + * @author Simone Punzo + * @param model + * @return set of microservices of that model + */ + public static Collection getMicroservices() { + return microservices; + } + + /** + * Inizializza il vettore di microservices del modello + * + * @author Simone Punzo + * @param aModel + */ + public static void initializeMicroservices(Model aModel) { + initializeSpa(aModel); + if (microservices.size() != 0) { + microservices.clear(); + } + for (Type type : aModel.getOwnedTypes()) { + if (type instanceof Component && MicroServiceUtils.hasMicroServiceStereotype((Component) type)) { + microservices.add((Component) type); + } + } + + } + + /** + * Returns list of all entities belonging to the model that started the + * generation + * + * @author Vittorio Niespolo + * @param model + * @return Set of classes + */ + public static Collection getModelEntities() { + return modelEntities; + } + + /** + * Returns list of all entities belonging to all imported models of general + * model. NB: General Model should include all other models. + * + * @author Vittorio Niespolo + * + * @return + */ + public static Collection getGeneralModelEntities() { + return generalModelEntities; + } + + /** + * Inizializza le entità sulle quali si procederà per la generazione + * + * @author Vittorio Niespolo + * + * @param model + */ + @SuppressWarnings("unchecked") + public static void initializeEntities(Model model) { +// ConsoleUtils.consoleMessage(SeverityLevels.ERROR, "Initialize Entities"); + modelEntities = new ArrayList(); + generalModelEntities = new ArrayList(); + subjectAreas = new ArrayList(); + mainEntities = new ArrayList(); + + TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(model); + + EList importedPackages = null; + + // VN Per la lettura degli elementi importati nel modello è stato necessario + // introdurre questa transazione di lettura. USare il metodo doEdit per + // attivarne una di scrittura. + try { + importedPackages = (EList) domain.runExclusive(new RunnableWithResult.Impl() { + + /** + * Ritorna la lista delle entità dai modelli importati + * + * @author Vittorio Niespolo + * + * @param model + * @return + */ + public Collection getEntitiesFromImportedPackages(Model model) { + Collection classi = new ArrayList<>(); + + for (Package pack : model.getImportedPackages()) { + if (pack != null) { + if (pack instanceof Model) { + Model modello = (Model) pack; + if (!isRootModel(modello)) { + for (Type type : modello.getOwnedTypes()) { + if (type instanceof Class && EntityUtils.isEntityStereotype((Class) type)) { + classi.add((Class) type); + } + } + } + } + } + } + return classi; + } + + public void run() { + + EList packages = model.getImportedPackages(); + for (Package pack : packages) { + if (pack != null) { + if (pack instanceof Profile) { + voila2Profile = (Profile) pack; + } + if (pack instanceof Model) { + Model importedModel = (Model) pack; + + // Modello ROOT importato nel modello del Microservizio + if (isRootModel(importedModel)) { + generalModelEntities.addAll(getEntitiesFromImportedPackages(importedModel)); + } + // Modelli delle CLASSI importate nel modello del Microservizio + else if (isMainMSModel(importedModel)) { + modelEntities.addAll(getEntitiesFromImportedPackages(importedModel)); + } else { + // Classi appartenenti ai modelli importati dal modello da cui è partita la + // generazione + + for (PackageableElement element : importedModel.getPackagedElements()) { + // Entità del package del modello + if (element instanceof Package) { + if (SubjectAreaUtils.isSubjectAreaStereotype((Package) element)) { + subjectAreas.add((Package) element); + } + for (PackageableElement packType : ((Package) element).getOwnedTypes()) { + addClassToEntities(packType); + } + } + // Entità del modello + addClassToMainEntities(element); + } + } + } + } + + // MODELLO DAL QUALE E' PARTITA LA GENERAZIONE +// modelEntities.addAll(getEntitiesFromImportedPackages(model)); + } + + setResult(model.getImportedPackages()); + } + + }); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + public static Profile getVoila2Profile() { + return voila2Profile; + } + + private static boolean isMainMSModel(Model model) { + return isInCategory(model, ModelCategory.mainMS); + } + + public static void addClassToEntities(PackageableElement type) { + if (type instanceof Class && EntityUtils.isEntityStereotype((Class) type)) { + modelEntities.add((Class) type); + generalModelEntities.add((Class) type); + } + } + + public static void addClassToMainEntities(PackageableElement type) { + addClassToEntities(type); + if (type instanceof Class && EntityUtils.isEntityStereotype((Class) type)) { + mainEntities.add((Class) type); + } + } + + private static boolean isRootModel(Model model) { + return isInCategory(model, ModelCategory.root); + } + + /** + * @author Vittorio Niespolo + * @param aClass + * @param category + * @return + */ + public static boolean isInCategory(Model model, ModelCategory category) { + String modelCategory = getCategory(model); + + if (modelCategory != null && category.toString().equals(modelCategory)) + return true; + return false; + } + + /** + * Ritorna la categoria di appartenenza di un modello + * + * @author Vittorio Niespolo + * @param aClass + * @return + */ + public static String getCategory(Model model) { + EnumerationLiteral stereotypeValue = StereotypeUtils.getStereotypeValue(model, + StereotypeName.MODEL, StereotypePropertyName.CATEGORY); + if (stereotypeValue != null) + return stereotypeValue.getName(); + return null; + } + + /** + * Return business entities + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public static Collection getBusinessEntities(Model model) { + return getEntityOfCategory(model, EntityCategory.business); + } + + /** + * Return entities related to Mailing + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public static Collection getMailEntities(Model model) { + return getEntityOfCategory(model, EntityCategory.mail); + } + + /** + * Return entities related to Attachment + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public static Collection getAttachmentEntities(Model model) { + return getEntityOfCategory(model, EntityCategory.attachment); + } + + /** + * Return entities related to Security + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public static Collection getSecurityEntities(Model model) { + return getEntityOfCategory(model, EntityCategory.security); + } + + /** + * Return entities for a given category + * + * @author Vittorio Niespolo + * @param model + * @param category + * @return + */ + public static Collection getEntityOfCategory(Model model, EntityCategory category) { + Collection result = new ArrayList<>(); + for (Class classe : getModelEntities()) { + if (EntityUtils.isInCategory(classe, category)) { + result.add(classe); + } + } + return result; + } + + /** + * Return a set of useCases belonging to model + * + * @author Vittorio Niespolo + * @param model + * @return Set of useCases + */ + public static Collection getUseCases(Model model) { + Collection useCases = new ArrayList<>(); + List types = model.getOwnedTypes(); + + for (Type type : types) { + if (type instanceof UseCase) { + useCases.add((UseCase) type); + } + } + return useCases; + } + + /** + * Return a collection of features belonging to models + * + * @author Vittorio Niespolo + * @param model + * @return Set of useCases + */ + public static Collection getFeatures(Model model) { + Collection features = new ArrayList<>(); + for (org.eclipse.uml2.uml.Package pack : model.getImportedPackages()) { + if (pack != null) { + for (Type type : pack.getOwnedTypes()) { + if (type instanceof UseCase && (FeatureUtils.isGenericFeatureStereotype((UseCase) type) + || FeatureUtils.isEntitySpecificFeatureStereotype((UseCase) type))) { + features.add((UseCase) type); + } + } + } + } + + for (Type type : model.getOwnedTypes()) { + if (type instanceof UseCase && (FeatureUtils.isGenericFeatureStereotype((UseCase) type) + || FeatureUtils.isEntitySpecificFeatureStereotype((UseCase) type))) { + features.add((UseCase) type); + } + } + return features; + } + + /** + * Method return if the current model has at least one actor + * + * @author Vittorio Niespolo + * @param model + * @return + */ + public static boolean hasActor(Model model) { + for (Type type : model.getOwnedTypes()) { + if (type instanceof Actor) { + return true; + } + } + return false; + } + + public static boolean isRoot(Model model) { + return ModelUtils.isInCategory(model, ModelCategory.root); + } + + public static boolean isMainMS(Model model) { + return ModelUtils.isInCategory(model, ModelCategory.mainMS); + } + + /** + * Method that checks if the model has a security microservice and return its + * name if so , or an empty string if not. + * + * @author Simone Punzo + * @param model + * @return + */ + public static String getSecurityMSName(Model model) { + Collection microservices = ModelUtils.getMicroservices(); + + for (Component microservice : microservices) { + if (MicroServiceUtils.isSecurityMS(microservice)) { + return microservice.getName().toString(); + } + } + return "noSecurityMS"; + } + + /** + * Check if Model has SPA component + * + * @author Simone Punzo + * @param model + * @return FLAG --- 1 if component diagram has a SPA component ;; 0 if not + */ + public static boolean isFrontEndGenerationEnabled(Model model) { + if (SPA == null) + return false; + return true; + } + + /** + * Check if Model has GATEWAY Component + * + * @author Simone Punzo + * @param model + * @return FLAG --- 1 if component diagram has a GATEWAY component ;; 0 if not + */ + public static boolean isGatewayGenerationEnabled(Model model) { + if (gateway == null) + return false; + return true; + } + + public static Collection getMsInCategory(Model model, MicroServiceCategory category) { + Collection result = new ArrayList<>(); + for (Component ms : getMicroservices()) { + if (MicroServiceUtils.isInCategory(ms, category)) { + result.add(ms); + } + } + return result; + } + + public static Collection getSecurityMs(Model model) { + return getMsInCategory(model, MicroServiceCategory.security); + } + + public static Collection getBusinessMs(Model model) { + return getMsInCategory(model, MicroServiceCategory.business); + } + + public static Collection getDemoMs(Model model) { + return getMsInCategory(model, MicroServiceCategory.demo); + } + + public static Collection getNotificationMs(Model model) { + return getMsInCategory(model, MicroServiceCategory.notification); + } + + /** + * Inizializza il component SPA del modello + * + * @param aModel + */ + public static void initializeSPA(Model aModel) { + if (SPA != null) + SPA = null; + for (Type type : aModel.getOwnedTypes()) { + if (type instanceof Component && MicroServiceUtils.hasSPAStereotype((Component) type)) { + SPA = (Component) type; + } + } + } + + /** + * Metodo per incorporare tutti i controlli da fare sul modello previa + * generazione + * + * @author Simone Punzo + * @param aModel + * @return true if tutto ok , false viceversa + */ + public static boolean checkModel(Model aModel) { + if (checkDuplicateNames(aModel)) + return false; + + return true; + } + + /** + * Metodo per controllare se i microservizi hanno nomi uguali + * + * @author Simone Punzo + * @param aModel + * @return true se ci sono due ms con lo stesso nome , false se tutti hanno nomi + * diversi + */ + public static boolean checkDuplicateNames(Model aModel) { + initializeMicroservices(aModel); + + String name = null; + ArrayList microservicesList = new ArrayList<>(microservices); + for (int i = 0; i < microservicesList.size(); ++i) { + Component ms = microservicesList.get(i); + name = ms.getName().toString(); + for (int j = i + 1; j < microservicesList.size(); ++j) { + Component ms2 = (Component) microservicesList.get(j); + if (name.equals(ms2.getName().toString())) + return true; + } + } + return false; + } + + /** + * Ritorna true se esiste almeno un microservizio noSQL nel modello in input + * + * @author Vittorio Niespolo + * + * @param aModel Modello sul quale eseguire il controllo + * @return true se esiste almeno un microservizio noSQL + */ + public static boolean hasNoSqlMicroservice(Model aModel) { + for (Component microservice : getMicroservices()) { + if (MicroServiceUtils.isNoSqlMicroservice(microservice)) { + return true; + } + } + return false; + } + + /** + * Ritorna una lista dells subjectArea presenti nel modello + * + * @author Vittorio Niespolo + * + * @return + */ + public static Collection getSubjectAreas(Model aModel) { + return subjectAreas; + } + + /** + * Ritorna la lista delle entità appartenenti alla main Subject Area + * + * @author Vittorio Niespolo + * + * @return + */ + public static Collection getModelEntitiesFromMainSA(Model aModel) { + return mainEntities; + } + + /** + * Ritorna l'url della SPA + * + * @author Vittorio Niespolo + * + * @return + */ + public static String getSpaUrl() { + String stereotypeValue = StereotypeUtils.getStereotypeValue(getSpa(), StereotypeName.SPA, + StereotypePropertyName.URL); + if (stereotypeValue != null) + return stereotypeValue; + return null; + } + + /** + * Ritorna la porta della SPA + * + * @author Vittorio Niespolo + * + * @return + */ + public static Integer getSpaPortNumber() { + Integer stereotypeValue = StereotypeUtils.getStereotypeValue(getSpa(), StereotypeName.SPA, + StereotypePropertyName.PORT_NUMBER); + if (stereotypeValue != null) + return stereotypeValue; + return null; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ParentSelection.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ParentSelection.java new file mode 100644 index 0000000..9bbc31d --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ParentSelection.java @@ -0,0 +1,6 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public enum ParentSelection { + dropdown, + popup +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ProfileName.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ProfileName.java new file mode 100644 index 0000000..337fd46 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/ProfileName.java @@ -0,0 +1,8 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public class ProfileName { + /** + * Profile for DSL + */ + public static final String Voila2Profile = "Voila2Profile"; +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/PropertyUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/PropertyUtils.java new file mode 100644 index 0000000..9c9704a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/PropertyUtils.java @@ -0,0 +1,312 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Property; + +public class PropertyUtils { + + public static final int MAX_INPUT_LENGTH = 30; + + public static boolean isRequired(Property property) { + Object result = StereotypeUtils.getStereotypeValue(property, StereotypeName.ATTRIBUTE, + StereotypePropertyName.IS_REQUIRED); + if (result == null) { + return false; + } + if ((boolean) result == true) { + return true; + } + return false; + } + + public static String getPropertyLabel(Property property) { + return StringUtils.splitCamel(property.getName()); + } + + public static boolean isNumeric(Property property) { + if (property.getType().getName().equals("Currency") || property.getType().getName().equals("Number") + || property.getType().getName().equals("Value") || property.getType().getName().equals("Code")) + return true; + return false; + } + + public static boolean isString(Property property) { + if (property.getType().getName().equals("String")) + return true; + return false; + } + + public static boolean isDateTime(Property property) { + if (property.getType().getName().equals("Datetime")) + return true; + return false; + } + + public static boolean isLocalDate(Property property) { + if (property.getType().getName().equals("LocalDate")) + return true; + return false; + } + + public static boolean isBoolean(Property property) { + if (property.getType().getName().equals("Flag")) + return true; + return false; + } + + public static String getNaturalLanguageName(Property property) { + return StringUtils.splitCamel(property.getName()); + } + + public static String getLabel(Property p) { + if (org.apache.commons.lang3.StringUtils.isNotEmpty(StereotypeUtils.getStereotypeValue(p, + StereotypeName.ATTRIBUTE, StereotypePropertyName.LABEL))) { + return StereotypeUtils.getStereotypeValue(p, StereotypeName.ATTRIBUTE, + StereotypePropertyName.LABEL); + } + + if(AuditableAttributes.createdBy.toString().equals(p.getName())) { + return "Creato da"; + } + else if(AuditableAttributes.createdDate.toString().equals(p.getName())) { + return "Data Creazione"; + } + else if(AuditableAttributes.lastModifiedBy.toString().equals(p.getName())) { + return "Ultima modifica da"; + } + else if(AuditableAttributes.lastModifiedDate.toString().equals(p.getName())) { + return "Data ultima modifica"; + } + if (!p.getLabel().equals(p.getName())) { + return StringUtils.splitCamel(p.getLabel()); + } + return getNaturalLanguageName(p); + } + + public static String getTooltip(Property p) { + if (hasHelp(p)) { + return getHelp(p); + } + if (hasDefinition(p)) { + return getDefinition(p); + } + return getLabel(p); + } + + public static Boolean hasDefinition(Property p) { + if (getDefinition(p) == null || getDefinition(p) == "") { + return false; + } + return true; + } + + /** + * Ritorna la definizione data della proprietà in input + * + * @author Vittorio Niespolo + * + * @param p property della quale si vuole conoscere la definizione + * @return + */ + public static String getDefinition(Property p) { + return StereotypeUtils.getStereotypeValue(p, StereotypeName.ATTRIBUTE, + StereotypePropertyName.DEFINITION); + } + + /** + * Ritorna il tipo assegnato in fase di modellazione della property in input + * + * @author Vittorio Niespolo + * + * @param p property della quale si vuole conoscere la definizione + * @return + */ + public static String getDataType(Property p) { + return StereotypeUtils.getStereotypeValue(p, StereotypeName.ATTRIBUTE, + StereotypePropertyName.DATA_TYPE); + } + + public static Boolean hasHelp(Property p) { + if (getHelp(p) == null || getHelp(p) == "") { + return false; + } + return true; + } + + public static String getHelp(Property p) { + return StereotypeUtils.getStereotypeValue(p, StereotypeName.ATTRIBUTE, + StereotypePropertyName.HELP); + } + + /** + * Return true if the property has set 0 or 1 as multiplicity + * + * @author Vittorio Niespolo + * @param property + * @return true if the property has set 0 or 1 as multiplicity + */ + public static boolean isNMultiplicity(Property property) { + if (property.getUpper() == -1) + return true; + return false; + } + + /** + * Return true if the property has set 0 or 1 as multiplicity + * + * @author Vittorio Niespolo + * @param property + * @return true if the property has set 0 or 1 as multiplicity + */ + public static boolean isZeroOneMultiplicity(Property property) { + if (property.getUpper() == 1 || property.getUpper() == 0) + return true; + return false; + } + + /** + * + * Return the column lenght + * + * @author Vittorio Niespolo + * @param attribute + * @return column lenght + */ + public static String getPhysicalColumnLenght(Property attribute) { + return StereotypeUtils.getStereotypeValue(attribute, StereotypeName.ATTRIBUTE, + StereotypePropertyName.PHYSICAL_LENGTH); + } + + /** + * + * Return the columnDefinition used from JPA to produce SQL for column + * + * @author Vittorio Niespolo + * @param attribute + * @return + */ + public static String getColumnDefinition(Property attribute, Class classe) { + String columnDefinition = ""; + String sqlLength = TypeUtils.getSqlLength(attribute); + String definition = getDefinition(attribute); + if (getDataType(attribute) == null || getDataType(attribute).trim().isEmpty()) { + columnDefinition = TypeUtils.getSqlType(attribute.getType()); + + if (sqlLength != null && !sqlLength.isEmpty()) { + columnDefinition += "("; + columnDefinition += sqlLength; + columnDefinition += ")"; + } +// if(attribute.isID() && EntityUtils.hasAutogeneratedId(classe)) { +// columnDefinition += " AUTO_INCREMENT"; +// } +// if (definition != null) +// columnDefinition += " COMMENT '" +// + StringUtils.encodeDDL(StringUtils.removeHtmlTags(getDefinition(attribute))) + "'"; + } else { + columnDefinition = getDataType(attribute); + } + return columnDefinition; + + } + + public static String getParentPropAssName(Property property, Class ownerClass, Association association) { + return property.getName() + + StringUtils.toUpperFirst(AssociationUtils.getParentAssName(association, ownerClass)); + } + + public static String getChildPropAssName(Property property, Class ownerClass, Association association) { + return property.getName() + StringUtils.toUpperFirst(AssociationUtils.getChildAssName(association, ownerClass)); + } + + public static boolean isDate(Property property) { + if (property.getType().getName().equals("Date")) + return true; + return false; + } + + /** + * Usually attribute name is given by it's name property but when attribute is + * derived from a parent entity, its name may be concatenated with Association + * name. + * + * + * + * @author Vittorio Niespolo + * + * @param property + * @param ownerClass + * @param association + * @param isParent + * @return + */ + public static String getAttributeName(Property property, Class ownerClass, Association association, + Boolean isParent) { + // Attributo interno + if (association == null) { + return property.getName(); + } else { + // Attributo derivato da classe padre + if (isParent) { + return property.getName() + + StringUtils.toUpperFirst(AssociationUtils.getParentAssName(association, ownerClass)); + // Attributo derivato da classe figlia + } else { + return property.getName() + + StringUtils.toUpperFirst(AssociationUtils.getChildAssName(association, ownerClass)); + } + } + } + + /** + * + * Return the column name + * + * @author Vittorio Niespolo + * @param attribute + * @return column name + */ + public static String getPhysicalColumnName(Property attribute) { + String result = StereotypeUtils.getStereotypeValue(attribute, StereotypeName.ATTRIBUTE, + StereotypePropertyName.PHYSICAL_COLUMN_NAME); + if (result == null || result.isBlank()) { + return StringUtils.camelToUnderscore(attribute.getName()); + } + return result; + + } + + /** + * Check if property is an id. + * + * @author Federico Gambardella + * @param property + * @return + */ + public static boolean isAnID(Property property) { + return property.isID(); + } + + /** + * + * @author Teresa Alomba + * @param length + * @return + */ + public static boolean hasPhysicalLengthGreaterThan(String length) { + if (length != null) { + try { + Integer value = Integer.parseInt(length); + if (value != null && value > MAX_INPUT_LENGTH) { + return true; + } + } catch (NumberFormatException ne) { + return false; + } + } + return false; + + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SecurityUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SecurityUtils.java new file mode 100644 index 0000000..7c015b1 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SecurityUtils.java @@ -0,0 +1,66 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import org.eclipse.uml2.uml.Class; + +public class SecurityUtils { + + /** + * Check if an entity has the securityUser's Role. This could be used to add + * specific features for the class. + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static boolean isInSecurityUserRole(Class classe) { + return EntityUtils.isInRole(classe, "securityUser"); + } + + /** + * Check if an entity has the privilegePerRole's Role. This could be used to add + * specific features for the class. + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static boolean isInPrivilegePerRoleRole(Class classe) { + return EntityUtils.isInRole(classe, "privilegePerRole"); + } + + /** + * Check if an entity has the role's Role. This could be used to add specific + * features for the class. + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static boolean isInRoleRole(Class classe) { + return EntityUtils.isInRole(classe, "role"); + } + + /** + * Check if an entity has the privilege's Role. This could be used to add + * specific features for the class. + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static boolean isInPrivilegeRole(Class classe) { + return EntityUtils.isInRole(classe, "privilege"); + } + + /** + * Check if an entity has the rolePerSecurityUser's Role. This could be used to + * add specific features for the class. + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static boolean isInRolePerSecurityUserRole(Class classe) { + return EntityUtils.isInRole(classe, "rolePerSecurityUser"); + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SeverityLevels.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SeverityLevels.java new file mode 100644 index 0000000..5c46285 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SeverityLevels.java @@ -0,0 +1,21 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +/** + * + * @author Jessica Pascarella + * @author Vittorio Niespolo + * + */ +public class SeverityLevels { + public static final String FATAL = "FATAL"; + + public static final String ERROR = "ERROR"; + + public static final String WARNING = "WARNING"; + + public static final String INFO = "INFO"; + + public static final String DEBUG = "DEBUG"; + + public static final String TRACE = "TRACE"; +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SpecificationFilterUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SpecificationFilterUtils.java new file mode 100644 index 0000000..b1e1154 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SpecificationFilterUtils.java @@ -0,0 +1,54 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.uml2.uml.Type; +/** + * + * This class mapped uml-type with name function generateSpecification + * + * @author Luca Barone + * + */ +public class SpecificationFilterUtils { + + private static final String DEFAULT_FILTER_GENERIC = "generateSpecification"; + private static final String DEFAULT_FILTER_RANGE = "generateRangeSpecification"; + private static final String DEFAULT_FILTER_STRING = "generateStringSpecification"; + + + private static Map MAP_DEFAULT_JAVA_TYPE = new HashMap<>(); + + + static { + MAP_DEFAULT_JAVA_TYPE.put("Datetime", DEFAULT_FILTER_RANGE); + MAP_DEFAULT_JAVA_TYPE.put("Date", DEFAULT_FILTER_RANGE); + MAP_DEFAULT_JAVA_TYPE.put("Integer", DEFAULT_FILTER_RANGE); + MAP_DEFAULT_JAVA_TYPE.put("Code", DEFAULT_FILTER_RANGE); + MAP_DEFAULT_JAVA_TYPE.put("Value", DEFAULT_FILTER_RANGE); + MAP_DEFAULT_JAVA_TYPE.put("Currency", DEFAULT_FILTER_RANGE); + MAP_DEFAULT_JAVA_TYPE.put("String", DEFAULT_FILTER_STRING); + MAP_DEFAULT_JAVA_TYPE.put("Boolean", DEFAULT_FILTER_GENERIC); + MAP_DEFAULT_JAVA_TYPE.put("Long", DEFAULT_FILTER_RANGE); + MAP_DEFAULT_JAVA_TYPE.put("Number", DEFAULT_FILTER_RANGE); + } + + /** + * get the name function generateSpecification based on the input type. + * + * @author Luca Barone + * @param type + * @return + */ + public String getSpecification(Type type) { + + String umlType = type.getName(); + String javaTypeName = MAP_DEFAULT_JAVA_TYPE.get(umlType); + if(javaTypeName == null) + // se non è presente nel Map consentimo un filter generico! + return DEFAULT_FILTER_GENERIC; + return javaTypeName; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypeName.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypeName.java new file mode 100644 index 0000000..5034d46 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypeName.java @@ -0,0 +1,52 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public class StereotypeName { + /** + * Stereotype name for ManyToOneRelation + */ + public static final String MANY_TO_ONE_RELATION = ProfileName.Voila2Profile + "::ManyToOneRelation"; + /** + * Stereotype name for OneToOneRelation + */ + public static final String ONE_TO_ONE_RELATION = ProfileName.Voila2Profile + "::OneToOneRelation"; + /** + * Stereotype name for Feature + */ + public static final String FEATURE = ProfileName.Voila2Profile + "::Feature"; + /** + * Stereotype name for GenericFeature + */ + public static final String GENERIC_FEATURE = ProfileName.Voila2Profile + "::GenericFeature"; + /** + * Stereotype name for EntitySpecificFeature + */ + public static final String ENTITY_SPECIFIC_FEATURE = ProfileName.Voila2Profile + "::EntitySpecificFeature"; + /** + * Stereotype name for Entity + */ + public static final String ENTITY = ProfileName.Voila2Profile + "::Entity"; + /** + * Stereotype name for attribute + */ + public static final String ATTRIBUTE = ProfileName.Voila2Profile + "::Attribute"; + /** + * Stereotype name for model + */ + public static final String MODEL = ProfileName.Voila2Profile + "::Model"; + /** + * Stereotype name for microservice + */ + public static final String MICROSERVICE = ProfileName.Voila2Profile +"::MicroService"; + /** + * Stereotype for gateway + */ + public static final String GATEWAY=ProfileName.Voila2Profile+"::Gateway"; + /** + * Stereotype for SPA + */ + public static final String SPA = ProfileName.Voila2Profile+"::SinglePageApp"; + /** + * Stereotype for Subject Area + */ + public static final String SUBJECT_AREA = ProfileName.Voila2Profile+"::SubjectArea"; +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypePropertyName.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypePropertyName.java new file mode 100644 index 0000000..da6bd0b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypePropertyName.java @@ -0,0 +1,109 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +public class StereotypePropertyName { + /** + * Stereotype property for identifying association (Primary key with Foreign + * key) + */ + public static final String IDENTIFYING = "identifying"; + /** + * Stereotype property for nameMapping + */ + public static final String NAME_MAPPING = "nameMapping"; + /** + * Stereotype property for sequence + */ + public static final String SEQUENCE_NAME = "sequenceName"; + /** + * Stereotype property for entities + */ + public static final String ENTITIES = "entities"; + /** + * Stereotype property for role + */ + public static final String ROLE = "role"; + /** + * Stereotype property for autogeneratedId + */ + public static final String AUTOID = "autoGeneratedId"; + /** + * Stereotype property for definition + */ + public static final String DEFINITION = "definition"; + /** + * Stereotype property for definition + */ + public static final String LABEL = "label"; + /** + * Stereotype property for help + */ + public static final String HELP = "help"; + /** + * Stereotype property for auditable + */ + public static final String AUDITABLE = "auditable"; + /** + * Stereotype property for category + */ + public static final String CATEGORY = "category"; + + /** + * Stereotype property for child management by master + */ + public static final String CHILD_MANAGEMENT = "childManagement"; + + /** + * Stereotype property for physicalColumnName + */ + public static final String PHYSICAL_COLUMN_NAME = "physicalColumnName"; + /** + * Stereotype property for physicalColumnName + */ + public static final String PHYSICAL_LENGTH = "physicalLength"; + /** + * Stereotype property for isRequired + */ + public static final String IS_REQUIRED = "isRequired"; + + /** + * Stereotype property for child management by master + */ + public static final String IS_READONLY = "readOnly"; + /** + * Stereotype property for general model + */ + public static final String GENERAL_MODEL = "generalModel"; + /** + * Stereotype property for ms port number + */ + public static final String PORT_NUMBER = "portNumber"; + /** + * Stereotype property for ms port number + */ + public static final String URL = "url"; + /** + * Stereotype property for parent selection + */ + public static final String PARENT_SELECTION = "parentSelection"; + /** + * Stereotype property for physical data type + */ + public static final String DATA_TYPE = "dataType"; + /** + * Stereotype property for Microservice ID + */ + public static final String ID = "id"; + /** + * Stereotype property for Microservice Persistence Type + */ + public static final String PERSISTENCE_TYPE = "persistenceType"; + /** + * Stereotype property for physical table name + */ + public static final String TABLE_NAME = "tableName"; + /** + * Stereotype property for physical name mapping for column made by associations + */ + public static final String PHYSICAL_NAME_MAPPING = "physicalNameMapping"; + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypeUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypeUtils.java new file mode 100644 index 0000000..5cf56c3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StereotypeUtils.java @@ -0,0 +1,18 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.Element; + +public class StereotypeUtils { + + public static T getStereotypeValue(Y umlElem, String stereotypeName, String stereotypeProperty) + { + Stereotype stereotype = umlElem.getAppliedStereotype(stereotypeName); + if (stereotype != null) { + @SuppressWarnings("unchecked") + T value = (T)umlElem.getValue(stereotype, stereotypeProperty); + return value; + } + return null; + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StringUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StringUtils.java new file mode 100644 index 0000000..cec4970 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/StringUtils.java @@ -0,0 +1,162 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import it.micegroup.voila2.cartridge.library.formatters.PrettierFormatter; +import it.micegroup.voila2.cartridge.library.formatters.SimpleXmlFormatterPostProcessor; + +public class StringUtils { + private JavaBeautifier javaFormatter; + private SimpleXmlFormatterPostProcessor xmlFormatter; + private PrettierFormatter prettierFormatter; + + public StringUtils() { + super(); + + javaFormatter = new JavaBeautifier(); + xmlFormatter = new SimpleXmlFormatterPostProcessor(); + prettierFormatter = new PrettierFormatter(); + } + + /** + * Take a string in input returning it in lowercase and with an underscore for + * each camel case + * + * @author Vittorio Niespolo + * @param input + * @return Underscored version of input string + * + */ + public static String camelToUnderscore(String input) { + if (input == null) { + return ""; + } + String regex = "([a-z])([A-Z]+)"; + String replacement = "$1_$2"; + String result = input.replaceAll(regex, replacement);//.toLowerCase(); + return result; + } + + /** + * Take a string in input returning it in lowercase and with a dash for each + * camel case + * + * @param input + * @return Dashed version of input string + * @author Vittorio Niespolo + */ + public String camelToDash(String input) { + if (input == null) { + return ""; + } + String regex = "([a-z])([A-Z]+)"; + String replacement = "$1-$2"; + String result = input.replaceAll(regex, replacement).toLowerCase(); + return result; + } + + /** + * Method to convert a dash string into camelCase + * + * @author Simone Punzo + * @param value + * @return + */ + + public static String dashToCamelCase(String value) { + StringBuilder sb = new StringBuilder(value.length()); + boolean upper = false; + + for (char c : value.toCharArray()) { + if (c == '-') { + upper = true; + continue; + } + if (upper) { + sb.append(Character.toUpperCase(c)); + } else { + sb.append(c); + } + upper = false; + } + return sb.toString(); + } + + /** + * Take a string in input returning it splitted and capitalized camel case + * + * @param input + * @return + */ + public static String splitCamel(String input) { + if (input == null) { + return ""; + } + String regex = "([a-z])([A-Z]+)"; + String replacement = "$1 $2"; + String result = input.replaceAll(regex, replacement); + + result = result.substring(0, 1).toUpperCase() + result.substring(1); + return result; + } + + /** + * Take code in input and return it formatted using eclipse javaFormatter. This + * method can be extended adding a parameter to choose CodeFormatter. + * + * @author Vittorio Niespolo + * @param input + * @return formattedOutput + */ + public String formatter(String input, String fileName) { + String formattedOutput = input; + if (fileName != null) { + if (fileName.endsWith(".java")) { + formattedOutput = javaFormatter.format(input); + } else if (fileName.endsWith(".ts")) { + // formattedOutput = prettierFormatter.format(input, fileName); + } else if (fileName.endsWith(".xml")) { + formattedOutput = xmlFormatter.format(input); + } + } + return formattedOutput; + } + + /** + * Return the string with first letter capitalized + * + * @author Vittorio Niespolo + * @param value + * @return + */ + public static String toUpperFirst(String value) { + // Convert String to char array. + char[] array = value.toCharArray(); + if (array == null || array.length == 0) { + return ""; + } + // Modify first element in array. + array[0] = Character.toUpperCase(array[0]); + // Return string. + return new String(array); + } + + public static String encodeDDL(String value) { + return value.replaceAll("'", "''").replaceAll(""", "''"); + } + + public static String removeHtmlTags(String value) { + return value.replaceAll("

", "").replaceAll("

", ""); + } + + /** + * Return a number formatted on N digits + * + * @param value number to format + * @param numberOfDigits number o digits + * @return + */ + public static String getFormattedNumber(Integer value, Integer numberOfDigits) { + return String.format("%0" + numberOfDigits + "d", value); + } + + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SubjectAreaUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SubjectAreaUtils.java new file mode 100644 index 0000000..09d323c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/SubjectAreaUtils.java @@ -0,0 +1,43 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.ArrayList; +import java.util.Collection; +import org.eclipse.uml2.uml.Package; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.Class; + +public class SubjectAreaUtils { + + /** + * Ritorna la lista delle entity relative a una Subject Area + * + * @author Vittorio Niespolo + * + * @param subjectArea + * @return + */ + public static Collection getEntitiesForSA(Package subjectArea) { + Collection result = new ArrayList(); + for (PackageableElement element : subjectArea.getPackagedElements()) { + if (element instanceof Class && EntityUtils.isEntityStereotype((Class) element)) { + result.add((Class) element); + } + } + return result; + } + + /** + * Controlla se il package è una subjectArea + * @author Vittorio Niespolo + * + * @param pack + * @return + */ + public static boolean isSubjectAreaStereotype(Package pack) { + Stereotype stereotype = pack.getAppliedStereotype(StereotypeName.SUBJECT_AREA); + if (stereotype != null) + return true; + return false; + } +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/TypeUtils.java b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/TypeUtils.java new file mode 100644 index 0000000..60e543d --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/TypeUtils.java @@ -0,0 +1,538 @@ +package it.micegroup.voila2.cartridge.library.javaservice; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; + +import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.Type; + +/** + * + * @author Vittorio Niespolo + * @autohr Luca Barone + * @author Fabio Memoli + */ +public class TypeUtils { + // MODEL + private static final String LONG = "Long"; + private static final String CODE = "Code"; + private static final String FLAG = "Flag"; + private static final String VALUE = "Value"; + private static final String NUMBER = "Number"; + private static final String STRING = "String"; + private static final String INTEGER = "Integer"; + private static final String BOOLEAN = "Boolean"; + private static final String DATE = "Date"; + private static final String DATETIME = "Datetime"; + private static final String CURRENCY = "Currency"; + private static final String BLOB = "Blob"; + private static final String LOB = "Lob"; + private static final String CLOB = "Clob"; + + // JAVA + private static final String DEFAULT_JAVATYPE_FOR_DATE = "Date"; + private static final String DEFAULT_JAVATYPE_FOR_DATETIME = "LocalDateTime"; + private static final String DEFAULT_JAVATYPE_FOR_NUMBER = "Integer"; + private static final String DEFAULT_JAVATYPE_FOR_CODE = "Integer"; + private static final String DEFAULT_JAVATYPE_FOR_VALUE = "BigDecimal"; + private static final String DEFAULT_JAVATYPE_FOR_CURRENCY = "BigDecimal"; + private static final String DEFAULT_JAVATYPE_FOR_STRING = "String"; + private static final String DEFAULT_JAVATYPE_FOR_BOOLEAN = "Boolean"; + private static final String DEFAULT_JAVATYPE_FOR_LONG = "Long"; + private static final String DEFAULT_JAVATYPE_FOR_BLOB = "byte[]"; + private static final String DEFAULT_JAVATYPE_FOR_LOB = "String"; + private static final String DEFAULT_JAVATYPE_FOR_CLOB = "String"; + + // SQL + private static final String DEFAULT_SQLTYPE_FOR_DATE = "DATE"; + private static final String DEFAULT_SQLTYPE_FOR_DATETIME = "DATETIME"; + private static final String DEFAULT_SQLTYPE_FOR_NUMBER = "INTEGER"; + private static final String DEFAULT_SQLTYPE_FOR_CODE = "INTEGER"; + private static final String DEFAULT_SQLTYPE_FOR_VALUE = "NUMERIC"; + private static final String DEFAULT_SQLTYPE_FOR_CURRENCY = "NUMERIC"; + private static final String DEFAULT_SQLTYPE_FOR_STRING = "VARCHAR"; + private static final String DEFAULT_SQLTYPE_FOR_BOOLEAN = "BOOLEAN"; + private static final String DEFAULT_SQLTYPE_FOR_LONG = "NUMBER"; + private static final String DEFAULT_SQLTYPE_FOR_BLOB = "BLOB"; + private static final String DEFAULT_SQLTYPE_FOR_LOB = "LONGTEXT"; + private static final String DEFAULT_SQLTYPE_FOR_CLOB = "LONGTEXT"; + + // SQL + private static final String DEFAULT_SQLLENGTH_FOR_DATETIME = ""; + private static final String DEFAULT_SQLLENGTH_FOR_DATE = ""; + private static final String DEFAULT_SQLLENGTH_FOR_NUMBER = "11"; + private static final String DEFAULT_SQLLENGTH_FOR_CODE = ""; + private static final String DEFAULT_SQLLENGTH_FOR_VALUE = "12,2"; + private static final String DEFAULT_SQLLENGTH_FOR_CURRENCY = "14,2"; + private static final String DEFAULT_SQLLENGTH_FOR_STRING = "80"; + private static final String DEFAULT_SQLLENGTH_FOR_BOOLEAN = ""; + private static final String DEFAULT_SQLLENGTH_FOR_LONG = "15"; + private static final String DEFAULT_SQLLENGTH_FOR_BLOB = ""; + private static final String DEFAULT_SQLLENGTH_FOR_LOB = ""; + private static final String DEFAULT_SQLLENGTH_FOR_CLOB = ""; + + // ANGULAR + private static final String DEFAULT_ANGULARTYPE_FOR_DATETIME = "Date"; + private static final String DEFAULT_ANGULARTYPE_FOR_DATE = "Date"; + private static final String DEFAULT_ANGULARTYPE_FOR_NUMBER = "number"; + private static final String DEFAULT_ANGULARTYPE_FOR_CODE = "number"; + private static final String DEFAULT_ANGULARTYPE_FOR_VALUE = "number"; + private static final String DEFAULT_ANGULARTYPE_FOR_CURRENCY = "number"; + private static final String DEFAULT_ANGULARTYPE_FOR_STRING = "string"; + private static final String DEFAULT_ANGULARTYPE_FOR_BOOLEAN = "boolean"; + private static final String DEFAULT_ANGULARTYPE_FOR_LONG = "number"; + + // FILTER + private static final String DEFAULT_FILTER_TYPE_FOR_DATETIME = "LocalDateTimeFilter"; + private static final String DEFAULT_FILTER_TYPE_FOR_DATE = "LocalDateFilter"; + private static final String DEFAULT_FILTER_TYPE_FOR_NUMBER = "IntegerFilter"; + private static final String DEFAULT_FILTER_TYPE_FOR_CODE = "IntegerFilter"; + private static final String DEFAULT_FILTER_TYPE_FOR_VALUE = "BigDecimalFilter"; + private static final String DEFAULT_FILTER_TYPE_FOR_CURRENCY = "BigDecimalFilter"; + private static final String DEFAULT_FILTER_TYPE_FOR_STRING = "StringFilter"; + private static final String DEFAULT_FILTER_TYPE_FOR_BOOLEAN = "BooleanFilter"; + private static final String DEFAULT_FILTER_TYPE_FOR_LONG = "LongFilter"; + + // REPORT + private static final String DEFAULT_REPORT_TYPE_FOR_LONG = "java.lang.Long"; + private static final String DEFAULT_REPORT_TYPE_FOR_CODE = "java.lang.Integer"; + private static final String DEFAULT_REPORT_TYPE_FOR_FLAG = "java.lang.Boolean"; + private static final String DEFAULT_REPORT_TYPE_FOR_VALUE = "java.math.BigDecimal"; + private static final String DEFAULT_REPORT_TYPE_FOR_NUMBER = "java.lang.Integer"; + private static final String DEFAULT_REPORT_TYPE_FOR_STRING = "java.lang.String"; + private static final String DEFAULT_REPORT_TYPE_FOR_INTEGER = "java.lang.Integer"; + private static final String DEFAULT_REPORT_TYPE_FOR_BOOLEAN = "java.lang.Boolean"; + private static final String DEFAULT_REPORT_TYPE_FOR_DATE = "java.time.LocalDate"; + private static final String DEFAULT_REPORT_TYPE_FOR_DATETIME = "java.time.LocalDateTime"; + private static final String DEFAULT_REPORT_TYPE_FOR_CURRENCY = "java.math.BigDecimal"; + + private static final String DEFAULT_FIELDTYPE_FOR_DATE = "FieldType.DATE_TIME"; + private static final String DEFAULT_FIELDTYPE_FOR_DATETIME = "FieldType.DATE_TIME"; + private static final String DEFAULT_FIELDTYPE_FOR_NUMBER = "FieldType.INT32"; + private static final String DEFAULT_FIELDTYPE_FOR_CODE = "FieldType.INT32"; + private static final String DEFAULT_FIELDTYPE_FOR_VALUE = "FieldType.DOUBLE"; + private static final String DEFAULT_FIELDTYPE_FOR_CURRENCY = "FieldType.DOUBLE"; + private static final String DEFAULT_FIELDTYPE_FOR_STRING = "FieldType.STRING"; + private static final String DEFAULT_FIELDTYPE_FOR_BOOLEAN = "FieldType.BOOLEAN"; + private static final String DEFAULT_FIELDTYPE_FOR_LONG = "Long"; + private static final String DEFAULT_FIELDTYPE_FOR_BLOB = "byte[]"; + private static final String DEFAULT_FIELDTYPE_FOR_LOB = "FieldType.STRING"; + private static final String DEFAULT_FIELDTYPE_FOR_CLOB = "FieldType.STRING"; + + // MAP + private static Map MAP_DEFAULT_JAVA_TYPE = new HashMap<>(); + private static Map MAP_DEFAULT_ANGULAR_TYPE = new HashMap<>(); + private static Map MAP_DEFAULT_FILTER_TYPE = new HashMap<>(); + private static Map MAP_DEFAULT_SQL_TYPE = new HashMap<>(); + private static Map MAP_DEFAULT_SQL_LENGTH = new HashMap<>(); + private static Map MAP_DEFAULT_REPORT_TYPE = new HashMap<>(); + private static Map MAP_DEFAULT_FIELD_TYPE = new HashMap<>(); + private static Collection NOT_FILTRABLE_TYPES = new ArrayList<>(); + + static { + MAP_DEFAULT_JAVA_TYPE.put(LONG, DEFAULT_JAVATYPE_FOR_LONG); + MAP_DEFAULT_JAVA_TYPE.put(CODE, DEFAULT_JAVATYPE_FOR_CODE); + MAP_DEFAULT_JAVA_TYPE.put(FLAG, DEFAULT_JAVATYPE_FOR_BOOLEAN); + MAP_DEFAULT_JAVA_TYPE.put(VALUE, DEFAULT_JAVATYPE_FOR_VALUE); + MAP_DEFAULT_JAVA_TYPE.put(NUMBER, DEFAULT_JAVATYPE_FOR_NUMBER); + MAP_DEFAULT_JAVA_TYPE.put(STRING, DEFAULT_JAVATYPE_FOR_STRING); + MAP_DEFAULT_JAVA_TYPE.put(INTEGER, DEFAULT_JAVATYPE_FOR_NUMBER); + MAP_DEFAULT_JAVA_TYPE.put(BOOLEAN, DEFAULT_JAVATYPE_FOR_BOOLEAN); + MAP_DEFAULT_JAVA_TYPE.put(CURRENCY, DEFAULT_JAVATYPE_FOR_CURRENCY); + MAP_DEFAULT_JAVA_TYPE.put(DATETIME, DEFAULT_JAVATYPE_FOR_DATETIME); + MAP_DEFAULT_JAVA_TYPE.put(DATE, DEFAULT_JAVATYPE_FOR_DATE); + MAP_DEFAULT_JAVA_TYPE.put(BLOB, DEFAULT_JAVATYPE_FOR_BLOB); + MAP_DEFAULT_JAVA_TYPE.put(LOB, DEFAULT_JAVATYPE_FOR_LOB); + MAP_DEFAULT_JAVA_TYPE.put(CLOB, DEFAULT_JAVATYPE_FOR_CLOB); + } + + static { + MAP_DEFAULT_ANGULAR_TYPE.put(DATETIME, DEFAULT_ANGULARTYPE_FOR_DATETIME); + MAP_DEFAULT_ANGULAR_TYPE.put(DATE, DEFAULT_ANGULARTYPE_FOR_DATE); + MAP_DEFAULT_ANGULAR_TYPE.put(NUMBER, DEFAULT_ANGULARTYPE_FOR_NUMBER); + MAP_DEFAULT_ANGULAR_TYPE.put(INTEGER, DEFAULT_ANGULARTYPE_FOR_NUMBER); + MAP_DEFAULT_ANGULAR_TYPE.put(CODE, DEFAULT_ANGULARTYPE_FOR_CODE); + MAP_DEFAULT_ANGULAR_TYPE.put(VALUE, DEFAULT_ANGULARTYPE_FOR_VALUE); + MAP_DEFAULT_ANGULAR_TYPE.put(CURRENCY, DEFAULT_ANGULARTYPE_FOR_CURRENCY); + MAP_DEFAULT_ANGULAR_TYPE.put(STRING, DEFAULT_ANGULARTYPE_FOR_STRING); + MAP_DEFAULT_ANGULAR_TYPE.put(BOOLEAN, DEFAULT_ANGULARTYPE_FOR_BOOLEAN); + MAP_DEFAULT_ANGULAR_TYPE.put(LONG, DEFAULT_ANGULARTYPE_FOR_LONG); + MAP_DEFAULT_ANGULAR_TYPE.put(FLAG, DEFAULT_ANGULARTYPE_FOR_BOOLEAN); + } + + static { + MAP_DEFAULT_FILTER_TYPE.put(DATETIME, DEFAULT_FILTER_TYPE_FOR_DATETIME); + MAP_DEFAULT_FILTER_TYPE.put(DATE, DEFAULT_FILTER_TYPE_FOR_DATE); + MAP_DEFAULT_FILTER_TYPE.put(NUMBER, DEFAULT_FILTER_TYPE_FOR_NUMBER); + MAP_DEFAULT_FILTER_TYPE.put(INTEGER, DEFAULT_FILTER_TYPE_FOR_NUMBER); + MAP_DEFAULT_FILTER_TYPE.put(CODE, DEFAULT_FILTER_TYPE_FOR_CODE); + MAP_DEFAULT_FILTER_TYPE.put(VALUE, DEFAULT_FILTER_TYPE_FOR_VALUE); + MAP_DEFAULT_FILTER_TYPE.put(CURRENCY, DEFAULT_FILTER_TYPE_FOR_CURRENCY); + MAP_DEFAULT_FILTER_TYPE.put(STRING, DEFAULT_FILTER_TYPE_FOR_STRING); + MAP_DEFAULT_FILTER_TYPE.put(BOOLEAN, DEFAULT_FILTER_TYPE_FOR_BOOLEAN); + MAP_DEFAULT_FILTER_TYPE.put(LONG, DEFAULT_FILTER_TYPE_FOR_LONG); + MAP_DEFAULT_FILTER_TYPE.put(FLAG, DEFAULT_FILTER_TYPE_FOR_BOOLEAN); + } + + static { + MAP_DEFAULT_SQL_TYPE.put(DATETIME, DEFAULT_SQLTYPE_FOR_DATETIME); + MAP_DEFAULT_SQL_TYPE.put(DATE, DEFAULT_SQLTYPE_FOR_DATE); + MAP_DEFAULT_SQL_TYPE.put(NUMBER, DEFAULT_SQLTYPE_FOR_NUMBER); + MAP_DEFAULT_SQL_TYPE.put(INTEGER, DEFAULT_SQLTYPE_FOR_NUMBER); + MAP_DEFAULT_SQL_TYPE.put(CODE, DEFAULT_SQLTYPE_FOR_CODE); + MAP_DEFAULT_SQL_TYPE.put(VALUE, DEFAULT_SQLTYPE_FOR_VALUE); + MAP_DEFAULT_SQL_TYPE.put(CURRENCY, DEFAULT_SQLTYPE_FOR_CURRENCY); + MAP_DEFAULT_SQL_TYPE.put(STRING, DEFAULT_SQLTYPE_FOR_STRING); + MAP_DEFAULT_SQL_TYPE.put(BOOLEAN, DEFAULT_SQLTYPE_FOR_BOOLEAN); + MAP_DEFAULT_SQL_TYPE.put(LONG, DEFAULT_SQLTYPE_FOR_LONG); + MAP_DEFAULT_SQL_TYPE.put(FLAG, DEFAULT_SQLTYPE_FOR_BOOLEAN); + MAP_DEFAULT_SQL_TYPE.put(LOB, DEFAULT_SQLTYPE_FOR_LOB); + MAP_DEFAULT_SQL_TYPE.put(BLOB, DEFAULT_SQLTYPE_FOR_BLOB); + MAP_DEFAULT_SQL_TYPE.put(CLOB, DEFAULT_SQLTYPE_FOR_CLOB); + } + + static { + MAP_DEFAULT_SQL_LENGTH.put(DATETIME, DEFAULT_SQLLENGTH_FOR_DATETIME); + MAP_DEFAULT_SQL_LENGTH.put(DATE, DEFAULT_SQLLENGTH_FOR_DATE); + MAP_DEFAULT_SQL_LENGTH.put(NUMBER, DEFAULT_SQLLENGTH_FOR_NUMBER); + MAP_DEFAULT_SQL_LENGTH.put(INTEGER, DEFAULT_SQLLENGTH_FOR_NUMBER); + MAP_DEFAULT_SQL_LENGTH.put(CODE, DEFAULT_SQLLENGTH_FOR_CODE); + MAP_DEFAULT_SQL_LENGTH.put(VALUE, DEFAULT_SQLLENGTH_FOR_VALUE); + MAP_DEFAULT_SQL_LENGTH.put(CURRENCY, DEFAULT_SQLLENGTH_FOR_CURRENCY); + MAP_DEFAULT_SQL_LENGTH.put(STRING, DEFAULT_SQLLENGTH_FOR_STRING); + MAP_DEFAULT_SQL_LENGTH.put(BOOLEAN, DEFAULT_SQLLENGTH_FOR_BOOLEAN); + MAP_DEFAULT_SQL_LENGTH.put(LONG, DEFAULT_SQLLENGTH_FOR_LONG); + MAP_DEFAULT_SQL_LENGTH.put(FLAG, DEFAULT_SQLLENGTH_FOR_BOOLEAN); + MAP_DEFAULT_SQL_LENGTH.put(LOB, DEFAULT_SQLLENGTH_FOR_LOB); + MAP_DEFAULT_SQL_LENGTH.put(BLOB, DEFAULT_SQLLENGTH_FOR_BLOB); + MAP_DEFAULT_SQL_LENGTH.put(CLOB, DEFAULT_SQLLENGTH_FOR_CLOB); + } + + static { + MAP_DEFAULT_REPORT_TYPE.put(LONG, DEFAULT_REPORT_TYPE_FOR_LONG); + MAP_DEFAULT_REPORT_TYPE.put(CODE, DEFAULT_REPORT_TYPE_FOR_CODE); + MAP_DEFAULT_REPORT_TYPE.put(FLAG, DEFAULT_REPORT_TYPE_FOR_FLAG); + MAP_DEFAULT_REPORT_TYPE.put(VALUE, DEFAULT_REPORT_TYPE_FOR_VALUE); + MAP_DEFAULT_REPORT_TYPE.put(NUMBER, DEFAULT_REPORT_TYPE_FOR_NUMBER); + MAP_DEFAULT_REPORT_TYPE.put(STRING, DEFAULT_REPORT_TYPE_FOR_STRING); + MAP_DEFAULT_REPORT_TYPE.put(INTEGER, DEFAULT_REPORT_TYPE_FOR_INTEGER); + MAP_DEFAULT_REPORT_TYPE.put(BOOLEAN, DEFAULT_REPORT_TYPE_FOR_BOOLEAN); + MAP_DEFAULT_REPORT_TYPE.put(CURRENCY, DEFAULT_REPORT_TYPE_FOR_CURRENCY); + MAP_DEFAULT_REPORT_TYPE.put(DATETIME, DEFAULT_REPORT_TYPE_FOR_DATETIME); + MAP_DEFAULT_REPORT_TYPE.put(DATE, DEFAULT_REPORT_TYPE_FOR_DATE); + } + + static { + MAP_DEFAULT_FIELD_TYPE.put(LONG, DEFAULT_FIELDTYPE_FOR_LONG); + MAP_DEFAULT_FIELD_TYPE.put(CODE, DEFAULT_FIELDTYPE_FOR_CODE); + MAP_DEFAULT_FIELD_TYPE.put(FLAG, DEFAULT_FIELDTYPE_FOR_BOOLEAN); + MAP_DEFAULT_FIELD_TYPE.put(VALUE, DEFAULT_FIELDTYPE_FOR_VALUE); + MAP_DEFAULT_FIELD_TYPE.put(NUMBER, DEFAULT_FIELDTYPE_FOR_NUMBER); + MAP_DEFAULT_FIELD_TYPE.put(STRING, DEFAULT_FIELDTYPE_FOR_STRING); + MAP_DEFAULT_FIELD_TYPE.put(INTEGER, DEFAULT_FIELDTYPE_FOR_NUMBER); + MAP_DEFAULT_FIELD_TYPE.put(BOOLEAN, DEFAULT_FIELDTYPE_FOR_BOOLEAN); + MAP_DEFAULT_FIELD_TYPE.put(CURRENCY, DEFAULT_FIELDTYPE_FOR_CURRENCY); + MAP_DEFAULT_FIELD_TYPE.put(DATETIME, DEFAULT_FIELDTYPE_FOR_DATETIME); + MAP_DEFAULT_FIELD_TYPE.put(DATE, DEFAULT_FIELDTYPE_FOR_DATE); + MAP_DEFAULT_FIELD_TYPE.put(BLOB, DEFAULT_FIELDTYPE_FOR_BLOB); + MAP_DEFAULT_FIELD_TYPE.put(LOB, DEFAULT_FIELDTYPE_FOR_LOB); + MAP_DEFAULT_FIELD_TYPE.put(CLOB, DEFAULT_FIELDTYPE_FOR_CLOB); + } + + static { + NOT_FILTRABLE_TYPES.add(LOB); + NOT_FILTRABLE_TYPES.add(CLOB); + NOT_FILTRABLE_TYPES.add(BLOB); + } + + /** + * Return mapped java type from umlType + * + * @author Vittorio Niespolo + * @param type + * @return + */ + public static String getJavaType(Type type) { + String umlType = type.getName(); + String javaTypeName = MAP_DEFAULT_JAVA_TYPE.get(umlType); + if (javaTypeName == null) + return umlType; + return javaTypeName; + } + + /** + * Return mapped angular type from umlType + * + * @author Vittorio Niespolo + * @param type + * @return + */ + public static String getAngularType(Type type) { + String umlType = type.getName(); + String angularTypeName = MAP_DEFAULT_ANGULAR_TYPE.get(umlType); + if (angularTypeName == null) + return umlType; + return angularTypeName; + } + + /** + * Return mapped filter type from umlType + * + * @author Vittorio Niespolo + * @param type + * @return + */ + public static String getFilterType(Type type) { + String umlType = type.getName(); + String filterTypeName = MAP_DEFAULT_FILTER_TYPE.get(umlType); + if (filterTypeName == null) + return umlType; + return filterTypeName; + } + + /** + * Return the Filter properties based on property type + * + * @author Vittorio Niespolo + * @param classe + * @return the Filter properties based on property type + */ + public String getFilterProperties(Class classe) { + if (classe == null) { + return "false"; + } + String result = ""; + for (Property p : classe.getOwnedAttributes()) { + result += "private " + getJavaType(p.getType()) + "Filter " + p.getName() + ";\n"; + } + return result; + } + + /** + * Method to generate filter imports for Criteria + * + * @author Vittorio Niespolo + * @param classe + * @return String containing filter import list + */ + public String getFilterImportsFromTypes(Class classe, String filterTypePackage) { + if (classe == null) { + return "false"; + } + String result = ""; + Set attributiSet = new HashSet<>(); + for (Property p : classe.getOwnedAttributes()) { + attributiSet.add(getJavaType(p.getType())); + } + for (Class fClass : AssociationUtils.getParentClasses(classe)) { + if (!EntityUtils.hasCompositeKey(fClass)) { + for (Property p : fClass.getAllAttributes()) { + if (p.isID()) { + attributiSet.add(getJavaType(p.getType())); + } + } + } else { + attributiSet.add(""); + } + } + for (String att : attributiSet) { + // For unconventional Filters use this method + + /* + * if ("BigDecimal".equals(att)) { result += + * "import it.mice.samplemasterdetail.filter.BigDecimalFilter;\n"; } else if + * ("BigDecimal".equals(att)) { result += + * "import it.mice.samplemasterdetail.filter.StringFilter;\n"; + */ + result += "import " + filterTypePackage + "." + att + "Filter;\n"; + } + return result; + } + + /** + * Returns "true" if the input type is present in the mapping + * + * @author Luca Barone + * @param type + * @return + */ + public boolean isPresentJavaType(String type) { + String javaTypeName = MAP_DEFAULT_JAVA_TYPE.get(type); + if (javaTypeName == null) + return false; + return true; + } + + /** + * Return a Set of imports for the properties used + * + * @author Vittorio Niespolo + * @param classe + * @return a Set of imports for the properties used + */ + public Set getImportsForProperty(Class classe) { + Set imports = new HashSet<>(); + for (Property property : classe.getOwnedAttributes()) { + if (("BigDecimal").equals(getJavaType(property.getType()))) + imports.add("import java.math.BigDecimal;"); + if (("LocalDate").equals(getJavaType(property.getType()))) + imports.add("import java.time.LocalDate;"); + if (("LocalDateTime").equals(getJavaType(property.getType()))) + imports.add("import java.time.LocalDateTime;\n import com.fasterxml.jackson.annotation.JsonFormat;"); + if (("Date").equals(getJavaType(property.getType()))) + imports.add("import java.util.Date;"); + if (PropertyUtils.isRequired(property)) + imports.add("import javax.validation.constraints.NotNull;"); + } + return imports; + } + + /** + * Return the collection of class attribute without duplicates + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static Collection getAttributeTypesNoDuplicates(Class classe) { + LinkedHashSet hashSet = new LinkedHashSet<>(); + for (Property property : EntityUtils.getIdAttributesFromForeignKeys(classe)) { + hashSet.add(property.getType()); + } + + for (Property property : classe.getOwnedAttributes()) { + hashSet.add(property.getType()); + } + return new ArrayList(hashSet); + } + + /** + * Return the collection of class attribute java type without duplicates + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static Collection getAttributeJavaTypesNoDuplicates(Collection attributi) { + LinkedHashSet hashSet = new LinkedHashSet<>(); + + for (Property property : attributi) { + hashSet.add(getFilterType(property.getType())); + } + return new ArrayList(hashSet); + } + + /** + * Return the collection of class attribute java type without duplicates + * + * @author Vittorio Niespolo + * @param classe + * @return + */ + public static Collection getAttributeAngularTypesNoDuplicates(Collection attributi) { + LinkedHashSet hashSet = new LinkedHashSet<>(); + for (Property property : attributi) { + hashSet.add(getFilterType(property.getType())); + } + return new ArrayList(hashSet); + } + + /** + * Return mapped sql type from umlType + * + * @author Vittorio Niespolo + * @param type + * @return + */ + public static String getSqlType(Type type) { + String umlType = type.getName(); + String sqlTypeName = MAP_DEFAULT_SQL_TYPE.get(umlType); + if (sqlTypeName == null) + return umlType; + return sqlTypeName; + } + + /** + * Return mapped sql type from umlType + * + * @author Vittorio Niespolo + * @param type + * @return + */ + public static String getSqlLength(Property property) { + String umlType = property.getType().getName(); + String sqlTypeLength = MAP_DEFAULT_SQL_LENGTH.get(umlType); + String attributeLength = StereotypeUtils.getStereotypeValue(property, + StereotypeName.ATTRIBUTE, StereotypePropertyName.PHYSICAL_LENGTH); + if (attributeLength != null && !attributeLength.isEmpty()) + sqlTypeLength = attributeLength; + if (sqlTypeLength == null) + return umlType; + return sqlTypeLength; + } + + /** + * Return report type from UML type. + * + * @author Fabio Memoli + * @param type of UML + * @return type of report + */ + public static String getReportType(Type umlType) { + String reportType = MAP_DEFAULT_REPORT_TYPE.get(umlType.getName()); + return (reportType == null) ? umlType.getName() : reportType; + } + + /** + * return a set of imports for class specific dto + * + * @author Simone Punzo + * @param classe + * @return required java imports + */ + public Set getImportsForPropertyDto(Class classe) { + Set imports = new HashSet<>(); + for (Property property : classe.getOwnedAttributes()) { + if (("BigDecimal").equals(getJavaType(property.getType()))) + imports.add("import java.math.BigDecimal;"); + if (("LocalDate").equals(getJavaType(property.getType()))) + imports.add("import java.time.LocalDate;"); + if (("LocalDateTime").equals(getJavaType(property.getType()))) + imports.add("import java.time.LocalDateTime;"); + } + return imports; + } + + /** + * Ritorna la lista dei tipi non filtrabili nelle ricerche + * + * @author Vittorio Niespolo + * + * @return + */ + public static Collection getNotFiltrableTypes() { + return NOT_FILTRABLE_TYPES; + } + + /** + * Return mapped field type from umlType + * + * @author Vittorio Niespolo + * @param type + * @return + */ + public static String getFieldType(Type type) { + String umlType = type.getName(); + String fieldTypeName = MAP_DEFAULT_FIELD_TYPE.get(umlType); + if (fieldTypeName == null) + return umlType; + return fieldTypeName; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/associationUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/associationUtils.mtl new file mode 100644 index 0000000..8b0e69f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/associationUtils.mtl @@ -0,0 +1,210 @@ +[comment encoding = Cp1252 /] +[module associationUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public isOneToOneRelation(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isOneToOneRelation(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public isManyToOneRelation(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isManyToOneRelation(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public isSelfRelation(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isSelfRelation(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public isBothOptional(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isBothOptional(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public getOptionalMember(arg0 : Association) : Class + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getOptionalMember(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public getSelfOptionalMember(arg0 : Association) : Property + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getSelfOptionalMember(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public hasOptionalMember(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasOptionalMember(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public isFirstMapped(arg0 : Class, arg1 : Association, arg2 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isFirstMapped(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1, arg2}) +/] + +[query public isOptionalMember(arg0 : Class, arg1 : Association, arg2 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isOptionalMember(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1, arg2}) +/] + +[query public getFirstMapped(arg0 : Association) : Class + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getFirstMapped(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public getSelfFirstMapped(arg0 : Association) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getSelfFirstMapped(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public hasParentOneToOne(arg0 : Class, arg1 : Association, arg2 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasParentOneToOne(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1, arg2}) +/] + +[query public hasChildOneToOne(arg0 : Class, arg1 : Association, arg2 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasChildOneToOne(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1, arg2}) +/] + +[query public isClassChild(arg0 : Class, arg1 : Association, arg2 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isClassChild(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1, arg2}) +/] + +[query public isClassParent(arg0 : Class, arg1 : Association, arg2 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isClassParent(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1, arg2}) +/] + +[query public getParents(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParents(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getChilds(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChilds(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getChildClasses(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChildClasses(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentClasses(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentClasses(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentIds(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentIds(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasChilds(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasChilds(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasParents(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasParents(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getChildClass(arg0 : Class, arg1 : Association) : Class + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChildClass(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association)', Sequence{arg0, arg1}) +/] + +[query public getParentClass(arg0 : Class, arg1 : Association) : Class + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentClass(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association)', Sequence{arg0, arg1}) +/] + +[query public getChildEnd(arg0 : Class, arg1 : Association) : Property + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChildEnd(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association)', Sequence{arg0, arg1}) +/] + +[query public getParentEnd(arg0 : Class, arg1 : Association) : Property + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentEnd(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association)', Sequence{arg0, arg1}) +/] + +[query public getChildAssociations(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChildAssociations(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentAssociations(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentAssociations(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentAssociationsExcluding(arg0 : Class, arg1 : Association) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentAssociationsExcluding(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association)', Sequence{arg0, arg1}) +/] + +[query public getMappedName(arg0 : Association, arg1 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getMappedName(org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1}) +/] + +[query public getOtherEnd(arg0 : Class, arg1 : Association) : Class + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getOtherEnd(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association)', Sequence{arg0, arg1}) +/] + +[query public isIdentifying(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isIdentifying(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public getFirstChild(arg0 : Class) : Class + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getFirstChild(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isParentRequired(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isParentRequired(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public getParentAssName(arg0 : Association, arg1 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentAssName(org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Class)', Sequence{arg0, arg1}) +/] + +[query public getChildAssName(arg0 : Association, arg1 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChildAssName(org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Class)', Sequence{arg0, arg1}) +/] + +[query public getParentClassesExcluding(arg0 : Class, arg1 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentClassesExcluding(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Class)', Sequence{arg0, arg1}) +/] + +[query public isReadOnly(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'isReadOnly(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public getParentAssFromImportedModels(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentAssFromImportedModels(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getChildAssFromImportedModels(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChildAssFromImportedModels(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentAssFromAllModels(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentAssFromAllModels(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasDropdownParentSelection(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasDropdownParentSelection(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public hasPopupParentSelection(arg0 : Association) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasPopupParentSelection(org.eclipse.uml2.uml.Association)', Sequence{arg0}) +/] + +[query public hasAtLeastOneDrpodownSelection(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasAtLeastOneDrpodownSelection(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasNavigableParents(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasNavigableParents(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getPhysicalMappedName(arg0 : Association, arg1 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getPhysicalMappedName(org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1}) +/] + +[query public hasNoIdentifyingParent(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'hasNoIdentifyingParent(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentAssociationHavingCK(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentAssociationHavingCK(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getChildClassesNoDup(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChildClassesNoDup(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentClassesNoDup(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentClassesNoDup(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentAssociationsNoDup(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getParentAssociationsNoDup(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getChildAssociationsNoDup(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.AssociationUtils', 'getChildAssociationsNoDup(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/copyFolderUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/copyFolderUtils.mtl new file mode 100644 index 0000000..4193cd0 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/copyFolderUtils.mtl @@ -0,0 +1,6 @@ +[comment encoding = Cp1252 /] +[module copyFolderUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public copyFolder(inputFolder : String, outputFolder : String, bundleName : String, outputFolderSuffix : String, includeFilter : String, excludeFilter : String, antProcessFilter : String, excludeDefaultExt : Boolean, tokenValuePairs : String, renameList : String, extensionRenameList : String) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.CopyFolderUtils', 'copyFolder(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean, java.lang.String, java.lang.String, java.lang.String)', Sequence{inputFolder, outputFolder, bundleName, outputFolderSuffix, includeFilter, excludeFilter, antProcessFilter, excludeDefaultExt, tokenValuePairs, renameList, extensionRenameList}) +/] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/entityUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/entityUtils.mtl new file mode 100644 index 0000000..75f3a42 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/entityUtils.mtl @@ -0,0 +1,250 @@ +[comment encoding = Cp1252 /] +[module entityUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public hasAutogeneratedIdBySeq(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasAutogeneratedIdBySeq(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getSequenceName(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getSequenceName(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isEntityStereotype(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isEntityStereotype(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasInnerCompositeKey(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasInnerCompositeKey(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getClassIDs(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getClassIDs(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getClassIDsIncludingFK(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getClassIDsIncludingFK(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInCompositeKey(arg0 : Class, arg1 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isInCompositeKey(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1}) +/] + +[query public getIdAttributesFromForeignKeys(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getIdAttributesFromForeignKeys(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getCompositeKeyAttributes(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getCompositeKeyAttributes(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getCompositeKeyAttributesWithMappedNames(arg0 : Class, arg1: Boolean) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getCompositeKeyAttributesWithMappedNames(org.eclipse.uml2.uml.Class, java.lang.Boolean)', Sequence{arg0, arg1}) +/] + +[query public hasExternalPK(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasExternalPK(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasCompositeKey(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasCompositeKey(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasFatherWithCompositeKey(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasFatherWithCompositeKey(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasAutogeneratedId(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasAutogeneratedId(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getEntityDefinition(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getEntityDefinition(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getEntityLabel(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getEntityLabel(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getEntityTooltip(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getEntityTooltip(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasDefinition(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasDefinition(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInID(arg0 : Property, arg1 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isInID(org.eclipse.uml2.uml.Property, org.eclipse.uml2.uml.Class)', Sequence{arg0, arg1}) +/] + +[query public isInInnerID(arg0 : Class, arg1 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isInInnerID(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1}) +/] + +[query public isAuditable(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isAuditable(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getCompleteAttributeList(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getCompleteAttributeList(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getAttributeList(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getAttributeList(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getCategory(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getCategory(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isBusinessCategory(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isBusinessCategory(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isAttachmentCategory(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isAttachmentCategory(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isMailCategory(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isMailCategory(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isSecurityCategory(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isSecurityCategory(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasOneToOneRelation(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasOneToOneRelation(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasManyToOneRelation(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasManyToOneRelation(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getFirstStringAttribute(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getFirstStringAttribute(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInRole(arg0 : Class, arg1 : String) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isInRole(org.eclipse.uml2.uml.Class, java.lang.String)', Sequence{arg0, arg1}) +/] + +[query public hasDateProperty(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasDateProperty(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasAttributes(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasAttributes(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasAttributesWithoutIDs(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasAttributesWithoutIDs(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getAttributesWithoutIDs(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getAttributesWithoutIDs(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasGeneralClass(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasGeneralClass(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getGeneralClass(arg0 : Class) : Class + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getGeneralClass(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public populateExtendedClasses(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'populateExtendedClasses(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public isClassExtended(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'isClassExtended(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public generalizeSecurityUserRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'generalizeSecurityUserRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getDateProperties(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getDateProperties(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getStringProperties(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getStringProperties(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentStringProperties(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getParentStringProperties(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getParentStringId(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getParentStringId(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getIdentifyingParentAssociations(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getIdentifyingParentAssociations(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getNotIdentifyingParentAssociations(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getNotIdentifyingParentAssociations(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getFiltrableAttributes(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getFiltrableAttributes(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getAttributesForPresentation(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getAttributesForPresentation(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getAttributesForPresentationWOAudit(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getAttributesForPresentationWOAudit(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getCompleteAttributeListForPresentation(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getCompleteAttributeListForPresentation(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public entityHasOneStringField(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'entityHasOneStringField(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getTableName(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getTableName(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getHelper(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'getHelper(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasParentsWithCK(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasParentsWithCK(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasSelfRelation(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasSelfRelation(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasAttribute(arg0 : Class, arg1: Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasAttribute(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public hasTextAreas(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasTextAreas(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasPopUpParentSelection(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasPopUpParentSelection(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasAtLeastOneParent(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasAtLeastOneParent(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public hasAtLeastAPorpertyAnnotatedAsID(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'hasAtLeastAPorpertyAnnotatedAsID(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public belongsToMainSubjectArea(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.EntityUtils', 'belongsToMainSubjectArea(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/exceptionHandlerUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/exceptionHandlerUtils.mtl new file mode 100644 index 0000000..fac41fe --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/exceptionHandlerUtils.mtl @@ -0,0 +1,7 @@ +[comment encoding = Cp1252 /] +[module exceptionHandlerUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public hasDiagramExceptions(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ExceptionHandlerUtils', 'hasDiagramExceptions(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/featureUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/featureUtils.mtl new file mode 100644 index 0000000..6a7fa0a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/featureUtils.mtl @@ -0,0 +1,58 @@ +[comment encoding = Cp1252 /] +[module featureUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public getGenericFeatures(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'getGenericFeatures(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getEntitySpecificFeatures(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'getEntitySpecificFeatures(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getGenerator(arg0 : Model) : Actor + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'getGenerator(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public isFeatureLinkedToGenerator(arg0 : Model, arg1 : UseCase) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isFeatureLinkedToGenerator(org.eclipse.uml2.uml.Model, org.eclipse.uml2.uml.UseCase)', Sequence{arg0, arg1}) +/] + +[query public getEntitySpecificFeatureEntities(arg0 : UseCase) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'getEntitySpecificFeatureEntities(org.eclipse.uml2.uml.UseCase)', Sequence{arg0}) +/] + +[query public isAttachmentEnabled(arg0 : Class, arg1 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isAttachmentEnabled(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Model)', Sequence{arg0, arg1}) +/] + +[query public isAttachmentEnabled(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isAttachmentEnabled(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public isEmailEnabled(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isEmailEnabled(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public isSecurityEnabled(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isSecurityEnabled(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public isCachingEnabled(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isCachingEnabled(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public isFeatureStereotype(arg0 : UseCase) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isFeatureStereotype(org.eclipse.uml2.uml.UseCase)', Sequence{arg0}) +/] + +[query public isEntitySpecificFeatureStereotype(arg0 : UseCase) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isEntitySpecificFeatureStereotype(org.eclipse.uml2.uml.UseCase)', Sequence{arg0}) +/] + +[query public isGenericFeatureStereotype(arg0 : UseCase) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isGenericFeatureStereotype(org.eclipse.uml2.uml.UseCase)', Sequence{arg0}) +/] + +[query public isReportEnabled(arg0 : Class, arg1: Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.FeatureUtils', 'isReportEnabled(org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Model)', Sequence{arg0, arg1}) +/] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/generalUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/generalUtils.mtl new file mode 100644 index 0000000..dcb63e6 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/generalUtils.mtl @@ -0,0 +1,23 @@ +[comment encoding = Cp1252 /] +[module generalUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public getGeneratedSerialUID(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.GeneralUtils', 'getGeneratedSerialUID(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getEntityDump(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.GeneralUtils', 'getEntityDump(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getAttributeDump(arg0 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.GeneralUtils', 'getAttributeDump(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isParentZeroOneMultiplicity(arg0 : Association, arg1 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.GeneralUtils', 'isParentZeroOneMultiplicity(org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1}) +/] + +[query public isChildZeroOneMultiplicity(arg0 : Association, arg1 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.GeneralUtils', 'isChildZeroOneMultiplicity(org.eclipse.uml2.uml.Association, org.eclipse.uml2.uml.Property)', Sequence{arg0, arg1}) +/] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/generate.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/generate.mtl new file mode 100644 index 0000000..b0353b6 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/generate.mtl @@ -0,0 +1,23 @@ +[comment encoding = Cp1252 /] +[module generate('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public isInSecurityUserRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInSecurityUserRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInPrivilegePerRoleRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInPrivilegePerRoleRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInRoleRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInRoleRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInPrivilegeRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInPrivilegeRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInRolePerSecurityUserRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInRolePerSecurityUserRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/microServiceUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/microServiceUtils.mtl new file mode 100644 index 0000000..cf43ae7 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/microServiceUtils.mtl @@ -0,0 +1,53 @@ +[comment encoding = Cp1252 /] +[module microServiceUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + + +[query public hasMicroServiceStereotype(arg0 : Component) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'hasMicroServiceStereotype(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public isSecurityMS(arg0 : Component) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'isSecurityMS(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] +[query public isAttachmentMS(arg0 : Component) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'isAttachmentMS(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] +[query public isNotificationMS(arg0 : Component) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'isNotificationMS(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public isBusinessMS(arg0 : Component) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'isBusinessMS(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public isDemoMS(arg0 : Component) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'isDemoMS(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public getMsPortNumber(arg0 : Component) : Integer + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'getMsPortNumber(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public getGatewayPortNumber(arg0 : Component) : Integer + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'getGatewayPortNumber(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public getCategory(arg0 : Component) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'getCategory(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public generateRandomModelId(arg0 : Component) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'generateRandomModelId(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public getId(arg0 : Component) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'getId(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public getPersistenceType(arg0 : Component) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'getPersistenceType(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] + +[query public isNoSqlMicroservice(arg0 : Component) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.MicroServiceUtils', 'isNoSqlMicroservice(org.eclipse.uml2.uml.Component)', Sequence{arg0}) +/] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/modelUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/modelUtils.mtl new file mode 100644 index 0000000..4095d66 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/modelUtils.mtl @@ -0,0 +1,118 @@ +[comment encoding = Cp1252 /] +[module modelUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public getEntities() : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getModelEntities()', Sequence{}) +/] + +[query public getMicroservices() : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getMicroservices()', Sequence{}) +/] + +[query public getGateway() : Component += invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getGateway()', Sequence{}) +/] + +[query public getSpa() : Component += invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getSpa()', Sequence{}) +/] + +[query public getSpaUrl(oclAny: OclAny) : String += invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getSpaUrl()', Sequence{}) +/] + +[query public getSpaPort(oclAny: OclAny) : Integer += invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getSpaPortNumber()', Sequence{}) +/] + +[query public getBusinessEntities(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getBusinessEntities(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getMailEntities(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getMailEntities(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getAttachmentEntities(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getAttachmentEntities(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getSecurityEntities(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getSecurityEntities(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getUseCases(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getUseCases(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getFeatures(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getFeatures(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public initializeEntities(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'initializeEntities(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public initializeMicroservices(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'initializeMicroservices(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public initializeGateway(arg0 : Model) : OclAny + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'initializeGateway(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public isRoot(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'isRoot(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public isMainMs(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'isMainMS(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getSecurityMSName(arg0: Model) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getSecurityMSName(org.eclipse.uml2.uml.Model)' , Sequence{arg0}) +/] + +[query public isFrontEndGenerationEnabled(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'isFrontEndGenerationEnabled(org.eclipse.uml2.uml.Model)',Sequence{arg0}) +/] + +[query public isGatewayGenerationEnabled(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'isGatewayGenerationEnabled(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getSecurityMs(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getSecurityMs(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getNotificationMs(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getNotificationMs(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getDemoMs(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getDemoMs(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getBusinessMs(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getBusinessMs(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public initializeSPA(arg0 : Model) : OclAny + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'initializeSPA(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public checkModel(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'checkModel(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public hasNoSqlMicroservice(arg0 : Model) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'hasNoSqlMicroservice(org.eclipse.uml2.uml.Model)',Sequence{arg0}) +/] + +[query public getSubjectAreas(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getSubjectAreas(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] + +[query public getModelEntitiesFromMainSA(arg0 : Model) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ModelUtils', 'getModelEntitiesFromMainSA(org.eclipse.uml2.uml.Model)', Sequence{arg0}) +/] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/propertyUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/propertyUtils.mtl new file mode 100644 index 0000000..cfd2804 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/propertyUtils.mtl @@ -0,0 +1,93 @@ +[comment encoding = Cp1252 /] +[module propertyUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public isRequired(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isRequired(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public getPropertyLabel(arg0 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getPropertyLabel(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isNumeric(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isNumeric(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isString(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isString(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isBoolean(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isBoolean(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isDate(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isDate(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public getNaturalLanguageName(arg0 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getNaturalLanguageName(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public getAttributeLabel(arg0 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getLabel(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public getTooltip(arg0 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getTooltip(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public getDefinition(arg0 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getDefinition(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isNMultiplicity(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isNMultiplicity(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isZeroOneMultiplicity(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isZeroOneMultiplicity(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public getPhysicalColumnLenght(arg0 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getPhysicalColumnLenght(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public getColumnDefinition(arg0 : Property, arg1 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getColumnDefinition(org.eclipse.uml2.uml.Property, org.eclipse.uml2.uml.Class)', Sequence{arg0, arg1}) +/] +[query public getParentPropAssName(arg0 : Property, arg1 : Class, arg2 : Association) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getParentPropAssName(org.eclipse.uml2.uml.Property, org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association)', Sequence{arg0, arg1, arg2}) +/] + +[query public getChildPropAssName(arg0 : Property, arg1 : Class, arg2 : Association) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getChildPropAssName(org.eclipse.uml2.uml.Property, org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association)', Sequence{arg0, arg1, arg2}) +/] + +[query public isDateTime(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isDateTime(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isLocalDate(arg0: Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isLocalDate(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public getAttributeName(arg0 : Property, arg1 : Class, arg2 : Association, arg3: Boolean) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getAttributeName(org.eclipse.uml2.uml.Property, org.eclipse.uml2.uml.Class, org.eclipse.uml2.uml.Association, java.lang.Boolean)', Sequence{arg0, arg1, arg2, arg3}) +/] + +[query public getPhysicalColumnName(arg0 : Property) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'getPhysicalColumnName(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public hasDefinition(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'hasDefinition(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public isAnID(arg0 : Property) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'isAnID(org.eclipse.uml2.uml.Property)', Sequence{arg0}) +/] + +[query public hasPhysicalLengthGreaterThan(arg0 : String) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.PropertyUtils', 'hasPhysicalLengthGreaterThan(java.lang.String)', Sequence{arg0}) +/] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/securityUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/securityUtils.mtl new file mode 100644 index 0000000..3944b49 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/securityUtils.mtl @@ -0,0 +1,23 @@ +[comment encoding = Cp1252 /] +[module securityUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public isInSecurityUserRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInSecurityUserRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInPrivilegePerRoleRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInPrivilegePerRoleRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInRoleRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInRoleRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInPrivilegeRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInPrivilegeRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public isInRolePerSecurityUserRole(arg0 : Class) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SecurityUtils', 'isInRolePerSecurityUserRole(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/specificationFilterUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/specificationFilterUtils.mtl new file mode 100644 index 0000000..10e27d6 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/specificationFilterUtils.mtl @@ -0,0 +1,7 @@ +[comment encoding = Cp1252 /] +[module specificationFilterUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public getSpecification(arg0 : Type) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SpecificationFilterUtils', 'getSpecification(org.eclipse.uml2.uml.Type)', Sequence{arg0}) +/] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/stringUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/stringUtils.mtl new file mode 100644 index 0000000..cd79ce3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/stringUtils.mtl @@ -0,0 +1,64 @@ +[comment encoding = Cp1252 /] +[module stringUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public StringUtils(anOclAny: OclAny) : OclVoid + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'StringUtils()', Sequence{}) +/] + +[query public camelToUnderscore(arg0 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'camelToUnderscore(java.lang.String)', Sequence{arg0}) +/] + +[query public dashToCamelCase(arg0 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'dashToCamelCase(java.lang.String)', Sequence{arg0}) +/] + +[query public camelToDash(arg0 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'camelToDash(java.lang.String)', Sequence{arg0}) +/] + +[query public splitCamel(arg0 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'splitCamel(java.lang.String)', Sequence{arg0}) +/] + +[query public formatter(arg0 : String, arg1 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'formatter(java.lang.String, java.lang.String)', Sequence{arg0, arg1}) +/] + +[query public toUpperFirst(arg0 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'toUpperFirst(java.lang.String)', Sequence{arg0}) +/] + +[query public encodeDDL(arg0 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'encodeDDL(java.lang.String)', Sequence{arg0}) +/] + +[query public removeHtmlTags(arg0 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'removeHtmlTags(java.lang.String)', Sequence{arg0}) +/] + +[query public getFormattedNumber(arg0 : Integer, arg1 : Integer) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'getFormattedNumber(java.lang.Integer, java.lang.Integer)', Sequence{arg0, arg1}) +/] + +[query public stringifyNumber(arg0 : Integer) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.StringUtils', 'stringifyNumber(java.lang.Integer)', Sequence{arg0}) +/] + + + +[comment]LOGGER[/comment] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[template public writeAndFormat(fileBody : String, fileName : String)] +[consoleMessage(getDebugSeverity(),'Generazione in corso del file: '.concat(fileName))/] +[file(fileName, false, 'UTF-8')] +[if(fileName.endsWith('.yml')._not())] +[formatter(fileBody, fileName)/] +[else] +[fileBody/] +[/if] +[/file] +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/subjectAreaUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/subjectAreaUtils.mtl new file mode 100644 index 0000000..74ea203 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/subjectAreaUtils.mtl @@ -0,0 +1,6 @@ +[comment encoding = UTF-8 /] +[module subjectAreaUtils('http://www.eclipse.org/uml2/2.2.0/GenModel', 'http://www.eclipse.org/uml2/5.0.0/Types', 'http://www.eclipse.org/uml2/5.0.0/UML', 'http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard')] + +[query public getEntitiesForSA(arg0 : Package) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.SubjectAreaUtils', 'getEntitiesForSA(org.eclipse.uml2.uml.Package)', Sequence{arg0}) +/] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/typeUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/typeUtils.mtl new file mode 100644 index 0000000..6b9d456 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/javaservice/wrapper/typeUtils.mtl @@ -0,0 +1,55 @@ +[comment encoding = Cp1252 /] +[module typeUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public getJavaType(arg0 : Type) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getJavaType(org.eclipse.uml2.uml.Type)', Sequence{arg0}) +/] + +[query public getAngularType(arg0 : Type) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getAngularType(org.eclipse.uml2.uml.Type)', Sequence{arg0}) +/] + +[query public getReportType(arg0 : Type) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getReportType(org.eclipse.uml2.uml.Type)', Sequence{arg0}) +/] + +[query public getFilterType(arg0 : Type) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getFilterType(org.eclipse.uml2.uml.Type)', Sequence{arg0}) +/] + +[query public getFilterProperties(arg0 : Class) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getFilterProperties(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getFilterImportsFromTypes(arg0 : Class, arg1 : String) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getFilterImportsFromTypes(org.eclipse.uml2.uml.Class, java.lang.String)', Sequence{arg0, arg1}) +/] + +[query public isPresentJavaType(arg0 : String) : Boolean + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'isPresentJavaType(java.lang.String)', Sequence{arg0}) +/] + +[query public getImportsForProperty(arg0 : Class) : Set(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getImportsForProperty(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getAttributeTypesNoDuplicates(arg0 : Class) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getAttributeTypesNoDuplicates(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + +[query public getAttributeJavaTypesNoDuplicates(arg0 : Collection(OclAny)) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getAttributeJavaTypesNoDuplicates(java.util.Collection)', Sequence{arg0}) +/] + +[query public getAttributeAngularTypesNoDuplicates(arg0 : Collection(OclAny)) : Collection(OclAny) + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getAttributeAngularTypesNoDuplicates(java.util.Collection)', Sequence{arg0}) +/] + +[query public getImportsForPropertyDto(arg0: Class ) : Set(OclAny) + =invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getImportsForPropertyDto(org.eclipse.uml2.uml.Class)', Sequence{arg0}) +/] + + +[query public getFieldType(arg0 : Type) : String + = invoke('it.micegroup.voila2.cartridge.library.javaservice.TypeUtils', 'getFieldType(org.eclipse.uml2.uml.Type)', Sequence{arg0}) +/] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/logger/consoleUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/logger/consoleUtils.mtl new file mode 100644 index 0000000..ff59343 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/logger/consoleUtils.mtl @@ -0,0 +1,10 @@ +[comment encoding = Cp1252 /] +[module consoleUtils('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[query public consoleMessage(arg0 : String) : OclVoid + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ConsoleUtils', 'consoleMessage(java.lang.String)', Sequence{arg0}) +/] + +[query public consoleMessage(arg0 : String, arg1 : String) : OclVoid + = invoke('it.micegroup.voila2.cartridge.library.javaservice.ConsoleUtils', 'consoleMessage(java.lang.String, java.lang.String)', Sequence{arg0, arg1}) +/] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/logger/severityLevel.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/logger/severityLevel.mtl new file mode 100644 index 0000000..a2e024c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/logger/severityLevel.mtl @@ -0,0 +1,22 @@ +[comment encoding = UTF-8 /] +[module severityLevel('http://www.eclipse.org/uml2/5.0.0/UML')] + +[template public getWarnSeverity(oclAny : OclAny)] +['WARN'/] +[/template] + +[template public getDebugSeverity(oclAny : OclAny)] +['DEBUG'/] +[/template] + +[template public getInfoSeverity(oclAny : OclAny)] +['INFO'/] +[/template] + +[template public getFatalSeverity(oclAny : OclAny)] +['FATAL'/] +[/template] + +[template public getErrorSeverity(oclAny : OclAny)] +['ERROR'/] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/classPathUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/classPathUtils.mtl new file mode 100644 index 0000000..4aa18e3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/classPathUtils.mtl @@ -0,0 +1,15 @@ +[module classPathUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties/] + +[template public getLibsCoreClassPath(oclAny:OclAny)] +[getRootArtifactId()/]-libs-core +[/template] + +[template public getLibsWebClassPath(oclAny:OclAny)] +[getRootArtifactId()/]-libs-web +[/template] + +[template public getLibsImplClassPath(oclAny:OclAny)] +[getRootArtifactId()/]-libs-impl +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/componentUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/componentUtils.mtl new file mode 100644 index 0000000..7dc5291 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/componentUtils.mtl @@ -0,0 +1,24 @@ +[comment] + + +Classe di utilities per il component diagram. +ATTENZIONE il livello di astrazione è quello dei componenti non dello specifico microservizio. + +author: Vittorio Niespolo +[/comment] +[comment encoding = UTF-8 /] +[module componentUtils('http://www.eclipse.org/uml2/2.2.0/GenModel', 'http://www.eclipse.org/uml2/5.0.0/Types', 'http://www.eclipse.org/uml2/5.0.0/UML', 'http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::microServiceUtils /] + +[query public microserviceHasPersistenceType(microservice: Component, persistenceType : String) : Boolean + = microservice.getPersistenceType() = persistenceType +/] + +[query public isSqlMicroservice(microservice: Component) : Boolean + = microserviceHasPersistenceType(microservice, 'sql') +/] + +[query public isNoSqlMicroservice(microservice: Component) : Boolean + = microserviceHasPersistenceType(microservice, 'noSql') +/] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/controllerMsUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/controllerMsUtils.mtl new file mode 100644 index 0000000..232e133 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/controllerMsUtils.mtl @@ -0,0 +1,234 @@ +[module controllerMsUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::securityUtils/] + +[comment]I metodi si chiamerrano new per distinguerli da quelli del vecchio controller e allo stesso + tempo di usare alcune delle vecchie funzioni visto che sono omonime[/comment] +[template public genGetAllPaginated(aClass : Class, aModel: Model)] +[comment]TO DO genGetAllPaginatedDOC[/comment] +@GetMapping +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'FIND_PAGINATED', aModel)/] +public ResponseEntity>> findPaginated([getCriteriaClassName(aClass)/] criteria, Pageable pageable) { + Page<[getEntityClassName(aClass)/]> page = [getServiceClassName(aClass).toLowerFirst()/].findByCriteria(criteria, pageable); + return toResponseEntityPaged(page, null); +} +[/template] + + + +[template public genGetById(aClass:Class, aModel:Model)] +/** + * {@code GET /[aClass.getDashedEntityClassName()/]/:objectKey} : get the [aClass.getDashedEntityClassName()/] with given objectKey. + * + * @param objectKey the objectKey of the [aClass.getDashedEntityClassName()/] to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the [aClass.getDashedEntityClassName()/], or with status {@code 404 (Not Found)}. + */ +@GetMapping("/{objectKey:.+}") +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'FIND_BY_ID', aModel)/] +public ResponseEntity> getByObjectKey(@PathVariable String objectKey) { +return toResponseEntity([getServiceClassName(aClass).toString().toLowerFirst()/].findByObjectKey(objectKey), null,HttpStatus.OK); +} +[/template] + + + +[template public genCreate(aClass:Class, aModel: Model)] +/** + * {@code POST /[aClass.getDashedEntityClassName()/]} : Create a new [aClass.getEntityClassName()/]. + * + * @param [aClass.getEntityClassName()/] the [aClass.getEntityClassName()/] to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new [aClass.getEntityClassName()/], or with status {@code 400 (Bad Request)} if the [aClass.getEntityClassName()/] has already an ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ +@PostMapping +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'CREATE', aModel)/] +public ResponseEntity save(@Valid @RequestBody BaseRequest<[aClass.getWriteDtoName()/]> request) { + ResponseEntity response = null; + [getEntityClassName(aClass)/] [aClass.getEntityClassName().toLowerFirst()/]ToInsert = childMap(request.getData()); + try{ + [getEntityClassName(aClass)/] new[getEntityClassName(aClass)/] = [getServiceClassName(aClass).toString().toLowerFirst()/].insert(modelMapper.map([aClass.getEntityClassName().toLowerFirst()/]ToInsert, [getEntityClassName(aClass)/].class)); + URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(new[getEntityClassName(aClass)/].get[getClassIdName(aClass).toUpperFirst()/]()).toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(location); + response = toResponseEntity(Optional.of(new[getEntityClassName(aClass)/]), headers, HttpStatus.CREATED); + } catch (Exception exception) { + LOGGER.error("Exception:", exception); + } + return response; +} + +private [aClass.getEntityClassName()/] childMap([aClass.getWriteDtoName()/] data) { + [aClass.getEntityClassName()/] [aClass.getEntityClassName().toLowerFirst()/]ToInsert = modelMapper.map(data, [aClass.getEntityClassName()/].class); + [for(childAss: Association | aClass.getChildAssociations())] + Collection<[aClass.getChildClass(childAss).getEntityClassName()/]> [aClass.getTheChildPropertyName(childAss).toLowerFirst()/]s = data.get[aClass.getTheChildPropertyName(childAss).toUpperFirst()/]().stream() + .map(element -> modelMapper.map(element, [aClass.getChildClass(childAss).getEntityClassName()/].class)) + .peek(element -> element.set[aClass.getChildClass(childAss).getTheParentPropertyName(childAss).toUpperFirst()/]([aClass.getEntityClassName().toLowerFirst()/]ToInsert)) + .collect(Collectors.toList()); + [aClass.getEntityClassName().toLowerFirst()/]ToInsert.set[aClass.getTheChildPropertyName(childAss).toUpperFirst()/]([aClass.getTheChildPropertyName(childAss).toLowerFirst()/]s); + [/for] + return [aClass.getEntityClassName().toLowerFirst()/]ToInsert; +} +[/template] + + +[template public genUpdate(aClass:Class, aModel: Model)] +/** + * {@code PUT /[aClass.getDashedEntityClassName()/]} : Updates an existing [aClass.getEntityClassName()/]. + * + * @param [aClass.getEntityClassName()/] the [aClass.getEntityClassName()/] to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated [aClass.getEntityClassName()/], + * or with status {@code 400 (Bad Request)} if the [aClass.getEntityClassName()/] is not valid, + * or with status {@code 500 (Internal Server Error)} if the [aClass.getEntityClassName()/] couldn't be updated. + */ +@PutMapping +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'UPDATE', aModel)/] +public ResponseEntity update(@Valid @RequestBody BaseRequest<[getEntityWriteDtoClassName(aClass)/]> request) { + return toResponseEntity(Optional.of([getServiceClassName(aClass).toLowerFirst()/].bulkUpdate(modelMapper.map(request.getData(),[getEntityClassName(aClass)/].class))), null, HttpStatus.OK); +} +[/template] + + + + + +[template public genDeleteByID(aClass : Class, aModel: Model)] +/** + * {@code DELETE /[aClass.getDashedEntityClassName()/]/:objectKey} : delete the [aClass.getDashedEntityClassName()/] with given objectKey. + * + * @param objectKey the objectKey of the [(aClass.getEntityClassName())/] to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ +@DeleteMapping("/{objectKey:.+}") +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'DELETE', aModel)/] +public ResponseEntity delete(@PathVariable String objectKey) { + [getServiceClassName(aClass).toString().toLowerFirst()/].deleteById([getServiceClassName(aClass).toString().toLowerFirst()/].findByObjectKey(objectKey).get().get[getClassIdName(aClass).toString().toUpperFirst()/]()); + return new ResponseEntity<>(new BaseResponse<>(objectKey), HttpStatus.OK); +} +[/template] + + +[template public genToResponseEntity(aClass : Class)] +private ResponseEntity> toResponseEntity(Optional<[aClass.getEntityClassName()/]> maybeResponse, HttpHeaders header,HttpStatus status) { + return maybeResponse.map(response ->new ResponseEntity<>(new BaseResponse<>([getAssemblerClassName(aClass).toLowerFirst()/].toModel(response)),header,status) + ).orElseThrow(() -> new NotFoundException([getEntityClassName(aClass)/].class,new Locale("it"))); +} +[/template] + +[template public genToResponseEntityPaged(aClass : Class)] +private ResponseEntity>> toResponseEntityPaged(Page<[getEntityClassName(aClass)/]> list, HttpHeaders header) { + BaseResponse> collModel =new BaseResponse<>(pagedResourcesAssembler.toModel(list, [getAssemblerClassName(aClass).toLowerFirst()/])); + return ResponseEntity.ok().headers(header).body(collModel); + } +[/template] + +[template public genDtoToEntity(aClass: Class)] +@SuppressWarnings("unused") +private [getEntityClassName(aClass)/] dtoToEntity([getDtoClassName(aClass)/] dto) { + return new ModelMapper().map(dto, [getEntityClassName(aClass)/].class); +} +[/template] + +[template public genGetByParentId(aClass: Class, aModel: Model)] +[for(parentAss: Association | getParentAssociations(aClass))] +/** + * GET /[camelToDash(aClass.getTheParentPropertyName(parentAss))/]_id: Search all [aClass.name/] for the given [aClass.getParentClass(parentAss).getEntityClassName()/] (parent) + * + * @param OK of [aClass.getParentClass(parentAss).getEntityClassName()/] + * @param pageable + * @return Page of [aClass.name/] for the given [aClass.getParentClass(parentAss).getEntityClassName()/] (parent) + */ +@GetMapping("/findBy[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]/{[getEntityClassName(aClass.getParentClass(parentAss)).toString().toLowerFirst()/]ObjectKey:.+}") +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'FIND_BY_'.concat(camelToUnderscore(aClass.getParentPropertyName(parentAss)).toUpperCase()), aModel)/] +public ResponseEntity>> findBy[aClass.getParentPropertyName(parentAss).toUpperFirst()/](@PathVariable String [getEntityClassName(aClass.getParentClass(parentAss)).toString().toLowerFirst()/]ObjectKey, Pageable pageable) { + [getEntityClassName(aClass.getParentClass(parentAss))/] key = new [getEntityClassName(aClass.getParentClass(parentAss))/]([getEntityClassName(aClass.getParentClass(parentAss)).toString().toLowerFirst()/]ObjectKey); + return toResponseEntityPaged([getServiceClassName(aClass).toLowerFirst()/].findBy[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/](key, pageable), null); +} +[/for] +[/template] + +[** + * Print an PDF report. + * @author: Fabio Memoli +*/] +[template public genPrintPdfReport(aClass : Class, aModel: Model)] +[if(aClass.isReportEnabled(aModel))] +/** + * GET: /pdf/{objectKey:.+}: Print PDF for [getEntityClassName(aClass)/] by object key. + * @param objectKey + * @return PDF document or null. + */ +@ResponseBody +@GetMapping(value = "/pdf/{objectKey:.+}", produces = "application/pdf") +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'PDF_REPORT', aModel)/] +public ResponseEntity printPdfReport(@PathVariable String objectKey) throws BusinessException { + return super.generateJasperReportPdf([getServiceClassName(aClass).toLowerFirst()/].printPdfReport(objectKey)); +} +[/if] +[/template] + +[** + * Generate api method to find elements by parent class id + * @author Vittorio Niespolo +*/] +[template public genGetChildByObjectKey(aClass : Class, aModel: Model){childAssociation : Collection(OclAny) = aClass.getChildAssociations();}] +[for(childAss : Association | childAssociation)] +/** + * GET /id/[camelToDash(aClass.getChildClass(childAss).getEntityClassName())/]: Search all [aClass.getChildClass(childAss).getEntityClassName()/] (childs) for the given [aClass.getEntityClassName()/] + * + * @param objectKey ObjectKey of [aClass.getEntityClassName()/] + * @param pageable + * @return Page of [aClass.getChildClass(childAss).getEntityClassName()/] for the given [aClass.getEntityClassName()/] + */ +@GetMapping("/{objectKey:.+}/[camelToDash(aClass.getChildEntityName(childAss))/]") +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'FIND_BY_'.concat(camelToUnderscore(aClass.getTheChildPropertyName(childAss)).toUpperCase()).concat('_OBJECT_KEY'), aModel)/] +public ResponseEntity> get[aClass.getTheChildPropertyName(childAss).toUpperFirst()/]ByObjectKey(@PathVariable String objectKey, Pageable pageable) { + [aClass.getEntityClassName()/] [aClass.getEntityClassName().toLowerFirst()/] = new [aClass.getEntityClassName()/](); + [aClass.getEntityClassName().toLowerFirst()/].setObjectKey(objectKey); + return ResponseEntity.ok().body([aClass.getChildClass(childAss).getEntityClassName().toLowerFirst()/]Service.findBy[aClass.getChildClass(childAss).getTheParentPropertyName(childAss).toUpperFirst()/]([aClass.getEntityClassName().toLowerFirst()/], pageable)); +} +[/for] +[/template] + +[template public genConstructor(aClass: Class)] +public [aClass.getControllerClassName()/]( +[getServiceClassName(aClass)/] [getServiceClassName(aClass).toString().toLowerFirst()/], +[getAssemblerClassName(aClass)/] [getAssemblerClassName(aClass).toString().toLowerFirst()/], +PagedResourcesAssembler<[getEntityClassName(aClass)/]> pagedResourcesAssembler, +ModelMapper modelMapper, +[for(c:Class| aClass.getChildClassesNoDup()) separator (',')] +[if((getServiceClassName(c).toString().equalsIgnoreCase(getServiceClassName(aClass)))._not())] +[getServiceClassName(c)/] [getServiceClassName(c).toString().toLowerFirst()/][/if][/for] +) { + this.[getServiceClassName(aClass).toString().toLowerFirst()/] = [getServiceClassName(aClass).toString().toLowerFirst()/]; + this.[getAssemblerClassName(aClass).toString().toLowerFirst()/] = [getAssemblerClassName(aClass).toString().toLowerFirst()/]; + this.pagedResourcesAssembler = pagedResourcesAssembler ; + this.modelMapper = modelMapper; +[for(c:Class| aClass.getChildClassesNoDup())] +[if((getServiceClassName(c).toString().equalsIgnoreCase(getServiceClassName(aClass)))._not())] + this.[getServiceClassName(c).toString().toLowerFirst()/] = [getServiceClassName(c).toString().toLowerFirst()/];[/if] +[/for] +} +[/template] + +[template public genPostConstructor(aClass: Class)] +@PostConstruct +public void postConstruct(){ +[if(aClass.hasChilds())] +modelMapper.addMappings(new PropertyMap<[aClass.getWriteDtoName()/], [aClass.getEntityClassName()/]>() { + @Override + protected void configure() { + [for(childAss: Association | aClass.getChildAssociations())] + skip(destination.get[aClass.getTheChildPropertyName(childAss).toUpperFirst()/]()); + [/for] + } +}); +[/if] +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/fileNameUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/fileNameUtils.mtl new file mode 100644 index 0000000..1fea039 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/fileNameUtils.mtl @@ -0,0 +1,207 @@ +[comment encoding = UTF-8 /] +[module fileNameUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtilsSandBox/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils/] + +[comment][template public getPomMSModelFileName(microservice : Component)] +[getMicroServiceModelModuleFolder().concat('/pom.xml')/] +[/template][/comment] + +[template public getRootPomFileName(oclAny : OclAny)] +[getRootFolderName().concat('/pom.xml')/] +[/template] + +[template public getMSPomFileName(microService : Component)] +[getMicroServiceFolder().concat('/pom.xml')/] +[/template] + +[template public getDockerFileName(component : Component, isMs : Boolean)] +[if(isMs)] +[getMicroServiceFolder(component).concat('/Dockerfile')/] +[else] +[getMsGateWayFolder().concat('/Dockerfile')/] +[/if] +[/template] + +[template public getDockerFileFeBaseName(oclAny: OclAny)] +[getFEFolder().concat('/DockerfileFeBase')/] +[/template] + +[template public getDockerFileFeName(oclAny: OclAny)] +[getFEFolder().concat('/Dockerfile')/] +[/template] + +[template public getStartScriptGatewayFileName(component : Component)] +[getMsGateWayFolder(component).concat('/s_start.sh')/] +[/template] + +[template public getStartScriptMSFileName(component : Component)] +[getMicroServiceFolder(component).concat('/s_start.sh')/] +[/template] + +[template public getDockerComposeFileName(oclAny: OclAny)] +[getRootFolderName().concat('/docker-compose.yml')/] +[/template] + +[template public getDockerPullFileName(oclAny: OclAny)] +[getRootFolderName().concat('/docker-pull.yml')/] +[/template] + +[template public getDockerFileMysqlName(oclAny: OclAny)] +[getRootFolderName().concat('/DockerfileMysql')/] +[/template] + +[template public getDockerPushFileName(oclAny: OclAny)] +[getRootFolderName().concat('/docker-push.yml')/] +[/template] + +[template public getBuildNdeployFileName(oclAny: OclAny)] +[getRootFolderName().concat('/buildNdeploy.bat')/] +[/template] + +[template public getKeycloalInitSQL(oclAny: OclAny)] +[getRootFolderName().concat('/init').concat('/01.sql')/] +[/template] + +[template public getMSModelPomFileName(microService : Component)] +[getMicroServiceModelModuleFolder().concat('/pom.xml')/] +[/template] + +[template public getBEPomFileName(oclAny:OclAny)] +[getBEFolder().concat('/pom.xml')/] +[/template] + +[template public getFEPomFileName(oclAny:OclAny)] +[getFEFolder().concat('/pom.xml')/] +[/template] + +[template public getMainGeneratorFileName(microService : Component)] +[getMicroServiceMainsFolder(microService).concat('/MainGenerator.java')/] +[/template] + +[template public getPropertyFileNameForMS(microService : Component)] +[getMicroServicePropertyFolder().concat('/voila2-default.properties')/] +[/template] + +[comment]questo metodo viene usato per modificare il pom padre dopo che il figlio ha generato dal suo main nuovi moduli +I moduli sono statici ( core,model,web,impl)[/comment] +[template public getMSGeneratedPomFileName(oclAny:OclAny)] +[getArtifact().concat('/pom.xml')/] +[/template] + +[template public getLibsPomFileName(oclAny:OclAny)] +[getMsLibsFolder().concat('/pom.xml')/] +[/template] + +[template public getLibsCorePomFileName(oclAny:OclAny)] +[getMsLibsCoreFolder().concat('/pom.xml')/] +[/template] + +[template public getLibsWebPomFileName(oclAny:OclAny)] +[getMsLibsWebFolder().concat('/pom.xml')/] +[/template] + +[template public getLibsImplPomFileName(oclAny:OclAny)] +[getMsLibsImplFolder().concat('/pom.xml')/] +[/template] + +[template public getGatewayPomFileName(oclAny:OclAny)] +[getMsGateWayFolder().concat('/pom.xml')/] +[/template] + +[template public getGatewayAppFileName(oclAny:OclAny)] +[getInnerGatewayFolderName().concat('/').concat(getCleanArtifact().toUpperFirst().concat('GatewayApplication.java'))/] +[/template] + +[template public getGatewayAppTestFileName(oclAny:OclAny)] +[getTestInnerGatewayFolderName().concat('/').concat(getCleanArtifact().toUpperFirst().concat('GatewayApplicationTests.java'))/] +[/template] + +[template public getGatewayAppYMLFileName(oclAny:OclAny)] +[getGatewayResourceFolder().concat('/application.yml')/] +[/template] + +[template public getGatewayAppConfigFileName(oclny:OclAny)] +[getGatewayConfigFolderName().concat('/AppConfiguration.java')/] +[/template] + +[template public getTrackingPostFilterFileName(oclany:OclAny)] +[getGatewayFilterFolderName().concat('/CorrelationTrackingPostFilter.java')/] +[/template] + +[template public getTrackingPreFilterFileName(oclAny:OclAny)] +[getGatewayFilterFolderName().concat('/CorrelationTrackingPreFilter.java')/] +[/template] + +[template public getFilterEnumFileName(oclAny:OclAny)] +[getGatewayFilterFolderName().concat('/FilterOrderType.java')/] +[/template] + +[template public getFEMicroServiceFileName(microService : Component)] +[getFEMSFolder(microService).concat('/ciao.txt')/] +[/template] + +[template public getPagesRoutingFileName(oclAny : OclAny)] +[getFEAppPagesFolder().concat('pages-routing.module.ts')/] +[/template] + +[template public getSideBarLeftFileName(oclAny : OclAny)] +[getFESidebarLeftFolder().concat('sidebar-left.component.ts')/] +[/template] + +[template public getTranslateConfigFileName(oclAny : OclAny)] +[getFEAppFolder().concat('translate.config.ts')/] +[/template] + +[template public getRelativeWebJarFileNameMs(component : Component)] +modules/[getArtifact().concat('-').concat(component.getMsName()).concat('-web').concat('/target/').concat(getArtifact().concat('-').concat(component.getMsName())).concat('.jar')/] +[/template] + +[template public getRelativeGatewayJarFileNameMs(component : Component)] +[('target/').concat(getArtifact().concat('-').concat(component.name.toLowerFirst())).concat('.jar')/] +[/template] + +[template public getMsFePomFileName(microService : Component)] +[getFEAppPagesFolder().concat('/').concat(getArtifact()).concat('-').concat(getMsName(microService)).concat('-fe').concat('/pom.xml')/] +[/template] + +[template public getMsPrivilegeFileName(oclAny : OclAny)] +[getRootFEFolderName().concat('/privilege.enum.ts')/] +[/template] + +[template public getDockerPrometheusGrafanaFileName(oclAny : OclAny)] +[getPrometheusGrafanaFolder().concat('/docker-compose.yml')/] +[/template] + +[template public getPrometheusDockerFileName(oclAny : OclAny)] +[getPrometheusFolder().concat('prometheus.yml')/] +[/template] + +[template public getGrafanaIniFileName(oclAny : OclAny)] +[getGrafanaFolder().concat('grafana.ini')/] +[/template] + +[template public getPrivilegeFileName(oclAny : OclAny)] +[getFEAppFolder().concat('security/privilege.ts')/] +[/template] + +[template public getSecurityConfigFileName(oclAny : OclAny)] +[getFEAppFolder().concat('security/security.config.ts')/] +[/template] + +[template public getManifestFileName(microService: Component)] +[getMicroServiceMetaInfFolder(microService).concat('/MANIFEST.MF')/] +[/template] + +[template public getMapperConfigGeneralFileName(oclAny : OclAny)] +[getFEAppFolder().concat('mapper.config.ts')/] +[/template] + +[template public getRewriteConfigFileName(oclAny: OclAny)] +[getFEFolder().concat('/rewrite.config')/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/folderUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/folderUtils.mtl new file mode 100644 index 0000000..d0fc48a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/folderUtils.mtl @@ -0,0 +1,254 @@ +[comment encoding = UTF-8 /] +[module folderUtils('http://www.eclipse.org/uml2/2.2.0/GenModel', 'http://www.eclipse.org/uml2/5.0.0/Types', 'http://www.eclipse.org/uml2/5.0.0/UML', 'http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard')] + +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::common::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::angular::generalUtils/] + + + + +[template public getBEFolder(dummy: OclAny)] +[getArtifact().concat('/modules/').concat(getArtifact().concat('-be'))/] +[/template] + +[template public getMicroServiceFolder(microservice: Component)] +[getBEFolder().concat('/').concat(getArtifact().concat('-ms-')).concat(microservice.getMicroServiceName())/] +[/template] + +[template public getMSFolderForDocker(microservice : Component)] +[getBEFolder().concat('/').concat(getArtifact().concat('-ms-')).concat(microservice.getMicroServiceName())/] +[/template] + +[template public getMSFolderForDockerBuildContext(microservice : Component)] +[('modules/').concat(getArtifact().concat('-be/')).concat(getArtifact().concat('-ms-')).concat(microservice.getMicroServiceName())/] +[/template] + +[template public getGatewayFolderForDockerBuildContext(microservice : Component)] +[('modules/').concat(getArtifact().concat('-be/')).concat(getArtifact()).concat('-').concat(microservice.getMicroServiceName())/] +[/template] + +[template public getMicroServiceModelModuleFolder(microservice:Component)] +[getMicroServiceFolder().concat('/modules/').concat(getArtifact().concat('-ms-').concat(microservice.getMicroServiceName()).concat('-model'))/] +[/template] + +[template public getMicroServiceMainsFolder(microService:Component)] +[getMicroServiceModelModuleFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/').concat('/').concat(microService.getMicroServiceName()).concat('/model'))/] +[/template] + +[template public getMsLibsFolder(oclany:OclAny)] +[getBEFolder().concat('/').concat(getArtifact().concat('-libs'))/] +[/template] + +[template public getMsGateWayFolder(dummy:OclAny)] +[getBEFolder().concat('/').concat(getArtifact().concat('-gateway'))/] +[/template] + +[template public getInnerGatewayFolderName(oclAny:OclAny)] +[getMsGateWayFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/gateway')/] +[/template] + +[template public getTestInnerGatewayFolderName(oclAny:OclAny)] +[getMsGateWayFolder().concat('/src/test/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/gateway')/] +[/template] + +[template public getGatewayResourceFolder(oclAny:OclAny)] +[getMsGateWayFolder().concat('/src/main/resources/')/] +[/template] + +[template public getGatewayConfigFolderName(oclAny:OclAny)] +[getMsGateWayFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/gateway/config')/] +[/template] + +[template public getGatewayFilterFolderName(oclAny:OclAny)] +[getMsGateWayFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/gateway/filter')/] +[/template] + +[template public getMsEntityFolderName(oclAny:OclAny)] +[getMsLibsCoreFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/entity/')/] +[/template] + +[template public getLibsUtilitiesFolderName(oclAny:OclAny)] +[getMsLibsCoreFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/utilities/')/] +[/template] + +[template public getLibsConverterFolderName(oclAny : OclAny)] +[getMsLibsWebFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/converter/')/] +[/template] + +[template public getLibsFilterFolderName(oclAny : OclAny)] +[getMsLibsWebFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/filter/')/] +[/template] + +[template public getMsServiceFolderName(oclAny : OclAny)] +[getMsLibsCoreFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/service/')/] +[/template] + +[template public getMsRepositoryFolderName(oclAny:OclAny)] +[getMsLibsCoreFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/repository/')/] +[/template] + +[template public getMsServiceImplFolderName(oclAny:OclAny)] +[getMsLibsImplFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/service/')/] +[/template] + +[template public getMsControllerFolderName(oclAny:OclAny)] +[getMsLibsWebFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/controller/')/] +[/template] + +[template public getMsLibsCoreFolder(oclAny:OclAny)] +[getMsLibsFolder().concat('/').concat(getArtifact().concat('-libs-core'))/] +[/template] + +[template public getMsLibsImplFolder(oclAny:OclAny)] +[getMsLibsFolder().concat('/').concat(getArtifact().concat('-libs-impl'))/] +[/template] + +[template public getMsLibsWebFolder(oclAny:OclAny)] +[getMsLibsFolder().concat('/').concat(getArtifact().concat('-libs-web'))/] +[/template] + +[template public getMicroServicePropertyFolder(microService: Component)] +[getMicroServiceModelResourcesFolder().concat('properties')/] +[/template] + +[template public getMicroServiceModelResourcesFolder(microService: Component)] +[getMicroServiceModelModuleFolder().concat('/src/main/resources/')/] +[/template] + +[template public getBaseDTOFolderName(oclAny:OclAny)] +[getMsLibsWebFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/dto/')/] +[/template] + +[template public getLibsCoreFolderName(oclAny:OclAny)] +[getArtifact().concat('-libs-core')/] +[/template] + +[template public getLibsWebFolderName(oclAny:OclAny)] +[getArtifact().concat('-libs-web')/] +[/template] + +[template public getLibsImplFolderName(oclAny:OclAny)] +[getArtifact().concat('-libs-impl')/] +[/template] + +[template public getLibsFolderName(oclAny:OclAny)] +[getArtifact().concat('-libs')/] +[/template] + +[template public getLibsCoreResourceFolder(oclAny:OclAny)] +[getMsLibsCoreFolder().concat('/src/main/resources')/] +[/template] + +[template public getLibsWebResourceFolder(oclAny:OclAny)] +[getMsLibsWebFolder().concat('/src/main/resources/')/] +[/template] + +[template public getLibsImplResourceFolder(oclAny:OclAny)] +[getMsLibsImplFolder().concat('/src/main/resources/')/] +[/template] + +[template public getGroupFirstForFolder(oclAny:OclAny){sequenza : Sequence(String) = getGroupName().toString().tokenize('.');}] +[sequenza->at(1)/] +[/template] + +[template public getGroupSecondForFolder(oclAny:OclAny) {sequenza : Sequence(String) = getGroupName().toString().tokenize('.');}] +[sequenza->at(2)/] +[/template] + +[template public getBaseAssemblerFolderName(oclAny:OclAny)] +[getMsLibsWebFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/assembler/')/] +[/template] + + + +[template public getResponseLibsFolderName(oclAny:OclAny)] +[getMsLibsCoreFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/response/')/] +[/template] + +[template public getExceptionLibsFolderName(oclAny:OclAny)] +[getMsLibsCoreFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/exception/')/] +[/template] + +[template public getRequestLibsFolderName(oclAny:OclAny)] +[getMsLibsCoreFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/request/')/] +[/template] + +[template public getResponseWebLibsFolderName(oclAny:OclAny)] +[getMsLibsWebFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/response/')/] +[/template] + +[template public getFEMicroServiceFolderName(microService : Component)] +[getRootFEFolderName().concat('/').concat(getArtifact().concat('-ms-').concat(microService.getMicroServiceName()).concat('-fe'))/] +[/template] + +[comment]ANGULAR[/comment] +[template public getRootFEFolderName(oclAny : OclAny)] +[getArtifact().toLowerCase()/]-fe +[/template] + +[template public getEntityMSFEFolder(aClass : Class)] +[getRootFEFolderName().concat('/').concat(aClass.getDashedEntityClassName())/] +[/template] + +[template public getFEAppFolder(oclAny : OclAny)] +[getFEFolder().concat('/src/app/')/] +[/template] + +[template public getFESrcFolder(oclAny : OclAny)] +[getFEFolder().concat('/src/')/] +[/template] + +[template public getIndexFileName(oclAny : OclAny)] +[getFESrcFolder().concat('/index.html')/] +[/template] + +[template public getFEAppPagesFolder(oclAny : OclAny)] +[getFEAppFolder().concat('pages/')/] +[/template] + +[template public getFELayoutFolder(oclAny :OclAny)] +[getFEAppFolder().concat('layout/')/] +[/template] + +[template public getFESidebarLeftFolder(oclAny : OclAny)] +[getFELayoutFolder().concat('sidebar-left/')/] +[/template] + +[template public getFEFolder(dummy : OclAny)] +[getArtifact().concat('/modules/').concat(getArtifact().toLowerCase().concat('-fe'))/] +[/template] + +[template public getFEMSFolder(microService : Component)] +[getFEFolder().concat('/src/app/pages/').concat(getArtifact().concat('-ms-').concat(microService.getMicroServiceName()).concat('-fe'))/] +[/template] + +[template public getLibsSecurityFolderName(oclAny:OclAny)] +[getMsLibsWebFolder().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/libs/security/')/] +[/template] + +[template public getFESecurityFolder(oclAny : OclAny)] +[getFEAppFolder().concat('security/')/] +[/template] + +[template public getPrometheusGrafanaFolder(oclAny : OclAny)] +[getArtifact().concat('/prometheus-grafana/')/] +[/template] + +[template public getPrometheusFolder(oclAny : OclAny)] +[getPrometheusGrafanaFolder().concat('prometheus/')/] +[/template] + +[template public getGrafanaFolder(oclAny : OclAny)] +[getPrometheusGrafanaFolder().concat('grafana/')/] +[/template] + +[template public getMicroServiceMetaInfFolder(microService:Component)] +[getMicroServiceModelModuleFolder(microService).concat('/META-INF')/] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/folderUtilsSandBox.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/folderUtilsSandBox.mtl new file mode 100644 index 0000000..30a0a9a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/folderUtilsSandBox.mtl @@ -0,0 +1,32 @@ +[module folderUtilsSandBox('http://www.eclipse.org/uml2/2.2.0/GenModel', 'http://www.eclipse.org/uml2/5.0.0/Types', 'http://www.eclipse.org/uml2/5.0.0/UML', 'http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard')] + +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] + + +[template public getModulesFolder(oclAny:OclAny)] +[getArtifact().concat('/modules')/] +[/template] + +[template public getCoreModuleFolder(oclAny:OclAny)] +[getModulesFolder().concat('/').concat(getCoreModuleName())/] +[/template] + +[template public getImplModuleFolder(oclAny:OclAny)] +[getModulesFolder().concat('/').concat(getImplModuleName())/] +[/template] + +[template public getImplResourcesFolder(oclAny:OclAny)] +[getImplModuleFolder().concat('/src/main/resources')/] +[/template] + +[template public getWebModuleFolder(oclAny:OclAny)] +[getModulesFolder().concat('/').concat(getWebModuleName())/] +[/template] + +[template public getModelModuleFolder(oclAny:OclAny)] +[getModulesFolder().concat('/').concat(getModelModuleName())/] +[/template] + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/mainGeneratorUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/mainGeneratorUtils.mtl new file mode 100644 index 0000000..34af737 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/mainGeneratorUtils.mtl @@ -0,0 +1,32 @@ +[module mainGeneratorUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::properties /] + + +[template public getPackageForMainGenerator(artifactId : String, microService : Component)] +[getBasePackageName()/].[microService.getMicroServiceName()/].model +[/template] + +[template public getModuleFileNameForMainGenerator(artifactId : String , microService : Component)] +/[getBasePackageNameAsFolder()/]/[microService.getMicroServiceName()/]/model/main +[/template] + +[template public getJavaImportsForMainGenerator(oclAny:OclAny)] +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +[/template] + +[template public getEclipseImportsForMainGenerator(oclAny:OclAny)] +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +[/template] + +[template public getAcceleoImportsForMainGenerator(oclAny:OclAny)] +import it.mice.voila2.acceleogenerator.core.Main; +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/microserviceUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/microserviceUtils.mtl new file mode 100644 index 0000000..f68b56b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/microserviceUtils.mtl @@ -0,0 +1,52 @@ +[comment encoding = UTF-8 /] +[module microserviceUtils('http://www.eclipse.org/uml2/2.2.0/GenModel', 'http://www.eclipse.org/uml2/5.0.0/Types', 'http://www.eclipse.org/uml2/5.0.0/UML', 'http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard')] + +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::microServiceUtils/] + +[template public getMicroServiceName(aComponent:Component)] +[aComponent.name.toLowerCase()/] +[/template] + +[comment]Metodo per ottenere la token value pairs variable @SECURITY_NAME@ [/comment] +[template public getSecurityMsName(aModel : Model) post(trim())] +[getSecurityMSName(aModel).toString().toLowerFirst()/] +[/template] + +[query public isMicroserviceInCategory(category : String) : Boolean + = getCategory() = category +/] + +[query public isSecurityMicroservice(oclAny: OclAny) : Boolean + = isMicroserviceInCategory('security') +/] + +[query public isNotificationMicroservice(oclAny: OclAny) : Boolean + = isMicroserviceInCategory('notification') +/] + +[query public isDemoMicroservice(oclAny: OclAny) : Boolean + = isMicroserviceInCategory('demo') +/] + +[query public isBusinessMicroservice(oclAny: OclAny) : Boolean + = isMicroserviceInCategory('business') +/] + +[query public isAttachmentMicroservice(oclAny: OclAny) : Boolean + = isMicroserviceInCategory('attachment') +/] + +[query public microserviceHasPersistenceType(persistenceType : String) : Boolean + = getPersistenceType() = persistenceType +/] + +[query public isSqlMicroservice(oclAny: OclAny) : Boolean + = microserviceHasPersistenceType('sql') +/] + +[query public isNoSqlMicroservice(oclAny: OclAny) : Boolean + = microserviceHasPersistenceType('noSql') +/] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/modelAssemblerUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/modelAssemblerUtils.mtl new file mode 100644 index 0000000..6ba9be6 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/modelAssemblerUtils.mtl @@ -0,0 +1,94 @@ +[module modelAssemblerUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] + +[comment]Genera i link per il gateway per tutte le entità padri della classe[/comment] +[template public genParentAssemblerLinks(aClass: Class)] +[for(parentAss : Association | aClass.getParentAssociations())] +if([aClass.getEntityClassName().toLowerFirst()/].get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]() != null) { +[comment]if([aClass.getEntityClassName().toLowerFirst()/].getThe[getEntityClassName(aClass.getParentClass(parentAss))/]() != null) { [/comment] + Link [getEntityClassName(aClass.getParentClass(parentAss)).toLowerFirst()/]Link = convert(linkTo(methodOn([getControllerClassName(aClass.getParentClass(parentAss))/].class).getByObjectKey([getEntityClassName(aClass).toLowerFirst()/].get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey())).withRel("[aClass.getTheParentPropertyName(parentAss).toLowerFirst()/]")); +[comment].getById([aClass.getEntityClassName().toString().toLowerFirst()/].getThe[getEntityClassName(aClass.getParentClass(parentAss)).toString()/]().getObjectKey())).withRel("the[getEntityClassName(aClass.getParentClass(parentAss))/]"));[/comment] + [aClass.getDtoClassName().toLowerFirst()/].add([getEntityClassName(aClass.getParentClass(parentAss)).toString().toLowerFirst()/]Link); + } +[/for] +[/template] + +[comment]Genera i link per il gateway per tutte le entità(classi) figlie della classe[/comment] +[template public genChildrenAssemblerLinks(aClass : Class)] +[for(childAss : Association | aClass.getChildAssociations())] +if([aClass.getEntityClassName().toLowerFirst()/].get[aClass.getTheChildPropertyName(childAss).toUpperFirst()/]() != null) { +[comment]if([aClass.getEntityClassName().toLowerFirst()/].getThe[getEntityClassName(aClass.getChildClass(childAss))/]() != null){[/comment] + Link [getEntityClassName(aClass.getChildClass(childAss)).toString().toLowerFirst()/]Link = convert(linkTo(methodOn([getControllerClassName(aClass.getChildClass(childAss))/].class).findBy[aClass.getChildClass(childAss).getParentPropertyName(childAss)/]([aClass.getEntityClassName().toString().toLowerFirst()/].getObjectKey(), null)).withRel("[aClass.getTheChildPropertyName(childAss).toLowerFirst()/]")); + [aClass.getDtoClassName().toLowerFirst()/].add([getEntityClassName(aClass.getChildClass(childAss)).toString().toLowerFirst()/]Link); +} +[/for] +[/template] + +[comment]Genera link per tutte le classi padri dei (modelli) microservizi esterni importati nel modello della classe + Esempio : se nel mio ms gestisco gli ordini e ho un ms che genera il report degli ordini per tutti i clienti(gestiti da un altro ms) + allora ms ordine importa ms cliente (che da Papyrus è gestita come un'assocazione) SOLO a livello link e non a livello di entità + per comunicare col ms cliente (na cos' e chest)[/comment] +[template public genParentAssemblerLinksImportedMs(aClass: Class)] +[for(parentAss : Association | aClass.getParentAssFromImportedModels())] +if ([aClass.getEntityClassName().toLowerFirst()/].getThe[getEntityClassName(aClass.getParentClass(parentAss))/]ObjectKey() != null) { + Link [getEntityClassName(aClass.getParentClass(parentAss))/]Link = getLink("[aClass.getParentClass(parentAss).getModel().name.toString()/]", "[aClass.getParentClass(parentAss).getEntityClassName()/]", ([aClass.getEntityClassName().toLowerFirst()/].get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey()), LinkRelation.of("the[getEntityClassName(aClass.getParentClass(parentAss))/]")); + [getDtoClassName(aClass).toLowerFirst()/].add([getEntityClassName(aClass.getParentClass(parentAss))/]Link); +} +[/for] +[/template] + +[comment]Genera link per tutte le classi figli dei (modelli) microservizi esterni importati nel modello della classe[/comment] +[template public genChildrenAssemblerLinksImportedMs(aClass: Class)] +[for(childAss : Association | aClass.getChildAssFromImportedModels())] +if ([aClass.getEntityClassName()/].getThe[getEntityClassName(aClass.getChildClass(childAss))/]ObjectKey() != null) { + Link [getEntityClassName(aClass.getChildClass(childAss))/]Link = getLink("[aClass.getParentClass(childAss).getModel().name.toString()/]", "[aClass.getChildClass(childAss).getEntityClassName()/]", ([aClass.getEntityClassName().toLowerFirst()/].get[aClass.getTheParentPropertyName(childAss).toUpperFirst()/]ObjectKey()), LinkRelation.of("the[getEntityClassName(aClass.getChildClass(childAss))/]")); + [getDtoClassName(aClass).toLowerFirst()/].add([getEntityClassName(aClass.getChildClass(childAss))/]Link); +} +[/for] +[/template] + +[template public genToModel(aClass : Class)] +@Override +public [getDtoClassName(aClass)/] toModel([getEntityClassName(aClass)/] [getEntityClassName(aClass).toString().toLowerFirst()/]) { + [getDtoClassName(aClass)/] [getDtoClassName(aClass).toString().toLowerFirst()/] = map([getEntityClassName(aClass).toString().toLowerFirst()/], [getDtoClassName(aClass)/].class,[getControllerClassName(aClass)/].class); + + // SELF LINK + Link selfLink = convert(linkTo(methodOn([getControllerClassName(aClass)/].class).getByObjectKey([getEntityClassName(aClass).toString().toLowerFirst()/].getObjectKey())).withSelfRel()); + [getDtoClassName(aClass).toString().toLowerFirst()/].add(selfLink); + + //PARENT LINKS + [if(aClass.hasParents())] + [genParentAssemblerLinks(aClass)/] + [/if] + + //CHILDREN LINKS + [if(aClass.hasChilds())] + [genChildrenAssemblerLinks(aClass)/] + [/if] + + //PARENTS LINKS FOR IMPORTED MS + [genParentAssemblerLinksImportedMs(aClass)/] + + + //CHILDREN LINKS FOR IMPORTED MS + [genChildrenAssemblerLinksImportedMs(aClass)/] + + return [getDtoClassName(aClass).toString().toLowerFirst()/]; + + } +[/template] + +[template public genToCollectionModel(aClass : Class)] +@Override +public CollectionModel<[getDtoClassName(aClass)/]> toCollectionModel(Iterable entities) { + CollectionModel<[getDtoClassName(aClass)/]> collectionEntities = super.toCollectionModel(entities); + // collectionEntities.add(linkTo(methodOn(OrdineController.class).findPaginated(null, null)).withSelfRel()); + + return collectionEntities; + } +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/pomUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/pomUtils.mtl new file mode 100644 index 0000000..33d021f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/pomUtils.mtl @@ -0,0 +1,517 @@ +[comment encoding = UTF-8 /] +[module pomUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::microservice::propertiesUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] + +[template public getRootPomModules(artifactId : String, aModel: Model)] +[if(isFrontEndGenerationEnabled(aModel))] +modules/[artifactId/]-fe +[/if] +modules/[artifactId/]-be +modules/[artifactId/]-model +[/template] + +[template public getFEPomModules(aModel:Model, artifactId : String)] +[for (microservice : Component | aModel.getMicroservices())] +src/app/pages/[artifactId/]-ms-[microservice.getMicroServiceName()/]-fe +[/for] +[/template] + +[template public getBEPomModules(artifactId: String , aModel:Model)] +[if(isGatewayGenerationEnabled(aModel))] +[artifactId/]-gateway +[/if] +[artifactId/]-libs +[for (microservice : Component | aModel.getMicroservices())] +[artifactId/]-ms-[microservice.getMicroServiceName()/] +[/for] +[/template] + +[template public getMSPomModules(artifactId : String , microService : Component)] +modules/[artifactId/]-ms-[microService.getMicroServiceName()/]-model +[/template] + +[comment]Questo metodo viene usato all'interno del ms dopo aver generato dal suo main[/comment] +[template public getMSGeneratedPomModules(artifactId: String)] +modules/[artifactId/]-model + modules/[artifactId/]-core + modules/[artifactId/]-web + modules/[artifactId/]-impl +[/template] + +[template public getParentModuleForMs(oclAny:OclAny)] +[getRootArtifactId()/]-be +[/template] + + +[template public getMSModelPomModules(artifactId: String)] + +[/template] + +[comment]Il root non deve avere come padre springboot altrimenti si sostituisce ai runtime[/comment] +[template public getPadreForRoot(oclAny:OclAny)] +[/template] + +[template public getPadreForMsFe(oclAny: OclAny)] +[getGAVP(getGroupName(),getArtifactForFE(),getVersion(),'../../../../pom.xml')/] +[/template] + +[template public getPadreForRoot1(oclAny:OclAny)] +[getGAV('org.springframework.boot', 'spring-boot-starter-parent', '2.1.4.RELEASE')/] + +[/template] + +[template public getPadreForBE(groupId : String , artifactId: String , version: String , path : String)] +[getGAVP(groupId, artifactId,version , path)/] +[/template] + +[template public getGAV(groupId : String, artifactId : String, version : String)] +[groupId/] +[artifactId/] +[version/] +[/template] + +[template public getGAVT(groupId:String , artifactId:String , version : String,type:String)] +[getGAV(groupId,artifactId,version)/] +[type/] +[/template] + +[template public getGAVP(groupId : String, artifactId : String, version : String, path : String)] +[getGAV(groupId, artifactId, version)/] + [path/] +[/template] + +[template public getDependeciesForRoot(oclAny:OclAny)] + + [getGAV('javax.servlet','javax.servlet-api','4.0.1')/] + +[/template] + +[comment][template public getPropertiesForRoot(oclAny:OclAny)] +1.8 +1.0-SNAPSHOT +true +ISO-8859-1 +0.9.1 +1.8 +1.8 +1.0.10.RELEASE +2.3.5.RELEASE +UTF-8 +UTF-8 +[/template][/comment] + +[template public genBEDependecies(oclAny : OclAny)] + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + javax.servlet + javax.servlet-api + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.projectlombok + lombok + true + + + + + + + + org.hibernate.validator + hibernate-validator + 6.1.7.Final + + + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + + + + + + + + + + + + +[/template] + +[template public genBEDependencyMng(oclAny : OclAny)] + + + org.springframework.boot + spring-boot-dependencies + ${spring-starter.version} + pom + import + + +[/template] + +[template public genBEProperties(oclAny : OclAny)] +11 +11 +11 +1.1-SNAPSHOT +2.6.1 +2.5.2 +UTF-8 +[/template] + +[template public genBEBuild(oclAny : OclAny)] + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot-maven-plugin.version} + + + + org.projectlombok + lombok + + + + + +[/template] + +[template public getGroup(oclAny : OclAny)] +[getProperty('group.name')/] +[/template] + +[template public getArtifactForRoot(oclAny:OclAny)] +[getArtifact()/] +[/template] + +[template public getArtifactForBE(oclAny:OclAny)] +[getArtifact()/]-be +[/template] + +[template public getArtifactForFE(oclAny:OclAny)] +[getArtifact()/]-fe +[/template] + +[template public getFEName(oclAny:OclAny)] +[getArtifactForFE()/] +[/template] + +[comment]questo metodo viene chiamata dal ms dove aver generato nel suo main, il padre è sempre backend[/comment] +[template public getArtifactForBEGenerated(oclAny:OclAny)] +[getProperty('root.artifactId')/] +[/template] + +[template public getArtifactForMS(microService : Component)] +[getArtifact()/]-[microService.getMsName()/] +[/template] + +[template public getArtifactForMSFE(microService:Component)] +[microService.getArtifactForMS()/]-fe +[/template] + +[template public getArtifactForMSModel(microService : Component)] +[getArtifact()/]-[microService.getMsName()/]-model +[/template] + +[template public getLibsModules(oclAny:OclAny)] +[getArtifactForLibs().concat('-core')/] +[getArtifactForLibs().concat('-web')/] +[getArtifactForLibs().concat('-impl')/] +[/template] + +[template public getGatewayModules(oclAny:OclAny)] + +[/template] + +[template public getLibsNoModules(oclAny:OclAny)] +[/template] + +[template public getLibsImplDependencies(moduleName : String)] +[getImplCoreDependency()/] +[getRunTimeDependency(moduleName)/] +[getRunTimeDependency('mail-'+moduleName)/] +[getRunTimeDependency('bi-'+moduleName)/] +[/template] + +[template public getGatewayDependencies(oclAny:OclAny)] +[getSpringCloudDependecies()/] +[getSpringActuatorDependency()/] +[/template] + +[template public getSpringActuatorDependency(oclAny:OclAny)] + + org.springframework.boot + spring-boot-starter-actuator + +[/template] + +[template public getJMXMicrometerDependency(oclAny:OclAny)] + + io.micrometer + micrometer-registry-jmx + +[/template] + +[template public getPrometheusMicrometerDependency(oclAny : OclAny)] + + io.micrometer + micrometer-registry-prometheus + +[/template] + +[template public getLombokDependency(oclAny:OclAny)] + + + org.projectlombok + lombok + 1.18.20 + provided + +[/template] + +[template public getGatewayProperties(oclAny:OclAny)] +2021.0.0 +[/template] + +[template public getGatewayBuild(gateway:Component)] +spring-boot:run +[getArtifact()/]-[gateway.name.toLower()/] + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.5.RELEASE + + [getInnerGatewayPackage()/].[getArtifact().toString().dashToCamelCase().toUpperFirst()/][gateway.name.toUpperFirst()/]Application + + + + + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 2.6 + + false + + + +[/template] + +[template public getSpringCloudDependecies(oclAny:OclAny)] + + org.springframework.cloud + spring-cloud-starter-circuitbreaker-resilience4j + + + org.springframework.cloud + spring-cloud-starter-gateway + + + junit + junit + +[/template] + +[template public getGatewayDependencyManagement(oclAny:OclAny)] + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + +[/template] + +[template public getImplCoreDependency(oclAny:OclAny)] + + [getGAV(getGroupName(),getArtifactForLibsCore(),getVersion())/] + +[/template] + +[template public getLibsWebDependencies(moduleName : String)] +[getWebImplDependency()/] +[getRunTimeDependency(moduleName)/] +[comment][getRunTimeDependency('attachment-'+moduleName)/][/comment] +[getModelMapperDependency()/] +[getSpringHateoasDependency()/] +[getSpringOAauth2ResourceServerDependency()/] +[/template] + + + +[template public getMSDependencies(oclAny : OclAny)] + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.security + spring-security-test + test + +[getRunTimeDependencyWithSwaggerExclusions('core')/] +[/template] + +[template public genH2Dependency(oclAny:OclAny)] + + com.h2database + h2 + runtime + +[/template] + + +[template public genLiquidBaseDependency(oclAny : OclAny)] + + org.liquibase + liquibase-core + 4.3.5 + +[/template] + +[template public getSpringHateoasDependency(oclAny:OclAny)] + + org.springframework.boot + spring-boot-starter-hateoas + +[/template] + +[template public getSpringOAauth2ResourceServerDependency(oclAny:OclAny)] + + org.springframework.boot + spring-boot-starter-oauth2-resource-server + +[/template] + +[template public genJPAModelDependency(oclAny : OclAny)] + + + + + +[/template] + +[template public getModelMapperDependency(oclAny:OclAny)] + + org.modelmapper + modelmapper + ${modelmapper.version} + +[/template] + +[template public getLibsWebProperties(oclAny:OclAny)] +[getModelMapperProperty()/] +[/template] + +[template public getModelMapperProperty(oclAny:OclAny)] +2.3.9 +[/template] + +[template public getWebImplDependency(oclAny:OclAny)] + + [getGAV(getGroupName(),getArtifactForLibsImpl(),getVersion())/] + +[/template] + +[template public getLibsCoreDependencies(moduleName : String, aModel: Model)] +[getRunTimeDependencyWithSwaggerExclusions(moduleName)/] +[getRunTimeDependency('mail-'+moduleName)/] +[getRunTimeDependency('bi-'+moduleName)/] +[if(hasNoSqlMicroservice(aModel))] +[getRunTimeDependency('mongodb-'+moduleName)/] +[/if] + + org.springframework.boot + spring-boot-starter-hateoas + +[/template] + +[template public getRunTimeDependency(moduleName : String)] + + [getGAV('it.micegroup','voila2runtime-'+moduleName , '${voila2.runtime.version}')/] + +[/template] + +[template public getRunTimeDependencyWithSwaggerExclusions(moduleName : String)] + + [getGAV('it.micegroup','voila2runtime-'+moduleName , '${voila2.runtime.version}')/] + + + io.springfox + springfox-swagger2 + + + +[/template] + + +[template public getArtifactForLibsCore(oclAny:OclAny)] +[getArtifact()/]-libs-core +[/template] + +[template public getArtifactForLibs(oclAny:OclAny)] +[getArtifact()/]-libs +[/template] + +[template public getArtifactForGateway(oclAny:OclAny)] +[getArtifact()/]-gateway +[/template] + +[template public getArtifactForLibsWeb(oclAny:OclAny)] +[getArtifact()/]-libs-web +[/template] + +[template public getArtifactForLibsImpl(oclAny:OclAny)] +[getArtifact()/]-libs-impl +[/template] + +[template public getVersionForChild(oclAny:OclAny)] + +[/template] + +[template public getVersionForProject(oclAny:OclAny)] +[getVersion()/] +[/template] + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/propertiesUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/propertiesUtils.mtl new file mode 100644 index 0000000..fd8c240 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/microservice/propertiesUtils.mtl @@ -0,0 +1,72 @@ +[module propertiesUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] + +[template public getSourceFolderForMS(oclAny:OclAny)] +src +[/template] + +[template public getGroupNameForMS(oclAny:OclAny)] +[getGroupName()/] +[/template] + +[template public getBasePckNameForMS(microService: Component)] +[getGroupName()/].[getArtifact()/].[microService.getMicroServiceName()/] +[/template] + +[template public genBeModuleName(oclAny:OclAny)] +[getArtifact()/]-be +[/template] + + +[template public getBasePckNameAsFolderForMS(microService:Component)] +[getBasePckNameForMS().substituteAll('.','/')/] +[/template] + +[template public getArtifactIdForPropertiesForMS(oclAny:OclAny)] +[getArtifact()/] +[/template] + +[template public getProjectNameForMS(oclAny:OclAny)] +[getProjectName()/] +[/template] + +[template public getMsName(microservice: Component)] +ms-[microservice.name.toLowerCase()/] +[/template] + +[template public getNaturalMsName(microservice: Component)] +[microservice.name/] +[/template] + +[template public getMsAngularModuleName(microservice : Component)] +[getMsName(microservice).dashToCamelCase().toUpperFirst().concat('Module')/] +[/template] + + +[template public getMsNameByArtifactId(oclAny: OclAny)] +[getArtifact().substituteFirst(getRootArtifactId().concat('-'), '')/] +[/template] + +[template public getFEArtifactForMs(microService: Component)] +[getArtifact().concat('-ms-').concat(microService.getMicroServiceName()).concat('-fe')/] +[/template] + +[template public getMSAngularMenuName(microservice : Component)] +['MS_'.concat(microservice.getMicroServiceName().toUpper())/] +[/template] + +[comment] Metodo per recuperare il metodo del microservizio a partire dal Artifact Id, rimuovendo il prefisso ms. [/comment] +[template public getMsNameByArtifactIdWOMs(oclAny: OclAny)] +[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/] +[/template] + +[template public getMsNameByArtifactIdWOMsUpperFirst(oclAny: OclAny)] +[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '').toUpperFirst()/] +[/template] + +[template public getMsNameUF(microservice : Component)] +[microservice.getMicroServiceName().toUpperFirst()/] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/mvnWrapper.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/mvnWrapper.mtl new file mode 100644 index 0000000..17fe281 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/mvnWrapper.mtl @@ -0,0 +1,24 @@ +[comment encoding = UTF-8 /] +[module mvnWrapper('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] + +[template public genMvnWrapper(oclAny: OclAny)] +[comment]WRAPPER MVN[/comment] +[comment]ROOT[/comment] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/mvn', getRootFolderName().concat('/.mvn'), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/mvnScript', getRootFolderName(), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[comment]CORE[/comment] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/mvn', getCoreModuleFolderName().concat('/.mvn'), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/mvnScript', getCoreModuleFolderName(), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[comment]IMPL[/comment] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/mvn', getImplModuleFolderName().concat('/.mvn'), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/mvnScript', getImplModuleFolderName(), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[comment]WEB[/comment] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/mvn', getWebModuleFolderName().concat('/.mvn'), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[copyFolder('/src/it/mice/voila2/acceleogenerator/core/springboot/mvnScript', getWebModuleFolderName(), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[comment]###########END WRAPPER MVN-#####[/comment] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/properties.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/properties.mtl new file mode 100644 index 0000000..245b0cc --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/properties.mtl @@ -0,0 +1,92 @@ +[comment encoding = UTF-8 /] +[** + * The documentation of the module properties. + */] +[module properties('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] + +[** + * + * The documentation of the template generateElement. + * @param aClass + */] + +[template public getBaseDir(anOclAny : OclAny)] +[getProperty('basedir')/] +[/template] + +[template public getProjectId(anOclAny : OclAny)] +[getProperty('projectId')/] +[/template] + +[template public getProjectDescriptionWizard(anOclAny : OclAny)] +[getProperty('projectDescription')/] +[/template] + +[template public getBasePackageName(anOclAny : OclAny)] +[getProperty('base.package.name')/] +[/template] + +[template public getBaseGroupName(anOclAny : OclAny)] +[getProperty('baseGroupName')/] +[/template] + +[template public getBasePackageNameAsFolder(anOclAny : OclAny)] +[getProperty('basePackageAsFolder')/] +[/template] + +[template public getProjectDate(anOclAny : OclAny)] +[getProperty('projectDate')/] +[/template] + +[template public getSourceFolder(anOclAny : OclAny)] +[getProperty('sourcefolder')/] +[/template] + +[template public getProjectName(anOclAny : OclAny)] +[getProperty('project.name')/] +[/template] + + +[template public getArtifact(anOclAny : OclAny)] +[getProperty('artifact')/] +[/template] + + +[template public getGroupName(anOclAny : OclAny)] +[getProperty('group.name')/] +[/template] + + +[template public getProjectDescription(anOclAny : OclAny)] +[getProperty('project.description')/] +[/template] + +[template public getVersion(anOclAny : OclAny)] +[getProperty('version')/] +[/template] + +[template public getRootArtifactId(anOclAny : OclAny)] +[getProperty('root.artifactId')/] +[/template] + +[template public getPortNumber(oclAny : OclAny)] +[getProperty('port.number')/] +[/template] + +[template public getCategory(oclAny:OclAny)] +[getProperty('microservice.category')/] +[/template] + +[template public getId(oclAny:OclAny)] +[getProperty('id')/] +[/template] + +[template public getPersistenceType(oclAny:OclAny)] +[getProperty('persistence.type')/] +[/template] + +[template public getCleanArtifact(anOclAny : OclAny)] +[getArtifact().replace('-', '')/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/associationUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/associationUtils.mtl new file mode 100644 index 0000000..f7312ad --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/associationUtils.mtl @@ -0,0 +1,432 @@ +[comment encoding = UTF-8 /] + +[comment] + +Association Utility's Templates +This library contains all the methods to work on parent-child relations + +[/comment] + +[module associationUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::generalUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] + +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[** + * Generate Child Collections for the Class + * @author: Vittorio Niespolo , Jessica Pascarella +*/] +[template public genChildCollections(aClass : Class)] +[for(a : Association | aClass.getChildAssociations())separator('\n')] +@JsonProperty(access = Access.WRITE_ONLY) +@JsonManagedReference("[if(getChildClass(aClass,a).hasCompositeKey() and a.isIdentifying())][getClassIdName(getChildClass(aClass,a))/].[/if][getTheSelfPropertyName(aClass.getParentClass(a), a)/]") +[if(isOneToOneRelation(a) and hasChildOneToOne(aClass,a, aClass.getParentEnd(a)))] +@OneToOne(mappedBy = "[if(getChildClass(aClass,a).hasCompositeKey())][getClassIdName(getChildClass(aClass,a))/].[/if][getTheSelfPropertyName(getChildClass(aClass, a), a)/]", fetch = FetchType.LAZY) +@EqualsAndHashCode.Exclude private [getChildClass(aClass, a).name/] [getTheChildPropertyName(aClass, a)/]; +[elseif(not(isOneToOneRelation(a)))] +@OneToMany(mappedBy = "[if(getChildClass(aClass,a).hasCompositeKey() and a.isIdentifying())][getClassIdName(getChildClass(aClass,a))/].[/if][getTheSelfPropertyName(getChildClass(aClass, a), a)/]", fetch = FetchType.LAZY, cascade = CascadeType.ALL) +@ToString.Exclude +private Collection<[getChildClass(aClass, a).name/]> [getTheChildPropertyName(aClass, a)/] = new ArrayList<>(); +[/if] +[/for] +[/template] + +[** + * Generate Child getter/setter for the Class + * @author: Vittorio Niespolo +*/] +[template public genChildGetterSetter(aClass : Class) post(trim())] +[for(a : Association | aClass.getChildAssociations())] +/** + * @return the [aClass.getChildClass(a).name.toUpperFirst()/] + */ +public Collection<[aClass.getChildClass(a).name/]> get[aClass.getTheChildPropertyName(a).toUpperFirst()/](){ + return [aClass.getTheChildPropertyName(a)/]; +} + +/** + * @param a[aClass.getChildClass(a).name.toUpperFirst()/]List to set + */ +public void set[aClass.getTheChildPropertyName(a).toUpperFirst()/](Collection<[aClass.getChildClass(a).name/]> a[aClass.getChildClass(a).name.toUpperFirst()/]List){ + [aClass.getTheChildPropertyName(a)/] = a[aClass.getChildClass(a).name.toUpperFirst()/]List; +} +[/for] +[/template] + +[** + * Generate Parent properties for the Class + * @author: Vittorio Niespolo , Jessica Pascarella +*/] +[template public genParentProperty(aClass : Class) post(trim())] +[for(a : Association | aClass.getNotIdentifyingParentAssociations())] +[if(a.isParentRequired())] +@NotNull +[/if] +[if(isOneToOneRelation(a))] +@OneToOne([if(aClass.getParentEnd(a).isNavigable()._not())]mappedBy = "the[aClass.getEntityClassName()/]",[/if] fetch = FetchType.LAZY) +[elseif(not(isOneToOneRelation(a)))] +@ManyToOne(fetch = FetchType.LAZY) +[/if] +[if(a.isManyToOneRelation() or (isOneToOneRelation(a) and aClass.getParentEnd(a).isNavigable()))] +[if(aClass.getParentClass(a).getClassIDs() -> size() > 1)] +@JoinColumns({ +[/if] +[for(p : Property | aClass.getParentClass(a).getClassIDsIncludingFK()) separator(',')] +@JoinColumn(name = "[genJoinColumnName(aClass, a, p)/][if(aClass.getParentClass(a).hasInnerCompositeKey())]_[camelToUnderscore(p.getPhysicalColumnName())/][/if]", referencedColumnName = "[camelToUnderscore(p.getPhysicalColumnName())/]", nullable = [if(a.isParentRequired() or a.isIdentifying())]false[elseif(not a.isParentRequired() and not a.isIdentifying())]true[/if][comment][if(isInCompositeKey(aClass, p))], insertable = false, updatable = false[/if][/comment]) +[/for] +[if(aClass.getParentClass(a).getClassIDs() -> size() > 1)] +}) +[/if] +@JsonBackReference("[getTheSelfPropertyName(getChildClass(aClass, a), a)/]") +@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"}, allowSetters = true) +[/if] +private [aClass.getParentClass(a).name/] [aClass.getTheParentPropertyName(a)/]; +[/for] +[/template] + +[** + * Generate Imported parents property as Column +*/] + +[template public genImportedParentProperty(aClass:Class) ] +[for(ass : Association | aClass.getParentAssFromImportedModels())] +[for(p:Property | aClass.getParentClass(ass).getClassIDs()) separator(',')] +[if(p.isID and aClass.hasCompositeKey()._not() and aClass.hasDefinition() and aClass.hasAutogeneratedId())]//WARNING For some RDBMS this syntax may not work. Manually delete COMMENT if you are not using Mysql.[/if] +@Column(name = "[camelToUnderscore(p.name)/]"[if(isInCompositeKey(aClass, p))], insertable = false, updatable = false[/if] +, columnDefinition="[p.getColumnDefinition(aClass)/]" +) +[if(p.isDateTime())]@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss")[/if] +private [p.type.getJavaType()/] [p.name/]; +[/for] +[/for] +[/template] + + +[template public genImportedParentGetterSetter(aClass:Class)] +[for(ass : Association | aClass.getParentAssFromImportedModels())] +[for(p:Property | aClass.getParentClass(ass).getClassIDs()) separator(',')] +[genGetter(p)/] +[genSetter(p)/] +[/for] +[/for] +[/template] + +[** + * Generate Parent getter/Setter for the Class + * @author: Vittorio Niespolo +*/] +[template public genParentGetterSetter(aClass : Class) post(trim())] +[for(a : Association | aClass.getNotIdentifyingParentAssociations())] +/** + * @return the [aClass.getParentClass(a).name.toUpperFirst()/] + */ +@JsonProperty(access = Access.WRITE_ONLY) +public [aClass.getParentClass(a).name/] get[aClass.getTheParentPropertyName(a).toUpperFirst()/](){ + return [aClass.getTheParentPropertyName(a)/]; +} + +/** + * @param a[aClass.getParentClass(a).name.toUpperFirst()/]List to set + */ +public void set[aClass.getTheParentPropertyName(a).toUpperFirst()/]([aClass.getParentClass(a).name/] a[aClass.getParentClass(a).name.toUpperFirst()/]){ + [aClass.getTheParentPropertyName(a)/] = a[aClass.getParentClass(a).name.toUpperFirst()/]; + [if(a.isIdentifying())] + if([aClass.getClassIdName()/] == null){ + [aClass.getClassIdName()/] = new [aClass.getClassIdName().toUpperFirst()/](); + } + [aClass.getClassIdName()/].set[aClass.getParentClass(a).getClassIdName().toUpperFirst()/]([aClass.getTheParentPropertyName(a)/].get[aClass.getParentClass(a).getClassIdName().toUpperFirst()/]()); + [/if] +} +[/for] +[/template] + +[** + * Generate Child links for the Class + * @author: Vittorio Niespolo +*/] +[template public genChildLinks(aClass: Class) post(trim())] +[for(childAss: Association | getChildAssociations(aClass)) separator(',\n')] +linkTo(ControllerLinkBuilder.methodOn([getControllerClassName(aClass)/].class) + .get[aClass.getTheChildPropertyName(childAss).toUpperFirst()/]ByObjectKey([getObjectKeyGetter(aClass, aClass)/], PageRequest.of(0, 20))).withRel("[aClass.getChildLinkName(childAss)/]")[/for] +[/template] + +[** + * Generate Parent links for the Class + * @author: Vittorio Niespolo +*/] +[template public genParentLinks(aClass: Class) post(trim())] +[for (parentAss : Association | aClass.getParentAssociations()) separator(',\n')] +linkTo(ControllerLinkBuilder.methodOn([getControllerClassName(getParentClass(aClass, parentAss))/].class) + .getById([getEntityClassName(aClass).toLowerFirst()/].get[getParentIdName(aClass, parentAss).toUpperFirst()/]())).withRel("[aClass.getParentLinkName(parentAss)/]")[/for] +[/template] + +[** + * Generate Self link for the Class + * @author: Vittorio Niespolo +*/] +[template public genSelfLink(aClass : Class) post(trim())] +linkTo(ControllerLinkBuilder.methodOn([getControllerClassName(aClass)/].class) + .getByObjectKey([getEntityClassName(aClass).toLowerFirst()/].getObjectKey())).withSelfRel() +[/template] + +[** + * Generate ParentId getter for the Class + * @author: Vittorio Niespolo +*/] +[template public genParentIdGetter(aClass : Class)] +[for(a : Association | aClass.getNotIdentifyingParentAssociations())] +/** + * Return the [getParentIdName(aClass, a)/] from [aClass.getTheParentPropertyName(a)/]. + * + * @return [getParentIdName(aClass, a)/] from [aClass.getTheParentPropertyName(a)/]. + */ +@JsonProperty +public [aClass.getParentClass(a).getClassIdType()/] get[getParentIdName(aClass, a).toUpperFirst()/]() { + // If the parent entity object is null, then return null + if (get[aClass.getTheParentPropertyName(a).toUpperFirst()/]() == null) { + return null; + } + // Return requested attribute + return [aClass.getTheParentPropertyName(a)/].get[aClass.getParentClass(a).getClassIdName().toUpperFirst()/](); +} +[/for] +[/template] + +[template public genParentObjectTitleGetter(aClass : Class)] +[for(a : Association | aClass.getParentAssociations())] +/** + * Return the object title of [aClass.getTheParentPropertyName(a)/]. + * + * @return the object title of [aClass.getTheParentPropertyName(a)/]. + */ +@JsonProperty +public String get[aClass.getTheParentPropertyName(a).toUpperFirst()/]ObjectTitle() { + return get[aClass.getTheParentPropertyName(a).toUpperFirst()/]() != null ? get[aClass.getTheParentPropertyName(a).toUpperFirst()/]().getObjectTitle() : null; +} +[/for] +[/template] + +[template public genParentObjectKeyGetter(aClass : Class, parentAss: Association, identifying : Boolean, isKeyClass: Boolean)] +/** + * Return the object key of [aClass.getTheParentPropertyName(parentAss)/]. + * + * @return the object key of [aClass.getTheParentPropertyName(parentAss)/]. + */ +@JsonProperty +public String get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey() { + return get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]() != null ? get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]().getObjectKey() : null; +} +[if(aClass.getParentClass(parentAss).hasCompositeKey())] +[for(id : Property | aClass.getParentClass(parentAss).getClassIDsIncludingFK())] +[genExternalCKGetter(aClass, parentAss, id, identifying, isKeyClass)/] +[/for] +[/if] +[/template] + +[template public genParentObjectKeySetter(aClass : Class, parentAss: Association, identifying: Boolean)] +/** + * Set object key of [aClass.getTheParentPropertyName(parentAss)/]. + * + */ +@JsonProperty +public void set[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey(String objectKey) { + if (EntityUtils.isValueChanged(get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey(), objectKey, false)) { + [aClass.getParentClass(parentAss).name.toUpperFirst()/] [aClass.getParentClass(parentAss).name.toLowerFirst()/] = new [aClass.getParentClass(parentAss).name.toUpperFirst()/](); + [aClass.getParentClass(parentAss).name.toLowerFirst()/].setObjectKey(objectKey); + set[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]([aClass.getParentClass(parentAss).name.toLowerFirst()/]); + } +} + + +[for(id : Property | aClass.getParentClass(parentAss).getClassIDsIncludingFK())] +[genExternalCKSetter(aClass, parentAss, id, identifying)/] +[/for] + +[/template] + +[** + * Generate ParentId setter for the Class + * @author: Vittorio Niespolo +*/] +[template public genParentIdSetter(aClass : Class)] +[for(a : Association | aClass.getParentAssociations())] +/** + * Imposta il valore dell'attributo [getParentIdName(aClass, a)/], appartenente all'oggetto [aClass.getTheParentPropertyName(a)/], nell'entity + * corrente. + * + * @param a[aClass.getParentClass(a).getClassIdName().toUpperFirst()/] + * + */ +@JsonDeserialize +public void set[getParentIdName(aClass, a).toUpperFirst()/]([aClass.getParentClass(a).getClassIdType()/] a[aClass.getParentClass(a).getClassIdName().toUpperFirst()/]) { + // If the parent entity object is null, then create a new one + if([aClass.getTheParentPropertyName(a)/] == null) + { + [aClass.getTheParentPropertyName(a)/] = new [aClass.getParentClass(a).name.toUpperFirst()/](); + } + // Set value to the attribute + [aClass.getTheParentPropertyName(a)/].set[aClass.getParentClass(a).getClassIdName().toUpperFirst()/](a[aClass.getParentClass(a).getClassIdName().toUpperFirst()/]); +} +[/for] +[/template] + +[** + * Generate service instancing for childs + * @author: Vittorio Niespolo +*/] +[template public genChildServices(aClass : Class)] +[for(c:Class| aClass.getChildClassesNoDup())] +[if((getServiceClassName(c).toString().equalsIgnoreCase(getServiceClassName(aClass)))._not())] +private final [getServiceClassName(c)/] [getServiceClassName(c).toString().toLowerFirst()/];[/if][/for] +[/template] + +[** + Metodo per generare il getter OK delle classi padri dei modelli importati + @author Simone Punzo +/] + +[template public genImportedParentObjectKeySetter(aClass : Class)] +[for(ass : Association | aClass.getParentAssFromImportedModels())] +/** + * Imposta il valore degli attributi ID , appartenente all'oggetto [aClass.getTheParentPropertyName(ass)/], nell'entity + * corrente per permettere una corretta interrogazione del DB anche se le due entità non sono accedibili una dall'altra + * (gestite da due MS diversi) + * @param key + * + */ +public void set[aClass.getTheParentPropertyName(ass).toUpperFirst()/]ObjectKey(String key) { + if (key == null || key.trim().length() == 0) { + return; + } + String['['/]] array = StringUtils.splitByWholeSeparatorPreserveAllTokens(key, getRowIdFieldDelimiter()); + int ctr = 0; + [for(prop : Property | aClass.getParentClass(ass).getClassIDs()) separator('\tctr++;\n')] + set[prop.name.toUpperFirst()/](get[prop.type.getJavaType()/]CheckedAgainstNullContent(array['['/]ctr])); + [/for] + +} +[/for] +[/template] + +[** + Metodo per generare il getter OK delle classi padri dei modelli importati + @author Simone Punzo +/] +[template public genImportedParentObjectKeyGetter(aClass : Class)] +[for(a : Association | aClass.getParentAssFromImportedModels())] +/** + * Return the object key of [aClass.getTheParentPropertyName(a)/]. + * + * @return the object key of [aClass.getTheParentPropertyName(a)/]. + */ +public String get[aClass.getTheParentPropertyName(a).toUpperFirst()/]ObjectKey() { + StringBuilder output = new StringBuilder(); + [for(p:Property | aClass.getParentClass(a).getClassIDs()) separator('\toutput.append(getRowIdFieldDelimiter());\n')] + output.append(get[p.name.toUpperFirst()/]()); + [/for] + return output.toString(); +} +[/for] +[/template] + +[template genJoinColumnName(aClass: Class, parentAss: Association, property: Property)] +[comment][if(parentAss.isSelfRelation())][camelToUnderscore(aClass.getParentEnd(parentAss).name)/][else][camelToUnderscore(property.name)/][/if][if(aClass.getParentClass(parentAss).hasCompositeKey())]_[camelToUnderscore(property.name)/][/if][/comment] +[parentAss.getPhysicalMappedName(property)/] +[/template] + + + +[template public genExternalCKGetter(aClass: Class, parentAss: Association, id: Property, identifying: Boolean, isKeyClass: Boolean)] +[for(grandParentAss: Association| aClass.getParentClass(parentAss).getIdentifyingParentAssociations())] +/** + * Return the [id.name/]. + * + * @return [id.name/]. + */ +@JsonProperty +public [id.type.getJavaType()/] get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/][id.name.toUpperFirst()/]() { + // If the parent entity object is null, then return null + [if(identifying)] + if ([if(isKeyClass._not())][aClass.getClassIdName()/] == null || [aClass.getClassIdName()/].[/if]get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]() == null) { + [else] + if (get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]() == null) { + [/if] + return null; + } + // Return requested attribute + [if(identifying)] + [if(aClass.getParentClass(parentAss).isInInnerID(id))] + return [if(isKeyClass._not())][aClass.getClassIdName()/].[/if]get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]().get[id.name.toUpperFirst()/](); + [else] + return [if(isKeyClass._not())][aClass.getClassIdName()/].[/if]get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]()[if(aClass.getParentClass(parentAss).hasCompositeKey())].get[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]()[/if].get[id.name.toUpperFirst()/](); +[comment] return [if(isKeyClass._not())][aClass.getClassIdName()/].[/if]get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]().get[aClass.getParentClass(parentAss).getTheParentPropertyName(grandParentAss).toUpperFirst()/][id.name.toUpperFirst()/]();[/comment] + [/if] + [else] + [if(aClass.isInInnerID(id))] + return [aClass.getTheParentPropertyName(parentAss)/].get[id.name.toUpperFirst()/](); + [else] + return [aClass.getTheParentPropertyName(parentAss)/].get[aClass.getParentClass(parentAss).getTheParentPropertyName(grandParentAss).toUpperFirst()/][id.name.toUpperFirst()/](); + [/if] + [/if] +} +[/for] +[/template] + +[template public genExternalCKSetter(aClass: Class, parentAss: Association, id: Property, identifying: Boolean)] +[for(grandParentAss: Association| aClass.getParentClass(parentAss).getIdentifyingParentAssociations())] +/** + * Set the [id.name/]. + * @param [id.name/] + * + */ +@JsonProperty +public void set[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/][id.name.toUpperFirst()/]([id.type.getJavaType()/] [id.name/]) { + if (EntityUtils.isValueChanged(get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/][id.name.toUpperFirst()/](), [id.name/], false)) { + if (get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]() == null) { + set[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/](new [aClass.getParentClass(parentAss).getEntityClassName()/]()); + } + [if(aClass.getParentClass(parentAss).isInInnerID(id))] + get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]().set[id.name.toUpperFirst()/]([id.name/]); + [else] + get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]()[if(aClass.getParentClass(parentAss).hasCompositeKey())].get[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]()[/if].set[id.name.toUpperFirst()/]([id.name/]); +[comment] get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]().set[aClass.getParentClass(parentAss).getTheParentPropertyName(grandParentAss).toUpperFirst()/][id.name.toUpperFirst()/]([id.name/]);[/comment] + [/if] + } +} +[/for] +[/template] + +[comment]TODELETE[/comment] +[template public getExternalCKIdName(parentClass: Class, grandParentAss: Association, id: Property)] +[if(parentClass.isInInnerID(id))] +[id.name.toUpperFirst()/] +[else] +ciao +[comment][parentClass.getTheParentPropertyName(grandParentAss)/][getExternalCKIdName(parentClass.getParentClass(grandParentAss), grandParentAss, id)/][/comment] +[/if] +[/template] + +[template public genParentObjectTitleGetter(aClass : Class, parentAss: Association)] +/** + * Return the object title of [aClass.getTheParentPropertyName(parentAss)/]. + * + * @return the object title of [aClass.getTheParentPropertyName(parentAss)/]. + */ +@JsonProperty +public String get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectTitle() { + return get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]() != null ? get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]().getObjectTitle() : null; +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/auditable.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/auditable.mtl new file mode 100644 index 0000000..b871aaa --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/auditable.mtl @@ -0,0 +1,94 @@ +[comment encoding = UTF-8 /] +[comment] + +Auditable Java Class Template + +@author Vittorio Niespolo + +[/comment] +[module auditable('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] + +[template public genAuditable(isMs : Boolean) post(writeAndFormat(isMs.getAuditableFileName()))] +[if(isMs)] +package [getLibsUtilitiesPackage()/]; +[else] +package [getUtilitiesPackage()/]; +[/if] + +import java.time.LocalDateTime; + +import javax.persistence.Column; +import javax.persistence.EntityListeners; +import javax.persistence.MappedSuperclass; + +import org.springframework.data.annotation.CreatedBy; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedBy; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +[if(isMs)] +import [getEntityLibsPackage()/].BaseEntity; +[else] +import [getEntityPackage()/].BaseEntity; +[/if] + +/** + * Class for audit data. This class is extended by entity flagged as auditable. + */ +@EntityListeners(AuditingEntityListener.class) +@MappedSuperclass +public abstract class Auditable extends BaseEntity { + @CreatedBy + @Column(name = "created_by") + private String createdBy; + + @CreatedDate + @Column(name = "created_date", updatable = false) + private LocalDateTime createdDate; + + @LastModifiedBy + @Column(name = "last_modified_by") + private String lastModifiedBy; + + @LastModifiedDate + @Column(name = "last_modified_date", updatable = false) + private LocalDateTime lastModifiedDate; + + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } + + public LocalDateTime getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(LocalDateTime createdDate) { + this.createdDate = createdDate; + } + + public String getLastModifiedBy() { + return lastModifiedBy; + } + + public void setLastModifiedBy(String lastModifiedBy) { + this.lastModifiedBy = lastModifiedBy; + } + + public LocalDateTime getLastModifiedDate() { + return lastModifiedDate; + } + + public void setLastModifiedDate(LocalDateTime lastModifiedDate) { + this.lastModifiedDate = lastModifiedDate; + } +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/cacheConfig.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/cacheConfig.mtl new file mode 100644 index 0000000..327fe67 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/cacheConfig.mtl @@ -0,0 +1,45 @@ +[comment encoding = UTF-8 /] + +[comment] + +Controller Java Class Template + +@author Vittorio Niespolo + +[/comment] + +[module cacheConfig('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] + +[template public genCacheConfig(isMs : Boolean) post(writeAndFormat(isMs.getCacheConfigFileName()))] +[if(isMs)] +package [getLibsUtilitiesPackage()/]; +[else] +package [getUtilitiesPackage() /]; +[/if] +import java.util.Arrays; + +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.concurrent.ConcurrentMapCache; +import org.springframework.cache.support.SimpleCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCaching +public class CacheConfig { + + @Bean + public CacheManager cacheManager() { + SimpleCacheManager cacheManager = new SimpleCacheManager(); + cacheManager.setCaches(Arrays.asList( + new ConcurrentMapCache("PrivilegePerRole") + )); + return cacheManager; + } +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/classNameUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/classNameUtils.mtl new file mode 100644 index 0000000..45f4471 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/classNameUtils.mtl @@ -0,0 +1,168 @@ +[comment encoding = UTF-8 /] + +[comment] + +ClassName Utility's templates +This library contains methods to get classNames + +[/comment] + +[module classNameUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] + +[** + * Get the ServiceClassName + * @author: Vittorio Niespolo +*/] +[template public getServiceClassName(aType : Type)] +[aType.name.concat('Service')/] +[/template] + +[** + * Get the ServiceClassObject + * @author: Vittorio Niespolo +*/] +[template public getServiceObjectName(aType : Type)] +[aType.name.concat('Service').toLowerFirst()/] +[/template] + +[** + * Get the EntityClassName + * @author: Vittorio Niespolo +*/] +[template public getEntityClassName(aType : Type)] +[aType.name/] +[/template] + +[template public getWriteDtoName(aType : Type)] +[getEntityClassName(aType)/]WriteDto +[/template] + +[template public getParentEntityClassName(aClass : Class, parentAss: Association)] +[aClass.getParentClass(parentAss).getEntityClassName()/] +[/template] + +[template public getInterfaceName(aType : Type)] +I[aType.name/] +[/template] + +[template public getEntityModelName(aType : Type)] +[aType.name/] +[/template] + +[template public getEntityCKClassName(aType: Type)] +[aType.name.concat('Key')/] +[/template] + +[** + * Get the ClassObjectName + * @author: Vittorio Niespolo +*/] +[template public getEntityObjectName(aType : Type)] +[aType.name.toLowerFirst()/] +[/template] + +[** + * Get the Entity_ClassName for the auto-generated metamodel + * @author: Vittorio Niespolo +*/] +[template public getEntity_ClassName(aType : Type)] +[aType.name.concat('_')/] +[/template] + +[template public getObjectName(aType : Type)] +[aType.name.toLowerFirst()/] +[/template] + +[template public getObjectRepositoryName(aClass : Class)] +[aClass.name.toLowerFirst().concat('Repository')/] +[/template] + +[template public getServiceImplClassName(aClass : Class)] +[aClass.name.concat('ServiceImpl')/] +[/template] + +[template public getControllerClassName(aClass : Class)] +[aClass.name.concat('Controller')/] +[/template] + +[template public getDtoClassName(aClass:Class)] +[aClass.name.concat('Dto')/] +[/template] + +[template public getCriteriaClassName(aClass : Class)] +[aClass.name.concat('Criteria')/] +[/template] + +[template public getRepositoryClassName(aClass : Class)] +[aClass.name.concat('Repository')/] +[/template] + +[template public getFilterServiceClassName(aClass : Class)] +FilterService<[aClass.name/]> +[/template] + +[template public getKeyClassName(aClass : Class)] +[aClass.name.concat('Key')/] +[/template] + +[template public getMainClassName(oclAny : OclAny)] +[getProjectName().toUpperFirst().concat('Application').substituteAll('.', '')/] +[/template] + +[template public getMainClassNameAsMs(oclAny : OclAny)] +[getArtifact().toString().dashToCamelCase().toUpperFirst()/] +[/template] + +[template public getWebConfigClassName(oclAny : OclAny)] +['WebConfig'/] +[/template] + +[template public getEntityDtoClassName(aClass : Class)] +[aClass.name.concat('Dto')/] +[/template] + +[template public getEntityWriteDtoClassName(aClass: Class)] +[aClass.name.concat('WriteDto')/] +[/template] + +[template public getEntityKeyDtoClassName(aClass: Class)] +[aClass.name.concat('KeyDto')/] +[/template] + +[template public getGatewayConfigClassName(oclAny:OclAny)] +[getCleanArtifact().toUpperFirst().concat('GatewayApplication')/] +[/template] + +[template public getGatewayAppTestClassName(oclAny:OclAny)] +[getCleanArtifact().toUpperFirst().concat('GatewayApplicationTests')/] +[/template] + +[comment]Funcs for assembler and controller class names[/comment] +[template public getAssemblerClassName(aClass:Class)] +[aClass.name.concat('ModelAssembler')/] +[/template] + +[template public getDashedEntityClassName(aClass : Class)] +[aClass.getEntityClassName().toLowerFirst().camelToDash()/] +[/template] + +[template public getObjectKeyClassName(aClass : Class)] +[aClass.name.concat('ObjectKey')/] +[/template] + +[template public getObjectTitleClassName(aClass : Class)] +[aClass.name.concat('ObjectTitle')/] +[/template] + + +[template public getChildDtoClassName(aClass:Class, association : Association)] +[getEntityClassName(getChildClass(aClass,association)).concat('Dto')/] +[/template] + +[template public getChildWriteDtoClassName(aClass : Class , association : Association)] +[getEntityClassName(getChildClass(aClass,association)).concat('WriteDto')/] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/constants.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/constants.mtl new file mode 100644 index 0000000..bdc3ffb --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/constants.mtl @@ -0,0 +1,57 @@ +[comment encoding = UTF-8 /] + +[comment] + +Controller Java Class Template + +@author Vittorio Niespolo + +[/comment] + +[module constants('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] + +[template public genConstants(isMs : Boolean) post(writeAndFormat(isMs.getConstantsFileName()))] +[if(isMs)] +package [getLibsUtilitiesPackage()/]; + +public class Constants{ + private Constants() { + throw new IllegalStateException("Utility class"); + } + public static final String ROWIDFIELDDELIMITER = "~"; + public static final String CORRELATION_KEY = "X-Correlation-ID"; +} +[else] +package [getUtilitiesPackage() /]; + + +public class Constants{ + private Constants() { + throw new IllegalStateException("Utility class"); + } + + public static final String ROWIDFIELDDELIMITER = "_727_"; + private static final String title1="\n\nVVVVVVVV VVVVVVVV iiii llllll a :: a 222222222222222\n"; + private static final String title2="V::::::V V::::::V i::::i l::::l a :: a 2:::::::::::::::22\n"; + private static final String title3="V::::::V V::::::V iiii l::::l a :: a 2::::::222222:::::2\n"; + private static final String title4="V::::::V V::::::V l::::l 2222222 2:::::2\n"; + private static final String title5=" V:::::V V:::::V ooooooooooo iiiiiii l::::l aaaaaaaaaaaaa 2:::::2\n"; + private static final String title6=" V:::::V V:::::Voo:::::::::::oo i:::::i l::::l a::::::::::::a 2:::::2\n"; + private static final String title7=" V:::::V V:::::Vo:::::::::::::::o i::::i l::::l aaaaaaaaa:::::a 2222::::2\n"; + private static final String title8=" V:::::V V:::::V o:::::ooooo:::::o i::::i l::::l a::::a 22222::::::22\n"; + private static final String title9=" V:::::V V:::::V o::::o o::::o i::::i l::::l aaaaaaa:::::a 22::::::::222\n"; + private static final String title10=" V:::::V V:::::V o::::o o::::o i::::i l::::l aa::::::::::::a 2:::::22222\n"; + private static final String title11=" V:::::V:::::V o::::o o::::o i::::i l::::l a::::aaaa::::::a 2:::::2\n"; + private static final String title12=" V:::::::::V o::::o o::::o i::::i l::::l a::::a a:::::a 2:::::2\n"; + private static final String title13=" V:::::::V o:::::ooooo:::::oi::::::il::::::la::::a a:::::a 2:::::2 222222 M\n"; + private static final String title14=" V:::::V o:::::::::::::::oi::::::il::::::la:::::aaaa::::::a 2::::::2222222:::::2 I\n"; + private static final String title15=" V:::V oo:::::::::::oo i::::::il::::::l a::::::::::aa:::a2::::::::::::::::::2 C\n"; + private static final String title16=" VVV ooooooooooo iiiiiiiillllllll aaaaaaaaaa aaaa22222222222222222222 E\n\n"; + public static final String LOG_TITLE= title1+title2+title3+title4+title5+title6+title7+title8+title9+title10+title11+title12+title13+title14+title15+title16; +} +[/if] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/controllerJavaDoc.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/controllerJavaDoc.mtl new file mode 100644 index 0000000..2bd2fa6 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/controllerJavaDoc.mtl @@ -0,0 +1,36 @@ +[comment encoding = UTF-8 /] +[module controllerJavaDoc('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] + +[** + * Generate MasterDetailUpdate javadoc + * @author Vittoro Niespolo +*/] +[template public genMasterDetailUpdateDoc(oclAny : OclAny)] +/** +//TODO DOCUMENTATION +*/ +[/template] + +[** + * Generate AttachmentPathList javadoc + * @author Vittoro Niespolo +*/] +[template public genAttachmentPathListDoc(oclAny : OclAny)] +/** +//TODO DOCUMENTATION +*/ +[/template] + +[template public genGetAllPaginatedDoc(aClass: Class)] +/** + * GET : get all the [getEntityClassName(aClass)/] paginated + * + * @param pageable + * pagination info. You can use page and/or size as parameters in + * your GET requests + * @return the ResponseEntity with status 200 (OK) and the list of [getEntityClassName(aClass).toLowerCase()/] in + * body + */ +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/controllerUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/controllerUtils.mtl new file mode 100644 index 0000000..d91da32 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/controllerUtils.mtl @@ -0,0 +1,421 @@ +[comment encoding = UTF-8 /] + +[comment]VN I TEMPLATE DI QUESTO FILE SONO STATI DEPRECATI, I NUOVI POSSONO ESSERE TROVATI IN controllerMsUtils.mtl[/comment] + + +[comment] +Controller Utility's templates +This library contains template to generate controller's methods +[/comment] + +[module controllerUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::controllerJavaDoc /] +[import it::micegroup::voila2::cartridge::library::springboot::securityUtils /] +[** + * Generate getAllPaginated api method + * @author Vittorio Niespolo +*/] +[template public genGetAllPaginated(aClass : Class)] +[genGetAllPaginatedDoc()/] +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_findPaginated')") +@GetMapping("") +public ResponseEntity> findPaginated([getCriteriaClassName(aClass)/] criteria, Pageable pageable) { + Page<[getEntityClassName(aClass)/]> page = [getServiceClassName(aClass).toLowerFirst()/].findByCriteria(criteria, pageable); + return ResponseEntity.ok().body(page); +} +[/template] + +[** + * Generate List version of getAll api method + * @author Vittorio Niespolo +*/] +[template public genGetAllListed(aClass : Class)] +/** + * GET : get all the [getEntityClassName(aClass)/] + * + * @return List of all saved [getEntityClassName(aClass)/] + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_findListed')") +@GetMapping("/list") +public ResponseEntity> findListed([getCriteriaClassName(aClass)/] criteria) { + List<[getEntityClassName(aClass)/]> list = [getServiceClassName(aClass).toLowerFirst()/].findByCriteria(criteria); + return ResponseEntity.ok().body(list); +} +[/template] + +[** + * @Deprecated **** + * Generate getByCriteria api method + * @author Vittorio Niespolo +*/] +[template public genGetByCriteria(aClass : Class)] +/** + * GET /criteria : get all the [getEntityClassName(aClass)/] filtered by a criteria. + * + * @param criteria + * the criterias which the requested entities should match + * @param pageable + * pagination info. You can use page and/or size as parameters in + * your GET requests + * @return the ResponseEntity with status 200 (OK) and the list of [getEntityClassName(aClass)/] in + * body +*/ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_getByCriteria')") +@PostMapping("/criteria") +public ResponseEntity> getByCriteria([getCriteriaClassName(aClass)/] criteria, Pageable pageable) { + Page<[getEntityClassName(aClass)/]> page = [getServiceClassName(aClass).toString().toLowerFirst()/].findByCriteriaPaged(criteria, pageable); + HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(ServletUriComponentsBuilder.fromCurrentRequest(), page); + return ResponseEntity.ok().headers(headers).body(page); +} +[/template] + +[** + * Generate getById api method + * @author Vittorio Niespolo +*/] +[template public genGetById(aClass : Class)] +/** + * {@code GET /[aClass.getDashedEntityClassName()/]/:objectKey} : get the [aClass.getDashedEntityClassName()/] with given objectKey. + * + * @param objectKey the objectKey of the [aClass.getDashedEntityClassName()/] to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the [aClass.getDashedEntityClassName()/], or with status {@code 404 (Not Found)}. + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_getById')") +@GetMapping("/id/{id}") +public ResponseEntity<[getEntityClassName(aClass)/]Resource> getById(@PathVariable [aClass.getClassIdType()/] id) { +return toResponseEntity([getServiceClassName(aClass).toString().toLowerFirst()/].findById(id), null); +[comment] [getEntityClassName(aClass)/] [getEntityClassName(aClass).toLowerFirst()/] = [getServiceClassName(aClass).toString().toLowerFirst()/].findById(id);[/comment] +[comment]VN Scommentare se non si necessitano i links[/comment] +[comment] return [getServiceClassName(aClass).toString().toLowerFirst()/].findById(id);[/comment] +[comment] if([getEntityClassName(aClass).toLowerFirst()/] != null){ + return new Resource<>([getEntityClassName(aClass).toLowerFirst()/], + [genSelfLink(aClass)/] + [genChildLinks(aClass)/] + [genParentLinks(aClass)/] + ); + } + else{ + return null; + }[/comment] +} +[/template] + +[** + * Generate getByObjectKey api method + * @author Vittorio Niespolo +*/] +[template public genGetByObjectKey(aClass : Class)] +/** + * {@code GET /[aClass.getDashedEntityClassName()/]/:objectKey} : get the [aClass.getDashedEntityClassName()/] with given objectKey. + * + * @param objectKey the objectKey of the [aClass.getDashedEntityClassName()/] to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the [aClass.getDashedEntityClassName()/], or with status {@code 404 (Not Found)}. + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_getByObjectKey')") +@GetMapping("/{objectKey:.+}") +[comment]public Resource<[getEntityClassName(aClass)/]> getByObjectKey(@PathVariable String objectKey, Pageable pageable) {[/comment] +public ResponseEntity<[getEntityClassName(aClass)/]Resource> getByObjectKey(@PathVariable String objectKey) { + return toResponseEntity([getServiceClassName(aClass).toString().toLowerFirst()/].findByObjectKey(objectKey), null); +[comment] [getEntityClassName(aClass)/] [getEntityClassName(aClass).toLowerFirst()/] = [getServiceClassName(aClass).toString().toLowerFirst()/].findByObjectKey(objectKey);[/comment] +[comment][comment]VN Scommentare se non si necessitano i links[/comment] +[comment] return [getServiceClassName(aClass).toString().toLowerFirst()/].findById(id);[/comment][/comment] +[comment] if([getEntityClassName(aClass).toLowerFirst()/] != null){ + return new Resource<>([getEntityClassName(aClass).toLowerFirst()/], + [genSelfLink(aClass)/] + [genChildLinks(aClass)/] + [genParentLinks(aClass)/] + ); + } + else{ + return null; + }[/comment] +} +[/template] + +[** + * Generate exists api method + * @author Vittorio Niespolo +*/] +[template public genExistsById(aClass : Class)] +/** + * GET /exists: Boolean to check if a [getEntityClassName(aClass)/] exists + * + * @param id + * + * @return true if [getEntityClassName(aClass)/] exists + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_exists')") +@GetMapping("/exists/{objectKey:.+}") +public boolean exists(@PathVariable String objectKey) { + [getEntityClassName(aClass)/] [getEntityClassName(aClass).toLowerFirst()/] = new [getEntityClassName(aClass)/](); + [getEntityClassName(aClass).toLowerFirst()/].setObjectKey(objectKey); + return [getServiceClassName(aClass).toString().toLowerFirst()/].exists([getEntityClassName(aClass).toLowerFirst()/].get[getClassIdName(aClass).toUpperFirst()/]()); +} +[/template] + +[** + * Generate update api method + * @author Vittorio Niespolo +*/] +[template public genUpdate(aClass : Class)] +/** + * {@code PUT /[aClass.getDashedEntityClassName()/]} : Updates an existing [aClass.getEntityClassName()/]. + * + * @param [aClass.getEntityClassName()/] the [aClass.getEntityClassName()/] to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated [aClass.getEntityClassName()/], + * or with status {@code 400 (Bad Request)} if the [aClass.getEntityClassName()/] is not valid, + * or with status {@code 500 (Internal Server Error)} if the [aClass.getEntityClassName()/] couldn't be updated. + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_update')") +@PutMapping("") +public ResponseEntity<[getEntityClassName(aClass)/]Resource> update(@Valid @RequestBody [getEntityClassName(aClass)/] [getEntityObjectName(aClass)/]) { + [getEntityClassName(aClass)/] up[getEntityClassName(aClass)/] = [getServiceObjectName(aClass)/].update([getEntityObjectName(aClass)/]); + return ResponseEntity.ok() + .headers(HeaderUtil.createEntityUpdateAlert(APPLICATION_NAME, true, ENTITY_NAME, up[getEntityClassName(aClass)/].getObjectKey())) + .body(new [getEntityClassName(aClass)/]Resource(up[getEntityClassName(aClass)/])); +} +[/template] + +[** + * Generate create api method + * @author Vittorio Niespolo +*/] +[template public genCreate(aClass : Class)] +/** + * {@code POST /[aClass.getDashedEntityClassName()/]} : Create a new [aClass.getEntityClassName()/]. + * + * @param [aClass.getEntityClassName()/] the [aClass.getEntityClassName()/] to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new [aClass.getEntityClassName()/], or with status {@code 400 (Bad Request)} if the [aClass.getEntityClassName()/] has already an ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_create')") +@PostMapping("") +public ResponseEntity<[getEntityClassName(aClass)/]Resource> create(@RequestBody [getEntityClassName(aClass)/] [getEntityClassName(aClass).toLowerFirst()/]) throws URISyntaxException{ + [getEntityClassName(aClass)/] new[getEntityClassName(aClass)/] = [getServiceClassName(aClass).toString().toLowerFirst()/].insert([getEntityClassName(aClass).toLowerFirst()/]); + + return ResponseEntity.created(new URI("/api/[getEntityClassName(aClass).toLowerFirst()/]/" + new[getEntityClassName(aClass)/].getObjectKey())) + .headers(HeaderUtil.createEntityCreationAlert(APPLICATION_NAME, true, ENTITY_NAME, new[getEntityClassName(aClass)/].getObjectKey())) + .body(new [getEntityClassName(aClass)/]Resource(new[getEntityClassName(aClass)/])); +} +[/template] + +[** + * Generate deleteById api method + * @author Vittorio Niespolo +*/] +[template public genDeleteByID(aClass : Class)] +/** + * {@code DELETE /[aClass.getDashedEntityClassName()/]/:objectKey} : delete the [aClass.getDashedEntityClassName()/] with given objectKey. + * + * @param objectKey the objectKey of the [(aClass.getEntityClassName())/] to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_delete')") +@DeleteMapping("/{objectKey:.+}") +public ResponseEntity delete(@PathVariable String objectKey) { + [getEntityClassName(aClass)/] [getEntityClassName(aClass).toLowerFirst()/] = new [getEntityClassName(aClass)/](); + [getEntityClassName(aClass).toLowerFirst()/].setObjectKey(objectKey); + [getServiceClassName(aClass).toString().toLowerFirst()/].deleteById([getEntityClassName(aClass).toLowerFirst()/].get[getClassIdName(aClass).toUpperFirst()/]()); + return ResponseEntity.noContent().headers(HeaderUtil.createEntityDeletionAlert(APPLICATION_NAME, true, ENTITY_NAME, objectKey)).build(); +} +[/template] + +[** + * Generate api method for massive delete + * @author Vittorio Niespolo +*/] +[template public genMassDelete(aClass : Class)] +/** + * DELETE : Delete existing [getEntityClassName(aClass)/] based on the given collection. + * + * @param entities + * + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_mass-delete')") +@DeleteMapping("/mass-delete") +public void massDelete(@RequestBody Collection<[getEntityClassName(aClass)/]> entities) { + [getServiceClassName(aClass).toLowerFirst()/].massDelete(entities); +} +[/template] + +[** + * Generate api method for massive insert + * @author Vittorio Niespolo +*/] +[template public genMassInsert(aClass : Class)] +/** + * POST : Create new [getEntityClassName(aClass)/] based on given collection. + * + * @param entities + * + * @return List of created [getEntityClassName(aClass)/]. Code 201 + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_mass-insert')") +@PostMapping("/mass-insert") +public List<[getEntityClassName(aClass)/]> massInsert(@RequestBody Collection<[getEntityClassName(aClass)/]> entities) { + return [getServiceClassName(aClass).toLowerFirst()/].massInsert(entities); +} +[/template] + +[** + * Generate api method for massive update + * @author Vittorio Niespolo +*/] +[template public genMassUpdate(aClass : Class)] +/** + * PUT : Update [getEntityClassName(aClass)/] based on given collection. + * + * @param entities + * + * @return Created [getEntityClassName(aClass)/]. Code 201 + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_mass-update')") +@PutMapping("/mass-update") +public List<[getEntityClassName(aClass)/]> massUpdate(@RequestBody Collection<[getEntityClassName(aClass)/]> entities) { + return [getServiceClassName(aClass).toLowerFirst()/].massUpdate(entities); +} +[/template] + +[** + * Generate api method to find childs by class id + * @author Vittorio Niespolo +*/] +[template public genFindChildsById(aClass : Class) post(trim())] +[for(childAss: Association | getChildAssociations(aClass))] +/** + * GET /[camelToDash(aClass.getTheChildPropertyName(childAss))/]_id: Search all [camelToDash(aClass.getTheChildPropertyName(childAss))/] childs of [aClass.name/] + * + * @param id of [aClass.name/] + * + * @return Page of [camelToDash(aClass.getTheChildPropertyName(childAss))/] + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_get[getEntityClassName(aClass.getChildClass(childAss)).toUpperFirst()/]ById')") +@GetMapping("/[camelToDash(aClass.getTheChildPropertyName(childAss))/]_{id}") +public Page<[getEntityClassName(aClass.getChildClass(childAss))/]> get[getEntityClassName(aClass.getChildClass(childAss)).toUpperFirst()/]By[getEntityClassName(aClass)/]Id(@PathVariable String objectKey, Pageable pageable) { + [getEntityClassName(aClass)/] [getEntityClassName(aClass).toLowerFirst()/] = new [getEntityClassName(aClass)/](); + [getEntityClassName(aClass).toLowerFirst()/].setObjectKey(objectKey); + return [getServiceClassName(aClass.getChildClass(childAss)).toLowerFirst()/].findBy[aClass.getChildClass(childAss).getTheParentPropertyName(childAss).toUpperFirst()/]([getEntityClassName(aClass).toLowerFirst()/], pageable); +} +[/for] +[/template] + +[** + * Generate api method to find elements by parent class id + * @author Vittorio Niespolo +*/] +[template public genGetByParentID(aClass : Class)] +[for(parentAss: Association | getParentAssociations(aClass))] +/** + * GET /[camelToDash(aClass.getTheParentPropertyName(parentAss))/]_id: Search all [aClass.name/] for the given [aClass.getParentClass(parentAss).getEntityClassName()/] (parent) + * + * @param id of [aClass.getParentClass(parentAss).getEntityClassName()/] + * @param pageable + * @return Page of [aClass.name/] for the given [aClass.getParentClass(parentAss).getEntityClassName()/] (parent) + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_getBy[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]Id')") +@GetMapping("/[camelToDash(aClass.getTheParentPropertyName(parentAss))/]/{objectKey:.+}") +public Page<[aClass.name/]> get[aClass.getEntityClassName()/]By[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]Id(@PathVariable String objectKey, Pageable pageable) { + [getEntityClassName(aClass.getParentClass(parentAss))/] [getObjectName(aClass.getParentClass(parentAss))/] = new [getEntityClassName(aClass.getParentClass(parentAss))/](); + [getObjectName(aClass.getParentClass(parentAss))/].setObjectKey(objectKey); + return [aClass.getServiceClassName().toLowerFirst()/].findBy[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]([getObjectName(aClass.getParentClass(parentAss))/], pageable); +} +[/for] +[/template] + +[** + * Generate method to update a list of a specific child + * @author Vittoro Niespolo +*/] +[template public genMasterDetailUpdate(aClass : Class)] +[genMasterDetailUpdateDoc()/] +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_masterDetailUpdate')") +@PostMapping("/master-detail-update") +public [aClass.getEntityClassName()/] masterDetailUpdate(@RequestBody [aClass.getEntityClassName()/] [aClass.getEntityClassName().toLowerFirst()/]){ + return [getServiceClassName(aClass).toLowerFirst()/].masterDetailUpdate([aClass.getEntityClassName().toLowerFirst()/]); +} +[/template] + +[** + * Generate method to get all privileges for the given roles + * @author Vittoro Niespolo +*/] +[template public genGetPrivilegesByRoles(oclAny : OclAny)] +/** + * GET /privilege-by-roles: Return a collection of privileges associated to the given roles + * + * @param roles + * @param pageable + * @return + */ +@PreAuthorize(AUTH + "('privilege-per-role_privilege-by-roles')") +@GetMapping("/privilege-by-roles") +public Collection getPrivilegeByRoles(@RequestParam String['['/]] roles) { + Collection privilegePerRoles = new ArrayList<>(); + for (String roleName : roles) { + Role role = new Role(); + role.setObjectKey(roleName); + privilegePerRoles.addAll(privilegePerRoleService.findByTheRole(role, Pageable.unpaged()).getContent()); + } + return privilegePerRoles; +} +[/template] + +[** + * Generate api method to find elements by parent class id + * @author Vittorio Niespolo +*/] +[template public genGetChildByObjectKey(aClass : Class, aModel: Model){childAssociation : Collection(OclAny) = aClass.getChildAssociations();}] +[for(childAss : Association | childAssociation)] +/** + * GET /id/[camelToDash(aClass.getChildClass(childAss).getEntityClassName())/]: Search all [aClass.getChildClass(childAss).getEntityClassName()/] (childs) for the given [aClass.getEntityClassName()/] + * + * @param objectKey ObjectKey of [aClass.getEntityClassName()/] + * @param pageable + * @return Page of [aClass.getChildClass(childAss).getEntityClassName()/] for the given [aClass.getEntityClassName()/] + */ +@GetMapping("/{objectKey:.+}/[camelToDash(aClass.getChildClass(childAss).getEntityClassName())/]") +[genPreAutorize(aClass, camelToUnderscore(getEntityClassName(aClass)).toUpperCase(), 'FIND_BY_'.concat(camelToUnderscore(aClass.getTheChildPropertyName(childAss)).toUpperCase()).concat('OBJECT_KEY'), aModel)/] +public ResponseEntity> get[aClass.getTheChildPropertyName(childAss).toUpperFirst()/]ByObjectKey(@PathVariable String objectKey, Pageable pageable) { + [aClass.getEntityClassName()/] [aClass.getEntityClassName().toLowerFirst()/] = new [aClass.getEntityClassName()/](); + [aClass.getEntityClassName().toLowerFirst()/].setObjectKey(objectKey); + return ResponseEntity.ok().body([aClass.getChildClass(childAss).getEntityClassName().toLowerFirst()/]Service.findBy[aClass.getChildClass(childAss).getTheParentPropertyName(childAss).toUpperFirst()/]([aClass.getEntityClassName().toLowerFirst()/], pageable)); +} +[/for] +[/template] + +[** + * Generate api method to find elements by parent for the given otherParent + * @author Vittorio Niespolo +*/] +[template public genFindOtherParentByParent(aClass : Class){parentAssociations : Collection(OclAny) = aClass.getParentAssociations();}] +[if(parentAssociations -> size() > 1)] +[for(parentAss : Association | parentAssociations)] +[for(otherParentAss : Association | aClass.getParentAssociationsExcluding(parentAss))] +[if(parentAss.isIdentifying() and otherParentAss.isIdentifying())] +/** + * + * GET: /[aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/]/{objectKey:.+}: Return Page of a [aClass.getParentClass(parentAss).getEntityClassName()/] for a given [aClass.getParentClass(otherParentAss).getEntityClassName()/] + * + * @param objectKey + * @param pageable + * @return + */ +@PreAuthorize(AUTH + "('[aClass.getDashedEntityClassName()/]_find[aClass.getParentClass(parentAss).getEntityClassName()/]By[getTheParentPropertyName(aClass, otherParentAss)/]')") +@GetMapping("/[aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/]/{objectKey:.+}") +public Page<[aClass.getParentClass(parentAss).getEntityClassName()/]> find[aClass.getParentClass(parentAss).getEntityClassName()/]By[getTheParentPropertyName(aClass, otherParentAss)/](@PathVariable String objectKey, Pageable pageable) { + [aClass.getParentClass(otherParentAss).getEntityClassName()/] [aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/] = new [aClass.getParentClass(otherParentAss).getEntityClassName()/](); + [aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/].setObjectKey(objectKey); + return [aClass.getEntityClassName().toLowerFirst()/]Service.find[aClass.getParentClass(parentAss).getEntityClassName()/]By[getTheParentPropertyName(aClass, otherParentAss).toString().toUpperFirst()/]([aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/], pageable); +} +[/if] +[/for] +[/for] +[/if] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/dtoUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/dtoUtils.mtl new file mode 100644 index 0000000..8038755 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/dtoUtils.mtl @@ -0,0 +1,107 @@ +[module dtoUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] + +[comment]campi id padre[/comment] +[template public genAttributesFromParent(aClass : Class)post(trim())] +[for(parentAss : Association | aClass.getNotIdentifyingParentAssociations())] +[if(aClass.getParentClass(parentAss).hasCompositeKey()._not())] +[for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())] +private [parentId.type.getJavaType()/] [parentId.getParentIdName(aClass, parentAss)/]; +[/for][/if] +[/for] +[for(parentAss : Association | aClass.getNotIdentifyingParentAssociations())] +@JsonProperty +private String [aClass.getTheParentPropertyName(parentAss)/]ObjectTitle; +@JsonProperty +private String [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; +[/for] + +[comment]campi id padri imported models , da vedere se possiamo direttamente mettere una variabile String parentClassObjectKey[/comment] +[for(parentAss : Association | aClass.getParentAssFromImportedModels())] +[for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())] +@NotNull +private [parentId.type.getJavaType()/] [parentId.getParentIdName(aClass, parentAss)/]; +[/for][/for] +[/template] + +[template public genChildrenDto(aClass : Class)post(trim())] +[comment]Collection figli[/comment] +[for(childAss : Association | aClass.getChildAssociations())] +@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) +private Collection<[getChildDtoClassName(aClass,childAss)/]> [getTheChildPropertyName(aClass, childAss)/]; +[/for] +[comment]Collection figli importati[/comment] +[for(childAss : Association | aClass.getChildAssFromImportedModels())] +@JsonProperty(access = Access.WRITE_ONLY) +private Collection<[getChildDtoClassName(aClass,childAss)/]> [getTheChildPropertyName(aClass, childAss)/]; +[/for] +[/template] + +[template public genDtoAttributes(aClass : Class)post(trim())] +[for(property : Property | aClass.getFiltrableAttributes())] +[if(property.hasDefinition())] +/** +[getDefinition(property)/] +*/[/if] +[genAnnotatedDtoProperty(property, aClass)/] +[/for] +[/template] + +[template public genAnnotatedDtoProperty(property : Property , aClass : Class)] +[genAnnotation(property, aClass)/] +private [property.type.getJavaType()/] [property.name/]; +[/template] + +[template private genAnnotation(property : Property , aClass : Class)] +[comment][if(property.isID)]@NotNull[/if][/comment] +[if(property.type.getJavaType() = 'LocalDate')]@JsonDeserialize(using = LocalDateDeserializer.class) +@JsonSerialize(using = LocalDateSerializer.class)[/if] +[/template] + + +[template public genWriteDtoAttributes(aClass : Class) post (trim())] +[for(property : Property | aClass.getFiltrableAttributes())] +[if(property.hasDefinition())] +/** + [getDefinition(property)/] +*/[/if] +[genAnnotatedDtoProperty(property, aClass)/] +[/for] +[comment]campi id padre[/comment] +[for(parentAss : Association | aClass.getNotIdentifyingParentAssociations())] +private String [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; +[comment][for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())][/comment] +[comment]@NotNull[/comment] +[comment]private [parentId.type.getJavaType()/] [parentId.getParentIdName(aClass, parentAss)/];[/comment] +[comment][/for][/comment] +[/for] + +[comment]campi id padri imported models , da vedere se possiamo direttamente mettere una variabile String parentClassObjectKey[/comment] +[for(parentAss : Association | aClass.getParentAssFromImportedModels())] +private String [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; +[for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())] +[comment]@NotNull[/comment] +private [parentId.type.getJavaType()/] [parentId.getParentIdName(aClass, parentAss)/]; +[/for] +[/for] + +[comment]Collection figli [/comment] +[for(childAss : Association | aClass.getChildAssociations())] +@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) +private Collection<[getChildWriteDtoClassName(aClass,childAss)/]> [getTheChildPropertyName(aClass, childAss)/]; +[/for] + +[comment]Collection figli importati[/comment] +[for(childAss : Association | aClass.getChildAssFromImportedModels())] +@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) +private Collection<[getChildWriteDtoClassName(aClass,childAss)/]> [getTheChildPropertyName(aClass, childAss)/]; +[/for] +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/entityKeyUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/entityKeyUtils.mtl new file mode 100644 index 0000000..2f9d6a9 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/entityKeyUtils.mtl @@ -0,0 +1,201 @@ +[module entityKeyUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::generalUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils/] + +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils/] + + + +[template public genSerialUID(aClass : Class)] +// Generated SERIAL UID +private static final long serialVersionUID = [getGeneratedSerialUID(aClass)/]; +[/template] + +[template public genCKAttributes(aClass : Class)] +[for(id: Property | aClass.getClassIDs())] +[genAnnotatedProperty(id, aClass)/] +[/for] +[for(a : Association | aClass.getIdentifyingParentAssociations())] +[comment][if(a.isParentRequired())][/comment] +@NotNull +[if(isOneToOneRelation(a))] +@OneToOne(fetch = FetchType.EAGER) +[elseif(not(isOneToOneRelation(a)))] +@ManyToOne(fetch = FetchType.LAZY) +[/if] +[if(aClass.getParentClass(a).getClassIDsIncludingFK() -> size() > 1)] +@JoinColumns({ +[/if] +[for(p : Property | aClass.getParentClass(a).getClassIDsIncludingFK()) separator(',')] +@JoinColumn(name = "[getFKColumnName(aClass, a, p)/]", referencedColumnName = "[p.getPhysicalColumnName().camelToUnderscore()/]", nullable = [if(a.isParentRequired() or a.isIdentifying())]false[elseif(not a.isParentRequired() and not a.isIdentifying())]true[/if][if(isInCompositeKey(aClass, p) or isInCompositeKey(aClass.getParentClass(a), p))], insertable = false, updatable = false[/if]) +[/for] +[if(aClass.getParentClass(a).getClassIDsIncludingFK() -> size() > 1)] +}) +[/if] +@JsonBackReference("the[getEntityClassName(aClass)/]") +@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"}, allowSetters = true) +@ToString.Exclude private [aClass.getParentClass(a).name/] [aClass.getTheParentPropertyName(a)/]; +[/for] +[/template] + +[template public genCKGetterSetter(aClass : Class)] +[genCKParentGetter(aClass)/] +[genCKParentSetter(aClass)/] +[/template] + +[template public genCKParentGetter(aClass : Class)] +[for(parentAss : Association | aClass.getIdentifyingParentAssociations())] +/** + * Return the [getParentIdName(aClass, parentAss)/] from [aClass.getTheParentPropertyName(parentAss)/]. + * + * @return [getParentIdName(aClass, parentAss)/] from [aClass.getTheParentPropertyName(parentAss)/]. + */ +@JsonProperty +public [aClass.getParentClass(parentAss).getClassIdType()/] get[getParentIdName(aClass, parentAss).toUpperFirst()/]() { + // If the parent entity object is null, then return null + if (get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]() == null) { + return null; + } + // Return requested attribute + return [aClass.getTheParentPropertyName(parentAss)/].get[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/](); +} +[if(aClass.getParentClass(parentAss).hasCompositeKey())] +[for(id : Property | aClass.getParentClass(parentAss).getClassIDsIncludingFK())] +/** + * Return the [id.name/]. + * + * @return [id.name/]. + */ +@JsonProperty +public [id.type.getJavaType()/] get[id.name.toUpperFirst()/]() { + // If the parent entity object is null, then return null + if (get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]() == null) { + return null; + } + // Return requested attribute + return [aClass.getTheParentPropertyName(parentAss)/].get[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]().get[id.name.toUpperFirst()/](); +} +[/for] +[/if] +[/for] +[/template] + +[template public genCKParentSetter(aClass : Class)] +[for(parentAss : Association | aClass.getIdentifyingParentAssociations())] +/** + * Imposta il valore dell'attributo [getParentIdName(aClass, parentAss)/], appartenente all'oggetto [aClass.getTheParentPropertyName(parentAss)/], nell'entity + * corrente. + * + * @param a[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/] + * + */ +@JsonDeserialize +public void set[getParentIdName(aClass, parentAss).toUpperFirst()/]([aClass.getParentClass(parentAss).getClassIdType()/] a[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]) { + // If the parent entity object is null, then create a new one + if([aClass.getTheParentPropertyName(parentAss)/] == null) + { + [aClass.getTheParentPropertyName(parentAss)/] = new [aClass.getParentClass(parentAss).name.toUpperFirst()/](); + } + // Set value to the attribute + [aClass.getTheParentPropertyName(parentAss)/].set[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/](a[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]); +} +[if(aClass.getParentClass(parentAss).hasCompositeKey())] +[for(id : Property | aClass.getParentClass(parentAss).getClassIDsIncludingFK())] +/** + * Set the [id.name/]. + * @param [id.name/] + * + */ +@JsonProperty +public void set[id.name.toUpperFirst()/]([id.type.getJavaType()/] [id.name/]) { + // If the parent entity object is null, then create a new one + if([aClass.getTheParentPropertyName(parentAss)/] == null) + { + [aClass.getTheParentPropertyName(parentAss)/] = new [aClass.getParentClass(parentAss).name.toUpperFirst()/](); + } + [if(aClass.getParentClass(parentAss).hasCompositeKey())] + if([aClass.getTheParentPropertyName(parentAss)/].get[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]() == null) + { + [aClass.getTheParentPropertyName(parentAss)/].set[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/](new [aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]()); + } + [/if] + // Set value to the attribute + get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]().get[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]().set[id.name.toUpperFirst()/]([id.name/]); +} +[/for] +[/if] +[/for] +[/template] + +[template public genCKConstructor(aClass : Class){ckAttributes: Collection(OclAny) = getCompositeKeyAttributesWithMappedNames(false);}] +public [getKeyClassName(aClass)/]( +[for( p: Property | ckAttributes) separator(',')] +[p.type.getJavaType()/] [p.name/][/for] +[if(aClass.hasParentsWithCK() and ckAttributes->size() >0)],[/if] +[for(parentAss: Association | aClass.getParentAssociationHavingCK()) separator(',')] + [aClass.getParentClass(parentAss).getEntityClassName().toUpperFirst()/]Key [aClass.getParentClass(parentAss).getEntityClassName().toLowerFirst()/]Key +[/for]) + { + [for(p:Property | ckAttributes)] + this.set[p.name.toUpperFirst()/]([p.name/]); + [/for] + [for(parentAss: Association | aClass.getParentAssociationHavingCK())] + this.set[aClass.getParentClass(parentAss).getEntityClassName()/]Key([aClass.getParentClass(parentAss).getEntityClassName().toLowerFirst()/]Key); + [/for] +} + +[/template] + +[template public genOFConstructorForCK(aClass : Class){ckAttributes: Collection(OclAny) = getCompositeKeyAttributesWithMappedNames(false);}] +public static [getEntityCKClassName(aClass)/] of([for( p: Property | ckAttributes) separator(',')] +[p.type.getJavaType()/] [p.name/][/for] +[if(aClass.hasParentsWithCK() and ckAttributes->size() >0)],[/if] +[for(parentAss: Association | aClass.getParentAssociationHavingCK()) separator(',')] + [aClass.getParentClass(parentAss).getEntityClassName().toUpperFirst()/]Key [aClass.getParentClass(parentAss).getEntityClassName().toLowerFirst()/]Key[/for]){ + return new [getEntityCKClassName(aClass)/]([for( p: Property | ckAttributes) separator(',')][p.name/][/for][if(aClass.hasParentsWithCK() and ckAttributes->size() >0)],[/if][for(parentAss: Association | aClass.getParentAssociationHavingCK())] + [aClass.getParentClass(parentAss).getEntityClassName().toLowerFirst()/]Key[/for]); +} +[/template] + +[template public genCKEquals(aClass : Class)] +@Override +public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + + [getEntityCKClassName(aClass)/] that = ([getEntityCKClassName(aClass)/]) obj; + + [for(parent : Association | aClass.getIdentifyingParentAssociations())] + if (!Objects.equals([aClass.getTheParentPropertyName(parent)/],that.[aClass.getTheParentPropertyName(parent)/])) return false; + [/for] + return true; +} +[/template] + +[template public genCKHashCode(aClass : Class)] + @Override +public int hashCode() { + int result = 0; + [for(parent : Association | aClass.getIdentifyingParentAssociations())] + result = result + ([getTheParentPropertyName(aClass,parent)/] != null ? [getTheParentPropertyName(aClass,parent)/].hashCode() : 0); + [/for] + result = 31 * result; + return result; +} +[/template] + +[template public getFKColumnName(aClass : Class, a: Association, p: Property)] +[if(a.isSelfRelation())][camelToUnderscore(getTheSelfPropertyName(getChildClass(aClass, a), a)).concat('_')/][/if][camelToUnderscore(a.getPhysicalMappedName(p))/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/entityUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/entityUtils.mtl new file mode 100644 index 0000000..44b44ac --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/entityUtils.mtl @@ -0,0 +1,436 @@ +[comment encoding = UTF-8 /] + +[comment] + +Entity Utilities Templates + +[/comment] + +[module entityUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::generalUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils/] + +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] + + + +[template public genAddChild(aClass : Class){childAssociations : Collection(OclAny) = aClass.getChildAssociations();}] +[for(childAss : Association | childAssociations)] +public void add[aClass.getChildEntityName(childAss).toUpperFirst()/]([aClass.getChildClass(childAss).name/] [aClass.getChildClass(childAss).name.toLowerFirst()/]){ + [aClass.getTheChildPropertyName(childAss).toLowerFirst()/].add([aClass.getChildClass(childAss).name.toLowerFirst()/]); +} +[/for] +[/template] + +[template public genConstructor(aClass : Class){attributes : Collection(Property) = aClass.getAttributesWithoutIDs();}] +public [aClass.getEntityClassName()/](String objectKey) +{ + super(); + setObjectKey(objectKey); +[comment] [if(aClass.hasGeneralClass())] + set[aClass.getClassIdName().toUpperFirst()/]([aClass.getClassIdName()/]); + [else] + this.[aClass.getClassIdName()/] = [aClass.getClassIdName()/]; + [/if] + [if(aClass.hasExternalPK())] + [for(a : Association | aClass.getParentAssociations())] + this.[aClass.getTheParentPropertyName(a)/] = new [aClass.getParentClass(a).name.toUpperFirst()/](); + [for(parentId:Property | aClass.getParentClass(a).getClassIDs())] + this.[aClass.getTheParentPropertyName(a)/].set[parentId.name.toUpperFirst()/](this.[aClass.getClassIdName()/].get[parentId.name.toUpperFirst()/]()); + [/for] + [/for] + [/if][/comment] +} +[if(aClass.getAttributesWithoutIDs()->size() >= 1 or (aClass.getAttributesWithoutIDs()->size() = 1 and aClass.getStringProperties()->size() = 0))] +public [aClass.getEntityClassName()/]([if(aClass.hasCompositeKey())][aClass.getKeyClassName()/] [aClass.getKeyClassName().toLowerFirst()/], [/if][comment]Composite Key[/comment] +[for(p: Property | aClass.getAttributesWithoutIDs())separator(', ')][comment]Attributi interni[/comment] +[p.type.getJavaType()/] [p.name/][/for] +[comment]Ids[/comment] +[if(aClass.hasCompositeKey()._not())], [for(p: Property | aClass.getClassIDs())separator(', ')] +[p.type.getJavaType()/] [p.name/][/for][/if]) +{ + super(); + + [comment] CompositeKey [/comment] + [if(aClass.hasCompositeKey())] + this.[aClass.getKeyClassName().toLowerFirst()/] = [aClass.getKeyClassName().toLowerFirst()/]; + [/if] + + [comment] Attributi non ID [/comment] + [for(attribute:Property | aClass.getAttributesWithoutIDs())] + this.[attribute.name/] = [attribute.name/]; + [/for] + [comment] ID interni [/comment] + [if(aClass.hasCompositeKey()._not())] + [for(attribute: Property | aClass.getClassIDs())separator(', ')] + this.[attribute.name/] = [attribute.name/];[/for][/if] + } +[/if] +[/template] + +[** + * Generate annotations for a Property of a Class + * @author: Vittorio Niespolo +*/] +[template public genAnnotation(aProperty : Property, aClass : Class) post(trim()) {definition : String = aProperty.getColumnDefinition(aClass); length : Integer = aProperty.getPhysicalColumnLenght();}] +[if(aProperty.isID and aClass.hasCompositeKey()._not())]@Id +[if(aClass.hasAutogeneratedId())]@GeneratedValue(strategy = GenerationType.IDENTITY)[/if] +[elseif(aProperty.isRequired())]@NotNull +[/if] +[if(aProperty.isID and aClass.hasCompositeKey()._not() and aClass.hasDefinition() and aClass.hasAutogeneratedId())]//WARNING For some RDBMS this syntax may not work. Manually delete COMMENT if you are not using Mysql.[/if] +@Column(name = "[aProperty.getPhysicalColumnName()/]"[if(isInCompositeKey(aClass, aProperty))], insertable = false, updatable = false[/if] +, columnDefinition="[definition/]" +) +[if(aProperty.isDateTime())]@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss")[/if] +[/template] + +[** + * Generate annoted Property for a Class + * @author: Vittorio Niespolo +*/] +[template public genAnnotatedProperty(aProperty: Property, aClass : Class) post(trim())] +[genAnnotation(aProperty, aClass)/] +private [aProperty.type.getJavaType()/] [aProperty.name/]; +[/template] + +[** + * Generate basic operations for a Class + * @author: Vittorio Niespolo +*/] +[template public genOperations(aClass : Class)] +[for (o: Operation | aClass.ownedOperation) separator('\n')] +public void [o.name/]() { + // TODO should be implemented +} +[/for] +[/template] + +[** + * Generate basic getter and setter for a Class + * @author: Vittorio Niespolo +*/] +[template public genGetterSetter(aClass : Class)] +[if(aClass.hasCompositeKey()._not())] +[for (p: Property | aClass.getClassIDs())] +[genGetter(p)/] +[genSetter(p)/] +[/for] +[/if] +[for (p: Property | aClass.getAttributesWithoutIDs())] +[genGetter(p)/] +[genSetter(p)/] +[/for] +[/template] + +[** + * Generate basic getter for a Property + * @author: Vittorio Niespolo +*/] +[template public genGetter(aProperty: Property)] +/** + * @return the [aProperty.name/] + */ +[if(aProperty.isBoolean())] +public boolean is[aProperty.name.toUpperFirst()/]() { + return (this.[aProperty.name/] == null) ? false : this.[aProperty.name/].booleanValue(); +} +[else] +public [aProperty.type.getJavaType()/] get[aProperty.name.toUpperFirst()/]() { + return this.[aProperty.name/]; +} +[/if] +[/template] + +[** + * Generate basic setter for a Property + * @author: Vittorio Niespolo +*/] +[template public genSetter(aProperty: Property)] +/** + * @param [aProperty.name/] to set + */ +public void set[aProperty.name.toUpperFirst()/]([aProperty.type.getJavaType() /] [aProperty.name/]) { + this.[aProperty.name/] = [aProperty.name/]; +} +[/template] + +[** + * Generate a getter method with a given propertyName and TypeName + * @author: Vittorio Niespolo +*/] +[template public genGetterByPropNameNType(propertyName: String, typeName : String)] +/** + * @return the [propertyName/] + */ +public [typeName/] get[propertyName.toUpperFirst()/]() { + return this.[propertyName/]; +} +[/template] + +[** + * Generate a setter method with a given propertyName and TypeName + * @author: Vittorio Niespolo +*/] +[template public genSetterByPropNameNType(propertyName: String, typeName : String)] +/** + * @param [propertyName/] to set + */ +public void set[propertyName.toUpperFirst()/]([typeName/] [propertyName/]) { + this.[propertyName/] = [propertyName/]; +} +[/template] + +[** + * Generate a random serial UID for a Java Serialized Class + * @author: Vittorio Niespolo +*/] +[template public genSerialUID(aClass : Class)] +// Generated SERIAL VERSION UID +private static final long serialVersionUID = [getGeneratedSerialUID(aClass)/]; +[/template] + +[** + * Generate annoted attributes for a Class + * @author: Vittorio Niespolo +*/] +[template public genAttributes(aClass : Class)] +[if(aClass.hasCompositeKey()._not())] +[for (p: Property | aClass.getClassIDs())] +[genAttribute(aClass, p)/] +[/for] +[/if] +[for (p: Property | aClass.getAttributesWithoutIDs())] +[genAttribute(aClass, p)/] +[/for] +[/template] + +[template public genAttribute(aClass: Class, p: Property)] +[if(getDefinition(p).oclIsUndefined()._not() and getDefinition(p).toString().size() <> 0)] +/** + [getDefinition(p)/] +*/ +[/if] +[genAnnotatedProperty(p, aClass)/] +[/template] + +[** + * Generate CompositeKey constructor using fields + * @author Vittorio Niespolo +*/] +[template public genCompositeKeyConstructor(aClass : Class){ckAttributes: Collection(OclAny) = getCompositeKeyAttributesWithMappedNames(false);}] +public [getKeyClassName(aClass)/]( +[for( p: Property | ckAttributes) separator(',')] +[p.type.getJavaType()/] [p.name/][/for]) + { + super(); + [for(p:Property | ckAttributes)] + this.[p.name/] = [p.name/]; + [/for] +} +[/template] + +[** + * Generate CompositeKey for the Class + * @author: Vittorio Niespolo +*/] +[template public genCompositeKey(aClass : Class, aModel : Model){ckAttributes: Collection(OclAny) = getCompositeKeyAttributesWithMappedNames(false);}] +@Embeddable +public static class [getKeyClassName(aClass)/] implements Serializable { + + /** + * Default Constructor + */ + public [getKeyClassName(aClass)/]() { + // TODO Auto-generated constructor stub + } + + /** + * Generated serial UID + */ + private static final long serialVersionUID = [getGeneratedSerialUID()/]; + + // ATTRIBUTES + [for(p : Property | ckAttributes) separator('\n')] + @Column(name = "[camelToUnderscore(p.name)/]") + [p.type.getJavaType()/] [p.name/]; + [/for] + + // GETTER/SETTER + [for (p: Property | ckAttributes) separator('\n')] + [genGetter(p)/] + [genSetter(p)/] + [/for] + + //FIELDS CONSTRUCTOR + [genCompositeKeyConstructor(aClass)/] + + public String toString(){ + StringBuilder output = new StringBuilder(); + [for (p: Property | ckAttributes) separator('\noutput.append("-");\n')] + output.append([p.name/]); + [/for] + return output.toString(); + } +} +[/template] + +[template public genPrePersist(aClass : Class, aModel : Model)] +// PREPERSIST +[if(aClass.hasCompositeKey())] +public void syncCK() { +if([getKeyClassName(aClass).toLowerFirst()/] == null) { + [getKeyClassName(aClass).toLowerFirst()/] = new [getKeyClassName(aClass).toUpperFirst()/](); +} +[for(a : Association | aClass.getIdentifyingParentAssociations())] + if(get[aClass.getTheParentPropertyName(a).toUpperFirst()/]() != null) { + [getKeyClassName(aClass).toLowerFirst()/].set[aClass.getParentIdName(a).toUpperFirst()/](get[aClass.getTheParentPropertyName(a).toUpperFirst()/]().get[aClass.getParentIdName(a).toUpperFirst()/]()); + } +[/for] +} +[/if] + +@PrePersist +[if(aModel.isCachingEnabled())] +[if(aClass.isInPrivilegePerRoleRole())] +@CacheEvict(value ="PrivilegePerRole", key = "#privilegePerRoleKey") +[/if] +[/if] +public void prePersist() { +[if(aClass.hasCompositeKey())] + syncCK(); +[/if] +} + +[if(aModel.isCachingEnabled())] +[if(aClass.isInPrivilegePerRoleRole())] +@PreRemove +@CacheEvict(value ="PrivilegePerRole", key = "#privilegePerRoleKey") +public void PreRemove() { + +} +[/if] +[/if] +[/template] + +[template public genPreUpdate(aClass : Class, aModel : Model)] +[if(aModel.isCachingEnabled())] +[if(aClass.isInPrivilegePerRoleRole())] +@CacheEvict(value ="PrivilegePerRole", key = "#privilegePerRoleKey") +[/if] +[/if] +@PreUpdate +public void PreUpdate() { +[if(aClass.hasCompositeKey())] + syncCK(); +[/if] +} +[/template] + +[template public genGetObjectTitle(aClass : Class)] +public String getObjectTitle() { + StringBuilder output = new StringBuilder(); + output.append(get[aClass.getFirstStringAttribute()/]()); + return output.toString(); +} +[/template] + +[template public getPhysicalTableName(aClass : Class)] +[if(aClass.getTableName().oclIsUndefined() or aClass.getTableName() = '')] +[camelToUnderscore(aClass.getEntityClassName())/][else] +[camelToUnderscore(aClass.getTableName())/][/if] +[/template] + +[comment] +Metodo per creare la proprety Key per Entity quando questa risulta avere una CK che gestiamo con una classe Key +[/comment] +[template public genCompositeKeyProperty(aClass : Class)] +@EmbeddedId +private [getEntityCKClassName(aClass)/] [getEntityCKClassName(aClass).toString().toLowerFirst()/]; +[/template] + +[comment] +Metodo per creare i getter e setter delle proprerty dei parent quando la entity ha CK e quindi una classe Key +a cui fare riferimento per accedere ai padri +[/comment] +[template public genCKParentGetterSetter(aClass : Class)] +[for(parent : Association | aClass.getIdentifyingParentAssociations())] +[genCKGetter(parent, aClass)/] +[genCKSetter(parent, aClass)/] +[/for] +[if(aClass.hasCompositeKey())] +[for(id : Property | aClass.getClassIDs())] +[genInternalCKGetter(aClass, id)/] +[genInternalCKSetter(aClass, id)/] +[/for] +[/if] +[/template] + +[template public genInternalCKGetter(aClass : Class, id: Property)] +/** +* @return the [id.getNaturalLanguageName()/] +*/ +@JsonProperty(access = Access.WRITE_ONLY) +public [id.type.getJavaType()/] get[id.name.toUpperFirst()/](){ + return [getEntityCKClassName(aClass).toString().toLowerFirst()/] != null ? [getEntityCKClassName(aClass).toString().toLowerFirst()/].get[id.name.toUpperFirst()/]() : null; +} +[/template] + +[template public genInternalCKSetter(aClass : Class, id: Property)] +/** + * @param a[id.getNaturalLanguageName()/] to set + */ +public void set[id.name.toUpperFirst()/]([id.type.getJavaType()/] [id.name/]){ + if([getEntityCKClassName(aClass).toString().toLowerFirst()/] == null){ + [getEntityCKClassName(aClass).toString().toLowerFirst()/] = new [getEntityCKClassName(aClass)/](); + } + [getEntityCKClassName(aClass).toString().toLowerFirst()/].set[id.name.toUpperFirst()/]([id.name/]); +} +[/template] + +[template public genCKGetter(parent : Association,aClass : Class)] +/** +* @return the [getEntityClassName(aClass.getParentClass(parent))/] +*/ +@JsonProperty(access = Access.WRITE_ONLY) +public [getEntityClassName(aClass.getParentClass(parent))/] get[getTheParentPropertyName(aClass,parent).toString().toUpperFirst()/](){ + return [getEntityCKClassName(aClass).toString().toLowerFirst()/] != null ? [getEntityCKClassName(aClass).toString().toLowerFirst()/].get[getTheParentPropertyName(aClass,parent).toString().toUpperFirst()/]() : null; +} +[/template] + +[template public genCKSetter(parent : Association,aClass : Class)] +/** + * @param a[getEntityClassName(aClass.getParentClass(parent))/] to set + */ +public void set[getTheParentPropertyName(aClass,parent).toString().toUpperFirst()/]([getEntityClassName(aClass.getParentClass(parent))/] a[getEntityClassName(aClass.getParentClass(parent))/]){ + if([getEntityCKClassName(aClass).toString().toLowerFirst()/] == null){ + [getEntityCKClassName(aClass).toString().toLowerFirst()/] = new [getEntityCKClassName(aClass)/](); + } + [getEntityCKClassName(aClass).toString().toLowerFirst()/].set[getTheParentPropertyName(aClass,parent).toString().toUpperFirst()/](a[getEntityClassName(aClass.getParentClass(parent))/]); +} +[/template] + +[template public genEqualsHashcode(aClass: Class)] +@Override +public boolean equals(Object o) { + if (this == o) return true; + if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false; + [aClass.getEntityClassName()/] that = ([aClass.getEntityClassName()/]) o; + return [aClass.getClassIdName().toLowerFirst()/] != null && Objects.equals([aClass.getClassIdName().toLowerFirst()/], that.[aClass.getClassIdName().toLowerFirst()/]); +} + +@Override +public int hashCode() { + return Objects.hash([aClass.getClassIdName().toLowerFirst()/]); +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/fileNameUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/fileNameUtils.mtl new file mode 100644 index 0000000..c6173b4 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/fileNameUtils.mtl @@ -0,0 +1,380 @@ +[comment encoding = UTF-8 /] +[module fileNameUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[comment]READ ME : tutte le funzioni con l'if sono stato rifattorizzate in modo da + essere riusate anche nel caso dei MicroServizi , il ramo else rappresenta ciò che + facevano normalmente con springboot[/comment] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::folderUtils/] +[template public getMainClassFileName(oclAny: OclAny)] +[getMainClassFolderName().concat(getMainClassNameAsMs()).concat('.java')/] +[/template] + +[template public getWebConfigFileName(oclAny : OclAny)] +[getMainClassFolderName().concat(getWebConfigClassName()).concat('.java')/] +[/template] + +[template public getPermissionFileName(oclAny : OclAny)] +[getWebSecurityFolderName().concat('Permission.java')/] +[/template] + +[template public getControllerFileName(aClass : Class)] +[getControllerFolderName().concat(aClass.getControllerClassName()).concat('.java')/] +[/template] + +[template public getAssemblerFileName(aClass : Class)] +[getAssemblerFolderName().concat(aClass.getAssemblerClassName()).concat('.java')/] +[/template] + +[template public getServiceFileName(aType : Type)] +[getServiceFolderName().concat(aType.name).concat('Service.java')/] +[/template] + +[template public getServiceImplFileName(aType : Type)] +[getServiceImplFolderName().concat(aType.name).concat('ServiceImpl.java')/] +[/template] + +[template public getBaseServiceImplFileName(isMsLib : Boolean)] +[if(isMsLib)] +[getMsServiceImplFolderName().concat('BaseServiceImpl.java')/] +[else] +[getServiceImplFolderName().concat('BaseServiceImpl.java')/] +[/if] +[/template] + +[template public getEntityFileName(aType : Type)] +[getEntityFolderName(aType).concat(aType.name).concat('.java')/] +[/template] + +[template public getEntityCKFileName(aType : Type)] +[getEntityFolderName(aType).concat(aType.name).concat('Key.java')/] +[/template] + +[template public getRepositoryFileName(aType : Type)] +[getRepositoryFolderName(aType).concat(aType.name).concat('Repository.java')/] +[/template] + +[template public getGlobalExceptionFileName(oclAny : OclAny)] +[getAdvicesFolderName().concat('/GlobalExceptionHandler.java')/] +[/template] + +[template public getMsWebApplicationYMLName(oclAny : OclAny)] +[getWebResourceFolderName().concat('/application.yml')/] +[/template] + +[template public getSecurityConfigFileName(oclAny : OclAny)] +[getConfigFolderName().concat('/SecurityConfig.java')/] +[/template] + +[template public getMapperConfigFileName(oclAny : OclAny)] +[getConfigFolderName().concat('/MapperConfig.java')/] +[/template] + +[template public getCriteriaFileName(aType : Type)] +[getCriteriaFolderName(aType).concat(aType.name).concat('Criteria.java')/] +[/template] + +[template public getParentPomFileName(oclAny : OclAny)] +[getParentModuleFolderName().concat('/pom.xml')/] +[/template] + +[template public getCorePomFileName(oclAny : OclAny)] +[getCoreModuleFolderName().concat('/pom.xml')/] +[/template] + +[template public getImplPomFileName(oclAny : OclAny)] +[getImplModuleFolderName().concat('/pom.xml')/] +[/template] + +[template public getWebPomFileName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/pom.xml')/] +[/template] + +[template public getPermissionsFileName(oclAny : OclAny)] +[getRootFolderName().concat('/sql/permissions.sql')/] +[/template] + +[template public getBaseEntityFileName(isMsLib : Boolean)] +[if(isMsLib)] +[getMsEntityFolderName().concat('/BaseEntity.java')/] +[else] +[getEntityFolderName().concat('/BaseEntity.java')/] +[/if] +[/template] + +[template public getBaseDTOFileName(oclAny:OclAny)] +[getBaseDTOFolderName().concat('/BaseDto.java')/] +[/template] + +[template public getBaseEntityServiceFileName(isMsLib : Boolean)] +[if(isMsLib)] +[getMsServiceFolderName().concat('/BaseEntityService.java')/] +[else] +[getServiceFolderName().concat('/BaseEntityService.java')/] +[/if] +[/template] + +[template public getBaseEntityServiceImplFileName(oclAny : OclAny)] +[getServiceImplFolderName().concat('/BaseEntityServiceImpl.java')/] +[/template] + +[template public getBaseControllerFileName(isMsLib : Boolean)] +[if(isMsLib)] +[getMsControllerFolderName().concat('BaseController.java')/] +[else] +[getControllerFolderName().concat('/BaseController.java')/] +[/if] +[/template] + + +[comment]Dto nella cartella web di ogni microservice[/comment] +[template public getEntityDtoFileName(aClass : Class)] +[getDtoFolderName().concat(aClass.name).concat('Dto').concat('.java')/] +[/template] + +[template public getDtoWriteFileName(aClass : Class)] +[getDtoFolderName().concat(aClass.name).concat('WriteDto').concat('.java')/] +[/template] + +[template public getKeyDtoFileName(aClass : Class)] +[getDtoFolderName().concat(aClass.name).concat('KeyDto').concat('.java')/] +[/template] + +[template public getMailWriteDtoFileName(oclAny : OclAny)] +[getDtoFolderName().concat('MailWriteDto').concat('.java')/] +[/template] + +[template public getBaseRepositoryFileName(isMsLib: Boolean )] +[if(isMsLib)] +[getMsRepositoryFolderName().concat('BaseRepository.java')/] +[else] +[getRepositoryFolderName().concat('/BaseRepository.java')/] +[/if] +[/template] + + +[template public getBaseAttachmentControllerFileName(isMsLib : Boolean)] +[if(isMsLib)] +[getMsControllerFolderName().concat('BaseAttachmentController.java')/] +[else] +[getControllerFolderName().concat('/BaseAttachmentController.java')/] +[/if] +[/template] + +[template public getBaseAssemblerFileName(oclAny:OclAny)] +[getBaseAssemblerFolderName().concat('/BaseModelAssembler.java')/] +[/template] + +[template public getBaseResponseFileName(oclAny:OclAny)] +[getResponseLibsFolderName().concat('/BaseResponse.java')/] +[/template] + +[comment][template public getApplicationPropertiesFileName(profile : String)] +[getResourcesFolderName().concat('/application-').concat(profile).concat('.properties')/] +[/template][/comment] + +[template public getApplicationResourcesFileName(lang : String)] +[getResourcesFolderName().concat('/applicationResources').concat(lang).concat('.properties')/] +[/template] + +[template public getUpdateLiquibaseFileName(oclAny : OclAny)] +[getLiquibaseFolderName().concat('/update.xml')/] +[/template] + +[template public getConstantsFileName(isMs : Boolean)] +[if(isMs)] +[getLibsUtilitiesFolderName().concat('/Constants.java')/] +[else] +[getUtilitiesFolderName().concat('/Constants.java')/] +[/if] +[/template] + +[template public getServiceMailName(oclAny : OclAny)] +[getServiceFolderName().concat('/MailManagerService.java')/] +[/template] + +[template public getServiceImplMailName(oclAny : OclAny)] +[getServiceImplFolderName().concat('/MailManagerServiceImpl.java')/] +[/template] + +[template public getInitSecurityScriptXMLFileName(oclAny : OclAny)] +[getLiquibaseFolderName().concat('/changeset/initSecurityScript.xml')/] +[/template] + +[template public getInitSecurityScriptSQLFileName(oclAny : OclAny)] +[getLiquibaseFolderName().concat('/sql/initSecurityScript.sql')/] +[/template] + +[template public getLog4j2PropertiesFileName(oclAny : OclAny)] +[getResourcesFolderName().concat('/log4j2.xml')/] +[/template] + +[template public getAuditableFileName(isMs : Boolean)] +[if(isMs)] +[getLibsUtilitiesFolderName().concat('/Auditable.java')/] +[else] +[getUtilitiesFolderName().concat('/Auditable.java')/] +[/if] +[/template] + +[template public getJasperReportFileName(isMs:Boolean)] +[if(isMs)] +[getLibsUtilitiesFolderName().concat('/JasperReportsCache.java')/] +[else] +[getUtilitiesFolderName().concat('/JasperReportsCache.java')/] +[/if] +[/template] + +[** + * Getter for AuthController file's name + * @author Vittorio Niespolo +*/] +[template public getAuthControllerFileName(oclAny : OclAny)] +[getControllerFolderName().concat('/AuthController.java')/] +[/template] + +[** + * Getter for AuthenticationEntryPointBean file's name + * @author Vittorio Niespolo +*/] +[template public getAuthenticationEntryPointBeanFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/AuthenticationEntryPointBean.java')/] +[/template] + +[** + * Getter for AuthenticationFilterBean file's name + * @author Vittorio Niespolo +*/] +[template public getAuthenticationFilterBeanFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/AuthenticationFilterBean.java')/] +[/template] + +[** + * Getter for AuthenticationProviderBean file's name + * @author Vittorio Niespolo +*/] +[template public getAuthenticationProviderBeanFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/AuthenticationProviderBean.java')/] +[/template] + +[** + * Getter for PasswordEncoderBean file's name + * @author Vittorio Niespolo +*/] +[template public getPasswordEncoderBeanFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/PasswordEncoderBean.java')/] +[/template] + +[** + * Getter for AccessDeniedHandlerBean file's name + * @author Vittorio Niespolo +*/] +[template public getAccessDeniedHandlerBeanFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/AccessDeniedHandlerBean.java')/] +[/template] + +[template public getAuthServiceFileName(oclAny : OclAny)] +[getServiceFolderName().concat('/AuthService.java')/] +[/template] + +[template public getAuthServiceImplFileName(oclAny : OclAny)] +[getServiceImplFolderName().concat('/AuthServiceImpl.java')/] +[/template] + +[template public getSecurityUserDetailRepositoryFileName(oclAny : OclAny)] +[getRepositoryFolderName().concat('/SecurityUserDetailRepository.java')/] +[/template] + +[template public getSecurityUserDetailServiceImplFileName(oclAny : OclAny)] +[getServiceImplFolderName().concat('/SecurityUserDetailServiceImpl.java')/] +[/template] + +[template public getWebSecurityConfigurerFileName(oclAny : OclAny)] +[getMainClassFolderName().concat('/WebSecurityConfigurer.java')/] +[/template] + +[template public getCustomMethodSecurityExpressionHandlerFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/CustomMethodSecurityExpressionHandler.java')/] +[/template] + +[template public getCustomSecurityExpressionRootFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/CustomSecurityExpressionRoot.java')/] +[/template] + +[template public getCustomPermissionEvaluatorFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/CustomPermissionEvaluator.java')/] +[/template] + +[template public getMethodSecurityConfigFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/MethodSecurityConfig.java')/] +[/template] + +[template public getCustomMethodSecurityExpressionRootFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/CustomMethodSecurityExpressionRoot.java')/] +[/template] + +[template public getUserNotFoundExceptionFileName(oclAny : OclAny)] +[getSecurityFolderName().concat('/UserNotFoundException.java')/] +[/template] + +[template public getCacheConfigFileName(isMs : Boolean)] +[if(isMs)] +[getLibsUtilitiesFolderName().concat('/CacheConfig.java')/] +[else] +[getUtilitiesFolderName().concat('/CacheConfig.java')/] +[/if] +[/template] + +[template public getResourceFileName(aType : Type)] +[getWebResourceFolderName().concat(aType.name).concat('Resource.java')/] +[/template] + +[template public getApplicationPropertiesFileName(profile: String)] +[getResourcesFolderName().concat('/application')/][if(not profile.equalsIgnoreCase(''))]-[profile/][/if].properties +[/template] + +[template public getDbScriptFileName(oclAny : OclAny)] +[getLiquiBaseSqlFolderName().concat('/initDbScript.sql')/] +[/template] + +[template public getMailControllerFileName(oclAny : OclAny)] +[getControllerFolderName().concat('MailController.java')/] +[/template] + +[template public getResourceServerSecurityConfigFileName(oclAny:OclAny)] +[getLibsSecurityFolderName().concat('/ResourceServerSecurityConfig.java')/] +[/template] + +[template public genKeycloakRealmRoleConverterFileName(oclAny:OclAny)] +[getLibsSecurityFolderName().concat('/KeycloakRealmRoleConverter.java')/] +[/template] + +[template public getMsInterceptorFileName(oclAny : OclAny)] +[getActuatorFolderName().concat('/').concat(getMainClassNameAsMs()).concat('Interceptor.java')/] +[/template] + +[template public getMsPropertiesFileName(oclAny : OclAny)] +[getActuatorFolderName().concat('/').concat(getMainClassNameAsMs()).concat('Properties.java')/] +[/template] + +[template public getMsConfigFileName(oclAny : OclAny)] +[getConfigFolderName().concat('/').concat(getMainClassNameAsMs()).concat('Config.java')/] +[/template] + +[template public getLiquibaseConfigurationBeanFileName(oclAny : OclAny)] +[getConfigFolderName().concat('/LiquibaseConfigurationBean.java')/] +[/template] + +[template public getCustomSpringLiquibaseFileName(oclAny : OclAny)] +[getConfigFolderName().concat('/CustomSpringLiquibase.java')/] +[/template] + +[template public getBaseEntityServiceMongoFileName(oclAny : OclAny)] +[getMsServiceFolderName().concat('/BaseEntityServiceMongo.java')/] +[/template] + +[template public getJPAAutditConfigFileName(oclAny:OclAny)] +[getLibsSecurityFolderName().concat('/JPAAuditConfig.java')/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/filterUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/filterUtils.mtl new file mode 100644 index 0000000..ba62877 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/filterUtils.mtl @@ -0,0 +1,145 @@ +[comment encoding = UTF-8 /] +[module filterUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::generalUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] + + +[template public genFilterProperties(aClass : Class)] +[for (attribute : Property | aClass.getFiltrableAttributes()) separator('\n')] +private [getFilterType(attribute.type)/] [attribute.name/]; +[/for] +[/template] + + +[template public genFilterGetterSetter(aClass : Class)] +[for (p:Property | aClass.getFiltrableAttributes())] +/** + * @return the [p.name/] + */ +public [p.type.getJavaType().concat('Filter')/] get[p.name.toUpperFirst()/]() { + return this.[p.name/]; +} + +/** + * @param [p.name/] to set + */ +public void set[p.name.toUpperFirst()/]([p.type.getJavaType().concat('Filter') /] [p.name/]) { + this.[p.name/] = [p.name/]; +} +[/for] +[/template] + +[comment]@author Simone Punzo +generate getters and setters for filters imported father[/comment] +[template public genFilterImportedFatherGetterSetter(aClass : Class)] +[for(parentAss: Association | aClass.getParentAssFromImportedModels())] +[comment] [for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())] +/** + * @return the [parentId.getParentPropAssName(aClass, parentAss) /] + */ + +public [parentId.type.getFilterType()/] get[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst() /](){ + return this.[parentId.getParentPropAssName(aClass, parentAss)/]; +} + +/** + * @param [parentId.getParentPropAssName(aClass, parentAss) /] to set + */ +public void set[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst() /] ([parentId.type.getFilterType()/] [parentId.getParentPropAssName(aClass, parentAss) /]) { + this.[parentId.getParentPropAssName(aClass, parentAss) /] = [parentId.getParentPropAssName(aClass, parentAss) /]; +} + [/for][/comment] + + public String get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey() { + return [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; + } + + public void set[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey(String [aClass.getTheParentPropertyName(parentAss)/]ObjectKey) { + this.[aClass.getTheParentPropertyName(parentAss)/]ObjectKey = [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; + } +[/for] +[/template] + +[comment] +@autor Luca Barone +generates setters and getters for filters father +[/comment] +[template public genFilterFatherGetterSetter(aClass : Class)] +[for(parentAss: Association | getParentAssociations(aClass))] +[comment] [for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())] +/** + * @return the [parentId.getParentPropAssName(aClass, parentAss) /] + */ + +public [parentId.type.getFilterType()/] get[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst() /](){ + return this.[parentId.getParentPropAssName(aClass, parentAss)/]; +} + +/** + * @param [parentId.getParentPropAssName(aClass, parentAss) /] to set + */ +public void set[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst() /] ([parentId.type.getFilterType()/] [parentId.getParentPropAssName(aClass, parentAss) /]) { + this.[parentId.getParentPropAssName(aClass, parentAss) /] = [parentId.getParentPropAssName(aClass, parentAss) /]; +} +[/for][/comment] + + public String get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey() { + return [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; + } + + public void set[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey(String [aClass.getTheParentPropertyName(parentAss)/]ObjectKey) { + this.[aClass.getTheParentPropertyName(parentAss)/]ObjectKey = [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; + } +[/for] + +[/template] + +[comment] +@autor Luca Barone +generates class-filter for filters compositeKey of father +[/comment] +[template public genFatherCompositeFilter(aClass : Class)] +[for(fClass: Class | getParentClasses(aClass))] + [if(hasCompositeKey(fClass))] +@Embeddable +public static class [getClassIdType(fClass)/]Filter extends it.micegroup.voila2runtime.filter.Filter<[getClassIdType(fClass)/]> { + + /** + * Generated serial UID + */ + private static final long serialVersionUID = [getGeneratedSerialUID()/]; + + /** + * Default Constructor + */ + public [getClassIdType(fClass)/]Filter() { + // TODO Auto-generated constructor stub + } +} + [/if] +[/for] +[/template] + +[template public genFilterPropertiesFather(aClass : Class)] +[for(parentAss: Association | getParentAssociations(aClass))] +[comment] [for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())] +private [parentId.type.getFilterType()/] [parentId.getParentPropAssName(aClass, parentAss) /]; + [/for][/comment] +private String [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; +[/for] +[/template] + +[template public genFilterPropertiesImportedFather(aClass: Class)] +[for(parentAss : Association | aClass.getParentAssFromImportedModels())] +[comment] [for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())] +private [parentId.type.getFilterType()/] [parentId.getParentPropAssName(aClass , parentAss)/]; + [/for][/comment] +private String [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; +[/for] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/folderUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/folderUtils.mtl new file mode 100644 index 0000000..0053ab6 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/folderUtils.mtl @@ -0,0 +1,151 @@ +[comment encoding = UTF-8 /] +[module folderUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties /] + +[template public getWebModuleName(oclAny : OclAny)] +[getArtifact().concat('-web')/] +[/template] + +[template public getCoreModuleName(oclAny : OclAny)] +[getArtifact().concat('-core')/] +[/template] + +[template public getModelModuleName(oclAny : OclAny)] +[getArtifact().concat('-model')/] +[/template] + +[template public getImplModuleName(oclAny : OclAny)] +[getArtifact().concat('-impl')/] +[/template] + +[template public getAngularModuleName(oclAny : OclAny)] +[getArtifact().concat('-angular2')/] +[/template] + +[template public getWebModuleFolderName(oclAny : OclAny)] +[getArtifact().concat('/modules/').concat(getWebModuleName())/] +[/template] + +[template public getCoreModuleFolderName(oclAny : OclAny)] +[getArtifact().concat('/modules/').concat(getCoreModuleName())/] +[/template] + +[template public getImplModuleFolderName(oclAny : OclAny)] +[getArtifact().concat('/modules/').concat(getImplModuleName())/] +[/template] + +[template public getAngularModuleFolderName(oclAny : OclAny)] +[getArtifact().concat('/modules/').concat(getAngularModuleName())/] +[/template] + +[template public getRootDotSettingsFolderName(oclAny : OclAny)] +[getRootFolderName().concat('/.settings')/] +[/template] + +[template public getImplDotSettingsFolderName(oclAny : OclAny)] +[getImplModuleFolderName().concat('/.settings')/] +[/template] + +[template public getCoreDotSettingsFolderName(oclAny : OclAny)] +[getCoreModuleFolderName().concat('/.settings')/] +[/template] + + +[template public getWebDotSettingsFolderName(oclAny: OclAny)] +[getWebModuleFolderName().concat('/.settings/')/] +[/template] + +[template public getMainClassFolderName(oclAny: OclAny)] +[getWebModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/')/] +[/template] + +[template public getControllerFolderName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/controller/')/] +[/template] + +[template public getActuatorFolderName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/actuator/')/] +[/template] + +[template public getWebSecurityFolderName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/security/')/] +[/template] + +[template public getAssemblerFolderName(oclAny:OclAny)] +[getWebModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/assembler/')/] +[/template] + +[template public getServiceFolderName(oclAny : OclAny)] +[getCoreModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/service/')/] +[/template] + +[template public getEntityFolderName(oclAny : OclAny)] +[getCoreModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/entity/')/] +[/template] + +[template public getRepositoryFolderName(oclAny : OclAny)] +[getCoreModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/repository/')/] +[/template] + +[template public getServiceImplFolderName(oclAny : OclAny)] +[getImplModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/service/')/] +[/template] + +[template public getCriteriaFolderName(oclAny : OclAny)] +[getCoreModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/criteria/')/] +[/template] + +[template public getUtilitiesFolderName(oclAny : OclAny)] +[getCoreModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/utilities/')/] +[/template] + +[template public getDtoFolderName(oclAny:OclAny)] +[getWebModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/dto/')/] +[/template] + +[template public getResourcesFolderName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/src/main/resources/')/] +[/template] + +[template public getAdvicesFolderName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/advices/')/] +[/template] + +[template public getConfigFolderName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/config/')/] +[/template] + +[template public getLiquibaseFolderName(oclAny : OclAny)] +[getWebResourceFolderName().concat('/db/liquibase')/] +[/template] + +[template public getLiquiBaseSqlFolderName(oclAny : OclAny)] +[getLiquibaseFolderName().concat('/sql')/] +[/template] + +[template public getWebModuleResourceFolderName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/src/main/resources')/] +[/template] + +[template public getParentModuleFolderName(oclAny : OclAny)] +[getArtifact()/] +[/template] + +[template public getSecurityFolderName(oclAny : OclAny)] +[getCoreModuleFolderName().concat('/src/main/java/').concat(getBasePackageName().substituteAll('.','/')).concat('/security/')/] +[/template] + +[template public getWebResourceFolderName(oclAny : OclAny)] +[getWebModuleFolderName().concat('/src/main/resources/')/] +[/template] + +[template public getRootFolderName(oclAny : OclAny)] +[getArtifact()/] +[/template] + + + + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/fullyQualifiedNamesUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/fullyQualifiedNamesUtils.mtl new file mode 100644 index 0000000..b4554df --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/fullyQualifiedNamesUtils.mtl @@ -0,0 +1,75 @@ +[comment encoding = UTF-8 /] +[module fullyQualifiedNamesUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::runtimeUtils /] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] + +[template public getEntityTypeFullyQualified(aType : Type)] +[getGenericPackage(aType).concat('.entity').concat('.').concat(aType.name)/] +[/template] + +[template public getEntityCKTypeFullyQualified(aType : Type)] +[getGenericPackage(aType).concat('.entity').concat('.').concat(aType.name).concat('Key')/] +[/template] + +[template public getAssemblerFullyQualified(aType : Type)] +[getGenericPackage(aType).concat('.assembler').concat('.').concat(aType.name)/]ModelAssembler +[/template] + +[template public getEntity_TypeFullyQualified(aType : Type)] +[getEntityTypeFullyQualified(aType).concat('_')/] +[/template] + +[template public getCriteriaTypeFullyQualified(aType : Type)] +[getCriteriaPackage(aType).concat('.').concat(aType.name).concat('Criteria')/] +[/template] + +[template public getFilterPackage(aType : Type)] +[getGenericPackage(aType).concat('.specification.').concat('FilterService')/] +[/template] + +[template public getRepositoryTypeFullyQualified(aType : Type)] +[getRepositoryPackage(aType).concat('.').concat(aType.name).concat('Repository')/] +[/template] + +[template public getFilterServiceFullyQualified(aType : Type)] +[getRuntimePackage().concat('.specification.FilterService')/] +[/template] + +[template public getFilterTypeFullyQualified(oclAny: OclAny)] +[getRuntimePackage().concat('.filter')/] +[/template] + +[template public getServiceTypeFullyQualified(aType : Type)] +[getGenericPackage(aType).concat('.service.').concat(aType.name).concat('Service')/] +[/template] + +[template public getCompositeKeyTypeFullyQualified(aClass: Class)] +[getEntityTypeFullyQualified(aClass).concat('.').concat(aClass.getClassIdType())/] +[/template] + + +[template public getUtilitiesFullQualified(oclAny : OclAny)] +[getGenericPackage().concat('.utilities')/] +[/template] + +[template public getLibsUtilitiesFullQualified(oclAny:OclAny)] +[getGenericPackage().concat('.libs.utilities')/] +[/template] + +[template public getEntityPackFullyQualified(oclAny : OclAny)] +[getGenericPackage().concat('.entity')/] +[/template] + +[template public getResourceFullyQualified(aClass : Class)] +[getGenericPackage()/].resource.[aClass.name/]Resource; +[/template] + +[template public getControllerFullyQualified(aType : Type)] +[getGenericPackage(aType).concat('.controller').concat('.').concat(aType.name)/]Controller +[/template] + +[template public getDtoFullyQualified(aType: Type)] +[getGenericPackage(aType).concat('.dto.').concat(aType.name)/]Dto +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/importUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/importUtils.mtl new file mode 100644 index 0000000..fedf023 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/importUtils.mtl @@ -0,0 +1,834 @@ +[comment encoding = UTF-8 /] +[module importUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::runtimeUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] +[import it::micegroup::voila2::cartridge::library::common::utilities /] +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fullyQualifiedNamesUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] + +[template public genBaseServiceImplImports(isMsLib : Boolean) post(trim())] +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import org.springframework.core.io.Resource; +import org.springframework.core.io.ResourceLoader; +import org.springframework.core.io.support.ResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternUtils; + +import org.springframework.stereotype.Service; + +[if(isMsLib)] +import [getLibsUtilitiesPackage()/].JasperReportsCache; +import [getRuntimeExceptionPackage()/].BusinessException; +import net.sf.jasperreports.engine.JRException; +import java.io.IOException; +[else] +import [getUtilitiesPackage()/].JasperReportsCache; +[/if] + +import net.sf.jasperreports.engine.JasperCompileManager; +import net.sf.jasperreports.engine.JasperReport; +[/template] + +[template public genServiceImplImportsAsMs(aClass : Class)] +import lombok.RequiredArgsConstructor; +import [getServiceLibsPackageAsMs()/].BaseServiceImpl; +[if(aClass.hasCompositeKey())] +import [getEntityPackage()/].[aClass.getClassIdName().toUpperFirst()/]_; +[/if] + +[if(aClass.hasChilds())] +import java.util.stream.Collectors; +[for(childAss : Association | aClass.getChildAssociations())] +[if(aClass.getChildClass(childAss) <> aClass)] +import [getEntityPackage()/].[getEntityClassName(getChildClass(aClass,childAss))/]; +[/if] +[/for] +import [getRuntimeGenericEntityFullyQualified()/]; +[/if] +import [getRuntimeExceptionPackage()/].BusinessException; +import net.sf.jasperreports.engine.JRException; +[/template] + +[template public genServiceImplImports(aClass : Class, aModel : Model,isMs: Boolean) post(trim())] +import java.util.Map; +import java.util.List; +import java.util.Locale; +import java.util.HashMap; +import java.util.Optional; +import java.util.ArrayList; +import java.util.Collection; +import java.util.ResourceBundle; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import org.springframework.context.i18n.LocaleContextHolder; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperExportManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +[for(type : String | getAttributeJavaTypesNoDuplicates(getParentIdAttributesAsSequence(aClass)))] +import [getRuntimePackage().concat('.filter.')/][type/]; +[/for] + +import [getEntityTypeFullyQualified(aClass)/]; + +[genCompositeKeyImports(aClass,isMs)/] +[genParentEntityImport(aClass)/] +[genParentCompositeKeyImports(aClass,isMs)/] + +import [getEntity_TypeFullyQualified(aClass)/]; +import [getCriteriaTypeFullyQualified(aClass)/]; +import [getRepositoryTypeFullyQualified(aClass)/]; +import [getFilterServiceFullyQualified(aClass)/]; + + +[for(parentAss: Association | getParentAssociations(aClass))] +[if(parentAss.isIdentifying() and aClass.getParentClass(parentAss) <> aClass)] +import [getEntityPackage()/].[aClass.getParentClass(parentAss).name/]_; +[if(aClass.getParentClass(parentAss).hasCompositeKey())] +import [getEntityPackage()/].[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]_; +[/if] +[/if] +[/for] + +[genImportsForSpecification(aClass)/] + +[comment][for(c : Class | aClass.getChildClasses())] +import [getServiceTypeFullyQualified(c)/]; +[/for][/comment] + +[if(isInSecurityUserRole(aClass) or aClass.generalizeSecurityUserRole())] +import org.springframework.security.crypto.password.PasswordEncoder; +import [getGenericPackage().concat('.entity')/].Role; +import [getGenericPackage().concat('.entity')/].RolePerSecurityUser.RolePerSecurityUserKey; +import [getGenericPackage().concat('.entity')/].RolePerSecurityUser; +[/if] + +[if(aModel.isCachingEnabled() and (aClass.isInPrivilegePerRoleRole() or aClass.isInPrivilegeRole()))] +import org.springframework.cache.annotation.Cacheable; +[if(aModel.isCachingEnabled() and aClass.isInPrivilegeRole())] +import org.springframework.cache.annotation.CacheEvict; +[/if] +[/if] + +[if(getParentClasses(aClass) -> size() > 1)] +import org.springframework.data.domain.PageImpl; +[if(not aClass.hasChilds())] +import java.util.stream.Collectors; +[/if][/if] +[/template] + +[template public genChildServiceImport(aClass : Class) post(trim())] +[for(c : Class | aClass.getChildClasses())] +[if(c <> aClass)] +import [getServiceTypeFullyQualified(c)/]; +[/if] +[/for] +[/template] + +[template public genChildEntityImport(aClass : Class) post(trim())] +[for(c : Class | aClass.getChildClasses())] +[if(c <> aClass)] +import [getEntityTypeFullyQualified(c)/]; +[/if] +[/for] +[/template] + +[template public genParentEntityImport(aClass : Class) post(trim())] +[for(c : Class | aClass.getParentClasses())] +[if(c <> aClass)] +import [getEntityTypeFullyQualified(c)/]; +[/if] +[/for] +[/template] + +[template public genMailRequestDtoImports(oclAny : OclAny)] +import javax.validation.constraints.NotNull; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Map; +[/template] + +[template public genControllerImportsAsMs(aClass:Class)] +import lombok.RequiredArgsConstructor; +import [getEntityTypeFullyQualified(aClass)/]; +import [getAssemblerFullyQualified(aClass)/]; +import [getCriteriaTypeFullyQualified(aClass)/]; +import [getServiceTypeFullyQualified(aClass)/]; +[genChildServiceImport(aClass)/] +[genChildEntityImport(aClass)/] +[genParentEntityImport(aClass)/] +[genParentCompositeKeyImports(aClass,true)/] +[if(isInPrivilegePerRoleRole(aClass))] +import java.util.Collection; +import java.util.ArrayList; +import org.springframework.web.bind.annotation.RequestParam; +[/if] +import [getRuntimeExceptionPackage()/].*; +import [getControllerLibsPackageAsMs()/].BaseController; +import [getEntityDtoPackage()/].[getDtoClassName(aClass)/]; +import [getEntityDtoPackage()/].[getEntityWriteDtoClassName(aClass)/]; +import [getResponseLibsPackageAsMs()/].BaseResponse; +import [getLibsRequestPackageAsMs()/].BaseRequest; +import javax.annotation.PostConstruct; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedResourcesAssembler; +import org.springframework.hateoas.PagedModel; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import javax.validation.Valid; +import java.net.URI; +import java.util.Locale; +[comment]import java.util.Map;[/comment] +import java.util.Optional; + +[comment]childMap[/comment] +import java.util.Collection; +import org.modelmapper.PropertyMap; +import java.util.stream.Collectors; +[/template] + +[template public genBaseResponseImports(oclAny:OclAny)] +import java.io.Serializable; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.springframework.hateoas.RepresentationModel; +import [getRuntimeExceptionPackage()/].ErrorDetails; +import [getRuntimeResponsePackage()/].Messages; +import lombok.Data; +[/template] + +[template public genControllerImports(aClass : Class,isMs : Boolean) post(trim())] +import [getEntityTypeFullyQualified(aClass)/]; +import [getResourceFullyQualified(aClass)/] +import [getCriteriaTypeFullyQualified(aClass)/]; +import [getServiceTypeFullyQualified(aClass)/]; +[comment]import [getRuntimePackage()/].web.utils.HeaderUtil;[/comment] + +[genChildServiceImport(aClass)/] +[genChildEntityImport(aClass)/] +[genParentEntityImport(aClass)/] + +[comment][genCompositeKeyImports(aClass,isMs)/][/comment] +[genParentCompositeKeyImports(aClass,isMs)/] + +import javax.validation.Valid; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; +import java.util.Optional; + +[if(isInPrivilegePerRoleRole(aClass))] +import java.util.Collection; +import java.util.ArrayList; +import org.springframework.web.bind.annotation.RequestParam; +[/if] +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; + +import java.net.URI; +import java.net.URISyntaxException; + +import org.springframework.security.access.prepost.PreAuthorize; +[/template] + +[template public genCriteriaImports(aClass : Class) post(trim())] +import java.io.Serializable; +[if(hasFatherWithCompositeKey(aClass))] +import javax.persistence.Embeddable; +[/if] + +[if(aClass.hasParents() and aClass.getParentStringId()->size() = 0)] +import [getRuntimePackage()/].filter.StringFilter; +[/if] + +[for(type : String | getAttributeJavaTypesNoDuplicates(getAttributesFromClassAndParents(aClass)))] +import [getRuntimePackage().concat('.filter.')/][type/]; +[/for] +[/template] + +[template public genImportsForProperty(aClass : Class)] +[for(imp: String | aClass.getImportsForProperty())] +[imp/] +[/for] +[/template] + +[template public genEntityImportsAsMs(aClass:Class)] + +[/template] + + +[template public genEntityImports(aClass : Class) post(trim())] +import java.io.Serializable; + +[aClass.genImportsForProperty()/] +import javax.persistence.Column; +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +[if(aClass.hasCompositeKey())] +import javax.persistence.EmbeddedId; +[if(aClass.isInPrivilegePerRoleRole())] +import javax.persistence.PreRemove; +import org.springframework.cache.annotation.CacheEvict; +[/if] +[else] +[if(isClassExtended(aClass))] +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +[/if] +import javax.persistence.Id; +[if(aClass.hasAutogeneratedId())] +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +[/if] +[/if] +import javax.persistence.Entity; +[if(aClass.hasParents() or (aClass.hasParents()._not() and aClass.hasOneToOneRelation() and aClass.hasNavigableParents()))] +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +[/if] +[if(aClass.hasManyToOneRelation() or aClass.hasOneToOneRelation())] +import javax.persistence.FetchType; +[/if] +[if(aClass.hasChilds())] +import java.util.Collection; +import java.util.ArrayList; +import javax.persistence.OneToMany; +import javax.persistence.CascadeType; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import lombok.ToString; +[/if] + +[if(aClass.hasParents() or aClass.hasChilds())] +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +[/if] + +[if(aClass.hasParents())] +[if(aClass.hasNoIdentifyingParent())] +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.annotation.JsonBackReference; +[/if] +[if(aClass.hasOneToOneRelation())] +import javax.persistence.OneToOne; +[/if] +[if(aClass.hasOneToOneRelation() or aClass.hasManyToOneRelation())] +[if(aClass.hasNoIdentifyingParent())] +import javax.persistence.ManyToOne; +import javax.validation.constraints.NotNull; +[/if][/if] +[/if] +[if(aClass.hasParentsWithCK())] +import javax.persistence.JoinColumns; +[/if] + +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.Getter; +import lombok.AllArgsConstructor; + +import javax.persistence.Table; +[comment]import javax.validation.constraints.NotNull;[/comment] + +import org.apache.commons.lang3.StringUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hibernate.Hibernate; +import java.util.Objects; + +[genParentCKImports(aClass)/] + +[if(aClass.isAuditable())] +import [getLibsUtilitiesPackageAsMs()/].Auditable; +[else] +import [getLibsEntityPackageAsMs()/].BaseEntity; +[/if] +import [getRuntimeUtilsPackage().concat('.EntityUtils')/]; +[/template] + +[template public genBaseRepositoryImports(oclAny : OclAny) post(trim())] +import [getRuntimeRepositoryPackage().concat('.GenericRepository')/]; +import org.springframework.data.repository.NoRepositoryBean; +[/template] + +[template public genRepositoryImportsAsMs(oclAny:OclAny)] +import [getRepositoryLibsPackageAsMs()/].BaseRepository; +[/template] + +[template public genRepositoryImports(aClass : Class,isMs : Boolean) post(trim())] +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Collection; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +[if(aClass.hasParents())] +import org.springframework.data.jpa.repository.EntityGraph; +import org.springframework.data.jpa.repository.EntityGraph.EntityGraphType; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +[/if] +import [getEntityTypeFullyQualified(aClass)/]; +[genCompositeKeyImports(aClass,isMs)/] +[genParentEntityImport(aClass)/] +[genParentCompositeKeyImports(aClass,isMs)/] +[/template] + +[template public genServiceImportsAsMs(oclAny:OclAny)] +import [getServiceLibsPackageAsMs()/].BaseEntityService; +import [getRuntimeExceptionPackage()/].BusinessException; +[/template] + +[template public genServiceImports(aClass: Class,isMs : Boolean) post(trim())] +import [getEntityTypeFullyQualified(aClass)/]; +import [getCriteriaTypeFullyQualified(aClass)/]; + +[if(aClass.hasParents())] +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +[/if] +[genCompositeKeyImports(aClass,isMs)/] +[genParentEntityImport(aClass)/] +[genParentCompositeKeyImports(aClass,isMs)/] +[/template] + +[template public genCompositeKeyImports(aClass : Class,isMs : Boolean)] +[if(aClass.hasCompositeKey() and isMs._not())] +import [getCompositeKeyTypeFullyQualified(aClass)/]; +[/if] +[if(aClass.hasCompositeKey() and isMs)] +import [getEntityCKTypeFullyQualified(aClass)/]; +[/if] +[/template] + +[template public genCKImports(aClass : Class)] +import [getEntityCKTypeFullyQualified(aClass)/]; +[/template] + +[template public genChildCompositeKeyImports(aClass : Class,isMs : Boolean)] +[for(c : Class | aClass.getChildClasses())] +[genCompositeKeyImports(c,isMs)/] +[/for] +[/template] + +[template public genParentCompositeKeyImports(aClass : Class,isMs : Boolean)] +[for(c : Class | aClass.getParentClasses())] +[genCompositeKeyImports(c,isMs)/] +[/for] +[/template] + +[template public genParentCKImports(aClass : Class)] +[for(aClass : Class | aClass.getParentClasses())] +[if(aClass.hasCompositeKey())] +[genCKImports(aClass)/] +[/if] +[/for] +[/template] + +[template public genBaseEntityImports(isMs : Boolean)] +import [getRuntimeGenericEntityFullyQualified()/]; +[if(isMs)] +import [getLibsUtilitiesFullQualified()/].Constants; +[else] +import [getUtilitiesFullQualified()/].Constants; +[/if] +[/template] + +[template public genBaseAttachmentControllerImports(oclAny : OclAny)] +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.stream.Collectors; + +import javax.annotation.PostConstruct; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import [getRuntimeStorageServiceFullyQualified()/]; +import [getCriteriaPackage().concat('.').concat('AttachmentCriteria')/]; +import [getEntityPackage().concat('.').concat('Attachment')/]; +import [getServicePackage().concat('.').concat('AttachmentService')/]; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import [getRuntimeStringFilterFullyQualified()/]; +import org.springframework.web.bind.annotation.RequestBody; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +[/template] + + +[** + * Generate imports for mail service + * @author Luca Barone +*/] +[template public genMailServiceImports(oclAny : OclAny)] +import org.springframework.beans.factory.InitializingBean; +import [getRuntimeMailMailManagerFullyQualified()/]; +[/template] + + +[** + * Generate imports for mail service impl + * @author Luca Barone +[/comment] +[template public genMailServiceImplImports(oclAny : OclAny)] +import [getRuntimeMailMailManagerFullyQualified()/]; +import [getRuntimeMailMailManagerImplFullyQualified()/]; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.velocity.app.VelocityEngine; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.DependsOn; +import org.springframework.stereotype.Service; + +[genMailServiceImplRepositoryImportsMs()/] + +[/template] + +[** + * Generate imports for mail service impl + * @author Luca Barone +[/comment] +[template public genMailServiceImplRepositoryImports(oclAny : OclAny)] +import [getGenericPackage().concat('.repository.MailConfigRepository;')/] +import [getGenericPackage().concat('.repository.MailStyleRepository;')/] +import [getGenericPackage().concat('.repository.MailTemplateRepository;')/] +[/template] + +[comment]Generare import for mail service impl in Ms architecture + @author Simone Punzo [/comment] +[template public genMailServiceImplRepositoryImportsMs(oclAny: OclAny)] +import [getRepositoryPackage().concat('.MailConfigRepository;')/] +import [getRepositoryPackage().concat('.MailStyleRepository;')/] +import [getRepositoryPackage().concat('.MailTemplateRepository;')/] +import [getEntityPackage().concat('.MailConfig;')/] +import [getEntityPackage().concat('.MailStyle;')/] +import [getEntityPackage().concat('.MailTemplate;')/] +[/template] + +[template public genEntityDtoImports(aClass : Class)] +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +[if(aClass.hasCompositeKey())] +import [getEntityPackage()/].[aClass.getClassIdName().toUpperFirst()/]; +[/if] + +[if(aClass.hasChilds())] +import java.util.Collection; +[/if] + +import com.fasterxml.jackson.annotation.JsonProperty; +[if(aClass.hasChilds() or aClass.hasParents())] +import com.fasterxml.jackson.annotation.JsonProperty.Access; +[/if] +[for(propertyType : String | getAttributeJavaTypesNoDuplicates(aClass.getFiltrableAttributes()))] +[if(propertyType = 'LocalDateFilter')] +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +[/if] +[if(propertyType = 'LocalDateTimeFilter')] +import java.time.LocalDateTime; +[/if] +[/for] +[/template] + +[template public genImportsForPropertyDto(aClass:Class)] +[getImportsForPropertyDto(aClass)/] +[/template] + +[template public genBaseDtoImport(oclAny:OclAny)] +import [getBaseDtoLibsPackage()/].BaseDto; +[/template] + +[template public genBaseModelAssemblerImports(oclAny:OclAny)] +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; + +import org.modelmapper.ModelMapper; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.hateoas.Link; +import org.springframework.hateoas.LinkRelation; +import org.springframework.hateoas.RepresentationModel; +import org.springframework.hateoas.server.RepresentationModelAssembler; + +import [getControllerLibsPackage()/].BaseController; +import [getEntityLibsPackage()/].BaseEntity; +import [getResponseLibsPackage()/].BaseResponse; + + +import java.net.URI; +[/template] + +[template public genResourceImports(aClass : Class) post(trim())] +import [getEntityTypeFullyQualified(aClass)/]; +import [getControllerFullyQualified(aClass)/]; + +[for(parentAss : Association | aClass.getParentAssociations())] +[if(aClass.getParentClass(parentAss) <> aClass)] +import [getControllerFullyQualified(aClass.getParentClass(parentAss))/]; +[/if] +[/for] + +[if(aClass.hasChilds())] +import org.springframework.data.domain.PageRequest; +[/if] +import org.springframework.hateoas.Resource; +import org.springframework.hateoas.mvc.ControllerLinkBuilder; +import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo; +[/template] + +[template public genDtoImports(oclAny:OclAny)] +import java.io.Serializable; +import org.springframework.hateoas.RepresentationModel; +import [getRuntimeGenericObjectFullyQualified()/]; +[/template] + +[template public genDtoImportsForMapperConfig(aModel : Model)] +[for(aClass : Class | aModel.getEntities()) ] +import [getDtoFullyQualified(aClass)/]; +import [getEntityTypeFullyQualified(aClass)/]; +[/for] +[/template] + +[template public genAssemblerImports(aClass : Class)] +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.Link; +import org.springframework.stereotype.Component; +[if(aClass.getParentAssFromImportedModels()->size() > 0)] +import org.springframework.hateoas.LinkRelation; +[/if] + +import [getBaseAssemblerPckAsMs()/].BaseModelAssembler; +import [getControllerFullyQualified(aClass)/]; +import [getDtoFullyQualified(aClass)/]; +import [getEntityTypeFullyQualified(aClass)/]; + + +[for(parentAss : Association | aClass.getParentAssociations())] +[if(aClass.getParentClass(parentAss) <> aClass)] +import [getControllerFullyQualified(aClass.getParentClass(parentAss))/]; +[/if] +[/for] + +[for(childAss : Association | aClass.getChildAssociations())] +[if(aClass.getChildClass(childAss) <> aClass)] +import [getControllerFullyQualified(aClass.getChildClass(childAss))/]; +[/if] +[/for] + +[/template] + +[template public genEntityKeyImports(aClass : Class)] +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Objects; + +import lombok.ToString; + +import [getRuntimeUtilsPackage().concat('.EntityUtils')/]; +[/template] + +[template public genGenericDtoImport(oclAny : OclAny)] +import [getRuntimeGenericDtoFullyQualified()/]; +[/template] + +[template public genMailControllerImports(oclAny:OclAny)] +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import [getRuntimeExceptionPackage()/].BusinessException; +import [getServicePackage()/].MailManagerService; +import [getLibsRequestPackageAsMs()/].BaseRequest; +import [getEntityDtoPackage()/].MailDto; +[/template] + +[template public genResourceServerSecurityConfigImports(oclAny:OclAny)] +import java.util.Arrays; +import java.util.Collections; + +import javax.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.oauth2.jwt.Jwt; +import org.springframework.security.oauth2.jwt.JwtDecoder; +import org.springframework.security.oauth2.jwt.NimbusJwtDecoder; +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +[/template] + +[template public genKeycloakRealmRoleConverterInports(oclAny:OclAny)] +import org.springframework.core.convert.converter.Converter; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.oauth2.jwt.Jwt; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +[/template] + +[template public genMsPropertiesImports(oclAny : OclAny)] +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +[/template] + +[template public genMsConfigImports(oclAny : OclAny)] +import [getActuatorPackage()/].[getMainClassNameAsMs()/]Interceptor; +import [getActuatorPackage()/].[getMainClassNameAsMs()/]Properties; +import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.handler.MappedInterceptor; +[/template] + +[template public genMsInterceptorImports(oclAny : OclAny)] +import io.micrometer.core.instrument.MeterRegistry; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +[/template] + +[template public genMailDtoImports(oclAny : OclAny)] +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import lombok.Data; +import lombok.EqualsAndHashCode; +[/template] + +[template public genImportsForSpecification(aClass: Class)] +import [getEntityPackage()/].[aClass.getEntityClassName().toUpperFirst()/]_; +[if(aClass.hasCompositeKey())] +import [getEntityPackage()/].[aClass.getClassIdName().toUpperFirst()/]_; +[/if] +[for(parentAss : Association | aClass.getParentAssociations())] +[if(parentAss.isOneToOneRelation())] +import [getEntityPackage()/].[aClass.getParentClass(parentAss).getEntityClassName().toUpperFirst()/]_; +[if(aClass.hasCompositeKey())] +import [getEntityPackage()/].[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]_; +[/if] +[elseif(parentAss.isSelfRelation()._not() and parentAss.isOneToOneRelation()._not())] +[genImportsForSpecification(aClass.getParentClass(parentAss))/] +[/if] +[/for] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/mailManagerServiceImplUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/mailManagerServiceImplUtils.mtl new file mode 100644 index 0000000..487e401 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/mailManagerServiceImplUtils.mtl @@ -0,0 +1,228 @@ +[comment encoding = UTF-8 /] + +[comment] + +Mail Utils Template + +@author Luca Barone + +[/comment] +[module mailManagerServiceImplUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::runtimeUtils/] + +[** + * Generete a MailManager with abstract methods implementated + * @author Luca Barone +*/] +[template public genAttributeMailManager(oclAny : OclAny)] +/* + You must define the abstract methods of MailManager. + In this file you can find a example of implementation ( commented ). + If you define MailConfig , MailTemplate and MailStyle in standard mode, + you can use this implementation directly. +*/ +private MailManagerImpl mailManager = new MailManagerImpl() { + + /* this method initialize the style list (is obliged) */ + @Override + protected void initMailStyle() { + try { + + mapMailStyle = new HashMap(); + List listStyle = new ArrayList<>(); + listStyle = mailStyleRepository.findAll(); + [getRuntimeMailStyleFullyQualified()/] mailStyle; + for (MailStyle style : listStyle) { + mailStyle = new [getRuntimeMailStyleFullyQualified()/](); + mailStyle.setMailStyleId(style.getMailStyleId()); + mailStyle.setMailStyleDescription(style.getMailStyleDescription()); + mailStyle.setMailStyleHeader(style.getMailStyleHeader()); + mailStyle.setMailStyleFooter(style.getMailStyleFooter()); + mapMailStyle.put(mailStyle.getMailStyleId(), mailStyle); + } + + } catch (Exception e) { + LOGGER.error("Error stack trace: ", e); + } + } + + /* this method initialize the template list (is obliged) */ + @Override + protected void initMailTemplates() { + try { + + mapMailTemplate = new HashMap(); + List listTemplate = new ArrayList<>(); + listTemplate = mailTemplateRepository.findAll(); + [getRuntimeMailTemplateFullyQualified()/] mailTemplate; + for (MailTemplate template : listTemplate) { + mailTemplate = new [getRuntimeMailTemplateFullyQualified()/](); + mailTemplate.setBeanFactory(getApplicationContext()); + mailTemplate.setMailTemplateId(template.getMailTemplateId()); + mailTemplate.setAttachments(template.getAttachments()); + mailTemplate.setEnabled((template.getAbilitaNotificheEmail())); + mailTemplate.setMailBcc(template.getMailBcc()); + mailTemplate.setMailBodyHtml(template.getMailBodyHtml()); + mailTemplate.setMailBodyText(template.getMailBodyText()); + mailTemplate.setMailCc(template.getMailCc()); + mailTemplate.setMailFrom(template.getMailFrom()); + mailTemplate.setMailReplyTo(template.getMailReplyTo()); + if(template.getMailSubject() == null) + mailTemplate.setMailSubject("default"); + else + mailTemplate.setMailSubject(template.getMailSubject()); + mailTemplate.setMailTemplateDescription(template.getMailTemplateDescription()); + mailTemplate.setMailTo(template.getMailTo()); + mailTemplate.setSkipTitle((template.getSkipTitle())); + mailTemplate.setTheMailConfig(getMailConfigs().get(template.getMailConfigId())); + mailTemplate.setTheMailStyle(mapMailStyle.get(template.getMailStyleId())); + mapMailTemplate.put(mailTemplate.getMailTemplateId(), mailTemplate); + } + mailManager.setMailTemplates(mapMailTemplate); + + } catch (Exception e) { + LOGGER.error("Error stack trace: ", e); + } + } + + /* this method initialize the event list (is optional)*/ + @Override + protected void initMailEvents() { + try { + + } catch (Exception e) { + LOGGER.error("Error stack trace: ", e); + } + } + + /* this method initialize the config list (is obliged) */ + @Override + protected void initMailConfigs() { + try { + + mapMailConfig = new HashMap(); + List listConfig = new ArrayList<>(); + listConfig = mailConfigRepository.findAll(); + [getRuntimeMailConfigFullyQualified()/] mailConfig; + for (MailConfig config : listConfig) { + + mailConfig = new [getRuntimeMailConfigFullyQualified()/](); + mailConfig.setBeanFactory(getApplicationContext()); + mailConfig.setMailConfigId(config.getMailConfigId()); + mailConfig.setMailConfigDescription(config.getMailConfigDescription()); + mailConfig.setEnabled((config.getAbilitaNotificheEmail())); + mailConfig.setMailBccAddress(config.getMailCcAddress()); + mailConfig.setMailCcAddress(config.getMailBccAddress()); + mailConfig.setMailCrypto(config.getMailCrypto()); + mailConfig.setMailDefaultSubject(config.getMailDefaultSubject()); + mailConfig.setMailFromAddress(config.getMailFromAddress()); + mailConfig.setMailNomeHost(config.getMailNameHost()); + mailConfig.setMailPassword(config.getMailPassword()); + mailConfig.setMailPort(config.getMailPort()); + if (config.getMailSPA()== null || config.getMailSPA()) { + mailConfig.setMailSPA("S"); + } else { + mailConfig.setMailSPA("N"); + } + mailConfig.setMailUsername(config.getMailUsername()); + mailConfig.setEnabled(true); + mapMailConfig.put(mailConfig.getMailConfigId(), mailConfig); + } + mailManager.setMailConfigs(mapMailConfig); + + } catch (Exception e) { + LOGGER.error("Error stack trace: ", e); + } + } + + /* + this method initialize the velocity engine (is obliged) + if not initialized, you can't use features velocity engine + */ + @Override + protected void initMailVelocityEngine() { + try { + + mailManager.setVelocityEngine(new VelocityEngine()); + + } catch (Exception e) { + LOGGER.error("Error stack trace: ", e); + } + } +}; +[/template] + +[** + * Generate MailTemplateRepository standard + * @author Luca Barone +*/] +[template public genMailTemplateRepositoryAttribute(oclAny : OclAny)] +MailTemplateRepository mailTemplateRepository; +[/template] + +[** + * Generate MailStyleRepository standard + * @author Luca Barone +*/] +[template public genMailStyleRepositoryAttribute(oclAny : OclAny)] +MailStyleRepository mailStyleRepository; +[/template] + +[** + * Generate MailConfigRepository standard + * @author Luca Barone +*/] +[template public genMailConfigRepositoryAttribute(oclAny : OclAny)] +MailConfigRepository mailConfigRepository; +[/template] + +[** + * Implement alfterPropertiesSet() standard + * @author Luca Barone +*/] +[template public genAfterPropertiesSetMail(oclAny : OclAny)] +public void afterPropertiesSet() throws Exception { + // TODO Auto-generated method stub + mailManager.setTestMode(false); + mailManager.afterPropertiesSet(); +} +[/template] + + +[** + * Implement getMailManager() standard + * @author Luca Barone +*/] +[template public genGetMailManagerMail(oclAny : OclAny)] +public MailManager getMailManager() { + return mailManager; +} +[/template] + + +[** + * Define map attribute for mailManagerServiceImpl + * @author Luca Barone +*/] +[template public genMailServiceImplAttributedMap(oclAny : OclAny)] +private Map mapMailConfig; + +private Map mapMailStyle; + +private Map mapMailTemplate; +[/template] + + +[** + * Define attribute map for read information from db + * @author Luca Barone +*/] +[template public genMailServiceImplAttributedMapModel(oclAny : OclAny)] +private List<[getGenericPackage().concat('.entity.MailConfig')/]> listConfig; + +private List<[getGenericPackage().concat('.entity.MailStyle')/]> listStyle; + +private List<[getGenericPackage().concat('.entity.MailTemplate')/]> listTemplate; +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/applicationYML.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/applicationYML.mtl new file mode 100644 index 0000000..0dcdf27 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/applicationYML.mtl @@ -0,0 +1,86 @@ +[module applicationYML('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] + +[template public genMsWebApplicationYML(aModel : Model) post(writeAndFormat(getMsWebApplicationYMLName()))] +server: + port: ${PORT:[getPortNumber()/]} + servlet: + context-path: /[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/] + +spring: + application: + name: [getRootArtifactId()/]-[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/]-service + liquibase: + enabled: false + security: + oauth2: + resourceserver: + jwt: + issuer-uri: http://${KK_URL:localhost}:${KK_PORT:8282}/auth/realms/[getRootArtifactId()/] + jwk-set-uri: http://${KK_URL:localhost}:${KK_PORT:8282}/auth/realms/[getRootArtifactId()/]/protocol/openid-connect/certs + +# data: +# rest: +# basePath: /[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/] + jpa: + hibernate: + show-sql: true + [if(isSecurityMicroservice()._not())] + ddl-auto: create + naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy + database-platform: org.hibernate.dialect.H2Dialect + datasource: + driverClassName: org.h2.Driver + url: jdbc:h2:mem:[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/];MODE=MYSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + username: [getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/] + password: + + h2: + console: + enabled: true + settings: + web-allow-others: true + path: /h2-console + [else] +[comment] datasource: + url: jdbc:mysql://localhost:3306/keycloak?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false + username: keycloak + password: keycloak [/comment] + datasource: + url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:keycloak}?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false + username: ${USER_NAME:keycloak} + password: ${USER_PASSWORD:keycloak} + [/if] + devtools: + livereload: + port: 35830 + +logging: + level: + root: INFO + org.hibernate.SQL: TRACE + org.springframework: DEBUG + +gateway: + baseuri: http://localhost:8090 +[comment] Scommentare quando il FE sarà in container baseuri: http://[aModel.getGateway().name.toLower()/]:8090[/comment] +[comment] baseuri: http://192.168.111.71:8090[/comment] + +jasperreports: + dir: reports + debug: true + +management: + endpoints: + web: + exposure: + include: "*" + endpoint: + health: + show-details: always +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/customSpringLiquibase.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/customSpringLiquibase.mtl new file mode 100644 index 0000000..d873629 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/customSpringLiquibase.mtl @@ -0,0 +1,51 @@ +[module customSpringLiquibase('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] + +[template public genCustomSpringLiquibase(oclAny : OclAny) post(writeAndFormat(getCustomSpringLiquibaseFileName()))] +package [getConfigPackage()/]; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.BeanNameAware; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ResourceLoaderAware; +import org.springframework.core.io.ResourceLoader; + +import liquibase.exception.LiquibaseException; +import liquibase.integration.spring.SpringLiquibase; + +public class CustomSpringLiquibase implements InitializingBean, BeanNameAware, ResourceLoaderAware { + + private static final Logger LOGGER = LogManager.getLogger(CustomSpringLiquibase.class); + private SpringLiquibase springLiquibase; + + public CustomSpringLiquibase(SpringLiquibase liquibase) { + springLiquibase = liquibase; + } + + @Override + public void afterPropertiesSet() { + try { + springLiquibase.afterPropertiesSet(); + } catch (LiquibaseException e) { + LOGGER.error("LiquibaseConfig ", e); + } + } + + @Override + public void setBeanName(String name) { + springLiquibase.setBeanName(name); + } + + @Override + public void setResourceLoader(ResourceLoader resourceLoader) { + springLiquibase.setResourceLoader(resourceLoader); + } +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/db/genMsDBScript.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/db/genMsDBScript.mtl new file mode 100644 index 0000000..eb48e94 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/db/genMsDBScript.mtl @@ -0,0 +1,49 @@ +[module genMsDBScript('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] + +[template public genDBScript(aModel : Model ) post(writeAndFormat(getDbScriptFileName()))] +[if(isNotificationMicroservice())] +[genDBNotification()/] +[/if] +[if(isDemoMicroservice())] +[genDBDemo()/] +[/if] +[/template] + +[template public genDBNotification(oclAny : OclAny)] +INSERT INTO mail_config (MAIL_CONFIG_ID, MAIL_CONFIG_DESCRIPTION, ABILITA_NOTIFICHE_EMAIL, MAIL_NAME_HOST, MAIL_PORT, MAIL_CRYPTO, MAIL_SPA, MAIL_USERNAME, MAIL_PASSWORD, MAIL_DEFAULT_SUBJECT, MAIL_FROM_ADDRESS, MAIL_CC_ADDRESS, MAIL_BCC_ADDRESS) VALUES ('DEFAULT', 'Default mail configuration', TRUE, 'localhost', '25', NULL, NULL, 'DAG\\webo', NULL, 'Orchestratore WebO', 'webo@mef.gov.it', NULL, NULL); + +INSERT INTO mail_style (MAIL_STYLE_ID, MAIL_STYLE_DESCRIPTION, MAIL_STYLE_HEADER, MAIL_STYLE_FOOTER) VALUES ('DEFAULT', 'Nuovo style 2020', 'head', 'foot'); + +INSERT INTO mail_template (MAIL_TEMPLATE_ID, MAIL_TEMPLATE_DESCRIPTION, MAIL_SUBJECT, MAIL_BODY_HTML, MAIL_BODY_TEXT, MAIL_FROM, MAIL_TO, MAIL_CC, MAIL_BCC, MAIL_REPLY_TO, SKIP_TITLE, ABILITA_NOTIFICHE_EMAIL, ATTACHMENTS, MAIL_CONFIG_ID, MAIL_STYLE_ID) VALUES ('TEST_TEMPLATE',null, 'subject' , null , 'ciao' , 'bye' , 'simone@email.it',null, 'becc@gmail.cane' , null,TRUE,TRUE,null,'DEFAULT','DEFAULT'); +[/template] + +[template public genDBDemo(oclAny: OclAny)] +[comment]INSERT INTO CLIENTE VALUES ('dottore','PPPPPPP','ciao@example.com','08111111','mice','DFO383AFA','pippo','www.ciao.it','08113434','bakugo'); +INSERT IGNORE INTO TIPO_ORDINE (`id_tipo_ordine`, `nome_tipo_ordine`) VALUES (1,'fornitore'); +INSERT IGNORE INTO TIPO_ORDINE (`id_tipo_ordine`, `nome_tipo_ordine`) VALUES (2,'ignora'); +INSERT IGNORE INTO NAZIONE (`nome_nazione`) VALUES ('Italia'); +INSERT IGNORE INTO DIPARTIMENTO (`id_dipartimento`, `codice`, `nome_nazione`) VALUES (1, 'COD', 'Italia'); +INSERT IGNORE INTO REPARTO_VENDITE (`nome_reparto`, `id_dipartimento`, `codice`, `nome_nazione`) VALUES ('Falegnameria', 1, 'COD', 'Italia'); +INSERT IGNORE INTO PRODOTTO (`id_prodotto`, `created_by`, `created_date`, `last_modified_by`, `last_modified_date`, `descrizione_prodotto`, `prezzo_unitario`, `scheda_tecnica`) VALUES (1, 'anonymousUser', '2021-09-15 15:17:04.766', 'anonymousUser', '2021-09-15 15:17:04.766','Pentola in acciaio inox',14.50, 0x89504e470d0a1a0a0000000d49484452000001e1000001f90806000000b6cf86f80000825a744558746d7866696c65002533436d7866696c65253230686f73742533442532326170702e6469616772616d732e6e65742532322532306d6f646966696564253344253232323032312d30362d3134543133253341323225334131352e3530365a2532322532306167656e74253344253232352e302532302857696e646f77732532304e5425323031302e3025334225323057696e3634253342253230783634292532304170706c655765624b69742532463533372e3336253230284b48544d4c2532432532306c696b652532304765636b6f292532304368726f6d6525324639312e302e343437322e3130312532305361666172692532463533372e333625323225323065746167253344253232767a6e49774663496e59374134333047412d545525323225323076657273696f6e25334425323231342e372e37253232253230747970652533442532326465766963652532322533452533436469616772616d2532306964253344253232734e3869355a3476387363586a5653744a6c62582532322532306e616d65253344253232506167652d31253232253345374c315838253242504b665362386158527046584b34524534456b5968343430496b63694c79703325324652253246356c6a535a62733358314c33765857636d724f496445496a66376c30412532466e54796a58486449636a36552532425a486e374a77544b6a6a253242682532464a3851424559773676344149253242657645514c4866673238357972376664466642707a71796e3850517239483179724c5033397a3454494d37564b4e667a7559446e3266703876666a4d587a504f7825324665316b787448383736786925324638373862634e4b34253246667452763871573874636f685a42253246475a667a366c332532424d544e4d304c2532464f645045664625324639657961654d7332482532467179465525324242504b7a634f7725324650725748567a6541754c39515a646639346e25324677646c253246653745353735662532466d527547494a304e715758555575316b35763276577a7a412532462532464c374b567663727238583746543925324231343841706d414d676a456a474e627066465344663266454b4b3970324b54253242663732427425324625324247506d4d635125324257754a7925324636555a4d4b31675857777a3938692532463762774978397958394d48647825324235634c2532466e67533037253246584e70365250353534722532425058512532462532425943506d623579507a73505a5a4470594733616633736c70795a3478546348612532464a6645654b3565757659396738425a5632334a444f3877253246393649466c655a70436c35376d59636d25324636737a4359566a4f505437765a33667325324631426f33786538754d2532464a4437386279793964534566756e795a7a253246755350323467666b764225324259643477332532464766343373667845724450743956666c58496b5839486f74253246532532464c37337837253242463262665833377a253242332532424239386a663866377671487a4c374169253242567432506d7677315451453562726c6f6d625a363925324666594d6f782532464e6671496b377731683025324631497a636f6e777a4c4d6e54334253303477635a703825324637683446397a3565665066636e505a4d786e2532464b584f674276784877644664514365733725324666687925324258426467424268414345644f73782532463563335a61677147375a6d5025324263336a4d695968597638663042786a253246335a7a75386838253242253246784833324c386c3825324678384d345443674a414c253246363238682532464664777a6225324625324275684247714425324250253246667566495149302532464c636938496468253242477342515025324265253246332532424d2532466450356a253246344425324676395738442532465554712532465365666958547a35763156554e66365762796225324233414825324278436334343379596b4158627433316d506636494b5a33684f5a6467253246556d454b535643432532424163432532426d386925324246253242677a696a7839377a384e253246372532424e54507025324679706c4a7635445a674a54396825324662357325324250787757572532425637253246386664322532426339253246253246764e66736633587325324634446b337954632532466c62707630746325324671687a25324638644a3338507862395a6c4e376b7a25324264253246774c7575796a49777a54253242556b72253242566f333843647a4830333347582532466e745454524a2532467a317a6b763471354d504633784d367a4f307a3566546a4d53336b62717a357568622532424d2532466a75792532464f576178774173395139253246366e785a7a743878563777757739397937366257664162672532466a386a2532424225324648345625324266354925324666542532463931645034253242253242697a78764441672532424149386265505070307225324647426172396f2532466e253246316f54574d682532467a71643733634d36702532466c2532465171446651655939775474662532466a4e4334762532425938585065336a5a7125324239735825324261657a6b66706664376a2532464448253246366a7a3331502532466170662532424e322532462532464379507834555a58346449754b504f25324251716a7a587348644b6b393844636635364f5777727525324225324634576755504a34686a392532467554514d4c31394258742532466651584236507179375952422532426b356c6459753639684d354c4a5148624b7449486862374963504964557847593553564a373634775432626267306d6b384769667078516a4462532532465453787a74564c5656336e556e466e756f3966754f376f52784f394c585a4e6a3046414325324244344335684565524c376a4b7432776c3545614247786f624a68767125324669755a4634506c4e796638734457317a77363734384c36503777467770796c547568374971444a354d444f6f56784d633758513471674d3064584e4c666a47544a6453533273462532464d6a43655a486479366a5939314e6776535448765534753433594f75686f50545976496e39705079554a4176344c453630656f4c5a5544526765756e35695235513672253242733757466549456f6858507078667a5a4d764a55525655597532616a336b25324267364270484b6261445a5434477452556f565a517643486e793738796b3276502532424c5276732532424c6e4d47685437786454356363734d6f36543468753243524339626370792532426e467135726b253242664c4f4b586f38524d33735a7662466c75785a69754e7a7a37654546506455793370487243575a253246694f63583547504b714638753672735951454e31786f30613746566f7077485433364644654c74536e546c5572537053784c646a4d6f637562435963443774735472514c4b5a4135366e4e4d7739644772664272324871442532424f454c53473764673865674572506c68726d7357796c6851613077664f556f5225324243346c4370594352354c617932253246316c6f7947495236665077564d4764486d66665a356d496978727265253246785137512532424b6e3351546737454c55487a54533432253246425861544c4a7777624e2532427036594a48253246787276384d594d585a7559724235637858796c4857253246714641464e3531456d32414557647a4353796b625379797357625865453358414a61654570333566384d5a6225324265774a35253242337a427462467668356e72694d516a37557562766e6755756d38565a726c33253246716d367572514e654f556c304f6a4963576a4450433566624a375735324a6e346a546c557a5070686c5772356c47253242253246574734326e4325324665704f496475496c423045527258543839706c336b496f7a2532466548644a6d4245344f4830253246516c595552613852387236666d643149326e71554e494847564a4575467735563755253246504461466c36794945426b71656374427775434a45754b6c4837566c51743965766c563925324644794e4d33312532425970667236785937776348253246703267417935667a356b6b626e6c6b253242306577646357472532427461327a6272627536384a4d4f4c7a6a6b746b6f79564f5556374e6a697549667243586d7265576f426e563247253242446e7737587a52577a7952746f5535565a6831512532466c614e77312532464853714e43436931596779304274454453586e7a49396f64316a6f365955434f734d744f7836394c6576756d64666172516e374f5546356173416d2532422532464645512532465745563450713141784645672532426339737652487a414166347244336777786533435a62435164547667495849696d7170366c33614133726274726451736961674a5055547a7843585a346f78564e6233764731684e57523047652532426a5a754e54776c556a643073464e59366369793763496555386d6d6775524a5563766b786f6561326b7234474649483163464433354354463052253242375625324256456e706b2532427677356e6874656456794965695a4773584855346e785777364b324b4d7a595948664a56792532464f746b4b425a4c6658716254427a4e555a4d636458435059413136704e61546a3043554f6372346d334e594d66634e4f7a697471435377444c4a505634586956495250336b5a41593738476b443974493250416a6e3374696a6d436f456c4763776d616339686858784c494255497367594769675235417639525771334a25324638686a64574c74664a4770356d7264634c394e7875533978307549796b656d4467653372432532426b35473573637a505945526c6d4c4f6e305247342532425055417531783133326b475a6c386465253246344d647a4d594675382532464852325448714f464167724746486773566831673465757a624f6b394253543245656253354179576e3377585a777463457359634e68397041434f354b37724668353574794a796879617549784c47472532466a63434336505a6a7a5a39677a643372495666576a345057454372253246615763306b346e5168656246413958516d5943253242326c756341383667515548394f59685573436b31334f614f706f566a756625324239756950724772506e6462382532464264754f395a56506c4e6925324225324279566a253242333932457656736337253246466d253246794a66253242656361426139534a78596656346b6f3741324850765634484f5354444e56356d61414132785a7831527156336f375072326358575054426539704d25324264414737733144327878537665435a56682532463373786731716845596e51362532466d5655586c327041554c745a746f57757644667471377a44764e4a573671766e4b7547386378754379323936656b334a37514d4153694a384767554f384a625858324f74647169306a644273706c6e716c37347679327a34586b5230797053665837485471477a2532466134754a474733487875544d7a6179586c6a6e5337657a365038586f393052456a35336d75253242444f467334444e716a6447354d4c45686a544e6b596d707a4c394d7054523377627938792532426334532532426f463951685765253242373031704c4a56426a4e6951393357467a67584259456b3141566c2532424774374e666d6f61467649724e54564678337959554b7838483647567657346c5832304b6b357265594d6452576a636757626567753872787358626253376348326836704372426463724538485961513872713425324275622532425a386377253246346a4967614349644541694d32614e7a45554653626b4c572532466d7577736f45467148727268495163516f62515733314770652532426256346d5476497442545962316f36353730674e3847314f417a65552532425348446b6d4346764b58687264324844497076544b5952686d725566446b484a667642485471654856316f59436c666f51524851627a5a796f774973414e38457876434d3765325739517a47394f6d4564495947763976486f625a556b7332755a36714d574e524b32526a376b773659764765742532426b74476671645a6f6b49444d4849756c326658355a4c69435953706c78624e4d723168555a356b566e677473536e5243343563507035324c4e52727a6a724c4637535a484a704f4250416a724764386938456d656d5746527572746b7443326a59763559754c5030315436686a576b6a6867447a693955544f6e39386a7970664448657555253246412532424442624245655436444a4930306c63704c46454f79306f486f6a49493638793539493467734b766567426a4a745a48717472624b564974654771613049776b58625958784f5379716f4567507a66376b6e5445253246496d6b4d504b5539776b48466e734a544f44767451305945727641326d547847316c55665164756d6f3456347148394c5536327a654564777459394470327832546373444663416969416a6c4f72584653436f503677484a4c3572547a3438436250634f4e5a71334c7a6a32725067437870526569596b44653669644b4f6f4b334e4f425a4461566342417a6c5874456e614e7851556a394b5377542532466534626f6b356957395576705a4b4a59646a5969566e587669364c523153674c597a754644566a776c6d396c55343148654d495a74374133596f444d566473656f4d6e767470746f4d68587a7870456971334768306a624b6e6648795742627a495656305768694e6f4e6f426e38726d79586f72624a4b544b44776970713457706a364c62253246457455336b76636a62494d38776e7531736c4234493771544f365958425a715239463575414b4733576a4b58576b33327863433851544b5a72306d6959512532466b46694a68686159484f72543662505834727350685a6845685a394c4e523132452532466d4f7a4a3757366a526f6b617379325133654773516f496864685a4b6645594934356d34465971646a6941553563746235754b6173494e6b2532425343513764586772543244786941326b46746352634835764163684944537577416a677a41646d5756754937645a3355782532424f526562253242693559555431317364356a637a3147305442664f316f3944614f65596937574c544e53654f37436c34684675526455587638475a53786b64456a686a4457656432556c7347616f7459502532463164434a696458636950574d504a474776706145574b7451355a316f584b54556e38624a3934427354563356675271545265506f5646505243587a534d4c61695a785775706e616130706a4e597a74393070784c4f797133526b544e47467152425a53704c4b65466d74435164496c716e673950454d253246686f6b3768746346354234727072346a36685857444b384867656a4b774e4f5058734949364634564a556c5968633464494b6c6534453663552532426148614a69466c33544562464756774475777761756f58327957736c6f66585045544b734d25324252636d4e78527a5a593070566748634f7936527a385125324250703250665632783238723669636a3356733377415551764234534a497056584e62446c5439735a756c4b4b474b30697a4f61386e72623146784f4233384b6661635779436439483238546c253242505370343356346a64473472546e684d474b71757836396e7a65655650354e4d727a593963686c5a477569436532584a6250416d4b587865473053737679534a6648706777634f535655787176794366446a6f307643546c6a6f6c5965543042357566597868362532424e4d796f4e4d6d33574143356758415537345a676b6353313425324648345263673348504a796b5968456d4c6e51253246334f7155585177754b6a724e7a6247253242456b4d454a313679767a334a487a4f5951366657626b3647726847516763747a4c6c465743586825324235396162786e436467574d4b467a46466b48437442756a4d306971596332377438387775496c4578356572746830724142746d44397a6e784b69346d66766e737244727367513735434737346563253246537033795654374134354d6a763067703652253246646f6e7556674857356a456825324243343632752532464e6d373337253246527577704f6e426838725959574a56365151616d356c71322532426274367869346b3750253246586b7a6d58356c494b506f67647358384a684a686279517171693870356b6650426b583649637654586f58347035435a46643759646972464b786b6630744b6544314857664143306679557444675235565771796f4d4b6c79615a5649517a374c666a435a6775386250427170417165757573306858505a472532466d75684f387448517868622532466c313837496a363657775a577862364652574d4543666e566a302532466c52315950397742565832374c727a547070394879306b307a483671673947646c754f51674f4f454e6f56554d4453583959704a62336b7a5756462532424d494c72593556665247765751724a253242595a365847657371384277515178694e556c78504e42516b7458454159253242627039494a4545435a64474b34764f7542444d7358716c5a493769515046574d4572325a686c6b486f68795450467971355a6c5150786b747945695156615a4c5352773277644b3361364e38526c52715825324236726668514353556c5142696648374b564770636164764b566c69442532425a6b4b69654467594355253246253242674c4d5a67704732314c6e36697173474a57697550545330587251634f673469504d46757265343755497a317a3033423534306f302532463478354b78575138646b554c42524c643178556c555a586f672532464f526b536e61724442556b38565070763825324655716b316f774658786d4e4b55794b674c6231523552716b306f49636c30754a5850547139524d52704d546b6370383374667730636e666d33473878785144425255473878314d6338524e584e726b6c4a355934766b756c6a49667145374832393846696b71306c725548736f533862714b73724551626c5a324174393335676b7677526f414a6b4a7a77592532424e464959253242686a754244696f6d4e6e34656c564c74756433656b39525262526f593936616c62565330456a56655a6c53253242766d716d3559315446527a25324668346576574a6b574b5868477358585443534f624c3630494f62746e6c4e49564d70716e336125324638636173594277253242612532466776587351624a57764e6f37475658793843635038304c79656d4d5078766265654d517a6c6c6f534d4746764a36794a34523369735479587a316a6377394825324250484d616a694364657136514a58354d4a424632563163755a444257436451623169317a4c4375687642717738314d694d545364426d386255655255423058444d776c4a6d70674f7a48707347484b79666763563239756936706e734c4c6f3750543556586e4d6f51577355536c7244444a5663573234443554566b4e65377025324266304c5a34496d7671556b5239616b7774657925324231316f51594558316e46394b704b58336e4279703735755731626152425970347a4b553973784b46583166394d53774f31546c636b38714d6f5954533835253246564959767252416543573957374b4f4263516e6946474e4c4a73764266735652507a3664326d4d6179374168356331794e58484e4e4f755447725375364c4b416173536943564c6b374779457457327047636773706a7a544e5a53742532427a6a5243594e455a746c4c674a7a346a6e70546859306a6e5a6234253242305942583256443054734530727359784d4e51384a4771436b4858576d6a35687032654d42645a495368504c56566b6252354b6c677035537a436b47524e4b4f5a4276584f304c47486675584e34504a43594e556544504f527665517a7642644e7173326a754b6e724125324264322532423879562532464a2532426c6a476a3551253242474b4e4c51667755576f356f5675767044767853486f792532467369527a376b6273473130253242516b7825324630615470736373253242356c7168305271253246566837484e4f50624939796f6e4556515257657850766348614b306866777664383457365131694e7835315a4d39597a7543436254656e5244586c744e474c473653417655617a5653392532425a38785268354c32584c253242655968684c655a5573515337304b48624e693276574571486359717a664c686859376f395a774d526f6b69754747714a33663752553441304c4a7a39676c4d52707937535977554b67346259497a5a4b79764d50526764324f616b4941614575386c526a496b436366616270346f35446b4539666d646b473839557a73754d37764e316b6a424851636157475178535a6d4e66475669797578706e7a644a38457337586c447a38496e6a74574a72673735495133346b7233656f506561796366726f484b714278526748537943627161334144253242555a4d716b3761476855574c253242393556624f4e6c48324f4d6a4b426a6a6c626a39684f46534b546c6a6b4d4b41495664694456642532425a7379787339364646655a674d785771356e6866484b4151517379527663744c3568475351513349716e794545724f35706e25324275676f51744676712532466872614f37315959474573596446645163484179617a4578634c6e3865376f63493548454e6f397351447732576d4f674a567774576258437772504d64553042624d303043336d52776a5447346a6555315659717a6f616f50566558366673584c7655382532464425324230436f71756f704d326f624a6e3037724d63394d484a6e3950516e73714143594c2532426243434d47535348435a757133793149357078474542305a38396c4466574568725549754e6f544b74704f4d346e6b537a444b506e253242435a426f565930745a764263556161446c4a5a784b71754c316a544e695866364c33665044745a756d616c774770505968716c58565363754556692532467343736d6b6559744b3436574f73385a446232724f4c487425324632346d434f766e68426a56454b6b4e594f6b656d65393732716e3674375a64364256654c507438686f7671747739544a494944527837507a68494f7070566e7a6f50323858347975537a31253242686a30754e4431457633424971354c4d396436334b75586766314d4d6d3262703542363646784c5141466c4b3354624f4663674e372532427376576f5a66564358443343616f586e47433642627a6d3543697633575944644a48464d74306867364f634a413977356e33466c7043387438534e737565714d664578344458434f4f4f70435577253246762532426c6c384350464d55345147596e5152586943676b2532466571365952323363253242773974366635776a43653567484354535959496e51253242347668446d25324270577a6a476e4d3158323425324631446c465675786a39596462443253474647797958317530415155714344694c253246624167413969665946624c73313666713667776a37626e514b32583075355545415a706a417a5a6237474e36366362327a4479496f4442616875253242374f76334c48547625324238526b6459356a315543306f583468566772354665727a7a7550777a417833676c394252484f7948386b31253242335537644275554150666f59645574796970516368344b5537477671364e494a6e636e735a394c4d7445484c67646c5a4d454f427a7733614f6a3166444b645a6a2532466b7842334b49535350253242494e5334674d30517469574241304f394b5842487458316174343647786b6d4a79696f69687650586b564c253242494962637934456e304755536f6e33534e4a384b676a623325324273396e68393548544377633449775566646a79694c6e5357456d637170526e344d3052716750373965367245415061586174333458547a666d6a335a647137735965487a7665776b34516d7a6e64386c50336d703866354e79556c5952426f644457776e5a436e453659597a68634b6442414d543869446b586d734e304779454c63686963644675475a7a3961662532423949253246376656545a6a424b565956317376304867694c3957434e306a44506d454f514c4d79484d536b5669534e427934327650655570532532464435656571566a5925324243546425324235694c4859703049545425324242734d3733516146714e36775538356234354c664d7176684e78634b78633863586c6c5159454b5652454f4b7763546d4b664b6f4834697463786561396a797076624972644e4947466f59474b774e5069307a5062435a4b6a3479597052777978554f59317a546b7a5570476b55424754475a7a50414c48684e696e682532424d6249684e5845386b25324643546e4875534d362532466f69463950424b444a394558424b4e6d6d724b71654b7662784747327636494978537a733368747a43396f543056786d446c486f744375586232712532466a4b506b7574534e335366536a6f55386957687a496f6d565677736759614c6c37394e4d63636938624f546953786f4674626e634c6c6b655743514967324d7070553553434b614b62565a783025324252614e48784c4d685576536b35594b7076666451526a536e774b5645593871544a7852795875427349394625324247376174774c66427044766c385370746f464e454151715872453850686c49754765692532424d614533577444546374776e72386a736d5344526d45677577386856576b514337656833684b3937685575366c57656c74376f434852706559795377337446796737253242376478704176715a51666f776c7a54574b327836706261666344764b366878686d675872415763423472433659417025324269742532466b4e74414a517a496c467357594b59467544456956524765564c646c4c6a4f45357967356e6156744c4c304e507078744d4c54754d3336313364397432684c68636a4f76484a587a4a387756547851423455643230704b4c415a536558312532426f6670685139316f736c4e47367a726e796553555264253242564b7a626c6b5756357672353567355130453562734b4f484465467239365537676f7231544e594d513741253242596a75475353663654253246465661626d324439336b50684137396570795337336f4957597870714a30715776704d704c6c6e58432532466a77656e47617a775569614a345657765569427473734e4b42573035574442426c344776587a6a37554a64556b766925324263384e514f7773516a496d5576435733706341564a7847566e534f423841433565676b634b38647376766a496874484c696d49676f415a505a445543485239307a6e51676433516d43466f4b3567556c627a32414966694a7676553177253246696639695230716b4a78517366727a484f65726825324659253242464d52795a67576d524e6758353946425071566a4e5250386470494276385737506671626e6c796b42253246535225324225324270516178566279785352656c6b756f626872714270753939633959526258686a2532426c784c382532426774693365304b43516f68554330507a694358646c253242394671686350684437253242567a3475676771756f4969743770336558597050494d535a4545757758335832554c685171367749657967694c7a44593125324253644132614e6d6242596a2532426173253246754766665438452532462532467748505a67715256327442327058305361424153317456534767675a5630583367794c356e6b253242343353526f714f34566434734669436f354770396b6a5068574d7848784b5a754a78353877664f6939414f3674676a38583176564f4f44786a664c4549335a3970496672565451444f565747484e505755445261624850522532466f253242624d47765377437547447a7576774b77577569307759445732546337253242766371356f312532464c46313149496a71344138446d6e6159587832434431593662573736565168392532464d534d754e42576d4551253246416154324b394a3478454369593136337a39535031786468664e316f4e6f476a37564c7050564772334e4d416f76344d364f364c613742624f3161585668795530692532423137376578354e352532424d6939726a746f486b67447036523752766d485832684b4c746f4d71342532424a4e703734326b6f77456f4655697337392532427834432532426a6e79696339456f2532464738673242706f54625254792532425a694537304648644a253246714872485175354c7750253246634f55397334544e3372335769775338474b45466d734b7a4c3745667a712532467747443850616450786845415241737a4a7853654b5271524f25324674435453453655754566573565596876596c3541796b6735304b6e45304f494f356f504c2532425348757372654254636e7535746539486c7a3859456e79483150634d253242654449426137443261473464253246336d48713633585425324225324265253242317925324653626b523268664a433525324255746379385a493473447241363525324266764b6270726739317a464e5a6a506e25324669356f7034392532427576476e7a61695757743463706b345a64625563317268714142253242733168753662357070684b3325324645776a685050334659384e5048656449467938756266656c414e4b42536b5674384749766950647a6176634f56425a77424c6a516c54306c6a6d6e68776230356a716f7747356544575461724b4b7a6e796730376a4d796525324637493238786a79614f6e674e2532427a4470396b66325325324670315a253242704933486d317825324255654665343972663145562532424a504d6b6239323831253242595261797625324638504d65695376253246444a4b637a427832613639624d70304a567157625a35313141457478537877492532426d35653342497569396a38756d557650784556346259575654437966704e302532466f46566f3777472532467834486f53354b77425549424e333078253242634574764e71646359796b6a414325324230415973584b675447435574796a253246624178683146516f6f33526e6d45656c3331594771356d67616b3030424f666b54476966746c5730374276545a6559745a41716d33754f573262534335646b597369495a455877383234376c435259553053724c4a704a46682532424f306a6e46343673456f7869316f437259716f57545a5435626a4d4958354d46306b574a49624b41347a544a4475517378626558253242596f64495669394f31766171326c64435051676674467850627238617263765146652532464130675359704352634f484b4447536434703948303875317236383862253246395825324634436350535a48726530514e5673756f737575546b59716465676670414d715045706f7844656e744d25324645476c7a36756f50486575315a3764655266654d4d387a7a676e644b574272347a4667366b6e464e42484f7874324653764b56684f456a5233456d73733043704c7a645a4238443853366f594874377977374643785a466f4c73786f674a544a5a70315777394e50352532466b32713064483547784d616e4d78384b436e56316b434172766b4a654762666f70253242524a306b68777a6a676d70576677695831416b4a4b25324234554c693825324653776a73377146616266325a6d795a6645495a43386e585076764e59395668544c6b7777716d505932574b544861454e7970684e6c526a68436b767535593369586a7349566d59504f4c61736f4d6353726b4a46465359446e78596d566c68735655736f594b35725530394a6465484c4e6470396c664350707854686771474c44332532423176304465774a5679546b2532425949757a6b55416a675a55347448686425324275776250415370367764594d6755595076253246253242623034716b5a6539304e4749703158694d45796c65314946664643347839356768616d4c6e6c4b4d2532466a7a4156434936326c4650472532425354524336655165326b4d6435334f517a4b53546f69484a6d39615a6e497138614c564c53704225324656596e636656426d66366f4c414f7931326e75434768655858486c78756d676635362532425744727a714e2532426b446e746c775130396b3025324638717066717435786269614554727278794e3547327a36364b5148426f4d6c31524e74495478324346632532424152716b6c5a7062644670557754253246344a716b4a5256617075633056374a366a53526751253246653464616c65325833426c636725324265425266594330315764774877637659716c70704d36324166316156624530556c4d67675961753070336878576b48685631737825324272566a714a36464a34644551304d6c7241337879373157757a68556d6c4c485270504d57445569465669253246526a7943253242747230617a6559696649356d45524e6b624e784e504f6a4c61683153784b77314d5525324658434e694d4f496a6741376b77683150524f57596f492532423148475833253242565751697938685452253246544f36594b393375494b347059465056335061426e253242422532464d6b564750547a4151477a544e424f43445a3349646a4469313474744b6a2532425338304325324273425066724a667258552532424b6b6b79787a6e50386e3446625875396b5838594e566b67706654686b364d5865684d773365536837714a6253496c614543794174336d756d25324263715a426a6f4864475543545125324250253246513271704c3459486b4b6471644b304c634571733579697a493669463744686b7569716f414b546632633658456950617570326d726f6b6a4a73317645396a7a43594738736f78366a68253242376b7a726e615459503379566e77253242764b64494b556c5467724172374d576b7135446d676e494a62476f6a34366d4d754b65716a7650424f324a7041384a6b6a36446c786f617341613255634648745756336f516b445562415253716970394c6a59356964464542644c676b4c773148336c4f66765175576f346530497a476c6f6754675065334d6c707a4e6245324b4e7461304c596e4a355a6d437437765164746a7878554374506f5142484a5430706f34734d584e4e74426b4d67565962304474473555335246697856335854704c53636363567a476b683779734c61713772415578676b73387a7149644a626477666a665751694b4b6c717855253242753854454c787979644376343450304653726c705a455a68416151636534676a51253246414d37426c4f7751386731754b62776765345870594b445a704b793734305733454662764b59253246253242726d364754346d443159487253737450644f774c5059796e764d5945414a474b473358444768493873386a52584b4d4651776132674c4c397a7956334f6858493478344d43647143635473253246636e516e614d6a2532426678386d47762532427042674939515136334d6b4871334c4737636c627637687a25324635632532465a74346f637a4555613869647833706d724a6d65747738776e66536d2532426f4a4241796236364a7571596b253246414564467a306846484e653349364c35336237383247596a7871474f5444346d68666a32464a3633357439457870564637774b446f416739564a4d3776553439565146374c6c424f6650696a62724a51584b54784a6b7925324242754c796246484856717036736869684e48672532423364525043303056577673354e446e734f3479745431466c4948343953795a2532467158683144425430487039726825324236554a6a7773556648666c4a682532463762476b33734e737532324e7a386872453761394b65303874734c66767a6c52513377533131674e545173734868626166394a782532465753706d42527238575a436c68475463427278414677464a756941253242586c78704778454a67774b6e4d73586f364d676637364b6a584d6d39436661554c4a66736c73574863733762776261506d3536744f69367a6d43725825324277504e487358614459716b797474714e694f6c7235663769463067445048566e693837346d377a477a3245253242526b395965354825324643707270363361324f253242734e4f32636571395a70566478656849667a41596c73386f6c64655a7a6b6f7475716c5164334f553954716354615269596e615a78306725324672796f544e49585a6354594f5a436f726c61744e5334774b7130344b63384543306449574425324239777177597a6d796f56496c786d66504e4a696931436a6d4c3473622532465274516d746b3234764355316f6d763179697432334773726846507453727a5072756a45533463764870796370413250647975784f716c46514a7a67646d734678584d6a784e702532464d4175645736704a455561645a367336712532462532466454755570474b574b495745734b634350674b6d766d79716a6e736657646e63384c794b7378446478446a476436704d544d2532424f4a50363043744c54764a6d4a507a6a635342744a576d36794c30677078745a62336d6d4f3759733467647a556b554a79253246794241415075716f4d3168477139346c7174414d62477547623652477644716b6330357a43505776434f3565476173314469764662686235564f684e416f7a3753682532464d6348696a6246617549494a4644504b3335664753743473356b714c3257632532424a61756c794c634436754e586862253242726c7149487056514b33536c3679347141554b326847574a736d716a30354a696a5a4555624241797735414355364579576131685064676b4a5a4455455451687334505a584a334878374579724c695a4b4f6d3169797048697056634b53303644504d386c567669325065454c536a646e50645579596b6b434b6a6d31454f7054705161315a5a5a50326c5159564735253242494e55634a737261396f6f796d73626d4d5452726a514c516d75494667344e683025324269365a713265314c3855464b4a614a357779583261624f6a69374154616b6b2532465162756b745537323536415439696c715579414834664a305963376461424d37517344787a253242346a68686f6778504b63575370593441326742396458625252544362715a7968626843785378314876486e3230253242584e334e546b4a555639486d6348356125324649303671463436645737734f79414977704a3641686f74595a6d452532464a3665506825324678524b4a4c74765933626f596b355a59575561704367774b71674d763165436663646b615264514558627445625359344e434f444c6a4b71766a4156385a476e4e7a4f4d79325a4d3971416f574b7833734544734c484a45746b6d394c5a6425324276546b69446142526d5166726b35624d6b51376e3647416d675731253242466d66395766526c6d7a686c4753547a4d444a3372537a3865447a6c4a776a564474585a376d37253242617873666354316535556e34494d6e6c68755367626251777138553059635263472532424e677a556a68364f71447a374f303557413544486353466e71494f34477242306d2532424f5154746b574d33556e515767707678395937566d563865724131782532423748365767736d5467384149364f457643314a484b4663784c48594433454963693070566a6f483370344264514e25324271654833736854647758536e394a6641754a474a306d4a764e73374e3372784355305156334f71253242466a67736d613563384773675477387538487a37707634734e6a59336f79796447554f4c4f716e4b67496d7438344c62433578727565634357435772613232374d596d767a396e736d5368574433253246584243734450647950533345554f4463395351706666657931546648674e4c483741415032466b43426c625957304f6d4c46674a48726c395873787a4b79746968397869324d33597754364e6a4343457a5476337141253242304a31334648696e4e73647854524d3668723639656f6c3765424b7669554236425a686e42794e56393779737173424c356e4956367068414f546e51746e4278774a356a4557313077586b6738314572316d33684c425533615250776773596147646b484979514a72723544364e422532424833374f73436c33384665675025324254707052774348424b303735437236635a6743794c484b7530723779517561356d3663385a3952464b475a4d58506f4130796d34657864585a6c706362776d7252455153676d6835366645495425324625324653416d727852726a764f6858614279463566327153566b6b6556717525324652766d7168397567344c754f526a6b436e59457672617749364373595a4e6d62646648446b394a59572532426241776244526c64253242736f6c6353486f4b4e744a694a424252737936646c6a476631514c4e7a47374a3575494f72716f70537a6c364c7531697537414248476a31535178384561453454366a48664c32366230424d5173483541696e4f79543644416763594865384d57376a577734625733315a515453567a4a3156484b4f4a654438563965374f41587751774c62797761377445576259764d253242626e6f3959533648776e6d486c4d547645647248793557516a5a556f737775533025324675454830344d374158744f536b6f3667334f3174302532426c736a467367426a6e2532426a4e72354a396b4b61424c7264646341363668646a3663644272654f4e67564f392532426d25324248353455447a776d6c79534f6151655a72384b454a454864556268395539485671646c25324254543171516873456a4c537a794e25324231783249585642634e495654543043784a4c656e39525a654f7476776e6a4d385533496b796c564445564548304452616c6b6e474a6125324677344271456656676671756d72766d373142694b4c44464d49416d44764157503131707231734b586f787070573733494c51686b347730766b6d6f4535425454776f6e6449417976694a756a354d4943783561476b344e6b5470683771566e55766e253246534f4e6a75387254504e34594e7446497671253246425a5a44484a4e43574576253242646b556e3573754973486a7343445067534a554d6d5239516c4278366a6f5375314e4e4755577041344e6e4278614f45376d4f3359253242746264667a7957457645333445554f6c305873314e4225324663776865366d47664f4a596a69335141644e394f733766366b5a795041757535735072354668644b4563365a696b6b62617a2532466b4b587430657262524e4a6e516a67496e4750776b4b766a782532464d47764172436c3256317350694e6f37766a2532424831433578536756775149683368452532425a4163394d596d66415174634a4225324249464736253246346e7857484a5a704b6f395331253242354c332532425943745069377a703361365570462532467638373049456f676c6e7a4e36652532463544515a4d615767524b61654a47666d7a367150614c4b525837797452417037782532424f4f7061554652515a62794467554833484e644f4d4433674b78546554684c66794d3333486d3254534d446c4c36417372765772516752784b653551665164366a306859755a584f316334445158794279776847356a335041447556472532464b474154785041634d7079484b78526a6c4e71456a776b484e50427643336925324650346164646130464c6542253242667a7142456f616c67436562492532427030696c6758253242325172513142493462613277366432695677595625324247444a78684939316a354425324270445130413674577a74596179325974586737706a52437525324637526d5a466e3177466d49744d4162646d59667a726f7354347676654a534c2532427477716d453659354f5134795862253242696e363641512532425344304347742532426a474e6b705a464244534577646c756d48733948477849525a65615a5a746a584a456d676556516d51733872645a4139584338324e4f52586551634c414d597a56554c6368364546594476383741506825324661357735566a50583974727957306c3450752532424473616c5233436851355a39556b4d334f48584b71464b6233376453634e4f77346e58777661784763643651786b65376c397247646678364e446844596832565a7978576d5164703665437279537938474950514a7a4f30594c6c4c31445557757a34454c634e57576677526b324c556a534e4f253242546f2532466f6470326b58686654474b516d38707956696870253242785337516b746336423032577a664b6b45493641467a7a7a37414a3679725673754170475839356968716b355142736e5237633754313663716a583469655150554f4d676a4f324c66424a5a794949664a61534c3938253242777a62454c6766757675504b66376b464a4a397455626165656d464b593133624f6d3361313073556f6c33566c35587a4c714932676b6d3536516379667a36725759355554696f5a6d326e7a436b537569317a334e432532426b59515832524965676d5a717a4625324258455253526861684b58614c354776645938436e4967385534543774377236724a4e4a57452532423149417251547846447248483641486d474a4a67526853424f2532462532423364634637434b456137686e5473337137454c6a79513253776f4f7a49523156756a6c72686f6b4b44314e78354e4325324279515a7368306771467665555a447844467a4e4e3441554e623333347a6c71453153336f2532427870745954355a6a6c6b50374469633338464c6577675645344c46707048714c634c42537672542532464d4b6d4d47386b7135333425324638304833614c416a55586856504632546c305034676639667445447375744c6f357053704b67417156454b6c7778344366774f43414b46743571364338365451755658354e686e4435705531387275306175306a253242316e755575376d675425324230504a506e4b656a5745705843632532467274734a504550674f68436872597630614b4434705875636c436a6e4a47776a6b675264764a253242717567774458596d6434486435556164484e4b706a33536c594a76616134716c72443279474e54314d73792532423639566e4c714a324f4c73464a72786d684d65666d534525324648384f7752524f327870375a324956703471563830513941727355794a743158525a734f476b353874356e5a754962554679734a4d4c782532427133614d4c7761416d4344753735714b696c44546f4a7825324636336747785453502532463779675357797777595579474a6f354170536e494a5a6566453049727668706e7454714f2532427965423376253242415166386e6f4866384832446538663879574454356677495725324662386633557a253246583446757072382532464a2532464825324656374e51354c253246627a306e3838664e4c58367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a3646367625324278617225324636597456253246324c5676316a314c316239693158253246597457253246575055765676324c566639693162395939533957253246597456253246324c562532462532465446716e25324278366c25324273253242686572253246735771253246784d517466682532464e3677363958253246346e253246416d25324635762532464539347725324648384679763250312532467a433350253246586c524b48253246747642334a45767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a44334c387a394333502532467774792532464d5063767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a443350333168376c2532425925324278666d2532466f57356632487558356a37462532426225324268626c253246596535666d5073583576364675583968376c2532425925324278666d2532466f57356632487558356a37462532426225324268626e2532463651747a253246384c63767a44334c387a394333502532467774792532464d5063767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a44334c387a394333502532463078666d2532466b253242437565506f667a65594f25324633253246786a2532464a44755025324673326a31253246364e6764667825324644465a6e7a46754c49436c65386a302532422532467836582532466f253246513637253242773676646458447341494e6c253246414a68653576767a47734162736d4d25324256253246656138766d7678383225324644503650676578486e76336d502532467750414e52646c575525324673765250554371592532424675594f6f4c25324276564a683244253246514b754b253246544b7651253246366468366b346e2532463025324644314f39675a3858467638445538253242624e4d2532466c7831755a4f33613546645877616b5244304a3065614b674b5769553178734e444b646a6e703564253246745a6849453870545031486c304778746156436954374876356e573464434c66705453583469253246703137515839366a486b503230703448614166304f784e36586935497641344450343047583630393879572532463736646466384539564e4d2532426765753957795a517835706548504a5772586468754e726a614a695534685169424a3935386943636f784f7657424558536d6a38496e363263526d72656a59544e4e663452484d4e78634c423048754237694f654f64557a523662414a5878504a4f65796d25324658764d306568463073724734414f395a354d52506c346b78345131625154584b473046335a642532424525324249357437346738786261596b6e253246656d6858426a72397837346f3572775365376d74514246706a67774b31326754636a564b7644563351315152396a4b7a323968527a3575305677423838364d55366575376a6d74576c57375177576d5939564e78253246723730696a6d57707077775139374b74387758772532424b797a3725324673623759304d4c31505853612532467a6f4d717256743435416266613034784a79486c4c5a696f3934536e4f4d366c7634346a4444794d675676563158646b486c534d466955436f79527353573933422532465338537044774e5850496437704637544869495a37426b59766f50615a30553775496c7a77414c55514c4f366c485a65354a597561554539547650306b7842726458686862385436514242394462456f546a6a6b33624225324247764230675542575334785a68614e66686a7238307150547557554e39692532425855704f7959703050584f43645543676873645771396d61554d4e51556e716b30425243784e696f7525324639383563575553253246675448716e41696e4a4865646c504e584270336c61384425324245444f344c366d6961584437464250736a4436336f3355534d766e56586271564232676b5837577278786d6d4d554d6470785772336d446f73545079382532464e5031323943356657356a4743524c52393925324641645a512532462532463675413634425350656b576f4346557950384758552532426d72656a3835306b4355423350436f4a4b334159706b554c6d364c627a7a5968793546346f3944446371483164253246576d65736463306e68383373384872545368526532386e5736326a58744556347765315564426951354e4c444a444130414a6742253242703078386563534334545352655962704b516b70504665436d795725324272576258794176736f76422532427a574549636e3450347941665547776c49794a6c55514d67304e716a52347a794a476542737a55657554354548774d7153503864694169735634544c69666c545957386b566c377a6d445838416553503448704a743653412532464b6e6461507951784755336942734f61456b47776f6756317766576c54632532426d54765241304d4d4432397a3336594154736a41514a34647631586b716f427059443731456b71774e76755043526541537931786462374f5772527670592532464e48757a4447784559636351592532467561494a5859704f44313538764c396d306a786c504d666230795378343967504649253242685045335a5772564e46734248614451465277706b52616675587150744e3153416747634b6c346654723375584e6e4679687356316569497147654b4e4b6b764a53587934576661695242707425324277665a7531646d54536c6c426f67433758495158426b614b7a627663695938417735385563576a6f775439327148417948656a35726a66636125324267724d51484e683631374b766f4a432532424f49517a5a3361397474714f2532424d5a6e764a2532466325324225324259706c4c634c445a62674f316b3178374c6b45253242776c325244666b4a765472717a6d335538587047444d45506b324358487735467659754142325859424f64685051426f7936416a57547650364a645632787366335a34704d754345746e7773554d336774646b526279664d314a65486a5a6156594f515949744e6c4c31337a253246436e7842364152726f7932377368505666523151614e663074586966554b626e47344a6c314f69646f323650526b73426b347472773946557a43357a396641564f714537337333316d7a46777049356e713935593355744e7859476177656c4d453666764842253246476c633651716f534a7348504936776e46635445353057464f7a4e754f7578724665253242552532425750516477626a656f6d377976636e32586c76394e7a3855306c41666a315749692532422532463868447363475158636449673279515866543137377a484675696138253246425a744f696f57496978354b7557424b625564356573376b447564657a2532465a68464d684a5a78676d716b477858576955253246637977684d652532465479594566253242636264636533477273383852684c5025324644667970316a4356547168347a25324636444b6f4e32614c4c42746e31424e6e586575524b4e436d2532464136556d594e764a7a6f3643537a6648494f354e466c75534f723351344b546d424832756a79424a787273363174517575794861716a734c7a68475a6b6e574958753258676b315a526b7554724136356a2532466c4b6b51646a697453366f34784825324633564539716469317336306433754c6c31474e34576f735164616d476f3053626559253246253246696e424c6a70516325324677417379504638694b72305164376330695978325659614a467a4c41546638674e7543574d5333636e2532464d503372557a61714167794b4a6e32484d7334746e7873676c656351253246704e72472532464861646a66575461657079646362363742644b463830562532424c49653337484e356674774c6e78576e72766342646425324632574f3738726b7158253246326a58696b6c6479765a314a685363316e2532426874313872333432586f47624f6c567a44506d6c3467685a4c655a6f347a746a444654717753374335777536524e4e694b7044796456564a704546375538644d656d39526e4632734f364c7170677a6347717377787768526e43786c4d5a664b67617748784957673959357a6c6e253242345352432532423242446c31793856647075333571553150435742335062683352513672572532466779664b77426531445a3939464b34694338393345355a644264683443465568716f356e654d664c386a7736315471327a6a6162504b4a474c55462532424525324256253242547a4776536d2532425541397a685a51695a6f304e6e616558664f6635325536694f4e25324632417868734e4a377664615238546c646f69345062484d4679787250554447656a253242565432516c464475376d38723663756b2532464a49324d71253242484355684448253242614c304844364d5231383671636e32436e2532425268703269503141334d253246504852744f3974654a6a314a52453477334f6e7a72694d784635666e786d55684d71713271376f3952344e58754c6555574737654b646c594a76416d45547a3053534e30253242694478306b556234413949414a6a586b744e576379513736486f65494b565878253246696342693767486e6a765578657a4a66494c55465762307644694a7559656475374a447868707239475a614a735a763255753472377834457539714d696f4d67455079786b3265377a6c624b4f556f6c56347125324676435769306f78636b557142563764764a6f7051706567634c307669387064567146364537477959554e5a747234414a4a67336969513037715374334174474454396c524e54356b5052616731784b717625324252547a5a38486f30346b76544348667a466c346a505862664d6c76705330726b5539324a6b3151577a6a486c4e54695a5338534a46384725324625324253783859373869637648504a4147695165675732566f596b4f6f534f5632397563424b654a303665794f4e5678735677346d6f5836646e68474a454e677a6572345a446b455a4f355445754845746b35534133672532424537624746796330436b57365479785335394361305245452532425971786e4b7165435879584b507a67527970796c725a6a4c7079652532466265516d6a65365275374c3442456b746d3731323473654473726a7234316725324665736a515757253242506172464d6a33495a77384c745364534c4c4a663259315137466f346778575070394a4e6645797354783151387a34396338756f54472532426a3346646b537337354d784131514d7a5435496e32387951597548345347474c6f3657795a72523451544f4d734747706433726e4b417159665534314e74395056366158556e36595165646e3030463665706542417337727841384633253246524b4d637158354b5161716a7676332532463276754f5a636d68354c7176305659426235594143743537564f336776546346344f7546577a326159417948306f54496f6268675233664536336f6f344a724d764f656b51253246414b32694663577639534b47766f34663673376d78584750306271665172787425324655657937504539346f654f74634f6247366157532532465835594b5465624d32426d706d39727872776a745533636a6d7a667a37627a43574975314c253242666f746e6a696d253246524d73553359397855325868444c676d4b376750384c744f7474534f4f386858337a4f4f5555375279316e50577256253246775959384b6e434f5472305a54756d736c436d6246516836757972316f7963774d6234614e324a62345473432532427145506c5525324246555636564e253242596b424678737652685471726d626f7a39306470374b4d6d253242536757773838736846626d3769333141647556672532424d63746b74686e5a345a6c6c326645334b346d617061746b7a39526e6c576c356d37564c61466c704d4c253242646f614d756151624f654b593337473954577a4e364e253246566a7850546c754c416443586c376268337579486725324232627a7867253246563368756a506c346d526961253242703657713242253242434c5639306e695a696f4834624b344e4f4455306a4255253242614863384d71757a6d36744474346d4856383056304f25324634537a357837457a476a4f6532773066774a396369643371557175426470383968626335666d7557507a6b744b774c4a71663574456d4a306151384564677a496142534c47394f306b4639553838455a677a543143363932567164564f5a5a64525263303745725235795a5769326330553774397770766e4a6979564d6458253242736473646e4a732532463854644d46336544696a533044536531596269756a316d646e553134717865747369644e666e51627a46524b58454631486456784d596a713770595561764942694c47773251253242304d726e424551684973645a53356e253246546a7a385069794c6f756f51253242465643777242325277717577634a6b4c54567750596d535269253242624a76636f504c37685539784a73506d5a37505832574b7677776f6c564c334b345a6162462532424d683356646f4143455255674e77737366646c4e74553679527647523830516a3655544865506525324238716e52366f3447306f5555764f5863374c7248554d4c6f3249424f4d636f4f756831533252334e724474415856756c597659344c38717665303759377553357a2532463653634b38416c693853696744455925324633624d6d6f34454b6845746b4138334563736d736a76575056796c383550445246566b4a644255513456713671394d77586447324668776850316f755846446f3231507975755a50344b4a6a4a4a5764464a4e735142696f6e5864427a59646c54594d6a596a5a744b506276536e75347670786651634f477a75385a5a4339253242477a754c4b553664593733693351303879543570764d65744d71565337576d6f4b7745363836796e784c37766a47475446323569773355316874253242746837517732713571794b747a4339375877792532466d6d48414b725865704636446a3663583749526c357468642532427259476d3752316d346d726b6e2532424d7157443332455339714a63622532423438785a696b41576d596d33597938746d68523855774d4c5a6a5125324236586639576f546a695457647a6a694d71516b63694c5464504755546c51334739524c32373432334e66455554336d5a314d4651415a4f50746f6c4d78343155366843646d6961442532464f794a4d6d316d5352434355684c75666e566c427968415670464f644b6a4e4e37677171653335545650764575477559733935786a47702532424a4f6c43566e4a37515644614761615349596b7361655558445a74506737734b7331614237626e50455a5679556d433631376e545a77453753546b66567159513969345930695a4a504f664b62415264466557765239624d35346a6b7a3145555248344c39695558335a53305678664d535a63452532465a6a736479645149784f63456b5852585632644a4a4f6c455a79696d73754231477a423647306834704752426855573257374a7052457947776a71626c7569253242615277474a3435314969455335796b4c3279334377794c5734653252253242392532426a55733469686d4a6a4578356b4a35717979463531467a50574f46526d494547436f6f394e7a7047527448384e4171342532466b7469253242612532465154636839496136414f516d58757a6d317453703355564a6c467a6e574265744e33704d57766d48514c4a456971474d4a66577465677642365876434a3525324262656f42586a6e35786c797a5a4379315050694d7a536a75323257636b5377774c3261336a5a666b7866754857525759755a64437333436c32624f52466375323238584652794e716f58774456755a4e65585a42735557323639646570735451354a666a386c684164377925324630323767454e4351574a6171626b3637645567337925324674714238555a6955783531796a4944456e6d31594939506367506d587a4835554f54394c536857655775634a71624f59253246787a4774385a2532425a337a4c763348373674476f31346f6d4a4e754b385036453479383032313841325837444e463973714c556a6662774e373168614146477667484957697141556b433879796f6d714f4725324655626756346233314d4d747857423530356a616c59783878714678776c72377936487265663756304652533076377452433725324673467a487930564f6f56534e4e36767a773941545175434d7348723156306256334176564b676d3663444662765261384f4d2532424651534f374f6277794867614844636f4a6b734a6c544f6751357148344f454a6f5249756830467147745731797773536e6442345070703075587379644879654358334264316925324647747631545a774f644e6a6d4357564c49466c78663576333250657a755333446a61427a5a544e67344467706674637734714f725949346637515470724f4653526376656f334470354f6525324634445051646c4f4d4b566a4f5a7439433842466e7370425951635857345a58714d45315867516b4c4773477465556c436d72485a7479367a426454466a6f6768456157586c504661487670644b7a4a47687974615a34464a4b493173746a7a75483950367539546165566c63727a536549595251762532425968464a49396b503863525a76534433526839745356474d63775331767076357a626d6841784f6a55253242516b6533253242634939377a616269714a416a542532464a61363675524d4653797342513546364152496c376f465050486b5054324f3175253242456c4849747349486e2532464a48756a7a7a597a36494759333368314163334b4e496e38506c6f4f62393773756d71764c714474356a2532464642784b4a7575714b6b46414d72633553734f456d77456e4150533471557141316c49726d71312532424d4f4e4f767764367a3254664d584f572532464872564251475351363477665530625465383035704a69495470684c5a5333526730413957574e636e4f6f444b534b3231535a6a54753966427863316b4f5a304b48623132704850762532425a66515443336e4f3747747a344c775a6b3625324242424f355966327164712532425a4a3969466a423630374a596d616e4331745039645337324825324243635a6a7578613339743342444e744c344561505a574e724842396c493034787272387447567a564f5a53477039426f686a796d4242476c7478684a424e6d6e76347a6d4839667a36462532464452656f782532465364525269526253745a3525324272596e47753634435a5249535177794d642532424e51665271417869634b5764794830483557556453636337594968737a48326b434456425a565935414967504d5847374d36754e44597063726c45463173784f514a787545545057655a627925324236784a4c78766d3233317876593464456b2532426e4c253246627249456870574e714c6a37757278506c6a654b67695845466a55726f71746a4e677936586275596f496b72744676477a314c575a43356c516d355966795352504c576c31655039726e58797a3241493347537a6a504277253242636f596e796647594c41414a467a506d773072696e66546b316551505a396c516a4367673859474b52444a63656e39562532466f69517a70655a25324670794c543278796d79494965464f314b5a6a694651534741466c6d792532426e36253246574678504a48586c53556a6754786642726944366176487a4a444175647368637832537a726e30766333344b4e2532466d6748536b6356614759426c72434939364f777871306938787a4f486d44677742735148765072763966333774356c5961624a79344f44796e444f4b536f7a6b6f4374574a6e38525978453734506a53767646385964544f6f7566783369545655685941682532425a25324642465a75646951617159556137464f79746769347743253246455235627544684f526d50487436687872634953367a76684852536a4b53794869675453397758333643344c514a32724277316e32645045634e25324243454a494143637141615a394754657425324661644e6c35333251513639745325324234436a25324644536b524f624c584e4f3867756c25324271427a4a7342544f38253246554c474956667a6c4a3972416e324f75474b4b34666f323265764333374f73516d345563583053486d733963534d6b6f253242612532466644583172674e4b684136494456422532423064584c4a52794d58696932577941306f67472532465138734b414f554969315972486b71434f5747716b567a5531764a33536f355a65434a45653376626332397167716d4e594b4841623841307a6f424342374453637463713341314d475a586c41676c794b6e6449657878734436685577553770506d737448534c5968424362467676487925324265396b58253242303137756f2532464473324d594668736b784c4838356d577a747844424a697833766d52695a64477150424536544a4225324237466c594253353264346a6f3259743446253246624543556f613858374572475a526e36455558476b5742562532464239746a58796144476c5432614d4a77463146664f253242797564594a6759694676514a2532463346374c674f2532423735486d314b64506b346a68344a6e6651525025324274596c43636c79786237345134644e63366f386d7a72706c43366b697759253242536d596c51516d683050525939376b31526a6b315339253242516232336b796e536e3277433838577a364c67506c4854307a6125324653525756304c56624c733649325545716f797a4d56476371366d7158694e25324663536869466442342532466859506453727173776452376552384d595356416a644d777033446f444b7438634e5770786a3371444c757675746d394c684c3755716d65736853515933743646637538586d253246436c6b5a686e675132427439306f697469707876424e466268312532426a534742564a414943535a68756e78253246756a717a51386432514364544f6b675a4c634832363075624a4341517852783155627237526742466945716c733642354d783545794e4d6939684c6f7a504179374b554e5036705a5a356c654f784b3136543431444c2532466d47646350376830516169765a6a4f424845794770566249543053385432355159793725324231546b4e374b69644e65414f57323871736b66786d597825324270446678714f6731454d64646e58775648414c484d25324625324645764b7258253246654c4251676a6938427431522532463166377a494767486e667539445773644a3074576568504271633825324625324251704539563171394e3754786751522532464841305857674f466b6b45357750386d456759304d465736467458764c4c6f732532464a7a663154666270765677253242626730515745624341316f4841253242364a75575639305649666b576d646c5a4b56336134567352703244476f414630497543704e4763644a76556d525053595a4d466850567153686c57492532463738536c6e4242785a4b6a6a727879705a4b7a37524d48744b4c75553041694b473934516364524872534a524436644d4c76504748775138735877253246586d7a4c54413066534b623041716854623948466675347364477a45567942766b794f587532742532465378334e76576c32755778375131664c4f6b306c4c79497a302532466e3738785574253242642532427a367a66315a686b53754e7a6b734e2532467679704a4164734c356b4c386f7a4b426339715857696131566e6139664d74534267417a4f50584b70736d316e543569485771644c25324631456c4554645a353941616138754447714b4c5a664537446f794a42356f6b553954514a25324232253242617131594f64744b4b4f504a4c7056365976344a61556e4b5a345038394c5154506158305734253242717765747874375131685753566e46437172686e253242384e314e4873566371577a3936496c326c694134567769486e6f76366539557931344c5673592532464c7142484273393138394f6d563161516233655958537867456b654e31617451763272386c3665657938564a6454504769365048506a34495757253246436e4d34537a495641366c6837353761534d776b5132532532467a586b7a6253446c4964586f78765438686e34253242415766723855644163334a796e6e47685941544439316e587546364e38586e796c53655425324665776f55535934714f30253246783554673530773148306e676b3856676e76384c524748567a253242794b5966324656596f6237665473486f467a55487a574b51564a31566f424a463638714b4c5a69253242574d7a6c3246666d756d545a756f50314b715643746250574f31396d33766e7430746674387148776d6a663172517a3754725147594456697061747a795a44645634253246706b4c485966506d5137435659575550664a74253246475a4b663445685052354e57523870644825324656253246696749387a38514b6e664a5a253242253242755277253246675a3135787031663373324d566b68253246474d793459584b7369553859704a556c6e534834627a36714e765435687a31694254497035306c6d506c4c58397570486658253246504349746e383330253246377337667349366e48745439507956586f305134424f313666527750525225324638395343436f373525324269624d6876635925324668587a30692532467371593258653753513744796177447925324241444c6d4c6c4d50704c6754624437504a5877436150526e34586f34376925324262364532322532467a7857496c4d446f5a6e396f4d77797562347643436e78764c68685a6434786b7078253246354d4b73653338635430253242336c38616a65306125324675613668714758533659744e6f3975635468586551305348583145453052596d5373596c44624f4533693663494256385a453356752532423571684137794d344c364246366a566c54342532423054377268737849306b43475567706670786e487976724f375377517771762532467350787a545a6341495a6a6c49746d41506b4e72424636787625324652496c6a73482532464a5a6d34646442384b3157724b6c7531784847572532427962443144676239537933455330417834775765443673546e435076507775335155596f5349355777782532424136615a47364c6548487769592532423373555542456f6431557052796f71634a4d4d50594f514f665a576b4979733645674d3425324248635625324651425a466d64504563696336566f68774c4a446a4439424d386541343279734846696d4138663959776a42316e5858466c462532463943706844417a33483038686642796775666874705965766e6161735a3038694642496a76476777774853314c436444444f4552647263726e7a44624b39615453633858354f4766656b504b6a7547764a5675545a645368696939783525324668395957475033344a624c3274586b79684d7948743725324669754f576c34414e436f7a44684a537264344a4c6e4177794f58433042425238646835415555744434577831376839434c64517639474263376c63523643457a4d59443571394b6646427376674169434c766a7255446c6f3744316e3975527a4350585771464374306b42354c33543277324153384b4d7a6951253242683746327642564e4d54784b4f3632592532467136707a52473453774e365934587071717664726a3674526d7936746d5269656632344b4977614777452532425a325450423056414e746a31474a476d6b6b3541307531574668253246765656336a373746344d58354634354e534b755925324675616f644165414d54583634504b514c687279693837455142253242333772793756596f7025324631515076615a4a515276766e507767473261437933576e584c3355507578495071485a384752394a466c51454e58565055514f494865584c765255742532464b64774b43627a55253246377247717561627353415a466832466b50766a6f4162614b44474a786262574561755330685368337a3847644b6c387434703256323668356d54415843253246672532466e684d32346f6a4762253242724b703773753061464271393674647231326c6d3249654e713668376d7972426f686c33537778713430477a7a73617a6b726735796b3738666749553578734e764538516f5a4a7445616773314f76393034253246396d7a536278456b31304572573834593238584a614c33694478656b43584251775335324a4a253242746a70336c647736766d6973466d7678436b3265703370253246532532467a35617971643854444a3772687a5a5a4525324670485969316b366259496f4b744330596a6d723170253242656c6a3136555239543731327335676b704556785372725064344846356f7058764c7442676d315861253242646c396b4d444562314f477a437a4b6a72357025324667324f304c556d4b546e466e4b766575774575746c6a4e4970577876763569307a642532466e454457366e336359684668355232567337475356253246576b477068626f53614b79434e3079575538376f32427a594e30553555313461453454253246766e755052624346614261587863636d63496f395a3767367532764c253242716d695661497168526d6d5478454c6278386f58664267535a7a4245524d646a69584a3236314f6b584f643973716d6a47304362623647687741764a70437137716b5155494667324c6a4530616d653430746e3644716c375a70766d4b54704e6d4f356a4b64424d7535684c64354948665a44595a62446f31506c776d7052455539646642417746644e467630587078483364786f7157426b25324279446578547a525342306e433468587442374c674e41637144743839367a524f397865723649697063376b756f7a4d455678356439783141316249554673556e743834326154775134326d43324b57764d547941496970766d72784138765739623766723063434a48765145786c3176564f785972576968347659705546744942704a4f7954666159364f4b552532464d6a71373078414b35635142434a705479614f54473161725273797a6f565653763858687025324633396162526d25324659776d676c4b3078253246573637724a73433356446f7656477751733058374149775146554d565638723561346b5579616570764f486330655a45475847634550643247326b6369713874514a334653787448326c4c504f644b7076304c54444b736c3858253242746c3162547565346625324268767151476f6f4d4d76504f474a715a38664c724236352532426f72653577666d47444825324230342532424d545a4344494e526e4e474e79316e59253246335453566e724e637450494c4147626f45253246395249546c45444f6d626c253242385a44654256436d6d6f594d2532464f566a7a453750473561464d3875704c5625324670683355634679766e35306d6a4c583871504d464262484f7a356d4b733771253242637442464f6a6f5a35664142717a6d704763546b446e7a4b506931716b56366e5763485279717356557a45335a25324676757955376d636a65377a42473857253242664b3254483345536a316c2532464d434e505866626b6e3067644b756b4d77636c465463624e4d7265384c467861363243673056544b374d51567853334d57416a59364225324246434e536f32344442696f2532464e497672626e5163364a765242695042423041353734584d566a7344545a774b35484d3833667367677a55706178494c374954387a6e5a4177417775547436477525324671466974586825324241584b627a426430675975253242644d444138384d4d343057665667414661696a694a5665383558253242454f594d46575436553144584d49426b38435376524a416538764f6f5663514e4a474e3462536858416c253246587531526d5a465a427a756565346b6d37656f416c3238722532466d4e253242447267546c4f306a78346f784b4566424c5047695a6676384c7076675641634b79704b4c71763438445a514a31374242335a3930576a3930465633253246674c3152535925324679344832714c6f2532424231522532426c6242646b597643366a725578426a754f6b45614b3269784432722532464a7169494b505179487235716e415968515269364c6a7a6764586737735235397577393659545525324265424d34614d614158704a696a666246423456575169324a7743556a6f557278646f6f6942636550564a677439253242783663373067514734535325324263394178424f353662436225324266476c625638306256734a32504c613652253246783125324643582532466f4139513557615136437a6f7257674c25324668586164564e716d367567794b4c6b4e5a42253242566e34512532424a4e6162576d44783279554f456c57784e6e4d50706a6266655a7742575863452532464c4e7535614b49746a514e4c537939655551527375694664622532467a744351736d513876376f55516d6a3948616a58253246787469453676674d517645796b4d6e456238674b722532424b34387152326d4c7546787432306b332532427651636c386e45427565304e37346c53794f6f253246464b387573756a56424c6d534945323071546457644b4f687a47467866737a4c6348506b437765704b4f645342684c4333305a6464674a61656244465564455735724a2532466d4b397049427458785a4367416c737048565032505862355625324267647975476657735163584e596751334b6233584250703073253246356c59676a4978325a76584b4c54374968487356324b6444304832624a64364c4f3963596c4847686a4b4b33397646664b506966424171566b6b346a4b644676304663533943744e4c37456f4873666525324262722532466166514839324f50435071394b62726c46775078253246737137797666577165795742764f436a4125324675634e75466e4d253246687245614f6b564c454c4f696b7a7752642532424c483133526f746830743566597730426425324251326c624b746d25324647755a45396a584c3854394f46394f615139677525324251476b54496352544d7952615933666f7748566c7a63466561466e646a4d386d59374e546c71426359357769614a706f6b4a6e6d7a776451552532427736594f444d5834734b74732532427358785948253246555673767062556a4544566646717425324276694879487055556741253246447554632532425a6352784d774e473552452532464e626f6e754466697330616e587572315a5347347a424e487945416477526f425225324255586474326f45447a3453354d4e6767763775387338647673326c315062466b44476a6b6f624f63557a25324255614e3241532532426a5964326b46615a766c3559665a4d79525a324a5759415976787353397443343725324677654e31654b576a634a374562675450654f35343069476c55336956794e5a784e525165414125324668537349534551435273564774393165576a6b7a78544d386b54797a463656334d486e63546c76534b6f6e376561636b483753765555563045704433773042484a4276753466693143636d42614e467058644672647679776254336b666e71715a304156253246584a6d6f4541665a413150772532424a66513448794b5a7472445359374b6b4c467a253246366236416674253246466c794c73396451736d756149714f5879504563624e72656675394d472532466f673363766a497a67495469333349422532464c7a517a786a6f57466a63624959426777566d45546f534c446b727a775433675a32522532463764634f65715562556649253242685834757639795a7772447064614c784f75707a393453476a726637673458476d7a5074646e75517943433949334c374a4c656772774e672532424d754a4f395234347970577a7925324662624151324a5338654b773849743237766748464437586479365a736765554359714c524674784d4954685332715834654f52744e594f48304c30576a686b674141617325324667616648686848334f494150467358794b75796c3935317a72327725324269343662443925324279743468446657334444692532426d53766b41377750364e4b67647665426b42505a68546679674a317441344a426c543074676138714174523679414865447569334e47522532466e393059797449635a47354570795571396d57754461566461375a4252726831716153253246494231655762674c304a686834714a54707a4771566b794e4f4e465475546b4867545869767838504a5275427a337251253242253242336868597176566e626e6730437a44713353587a66786351324b796830526f3575454d5151614a466678354f666a30396a783677314e6941525a6e4a6b316654306d68253246667a4a4a346525324232334e4a38724150716e324e365876314d75567a4c5931784f734b4a466335486a656548303057666d6d36354d6663436c4762664e35727a6d4b6147724f47253246413779764e6e525541746c777953375763573530346d396a5a4d6b746b655a5a53615242714f4a456d58443358565338433654566a57434d48774c4f5149654e44475a535425324673684958574e374a4d41566e253242644d25324225324677376d3962625951476c62464848506b7a63745150676c4d555369546546794c4344753567716e4b4468566833384d6f624a726f71626a707241372532425368546d615437253242356c3666424e6b4a4f4438535135506442713949756c655458304339576e504b76673261735330624c6f3648336931594654624645784449546361583246795162494a30434e522532464b34457357513648687355743067726e4139704b6b6e337971654d59796f715174596e75394c454d6532794b6e484673253242253246496d544d6c675934696b663730314c76756c5571444b46784b5158415251693567354c6e436b56576f2532426c794241414b74376275644c5533493262413963394576326c6e7839467241797464373858744a4555664f316e6a62746768563643506c5257625434436c682532466352634f2532424f4b6e3376645634766c6c4a596c414442633774253242486558566756576a49314b3665426b3635634f7a524159317367365551516f43614c587576374b76316c48497338457625324678694e427635436e3478473267797731427830442532462532425a6774454f3734353662584a4a253242516c48356e374345327074666c324363333562526e54444d46334739624c7665495238584d6d79586a354c6770486d656e6261736c3531366d4c4851683125324241354d3550594c6a7646625272623769776c62336b4854484e434c41253246506a39564b71524b637163667435386f314d704f4953784f357757676f48774e50415365564a6c474a7063536f6f6d36797655356344426e56316249474a4851335453746a4d646e575033585536744d4353637a517347304f386a4c6c53794369336956393144466a524f623979724475796f49467a664b743177464b7134757251533861523546655449614e56616b4a485949253242632532425643486b4f515533786957385950744845385565325a673941304667396367704d345831537569453248426f5a32595634667251504b366343506b4865336d4b796c7a4f4349646273717938374e3464346a6945764f753830784b66544664774b5674577958484144784c673053253242365272663249787a5179306d42326972315238744858655525324245676125324656323849622532466d56786857555850576d3830253242304c6e7272675459763658456c663054777462313768397735704b4b703144656e2532426f62595373347535524e676656684c73546e7552344a6e714825324637486170494f4170347531437662626b786a486d453962773176674f576c77575065756477744d505a495271645731756c7366686e55544c76475a4a7154764b53776363367644334c4c5049714b5376597553787a41626b645956253242766225324646443041645849514c5a3034453578536834595243545758494e4876514d686a454225324656733254613935394b5852414870614e424e4130574967717941463557786e5a4a544a38637045696871306c4c42374b4a437063346b52624f377831774468353145537537515877375142305a495856786573793743794a714f546d46724544395449455653644a4e424964765662314564454975574b5971394651505a4f416765584156574874737061475525324630795056327132417569664a4c5556703178666d6c646131496e3646664c476253307a715a49476a6d47726a72374325324667543943634a676a7654346d5457253242714779737958694f4234376f6e794e7435376a42787065583330316f31647870643552493644634e566468696d315475784d41706f384e7662504a312532465038774d48347a253242366c62707268585259695271464f5849765a3637663577536235613371714a6861336d434c73746162546558565a5a58637049766b65734d342532463231583337774c655525324641714379574b7a4c435045387672395933334369416234654a6e6857343946677643614d6f79327a73336c6c766661686e586f704d30554f413776736139327976626f3336716b6c346e6a5552597633503042444139585834253242637033434b4f7a655a4d51545331334a35566f5737525265646e4642306b756d702532466a4c556f717972426f6d436a656a316475253246463767426542737044753767734753253242796f54424f49364b463666483850485738484172694d59575639594c644c76514d5530654a58484a537a4b4f423475545262493557626d4e55332532423144783765445752787a546355327a253242354478356c565138496b4f6f36386f6c586a5a364f756b253242543136635139253246584130707a63506c47336c68344c5377766a323245504c4b7567746f6a5636253242727870523271397a693176576f37336f7a6c59774f444748424836614635374e69384a62586d6d424378366b6f6d5a46642532464b70515777384c6e6a4963416e59344c614a3855657038764f674b644378516b44676f39694b65456625324238253246335872353047366d634552757662653441347630395a78664678666d6d567369784230536234253242783953253242307239546530725176355025324646395676784c3433796c2532427866394a786138493976253246357a656e2532467856253242636a714425324659436b36253242762532427a464233356579584d66314f4b2532466f71334f496e5825324642393759376f455271526636397a396d375851366458566a78677336502532423977447a35497a4261387463502532466c6f5a6265376263357625324658586d25324225324671554948663833363650253246357158724f5a7a684f666e335872704f4579516145253246253242636f6e55632532427464712532423366667255373973347257456679253246634375492532463166312532466f253246555725324249663146763633366d33662532466d714e646250455038714d4f6a665748714d253246427442253242444f7576337a7262325468723850346434674838643847345a39704546446b763578424950253246624950776644514c3144786f452532424e25324662564f627657775438623434513747253246376d66797a4c514c31337862686e326b52634f672532467a7949415838593462763953514a3731725051787938455625324677732533442533432532466469616772616d2533452533432532466d7866696c652533459471022b0000200049444154785eec9d07981445fac6bfdd9dcd39b084258b80082288a2e279e209ea194f319ce1383d338a87f10c441573e22f8aa7a772660ce7e9e9e96156444c8882020672d865239be3fc9faab5c6ded9d99da999eaaeea99b79f679f859d8abfef9d7abbaabbabe3bc5eaf9770800008800008800008384e200e26ec38735408022000022000029c004c184200011000011000014d0460c29ac0a35a100001100001108009430320000220000220a089004c581378540b022000022000023061680004400004400004341180096b028f6a4100044000044000260c0d8000088000088080260230614de0512d08800008800008846cc23f2e790eb440000440000440202a090c39f5742dfd0ad984df3ae50f34e090df6869242a0501100001100001bb086cfaf8233af2857fd9557cb7e54a99f061d7dfa8a591a81404400004400004ec22f0fefc9b61c276c145b920000220000220d01d019830f401022000022000029a08c084358147b520000220000220001386064000044000044040130198b026f0a8160440000440000460c2d0000880000880000868220013d6041ed582000880000880004c181a00011000011000014d0460c29ac0a35a100001100001108009430320000220000220a089004c581378540b022000022000023061680004400004400004341180096b028f6a4100044000044000260c0d8000088000088080260230614de0512d08800008800008c084a10110000110000110d0440026ac093caa050110000110000198303400022000022000029a08c0841d02ef6d6ea1d6d22a6a5af513357eb48a92c60da39403f6a2f8826c8a4b4e72a815a8060440000440c0240230619ba3e1ad6fa4ba379653fdbb5f51ebcf3ba9a5b8c2576342411679061751ca6f4651dab107517c7686cdad41f120000220000226118009ab8e86d74bad9535d4b2a598ea5ffe986adff894a8a535782d9e784a9d3886d24f9d489e013d293e2f8be2e2e383e7430a100001100001d7128009ab0a5d6b2b35acfa911adff98a1a57fd442d3f6c256f7308e6eb577f9c279e12f72822cfc881947af87e943c6e18c5257a54b512e5800008800008184400261c4130bc8d4d7cd6dbf8fe4aaa7efa6d6add5a1a5269f1b919d456554bd4e60d9aded33397d2cf3c82527eb71f25e466505c4a72d03c48000220000220e00e0230e130e2d4b2b584eadfff9a1a3ffd9e5abedf44ad95d544c1fd94d714171f47b9775c4815b31e276f5d6368b5c7c5517c662a79860fa0e4fd8751dae163c933b017515c5c68f9910a0440000440c04802306189b034fdb095763ff032357efa1d51184bcdacaad4a3f6a7bcf91750c54d8ba9ee5f1f4bd46e49ea89a7e4317b52d68c532869f880f0ca402e100001100001ed0460c21221a8fbef0aaab8e151891c1d93c667a4528f97e691a7470eb5965551c9c9b3a86d775dd8e5e5cefe13a59df09bb0f323230880000880805e02306109fe4d5fff40bbcebd432247c7a46947ee4fb9b75ee0fb63e5bcc554fbef8f435ecaf6afb8e0e12b2979ffe161b70719410004400004f41280094bf06fd95146c5c7fc4d2247c7a4b9b75d406993f7f7fdb1e1a36fa8fcaa07c3ba8b9a15d2f3b5f9e429ea11767b90b1238167dff82f9d73e34cfec77d860ea5a76e9b4f43070ea44fbefe9a0e3ff73c7af7b147e9e07df70d1b5b38e5945556d29f6f98494b972fef50efe337df447ffcfdd161b74536a3b51d91721075d73734d0d577dfc3ff7be79557d0cab56b23e6cccabcf7c9a7e8c253a6505a4a4a87f253535264bb8df420603b0198b004626f6b2b6d3fe862a29610efc2b294cd6eaceaf5bfbb3aec8ee56d6aa6923fdc482d3bca255af14b524f3cf559fe20c52524c8e7458e4e04d66fdc4867fded7abaef6fd7d0b08103b9f10de8d39b9b83aac13b12133e68dfd174fdf9e7f176cf7fe4517ae59d777d27094e8453b49dd535ebe28b7c6d89a46e7f1356c199b159fef52a7ae2969b283f272792e6212f08384200262c89b9f884eba965cb2eb95c714439b79c47e9478def948feda4557ef543d24bd2094505d4ebb55be5da81d45d12102613c860ace6599093c3cdfaace38ea1a59f7cca67a8d63cc2ccbf59bf9ece3bf924dab47d070903f53761abb14d3ae8a080c62166a056131675ccf8d3d97c36dcd50c5e18f6bc8716f199fd11071e486f7ffa69a7193e4bd755fd029830377662c2fa6435392b3b5697d5a8455b45dd820b3bb961477733612b4b96d63a0367ed117589b6ffef93e51d56321e9d3b9bfefee24bbc1e7132d55599e2ef5dc5155f1d10b08b004c58926ce9b47ba971f97752b93c837b53cf17e7f9f2789b9b292e31d1f7ff5d7f9c474debb64895c9ae05b36bc238d410b01a22334feb0c3890091f306a244ff3cabbefd1bdff7c921b5bbf5ebdb8a908935ab771235f5e15261da81c66a4271e3eb1cb65d36026bcdf88bde8e687ff4ef75e7b0d07619dc18be55db6742deaf8ecdbd5bcadec602713c1ea67e9ac6d386cff719d968cfd4f60c44901334d71d22278056a933049eb72b4588d38e398dff3130deb0c97717de6f53738ff2d3b77f27e9cf8bbc3f9ecdc9ace7f395aa4b59ebc88d8091e81e2ca2e49e00001bb08c08425c956def60cd52e794f2a57d685c751e685c7fbf2b0c79c32cf3fd6b7345dfde45bb4fbfe9742dabc43149276e204ca9df567a9762071f704acb32bebcc2b90798a41bfbbcffc0dd49a9619b5300036c833e362c6e2bf8c1ac884032d475b67c3e224825d1bb52e5bb334a2ce2fbffb3ea4fa19076bbb85395a67e6fe337c6b9ba74c3ac267f6cc4cad4bd0f32e9d46b31e58c883e27f4d98fdedafb7ddd1ed92bb355ee244a73b13b69e3031e681da1928ae91dc0780ef1c08042300130e46c8eff39aa7ff475577bf2095abc773b32869683f9e876df4517ce28dd4e3991b2969687ffeb7e60d3ba8f4ac5ba8ad3ec4cd3b8828f3921328ebbc63a5da81c4c109045a2216335aebcc4ecca6ba9add32c3e9ce84dffffc0bdf72aa6895f56630f1b7ae6ecc124bb3a27e66bc73a75d42b3173ee8333566c2d6eba356137e71e9db21d5cf0af3bfceeaff7f3b4cd8ff24c51a3971c2c18c97dd80c566ffe2a4a03b13f6e7d1ddc94238d7ef83ab0b2940a0330198b0a42aea3f5849e533da07ba508ed489fb52de5d97b4ef6ee5f5125fcefef47bbef355fe4357f0973478bd5eaa9cf90faa7b63452845f234b937ff85d27e7f60c8e991508e8075b6595a59e95b8215cbabdd99b0984dc9cc84bb6a5da099b0356d30d3097526dc55fdfed750ade9c41dda769830ab27d01de9fe3773d53534846cc2a1cc8403c5153361b9ef0e52cb118009cbf1a2a6f59b69d799b710b5b605cf999840bddeba9312723279dae6f55ba8e4f45faf0df778f27a4ada7b10ffcc5b5d473b265f45dec6e6e0e526c453c1c35750f2d861c1d322454804fc9778fdaf410a43e8ce84c70c1fdee19ab0b85148f535616b87acb35b71b22096a3add75f271f7c1037abe2b232a96bc2d6ebbbc28cc48981b87b5cd423ea6566c71ef5b2ae1cf4cccfe74bed6255c17a9d9af5c77f39da7fd9db7f162f66f8fe8c23bd260c130ee9eb82440a09c0842561b66cda49a5e7dcce5fdcd0ed11479476f478cabdb9fdb11276ecfefb6b54bde855dfff33fe3499b22f9fe2db03baf29627a9f6e50f83de299d9095c667d1897b61cb4ac9f075995cccb01e7de9659ea6abe784bb336166524edc1d6ded8475b99ab5b9303f8fe228ce776d595c370de7ee68c1c4ff6e68567fa0958285375c4f0fbff022b13ba0c52cb9bbbb8e833d271cec4e66568fe8f3c03e7d3a18396be37f173d482f2d7d9be30a7477b435c6fe779c63395ad5370be5042300130e46c8eff3e61d655476d1ddd41aec31254f02e5df7511a51cfaebe60ebbce98474d6b7fbd0b3a718f3ec466c3e2cd488d9fafa5b2cbff8fbc0d4dddb6cad32b8ff21ffc2b7906f6966c3d92db49c0df54fcefc6b5b3ee4065fb1b895dcfd0766758fee6e63403d40702a61380094b46a8ada29aca2ebb9f9abedbd46dce84be0554f8f44c8acf4ce3e91a57aea7d20beeeeb08c1d97104f79f75f4a29078fe269da6aeba9f4bc3ba939c8e34a8943fa50de82e9e4e9952fd97a24b79b80f5c62e5697ffe34e76d76f2ddf7f76cf3e53b5db95b51e98b09351455dd14600262c1951669465573d484d2bd6769b33e7a67329fd98837c696a9e5e4aad9b4b3ae549e8d78332ce9aecfb7bfddb5f52f935ed1b1e747524ed3398f2eebf8c12b233245b8fe4200002200002261180094b46c3dbdc4a15373e42f54bbfec3267e2e03ed4e3f959e16d29e9f552c91937753b1b4e3e686fcabf771ac525fdbae1876437901c0440000440c0000230e130825071eb5354f7c2078173c611655d7a12659e13fee6fab52fbc4795b73fdbe5e61d69bfef78c357185d40161000011000010308c084c30842f53f5ea7dd0b5f0998332e35897afcf37a4adca3a8fdf3d6566ad95519b49684fc6c8a4bf4f0742d5b4a68d79f6fa5b68ac07760679e7b34377a1c20c06eb6da5e52a2f44513fe54d9cd55626b4c999722f85f1fb7e37a341400026e2700130e238275ff594e15b31e0b983375f238fecee038b6390711d5fd671955def66cd05ab2a69d48197f3cc297aef2a6c554fbaf8f03e6cbb9fe2c4a9ff2dba0652241741360e6b8e0e9677827a79f79067feda21d473826cc1e9d62bb77b15dbc98713343bef5917fe0ed4676040865ba9a004c388cf035ae5843a517dfd729279b05173e379b3cfd0af967defa462a3e750eb56e2b0d5a4b42610e15be348fe2d35379dad6eda5547cda5cf2d63674ca9b7fff6594f29b7d82968904d14d806d60218e0ddbb6f95e2f284c332b2383c473cfd659a8d880433c3b9c919e4633ce3e8b6f34c25e98c09e7766263ae3f63be8c60b2fe0555867c281deda245e5e51555d432ffcef7f9deec216cf335f77fe5f227a2773744714bd8b450230e130a2debc613b959c3cbb53ceb449fb51eeed17f9fe2ebbc5a5ff569495739ea0da579775aaa7c7f3b32969cfbe61b41c59a285007bfce8a6457fa73f9f783c9f695a679dfecfe65a97acd9b3cb57dc7917dd73f5553c9fd877395413663b5e5967b4ac6c7688fc7d0a0b03be6b98b549d46bd78c3d5a628b7ec41601987018f16eaba9a31dbfbdbcc3ce56712989947bd3b994fabb71ed25b6b551c5bc7f525d0013edaacad4896328f7b60b7cd7861b96afa18a6b17515b8d65361c47d4fbfdfb7dcf1f87d17c64890202ccd49e78e5559a79d105949a92c277b062af1914bb76590d8f2d058b57ffb12d25adb36636ab65ff0fd584fdaf09fbe79f30660c7ff5a0f510cf2b07fa2c0a42812e8040440460c261e2dbf9bb2ba8b5a2da973ba17f4f2a7cfa06df72325f8a3e6926b51657845c437c5e26153e378b120a72da7dbcbe91ca2eb88b9ad66cfcb59e9c74eaf56ee7a5f0902b41c2a820605d12161d127b54fb5fc3b59a307b93103bd8bb77d9216bc2e21dbd62999b95c1eaf53771d12661c05dcd90a32218e80408444000261c26bcd2736fa3c6af7ff2e54e3d721ca54efa6516cc5ed6f0c336aa7ef835e9d233ce9e4449a3f7f0e56bf8f0db0eb3e9a45183a8c7e2eba5cb4586e82110e8fa6a77d770c399095b978f1939714d98bd3061d9ca95bebbb1bb32719647b4935d67f69f1d474f34d01310888c004c384c7e75ff5d4155773c4b6d55b5ed257812282ebefd8e687678dbda885a4278d3925ffd719e78a2f8f880e5c467a450f615a751da898784d96a648b060281ee34b62ef9ee3762af0e3752594d38d835613163b5beb5a82b13b6be46d07f268c25e868501afae00401987004949b37efa49a475fa7868f57535bb0b72a45504f7c561a251f3882b2ce3f963ce2f9e308ca43567713103743892565d11b669cecda2fbb4efcc033cfd2bdd75ee37b3c485c1366d78fc552f6a4830ea249071f483575f57c79dafad6a23bae9c415fac5ed3e9ee685617bb996be9f2e5c4f25f70ca147a6bd9329a77e9349af5c042dfddd55dbd8718cf0abb5b7b68bd7a0230e14899b6b652f3861db4fba157a9e1c355a1bd6738d43ae3e32879fc5e9475d9497cf30fb19947a8d9910e04ba2380d92af40102fa09c08415c5c0dbda4a0dcb5653cd13ffa5e6ef3793b7b139ec92e3923c9438ac1fa59f3989d81dd330dfb05122a31f01ff5dacc4cd5c00050220a087004c583177f696a5c615df51d5edcf52ebae2ae9d213723328ebcad3f8661ce23588d28520030880000880802b08c0846d0a93b7a1916a9e78936adf5841addb767578a6b85395714409bdf329ed887194f197dfc37c6d8a098a0501100001d308c0846d8c08bb43ba6d5b29552f79976a9f7997c8eb0d585bfac98752c619475042ffc2f05e7f68631f50340880000880807d0460c2f6b1ed5072f30f5ba96ac18bd4f4c57a7ebd985df74dda774fca9c7622258f1aec502b500d088000088080490460c20e4683ed80d5f4fd266a786305a54e1a4b892307fb76d872b019a80a0440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c2100133624106806088000088040ec118009c75eccd1631000011000014308c0840d09049a010220000220107b0460c2b11773f4180440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c2100133624106806088000088040ec118009c75eccd1631000011000014308c0840d09049a010220000220107b0460c2b11773f4180440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c21e01a131e74e86f0d41866680000880000880801a021b3efc808e7ce15f6a0a932c25ceebf57a43c9f3e392e74249863420000220000220e03a02434e3d5d4b9b4336612dad43a520108304d6ac5943071c7000ad58b182468e1c198304d06510881d0230e1d889357aea120213264ca04f3ef9840e3ef8605ab66c994b5a8d66820008844300261c0e35e401019b08ac5cb9920e3df450aaa9a9a18c8c0cfae0830f68ecd8b136d5866241000474138009eb8e00ea07010b01310b167fc26c18f20081e82600138eeef8a2772e22609d058b666336eca200a2a920100601987018d0900504ec202066c1e9e9e994909040adadad545b5b8b6bc376c046992060080198b021814033629b009b051f78e0819493934377df7d379d7df6d9f4e4934fd295575e49959595b47cf9725c1b8e6d89a0f7514a00261ca58145b7dc45a0acac8cfefdef7fd3b9e79ecb1b1e171747e211fec71f7f9c8e3ffe78cacfcf7757a7d05a100081a00460c24111210108384fc06ac2ced78e1a4100049c220013768a34ea0101090230610958480a022e2600137671f0d0f4e82500138eded8a2672060250013861e40c0400230610383822681800d0460c236404591201029019870a404911f04dc410026ec8e38a195314600261c630147776396004c3866438f8e9b4c00266c7274d0361050470026ac8e254a0201650460c2ca50a22010309a004cd8e8f0a071b14a00261cab9147bf638d004c38d6228efeba82004cd8156142234120620230e18811a20010504f0026ac9e294a04011309c0844d8c0ada14f30460c2312f010088110230e1180934bae92e02306177c50bad05817009c084c325877c2060230198b08d70513408184400266c5030d01410100460c2d00208c4060198706cc419bd74190198b0cb0286e68240980460c26182433610b093004cd84eba281b04cc210013362716680908f808c084210610880d0230e1d888337ae93202306197050ccd05813009c084c304876c2060270198b09d74513608984300266c4e2cd01210c07234340002314600261c63014777dd4100336177c409ad04814809c084232588fc2060030198b00d50512408184800266c6050d024108009430320101b0460c2b11167f4d2650460c22e0b189a0b026112800987090ed940c04e0230613be9a26c103087004cd89c58a02520e0230013861840203608c0846323cee8a5cb08c0845d1630341704c22400130e131cb281809d0460c276d245d920600e0198b039b1404b4000cbd1d00008c4180198708c051cdd750701cc84dd1127b41204222500138e9420f2838002024b972ea52953a6d082050b68ead4a9244c78f1e2c5347dfa747ae1851768f2e4c90a6a4211200002261180099b140db425a609a4a4a490c7e3a1d4d4542a2d2da5828202aaafafa7e6e6666a6c6c8c6936e83c08442b019870b44616fd721d81db6ebb8d66cf9e4d4d4d4dbeb6272525d19c3973e8baebae735d7fd060100081e00460c2c119210508384680cd821b1a1a7cf525272777f8bf630d41452000028e1080093b82199580406804acb361cc824363865420e06602306137470f6d8f4a0262368c59705486179d02810e0460c2100408184680cd8667cd9a4573e7cec5b560c36283e680806a023061d544511e08444880dd0d7dde79e7d1238f3c426c491a07088040f412d066c213274ea4f7df7f3f7ac9a267200002200002b61038ecb0c3e8bdf7deb3a56ca70bd562c26ce301f6b364c912a7fb8bfa4000044000045c4ee0d4534fa5534e3985ffb8fdd062c2d104d0ed0240fb41000440c06d04a26922a7c584b12faedb248ff682000880805904a2c5471c37e1683a83314b92680d08800008c40e8168595175dc84a3055cec481d3d0501100001f30844cb84ce71138e962504f324891681000880406c1188063f71d484a3e5cc25b6648ede82000880809904a26165d551138e0660664a11ad0201100081d823100d133b474d381a960e624fe6e83108800008984bc0edbee2980947c3198bb93244cb40000440203609b87d85d53113763ba8d894377a0d02200002661370fb04cf311376fb9281d93244eb40000440207609b8d95f1c3161b79fa9c4aeb4d17310000110309f809b575a1d31613703325f7e682108800008c43601374ff41c316153960a1a5a6aa9b6a99a1a5beb6877433935b5365052420a65a5e45172422aa52766514a627a6cab19bd0701100001171230c56764d1d96ec2269ca194d66da3659b5ea39fcabfa18afa62aa69aca0566fab8f55425c026524e7525e6a4f1a9cb70f1d3ce038ea915624cb12e9410004400004341170eb8aabed26ac0b8cd7eba5f2fa62fa60c38bb46cd3abd4dcd6c8a591e249a78ca46c4af6a4527c9c875adb5af88cb8a6a992d84c991d89f14974f080e3e9b04153283fad1711c5699215aa0501100001100885800913be50dae99fc67613d6b544f0ddae15f4d2ea05b4ab762bef73617a3f3a6cd0293420772fca48cae126cc66c0ad6dad3e13de50b1863edcf83215d76ce2790ad28be8d451336878c1fee1b0451e1000011000010709e8f29b48ba68ab09eb383369f3b6d1f2cdffa125dfde435ef252617a7f3a7cf06934bedf519410ef09ca8a99f2675bdfa4777f7efe17338ea32923a7d321034ea4f8b8f8a0f991c0dd04d6ad5b47a79d761aefc4f3cf3f4fc3860df375e8a69b6ea259b36675e8e085175e48f7de7b2fffdb8c1933f86ff6ffd4d4d44e20962d5b46871c7288efefa3478fee544757f458bbde78e30d5f1deea68cd683803d0474adbc46d21b5b4d580790cfb7fe8f9efde60e6a696ba6d1bd7e4ba7ef7315a52566123b430af5604bd9752dd5f4e2b7f7d397dbdf264f7c229dbcf7749a30e0f8508b403a971278fae9a7e9acb3cee2ad7feaa9a7e8cc33cfec60c2cc48599afcfc7c12a6cad29d74d249dd9a30cb73e79d7776305d66ea2fbdf45250232e2b2be3ed98306102cd9c39d3a564d16c10b09f808e895fa4bdb2d5849d5e1af8b6f8137af4f3ebf90c78bf3e47d02923ff4a6949996133aa6faea1e7beb98b56ee788f9771fefef36954cf096197878c6613a8afafe7465a5555c51b9a9d9ddd6156cb4cd36ac2223d4b3b7ffe7cbafefaeb03ce84c5ecfaeaabafee60eafe3444ba55ab56f94e0284b93ffcf0c3fc6f62e6fdd5575ff966d5471e79243f316087d5acc549c2bc79f3b8798bff7ffcf1c7b471e346dfc986989117141474327bff3e9b1d41b40e04884fb8d844ca2d876d26ecf41949abb785e6be733a5536eca27d7a1d4ae78c9d1dd2f273b040b11bb79efefa36fa62fb52ca4e29a059873f4389f1c9c1b2e1731712b09a256b7ea0996b38261c6816ec8f4718fad9679fcd67bcd659b2bf395adbe93f03bfebaebb7c270a6fbef926375a61dc2fbffc323df9e4933477ee5cbaefbefbe881071ef019f7c08103f9098735bfbfa9bb30a468720c12d0b1021b0966db4cd80910ec8ee6d5c5cb6963c51afef811bba12a37b5274d3ff07eca4fef1d3697daa6dd949e94e5cb5f515f420f2c9f41bbeab6d2a0dc9174e941f7f23ba871441701ab59b29eb16bc3d6d9abffac30d4e5687f13f6bf366c5df6b6ce86bb9aa1fa97c7fecfcc95fd5ebb762d4d9b368d2f712f59b2845fc366e53cf1c413b468d1222a2a2af22d695b97defd67d86cb6cc0e760d9bfd9b9d18e000013710707a02182913db4cd8ee25812fb7bd43cf7f7bb7efb12206223e2e81fe76e813d42bb37fd85cb654aea7155bfe4b53465ddea18c929a2d74cbfb7f222fb5d1c5e3efa2bd7ae08ee9b0211b98d1bab4dcd58d56816ecc124bbdfef9ad3766599781ad66669dd11e75d4517c2978e7ce9ddc40bff8e20bdf4cdc7f261ca81dc2b0c5c9c3d4a953e9adb7de22b654cd7eb319f3830f3ec84f2ad8ac97992b33de5b6eb9856eb8e1061e11d6efbaba3ade0e3623fff9e79f3b2cbf1b18363409040212b0db7f5462b7c584ed3c13a969aaa21757df4f5fef789fdabcad94959ccfafd30ec8d98b8ab28650bf9ca161f3d951bd911effb27d19fbb283eee33774598f7f7c318b56edfc8026f43f9e4edbe7cab0eb4146f308f8cf4ead2d1433c1eeae8f7667c25d5d13b6fe5d18a3a8cb3adbf537e1ee96b7453b366cd8c0bb70fbedb7f31930bba62c8c9acd90c5b27a5a5a5aa71bca583fbffbee3b9e7fc48811b819cc3cb9a245410838b112ab2a08b698b05d00d8661a0f7f7e1dfd54b68acf7ac7154da2d3475d459e84c48878b0c79a3657aea587565c4df52d35fc39e2e907dd4fbd32077628973dfaf4ec3777f2bf1565ef4953c7cca25e19fdb0994744f4cdc81ce84e656192279f7c3237a2704d98f5502cfd0a9315773cb3592a5b8e1e376e9c6ff9db7f562c734d98cdc0455de286ad40d786c5f5eed2d252dfac583c5a653d21c152b419fa442be408d83911946b49f0d4b698b05d4b01ec4ee54f33112a770000200049444154b7bc4ea99e4cfee8119b01c7c72704ef651729d81d74eb4bbfe265ae2e594e8d2d753c651cc5d38507dc46230ac777c859d75c4dafac79903edfb6945abdcd949e94cd9f419e38f854fe18130e77121086286e4e124bc96256c9ee2466c6c69673ad3766597bdbdd4c58a40b34db16cbd92c8d7599995d8f66cbd2d65938bbbe2b8c955dfb15cf1c8bbfb1c7a6d8e17ff2e07f97b4f50480cd8e7bf6ecc9ef28158f5e89cfc5c98328d79dd145ab6395805d3ea49aa77213b6eb0ce49b9d1fd1a35fdcc837cc3865e4157470ff63437af6972d5957375650795d31edacd948d58de5c496b44bebb6d386f2d554dbdcfe388aff71ccd0f3e8c8a16707fc8c5d377e61f5bdb4b96a1ddfd0f2d8e1e7d3e1834f0fa93daa0388f2404035013c97ac9a28cad341c0ae1559d57d516ec27674bcb1a59e1ef9e27a3e6bddbf68329d31fa6f9410c20cb8a9b591febbfe715ab5e3432aabdbc16faaeaee604bdceca7a5ad89d773f698f61b56021dac4dfffe7e117dbce9154a4c48a63f8f9d8d678855ab13e5394e40ccc6fd67d78e37041582408404ec9a1046d8ac4ed9959bb01d4b00ecd1a37b965d42e4257ec354dfec3d83726868a9a37faebc855617b73f6a11ca519056442c5f4d53050d2b1847d30ebcbbdb6c6c8bcb7f7c7923ad2efe847a670ee2d791d912350e100001100001fd04ecf023d5bd526ac2769d797cb6f52d7aeaebf9d4376b4fbaeca0fb29358477fe7eb4f1dff4d29afbf91dd4a11cec66ac03fa1e45effdbc84cf98f7cc1fc30d3fd8515cb3991ef87406d53456d2f9fbdf42230a0f0c96059f8300088000083840c08e9559d5cd566ac2767578c9ea7be9e38dafd098de13f9b26fb07da0d90c75cebba75155c3ae90782527a4d1d143cfa1377f78c2f7dcf1e85e87d15fc6cd0d9a9fd5f5cf9537f1ad2dc7f73b9ace1cfdb7a07990000440000440c07e02764d0c55b65ca909db35f57ff4f31be99be28ff8cd4f278eb83868ffcbea76d2dc77dbdf8413ecc84ccaa3f3c6dd4c6facff07ad2bfdd297fcd861e7d3e43ddb37f20f767cb2e9357aeedbbb282fb537cdf9dd73c192e373c309f86f8611ce633aec0ee53973e6f0ad2155dd5d6cbdab992114bb5cb1bbb955d7c7eea8661cc41dd386870ccd03812e09d8e54baa902b33613bcf381eff6a2eaddcfe2e1d3af064fe5ac16007db6672f63ba7749bcc139f4443f2f7a54943cea2afb7bf471f6dfa972f7d52420a5d32fe6e1a9c37325855fcf375bbbea0852baea4f8380fdd77cc3b21e54122330930e3d9b66d9befc50de2719f850b176addba511830dbc94abcd98919e4471f7dc4dbba79f366a5a60f1336539f68953c01bb5668e55b1238873213b6b3a3afadfd3b2dfdf1691a5eb03f5d3cfecea0cbd1ecf9df79ef9e4165f5db03f69a5d5b3e65d40cea9735941efeec5a5a57f6eb0c98651898bb374d1b7f37257b3abf13365081eb4abfa2859fce8009ab52a5a672c4b3bebff9cd6f3abdc29035e9aaabaee2bb4b8d1d3b963f33ccde7624f67d66663d7d7afb09223bf3b6be24813dd32b5e96f0dc73cff976ae62ef2ab6ce6ed9cc96bdc189cda0adef3166655a0dd7ff396666cc6c430febccdbfa4cb2ff3b8fc54b2258dd975e7aa9af3eebbed5ecf9e5ae9e89d6141e540b026111b07382185683fc322933613ba7fcdfeffa8c16adb8867aa4f7e5376665a7b46f4ad0ddb176d7e7fceee8e6b646ea953190fa660da1fe39c3b8c1b2ad2ebfd8b694df84555ebfb343313d3306d0b963e752efac41c1aaf07dfee1867fd18b6beea3c2f4fe74e3c42743ce8784e61110bb4d5937d110adf4dfbc83ed36c58c77c182053c09db6043cc98adcbc362630db6accd0c9c19b97891029b79b383edc8d5d576945d9d1c58e959eb63ed126db1d6274e220299b0d8954bccb4f10a43f3b48916854fc04e7f0abf55ed399598b0dd671a6c79f9de65d3687763195d74c0ed343c849727b4b5b552434b3da524a6f10d3ed85151bf8bdefbf979fa70e3cb01ef9ade237734fd79bfd92199bc00cfeebe667b4a7f5bfc311dd4ff58fae33e57471a13e4d74cc0ffdaabff4b1aac3365665683070fe6db4e0a4366b3587f13b65e5f6566cb5e8e70c92597749889facf4cfdcd5f9867203cfef5b1b72a59b7a164f53ffae8a374f3cd37f39733b0174958eb63655a67d2aaaf316b0e29aa8f710276aed4468a568909dbdd4166746ccf66f676a3de198368fac10b3abc6ad01f02bb6379d6db5368afc203e88cd1d750795d096daffe8976566fa4e6b62662ef08f67adbf89697ec250dd9c9f9d43b6b30f5c91c4471bf1876a860d94b1f1e58fe577e57f5f9fbcf0fe90421d4b2914e3f01eb2c54bcbbd76a865613eecac4d84cd86a8ac284d9f7c66adcc14cd87f99bcab9930db2b5a5c2bb6deb4c5f68beeca84d9ecd97aa20013d6af3db4401d01bb278a91b45489093b31d567cbc637bf7b16b5789bf98b1bce187d6db7fb35b3571de6a5f6a44121de5c150ec496d6665af4d9b5b4beec4bbe81c8a507dedbe9cd4be1948b3c7a08301364aff563aff7b3ded12c4c532ce70a33b41a349b09cb9a70a833614623d03561f677669c871f7e78876bc2fea62f6eb2f29f098bebd862391d33613dba43adce1070c2a7c2e949c426ece419c6e75b97d2f3dfdec567b2fb151d41c70fbf90b252f2c2e977c479d89698cfaeba93bedcbe9412e393e9a2f1b7f30d3e70b89b80f51a2deb89f5ae643113667f1777245baf09cb9ab07833132bafbb6bc2feedb0de1dcd66d8cca0d94c56d41fec9ab0b81e6dbd06ddbf7f7f7ead5a9c60e09ab0bb758cd6772660f78a6db8cc233661273bc65e39b8f4c7a7f89dd24dad0d9497da8b4ede7b3af5cb1ecab78b646f320ab69147b8a0583e66feec5587ec050eec9dc6bbeab6f27da34fdefb323ab8ff7191148dbc0611f07f4e58dc012d66beccc4d81b8dd8219e21f65fbeedee1aad985933e3b55e7fbee79e7be8b3cf3e0b7877b4d588d9eb0fd961dddfd9bffe4077478ba56976d316bbb3dbbf3eebddd1ec33f67fff550183c284a68080140127278c320d8bd8849d9ee2b36bb95f6e7f97bfc5a8beb986f7b520ad0fe5a5f5a2b4c42c4a88f3c8f45f22ad97d8ab0cab1acaa8a4760b7fc903bb9e7ccac81934baf7a17895a10449b7261526dcdd0d5291f40dcfe646420f7941203801a7fd2a788b22bc3b5ae799057b3de1ebeb1ea375a59f53554329b5b43587d25f256972527a5051d69ef487bda751617a5f2565a210f309a8366151dec30f3fcc3bcfdeedcbde21ecff8cb0f964d0421070070127576e432512d14c587787d8acb8a2611755d417d3b6dd3ff24790dada5a42edbb74bacce41c2aca1e42ec6d4bf969bdf96b0f71800008800008b88380ce8963578422326113a7f6ee90025a090220000220a0838069be15b6099b7846a123a0a8130440000440c03d0474afe0fa930adb844deb887b248096820008800008e82260da04326c13366d4aaf2ba0a8170440000440c05d044cf2afb04cd8b4330977851fad050110000110d049c0a495dcb04cd8a40ee80c24ea060110000110701f019326926199b0495379f7851f2d060110000110d04dc0141f93366193ce20740711f5830008800008b89380292bbad2266c4ac3dd1976b41a0440000440c00402a64c28a54dd89429bc0941441b400004400004dc4bc0043f93326153ce1cdc1b72b41c0440000440c0140226acec4a99b0090d3625786807088000088080bb099830b194326113a6eeee0e395a0f0220000220601201ddbe16b2099b70c66052e0d016100001100001f713d0bdc21bb209eb6ea8fb438d1e800008800008984640f7043364139e387122bdfffefba6f1437b40000440000440202202871d7618bdf7de7b1195116ee6904d38dc0a904f1f81e6e6669a3a752a2d5ebc98121313f53504354b1140dca47019931871332614ae6a084cd855e1926becfcf9f369eedcb9346bd62cbae1861be43223b53602889b36f411558cb845842f6633c384a338f4292929d4d8d848494949fc370e771040dcdc1127ff56226eee8c9bee56c3847547c0a6fad959f9bc79f3b8f9262727d3cc9933311bb689b5ca62113795349d2b0b71738e75b4d504138eb688fed21f71562eba87d9b03b028db8b9234e5dcd82f17d7367fc74b61a26ac93be4d755bcfca4515980ddb045b61b1889b42980e1685b839083b0aab820947615099e17a3c1ecac8c8a09292122a2c2ca49a9a1a62776f36353545618fa3a34b889b3be388b8b9336ea6b41a266c4a2414b5e3edb7dfa62953a6d0030f3c40679d7516892dd99e7aea29baecb2cb68c992253469d22445b5a1185504103755249d2d077173967734d606138ec6a85afaa47b5fd428c76b5bf71037dbd0da5a30e2662bdea82c1c261c9561fdb5531814dc1960c40d71732701b45a96004c589698cbd263307759c07e692ee286b8b993005a2d4b00262c4bcc65e93198bb2c60306177060c717375dc74361e26ac93be0375c3841d806c4315889b0d501d281271730072945501138eb280fa770783823b038cb8216eee248056cb128009cb1273597a0ce62e0b189635dd1930c4cdd571d3d97898b04efa0ed40d137600b20d55206e364075a048c4cd01c85156054c38ca028ae5e8e80828067377c611717367dc74b61a26ac93be037563507000b20d55206e364075a048c4cd01c85156054c38ca028a997074041483b93be388b8b9336e3a5b0d13d649df81ba31283800d9862a10371ba03a5024e2e600e428ab02261c6501c54c383a028ac1dc9d7144dcdc19379dad8609eba4ef40dd18141c806c4315889b0d501d281271730072945501138eb28062261c1d01c560eece38226eee8c9bce56c38475d277a06e0c0a0e40b6a10ac4cd06a80e1489b8390039caaa800947594031138e8e80623077671c113777c64d67ab61c23ae93b503706050720db5005e2660354078a44dc1c801c6555c084a32ca098094747403198bb338e889b3be3a6b3d530619df41da81b838203906da80271b301aa0345226e0e408eb22a60c2511650cc84a323a018ccdd1947c4cd9d71d3d96a98b04efa0ed48d41c101c8365481b8d900d581221137072047591530e1280b2866c2d111500ce6ee8c23e2e6ceb8e96c354c58277d07eac6a0e000641baa40dc6c80ea4091889b0390a3ac0a987094051433e1e80828067377c611717367dc74b61a26ac93be037563507000b20d55206e364075a048c4cd01c85156054cb88b804e9c3891de7fff7dd787fbb0c30ea3f7de7bcff5fd88b50e60307767c4a365dc504d1fe350d74461c25db0c120a8fa6b88f26408407f32b490d67402d0334c585aa3108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384838a70e9d2a53465ca145ab060014d9d3a958468162f5e4cd3a74fa7175e7881264f9e1cb41c2400817008407fe150431e530940cfa14726ceebf57a434f1edd29535252c8e3f1506a6a2a95969652414101d5d7d7537373333536364677e7d13bed04a03fed2140031412809e43830913b670baedb6db68f6ecd9d4d4d4e4fb6b525212cd993387aebbeebad088221508844900fa0b131cb21949007a0e2d2c30613f4e6c16dcd0d0e0fb6b72727287ff878615a940203c02d05f78dc90cb4c02d073f0b8c084fd1859cfde300b0e2e20a4504b00fa53cb13a5e925003d07e70f130ec0489cbd61161c5c4048a19e00f4a79e294ad447007aee9e3d4c38001f76f6366bd62c9a3b772eae05ebfbeec66ccdd05fcc863e2a3b0e3dc384a585cdee863eefbcf3e891471e21b6248d03049c2400fd39491b75d94d007a5664c237fde742bb6385f235139879ecc39a5bd075f5d09fb1a151d63093f5a7ac93bf14043dab266a5e79a1ea39e4e568269a93f79f6e5e4fd12225045efa7c01852a1a25154a1602fd4902735972d3f5a71a27f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e63d6845bbd2d54d7541556e4d293b2293ece13565e5333c98846471fa26dd082fe3aaac874fda9d63cf4fc2bd1581f4f63ce84d9e0f7f9b6d76875f187d4dcd618d6772b29218546f5fc2d8d2b3a96e22921ac324ccb64fa20182d8316f41758f9a6eb4ff5f7157afe9568ac8fa73167c2effefc04ad2bfb4cc9776aef1e13e8d081672a294b7721a60f82d13268417f306146007aeeac83581d4f63ca847754ff40afacbd57a9dffd61afaba857c660a565ea280c266c3f75e8af6bc6a6eb4fb53aa2c184a167357a8e1913f67abdf4c277f3a9ac6e9bd2ef5361fa003a69c4351447714acb75ba30d30741b70f5ad05ff78a365d7faabf8fd07360a2b1389ec68c097fb7eb63fa60e333217d97d213b3a9c5db4c8d2d7521a53f7cd0d934ace0a090d29a9ac8f441d0ed8316f40713b612809ebbd643ac8da73161c28dad75f4ec3773a8bea526a807f6cf194e7f3de8ffa8a9b59ee67f700eed6e2c0b9a272d319bce18358712139283a63535014cd8bec8407fc1d99aaebfe03d904be16613869e83c75a46cf3161c29f6c7e895615bf13905c5e6a2f62b7c86fa95ac73f3f6cd0143a79efcbf8bf1f5c710d7dbf6b055f6a1e5ab01f6ddbfd23d53455062c674cefc97460df138347c7d01432a2d1d105370f5ad05f70c598aebfe03d904b013d633c158a897a13ae6c28a6e757df4c6dded64edf92bd0b0fa273c6cea1a48464ba67d925b4b1f2bb0e26fcd067d7d277259fd221fd4fa0d3f6b982763796d3a215d7d296ddeb3b959510e7a1d347cda2ace402b96fa321a94d1f04dd3a68417fa109dc74fd85d68bd05341cf184f63c6845f5fbf903657ade9f4edd8236f1fbaf4c07bc8139f484d2d0d74c747e75371ede68026ccccfa82fde7537c5c3cd53655d19d1f5f446575db3b953928671f3a6acf8b42ff261a94d2f441d0ad8316f4179ac84dd75f68bd083d15f48cf134264c7873d56a7a7dfd839dbe194909a974e361ffa4dcd442aa6dda4d0f7c7a056dddfd43a7e5683113661f8cec7930fd65bf9bc813efa19fcb57d3bd9f4c0bf88d3b7ef8742aca1c1efab7d19094a60f826e1cb4a0bfd0c56dbafe42ef496829a1678ca7516fc26cf979c9ea9ba9a2a1b8d3b7e2883dcea413f6ba80d863230f7dc6aefbfeba7987f59ab0d584592113079d4a27eddd6ebe8f7c7e037d53fc71a7b2f352fbd0a97b5f4f7171f1a17d1b0d4965fa20e8b6410bfa9313b6e9fa93eb4df0d4d033c6d3a837e16f8adfa1659b5f0af86d983df1192a482fa235c59fd2a2cfafed90a63b1366cbd1330f7b9a0ad2fbd09ae2e5b4e8f3bf052cff37034ea39185bf0dfe4d342885e983a0db062de84f4edca6eb4fae37c15343cfc42fef613c258aca1bb31a9a6be899d5b3a9b1a5bed3b7213fad37cd39fc39fef7c7bf9c4b5fed7837641366097f3ff45c3a7ae8547e1df9eab77e1ff086af644f3a9d396a0eb1df6e394c1f04dd3468417ff2aa375d7ff23dea3e07f4dcce07e369949af0f22d2fd1d73b033f92b4578f03e892f1777201cc7df70c2af5db41abbb9930cb33b2f060baf0805b79fed9ef9c46e5f53b037edbf6eb73241d507482eaefae6de5993e08ba69d082fee4656abafee47b143d260c3dcb475f46cf5139137ee9bbdba9a476534072a37b1d4ae78dbb897f76fdff4ea4eaa68a0ee926f43f8e4edfe72afeb7fb3fb99c7e2cffbac3e743f246d3e5072fe07fbbe5fda9b4b36663c07afa64ee41270cbf523e7a9a72c888464713dd64c2d09fbc424cd79f7c8fa2c784a167f9e8cbe8392a4df85fdfdf493b6b360424b767fe189a7ed07dfcb3db3efc0bdf80c37a247bd2e8a411d3a8aeb99a5efdfeefe4a5b60e9f8fed7d389db3df6cfeb71b96fe813f3b1ce828ca1c4ac70fffab7cf434e590118d8e26bac984a13f798598ae3ff91e458f0943cff2d197d173549af017dbfe439f6f7f232039b62ff4ad935fe1772fbfb87a017db031f0cd5b5d613f75e40cfacdc013a9bab182ae5fdaf50e59e3fb1e4f637b1f251f3d4d396444a3a3896e3261e84f5e21a6eb4fbe47d163c2d0b37cf465f41c9526dcd4d6c0f78aae6bde1d90de8c8317d2e0bc91b4b37a33ddfae1546af3769ced76853c2d318be61cfe2ca52666d0f2cdafd333dfdc11306946520e9d3e6a3625c6bb672f6919d1c84b32f21c6e3261e84f3edea6eb4fbe47d163c2d0b37cf465f41c9526cc90adddf509bdb7f1a980f4c6f49e48e7ee37877ff6fabac7e8cd1f16874479ea989934aee808f27adbe8f68fceefb4942d0af9dd1e7fa6a179078454a629896444a3a3cd6e3261e84f5e21a6eb4fbe47d163c2d0b37cf465f41cb526ec252fb11b0a76d56e0e48f0b203efa3a10563f8861d2f7fb790dedff04297a4e3e312e8e41197d1a183fec0d37cbce9557afedbbb03a6ef953188feb017bbb1cb5def1796118dbc2423cfe1361386fee4626ebafee47a133c35f48cf154a8246a4d98757067cd4ff4afef039b6556723e5d31e141ca4febc559acddf505fdefc7a7e8c7b255be9bb1d8bed2230a0fa4a3f79c4a7db3f7e4e93654aca1ff5b3e839adb1a037ed34e1e710d15a60f0cfe2d342c85e983a0db062de84f4ee0a6eb4fae37c15343cf184f63c2845927dffef931faa1ec8b80df8adc94423a7fff5ba85ff650dfe70d2d75545eb793efe6c236f6b0be2398edb0f5c4ca79d4d0521bb0bce10507d2c4417f0afe0d343085e983a01b072de82f74a19baebfd07b125a4ae899f88e85184fa374b30eebd7a0a6a9829efb762e35b73505fc7624c427d2c441a7d0e1834fa3cce49c80694a6bb7d39b3ffc93566c7d9388bc01d330b3fee3a839c4eebe76e361fa20e8d6410bfa0beddb60bafe42eb45e8a9a0678ca7313313661dfd72fbebf4d9b6d7bbfd86b0f701b3678807e4ee45d9c9f9fce6abf28612da50fe2d5f8266d7f8ba3bc6f73d81c6f63e32f46fa161294d1f04dd3a68417fa109dd74fd85d68bd05341cf184f63ca845bda9ae8d9d5f3a8a68b8d3542ffea044e99955c40a78f9a45ccc8dd7a983e08ba79d082fe827f2b4cd75ff01ec8a5809ebbe6156be36954df98650df38fe55fd0d29f1e93fba68498faa82117d2a0dcd121a6363399e983a09b072d1671e8af7bdd9bae3fd5df5ae8b96ba2b1369ec68c09b390ff7bed3db4bdbae33695917eb9fa660da5e386b9677bcaaefa6bfa20e8f6410bfa83095b0940cf81f5108be3694c997069ed667ae1bbdbbbbcb94ad690e3289e4e1d793de5a5f691cd6a5c7a98b0fd2181feba666cbafe54ab231a4c187a56a3e798326186ec93cd2fd2aae28eef100ef70b36b6f7641adfb7ebfda3c32d57473ed307c16818b4a03f3583968eef87ea3aa1e7ce4463753c8d3913667739af2e7e9f5615bf43d561dea8c536fa18ddeb081a5978a8eb76c6c272b4eae154ae3ce82f302fd34f02e5a21c3c75b49830f41cb99e63ce840532b6a96457cf0e07fb0a79e293822571dde7a60f82d13268417f910f5aaefb72056830f4fc2b94581f4f63d684a3e18bacb20f3061953451962c01d3f527db9f60e9a3cd8483f537d63e97d1334c38d6d4d1457f6544a30319062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a3676d26fc9f97fe43d74efb1b27f7e4ab4fd2d803c6f07f3f74cf227ae08e0768d8dec3e8ee87efa28af24a3afbf8b33ba4310b7768ad69a86fa0db67dfc1135f3bf71a4a494d0998f1abcf566ae9af8c6842ebb1da54aa072de80ffa53ab50b9d2a067395efea9a3693c35c2842fbde652baf88a8b48805df2cf253e131e34645064d142ee9008c4b209437f2149c4d644a6eb4f75e7ed3461e85975b4e4cb93d1b376133efa84a328333b8bcf0e776cdb41575e78150d1e32887efe7143c099f0861f37f034ebd6aceb308b16334826403693164214336b96f8d43f9ddaed2cb4abb495e59574cdb46b69d97bcb3ad429da32e1b707d3b20f3ea1bd47ef4d6c27ae048fc7570f2b73e5e72be9a6bbe7d1a2fb1ef6cd84df7ee36ddf4a8008315b11608775e6ef5ff7ed0b6fa3634f3e565e154172c8884679e5211468d7a005fdfd0a1ffa0b41888a9240cf184f8594b49b3033cba5af2fe586bb66d51a7af5c5d768c26113e8df4bfeddc984993933333c7eca71dc8884c1ddb1f0766edaccbc84f9b20e5a3f67ff6779c7ec3f86cfbafd0feb32706e5e0e37fa732f39878ef8fd111d969199793ef6e0e3bc6dec60e946ef37da67ba6c9993f581b5c95ae739b227dd81000020004944415417ff39e072b430f282c2029e47f4830d88a2bfa2cd762e55c7aa09437fed27b5d1a8bf65cb96d121871c42f3e6cda3993367f2ef637d7d3dcd9831833efdf4537afef9e769d8b061fcef81d22af2db80c5d865c2d0b3fbf4acdd84ffef8905f4dce2e7b9b16ed9b4954a7696d088517bd1b34f3cd7c984999a6fbeee66fe77ff656a7f83123348abe932831406da557e5687f51ab5304966c8ccf8c5ff6fbcf546b29ab5989d5a3fb7ce6a599f025d1316b36f31c3b5f6c37f561cea759070068f583561e8affd1e8c68d45f2c9a30f4ec3e3d6b37e1479eff3b2d7dfd6dee1bdbb66ce366cc0e6196d61bb3b66fd916d4448581fa9b272bb33b13b65e8f1626665d9ef337363668b1e567316316262cca29ec55c8b3b0a56836c3653762f99bb030dc091327f034397939643561fffec284a787737e11308fb8310bfa3b9ba03f65b20ab920bb66c2d0b3fbf4acdd8499d131b3b1de296d351fab09fbcf0cad8a979d09b3a56f51a775095b9835fb8c0d4ed3ae9a4673af99cb97a6fdafc506327aabd917f4c8a731078ced70d319fb9c5dff6607336576139a75e68d9970e071ccae410bfa83fe42764e8509a1678ca7424e4698b030577146fef17b1f079c09fb5f23b5ce6c033dca24734dd85a56efa2debe59ebe5d74da7fb6f5dc07931f30c744dd8dfa0ad378f0983f59fc57ef7edf7fc1ab6ffcd625613c635e15f473d3b072de8efd747e6a03f854edb4d51d033c653a34c58984d51bfa24e46e76faec1ee8eb6ce2a5927ad773cfbcf78fdbf23d6b4e2396576ed38d8ddd1fe262c0c972daf8b65667f137efca127f8b538ebc1da37fe90f1ddde1deddf3f554346ac5e13b6de0007fd417faabe4fc1cab1d384319eb6d377cb78aa6d261c4ca4f8dc5902b166c2ced2456dc10898aebf60ed97fd5cb509cbd68ff4f61290d1334cd8de58b8a67419d1e8e814062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a367d798b0ff1dcad60d0664f0b347305e7bf1b56ef790eeaebc48f3fb97cdeef67ef0ae07e986f937f0cd3a741d32a2d1d146dd8316f4676fd44dd79feade43cfed44319e12b9c284c50028f68c66c1b3eed1eca4794134aa87a3d0cad33968417fa1c528925430e148e8c9e5859ee57885935a46cfae3061365bbcf5c65be9ba9baff3ed192d8474d18c8bf81ece6c363972cc28ba63f61d1d5e83c84c73d13d0f51e9ae32fea285238f9b4c6fbdf63f129b70b0ed25c5f3bad6e788c5a6052c00ecef6c4f6bb65907db6483cda43332d2f98622d619b9ffd69781f6a0666f7f127958d9e2ed4ce1ceecc31148a03c32a25155a74c393a4d18fa93895478694dd75f78bdea3a17f48cf154a8c315266c35b7409b55880d3c261d33896f11c966c95faef8ca679ad6973e8899acff4e58cc5c45badcbc5c6e8ecce0fd5fbc2076ba121bdeb30d3ed8c1ea65ffb69ab57f79d6b73f8974ecf58d588e0e3ec4e91cb4a0bfe0f18934054c385282a1e7879e4367156e4a193dbbc2840508ebec94fdcdfab206eb4c99cd926fb9fe16bae4aa4b88edb8b5e8de451d5e90c066b2c284f71b3f96ef09ed9fc77addd8ba04cd4cd85a9eb8a67bd5acabf8fb828f9b721c8d3d600c09a1b3f2d98b1eac466b9d59b17ec084834b5da709437fc1e313690a99412bd2ba4cc80f3db7df9783f1d425d784037d69ba33b2500c5598b0304d6b1ef672073193666f3ff23761ab410b13664bd6b7dc309fcf9e9909b383cd8cfb0de84b7dfa1575306e6b5d30e1d0864413062d6b4ba1bfd0e2166a2a9870a8a4ec49073dabe52aa36757cc849909aef878055ff215879869321365d784ad3361aba0d84c38d0acb63b13ee2a4fa033377ecdf9de4574d3ddf3301356abe30ea5e93461e8cfc6c0fe52b4cca0657f6becaf017a0e3c138ec5f1d415266cbd094bcc3259b0c43557f695b1bed7d7ff9ab0ac0987724d582c85e39ab0fd0316ab41e7a005fdd91f6398b0fd8c450dd0b3fdac65f4ec0a1366c8fc9fd3b4bee5482c09676465f2f7f3fabfa45cd684d99b93c4f56756cf1fff7c3abf7611e8ee68ebab0865ef8e668f56897eb13e8a372ed92f91ce35c8884647fb749a30f4677fc44dd79f6a02d033c653a129d79870775f02bb37bcb0ce76557f194d29cff44150f7a005fdd9ab54d3f5a7baf7d073fb1325d17ac8e819261c4005feef2cb6ce76211a3d046269d082fef468ccc95aa1e76b88ddf41aad47cc9970b406d2c97ec988c6c97689ba4c1eb474f088b63a4dd79f6aded0b36aa2669527a3e7a898099b85df9dad91118d8e1e62d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a7695098bbb8fd97ecf915ed4b7deccf5f38f1bc27eb39275e38dde45bde9f6d977f876cd324b16ddb74646343afa65c2a005fdd91779d3f5a7bae7d07360a2b1389ebaca84c5ce552c7c97ff6d7a44affe537547b55534ecd126b71ea60f82260c5ad09f7dea365d7faa7b0e3d0737e158194f5d65c2ec51a1f1878ce7bb67b1ed20d99ecfec1083a3ff9b8dd8dd776c66ca5ec2f0ec13cf117b839178f142773361568f78b392d894c3ff3965b64de53917ff9997cf9e4d66cf13cf5f700b3dbf78896f266cbdcbd5ffd9e5671f7b86b7fd8d57fedbe1ad4faabfeca19667fa2068c2a005fd85aa26f974a6eb4fbe47dde7809e2b7d6f9063a462793c758d093313bcffb6057c065c515e412f3ff3324dbb7a1abfcd5d6cace1ff66236192dbb66ce31b61b07c627b4b1678f1e204eb72f4db6fbc4d5b366de5cbddfe2f67102f7bb06e8bc976d7122f8bb02e470f1e32888b2cd09b93c49b9898c18bb734a958628f64a0307d10d43d68417f91a82b785ed3f517bc077229a0e78709e369bb665c63c2d6fd7bd9b5b985772ea493ce3889bf5f58ec372a769ceaca3c5987c54b15ac6f361226ecbf9f74575f2beb127457262cde717cc3fc1bf8b2b9ff7ed6d63731b16d3685f1cb7d95d5a5367d10d43d68417feab416a824d3f5a7baf7d0f3af44637d3c758d095b978845f8c4ccd7fa96233633eeeaf582c14cf8c2bf5e40b3ae9cdde14d48a22effd7288a6d33bb326196cf6ab4ddbdd909261c7c88d33d68417fc16314490a987024f4e4f342cff2cc6472c8e8d915266c9d458a8bf5fed774fddf196c7db39158f6e8ea1dbfc166c2fe1b9eab3873b3ee670d130e2e6f9d260cfd058f4fa4296406ad48eb32213ff47cad6fb213ebe3a92b4cd8fa5624b1d599d518d997eaece3cf26ff371b896bc2ec73f6f2851ddb7604bd26fcf8434ff0efa8b826ccae21b36bcf0bef7ad0271ad69ec71e7c9cee7ef82e0af79a304c586e28d43968417f72b10a27354c381c6ae1e5819ec3e326934b46cfc69bb075f62aee861630d8924ac9ce123af2b8c9f4d2d32ff13fb3bb8dc55ecfecffecee6576d393ffddce5ddd1d2df2b03b9ed9218c9d09f7da697fe37f9b73e76cfe5625f62e637163d5aa2f5749dd1d0d139691b4be5719427f72710a37b5cca0156e1d26e5d37552093d3ba302193d1b6fc2a120f3bf262cf208c131b314ef210ea5bc584c23231a1d7c740d5aa1f415fa0b8552f7694cd75fe43dec5802f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9ea3c284cdc2efced6c88846470f4d1eb474f088b63a4dd79f6aded0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a367291336ab9b688d6a02338f7d587591caca6383168ee82660b2fe5493879e551335afbc50f51cb2099bd745fb5ad4dcdc4c53a74ea5c58b17536262a27d15a16410084000fa832ca28900f4dc7d3461c201f8cc9f3f9fe6ce9d4bb366cda21b6eb8219abe0fe88b0b08407f2e08129a183201e819261cb25844c29494146a6c6ca4a4a424fe1b0708384900fa739236eab29b00f40c1396d2183b6b9b376f1e37dfe4e4649a39732666c3520491381202d05f24f490d73402d073f0886039da8f91386b137fc66c38b88890421d01e84f1d4b94a49f00f41c3c0630610b23eb599bf83366c3c14584146a08407f6a38a214330840cfa1c501266ce1c40cd7e3f15046460695949450616121d5d4d410bbbbafa9a92934a2480502611280fec204876c4612809e430b0b4cf8174e6fbffd364d9932851e78e0013aebacb3282e2e8ebc5e2f3df5d45374d96597d192254b68d2a449a151452a10902400fd49024372a30940cfa1870726dc052b61c2a1a3444a10504700fa53c71225e927003d771d0398304c58ff37142de84400831644114d04a06798b0b49e211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a067987050112e5dba94a64c99420b162ca0a953a79210cde2c58b69faf4e9f4c20b2fd0e4c9938396830420100e01e82f1c6ac8632a01e839f4c8c479bd5e6fe8c9a33b654a4a0a793c1e4a4d4da5d2d2522a2828a0fafa7a6a6e6ea6c6c6c6e8ee3c7aa79d00f4a73d0468804202d073683061c2164eb7dd761bcd9e3d9b9a9a9a7c7f4d4a4aa23973e6d075d75d171a51a402813009407f61824336230940cfa1850526ecc789cd821b1a1a7c7f4d4e4eeef0ffd0b0221508844700fa0b8f1b729949007a0e1e1798b01f23ebd91b66c1c10584146a09407f6a79a234bd04a0e7e0fc61c2011889b337cc82830b0829d41380fed4334589fa0840cfddb3870907e0c3cede66cd9a4573e7cec5b5607ddfdd98ad19fa8bd9d04765c7a16798b0b4b0d9ddd0e79d771e3df2c823c496a47180809304a03f2769a32ebb0940cf3160c2cd4d2d545fdd4075d50dd458dfc87f37d53753435d1335d635f2df49491eaad8b59b5a9a5aa9a5b9855a9ad9ef56ca2ec8a4b21d15e46d23624f6bf19f362f15f6cba7922d6514171fc79f19e63ff144057df2a8aa7437257812c893e8214f12fb9d40997919e46d6ba3e4b4644a4e4da2e4b4244a494da294f4244acd48a1d4cc144acb4ce17970441701e82fbae219ebbd819e9d55802b96a32b4b775375592d5557b09f3aaa2eafe1ff6e6d6da38a9d55c49e744e494ba2e4f464caed91454c441e6692491e4a4cf650629287925292283e3e8e9b6782279e121212289efdf6c4fb4c96b8d992efff565366611106cdea6d6d613fadfc775b6b2b6f4b734333af9bfdb436b7526b5b2b35b213817a7632d0440d758d14171f4f7d87f4a4a6c666cacc4da7ccbc74cacc69ff9d959fc1ff86c32c02d09f59f1406b2223003d47c64f756ea34cb87c67159f95966eaba48ae22aaadc554dbbcbaa29a7308bcf20d98c32252db97d66999ec267996cd6e9a6d9259b853343aeaf6da0fa9a46fe9b99337989f7bda1b6919b714e8f2c2aec9fcfff9ddf2787f27a66ab8e3dcaf32300fd417fd1f4a5809edda1676d26cc4c76e7c652aa2aada6cdeb7650f98e2a3e0bcc2ac8a0f4cc344acf4ea38c5f7ed89270ac1c6dad6d54bbbb8e6aaaeab821579555ff32f3afa3bcded93460af22caca4ba79e030b60cc118802fa0b0c0ffa8b40541ab342cfeed5b363265cb6bd92b6acdf413b36eca26d3f96506a7a329fe1b2191e33dcacbc0c8a8f8fd72863b3ab6e6b6ba3eaf25aaad95dc757092a4aaaf875f0a2213da9d7a002ea37ac3715f4c935bb131a5b07fd45061ffa8b8c9feadcd07364444dd2b3ad26fcf3b75b68eb0fc5f4d3aacd7cd9b8a02897f27ae6f0ebb689c9899151446e7eed99dd6c56b1b392766d2be7d79e07ee5d44034714d1a0917d639e10f467af04a03f7bf9fa970e3ddbcb5b979e959bf0e6b5dbe9fbcf7ea60ddf6ea55e030ba857ff1e94df27979b300e7b09301366665cb2a5948a3795d21ea3fbd3b0fd0751bfa1bdedadd8a0d2a13f7dc180fed4b3879ed5330db544a7f4acc4849b9b5be89b0fd6d1ea4f7ee04ba26cb6db7b500f2c2f871a6d1bd2b16b7bdb37945075450d156f2ea35113f6a491870ce5778a47db01fd9917d158d29f6afad0b36aa2919767a79e233261f63cedf2ffaca42deb77526e8ff69b86d89dcb38cc2250575d4f9bd76fa79aca3a2a1a5248e38f1e6d5603c36c0df417263887b345abfe5463849e5513b5a73cd57a0edb84d77db981be5cba9a7a0f2ca43df619604f6f51aa72023faeda489bd66ea30927ec4743c70e545ebe5305427f4e91565b4fb4e84f2d1522e859355167ca53a1e7b04cf8eda73fa186da26dae790e1cef414b52825c0ee0cfcf6e37594919746134f1dafb46c270a83fe9ca06c5f1d6ed79f6a32d0b36aa2ce9617a99ea54d78c9ddffa5c1a3fa5361df7c677b8ada9413d8f8dd16aaaeaca563ce3b4c79d9761508fdd945d6f972dda83fd594a067d544f59517ae9ea54cf8c3973ea7b48c34beaf328ee8205055514d3b37eca249671d6c7c87a03fe34324dd4037e94fba73413240cfaa89ea2f2f1c3d876cc2ab97ada72deb76d2de070ed5df53b4402981d59faea78123fad0880387282d576561d09f4a9a6695e506fda926063dab266a4e79b27a0ed9849fbfeb0d1a317e4fcacecf34a7b7688912026cebd0b55ffe44a7cc384a4979761402fdd941d58c32dda03fd5a4a067d544cd294f56cf219bf03fe7bd42874d39d09c9ea2254a09bcffe2a7f4a759272a2d536561d09f4a9ae69565bafe5413839e551335ab3c193d876cc20f5df52c1d72c238cc84cd8ab592d6b0579b2d7bf54bbaf8ae3f2a29cf8e42a03f3ba89a51a61bf4a79a14f4ac9aa839e5c9ea59ca84d9f687782cc99c60ab6ac9aa0fbfa7ad3fee34de84a13f551137ab1c37e84f353166c2d0b36aaa669427ab6729131e3caa1fe5166653af013dcce82d5a1131811d1b4af8eb247ffa76b3f1260cfd451c6ee30a708bfe548363260c3daba6aabfbc70f42c65c2c79c3b9196bdf625edb14f7f18b1fe7847dc829d9b76117b33cbc1c78ea5d71f7bcf781386fe220eb95105b8497faac13113869e5553d55b5eb87a963661d6cd6f3efa9e5a5bdb68df4347505c7c9cde9ea37669026c8797afdfff8ebf4e72d484613cbf5b4c18fa930eb77119dca83fd510850943cfaac93a5f5ea47a0ecb845937b7fd544c6cdfccde830a69e89841cef71c35864560dd573f53c9e632da63f400ea33a8d057869b4c18fa0b2bf4466472abfe54c3b39a30f4ac9aae73e5a9d073d826ccbae9f57ae987951ba9646b19e5f5caa181c38b282d2bd53902a8292402b5bbebf94b1bca7654f0f73b0fd97700c5c5755cc1709b09437f2185de8844d1a03fd520fd4d187a564dd8bef254eb39221316dd64d3f18d6bb6d2c6b5db28bf570ee5f7cea5de037b508227c13e1228b95b02ad2dadc46e1228dd514115c555346078110ddcbb6f97ef7876a309437fe67e09a24d7faa49073261e859356575e5d9a96725266cedeaae6de5b4edc79db463e32e2ae893cb97ab0b7ae7524a7ab23a2228292081fada062adb5149db7f2ee1b35ec6beef905e3c0ec10e379b30f4172cbace7c1ecdfa534db03b13869e55d30eaf3ca7f4acdc84addd2dde5cca67626c469698e4a1823e79dc10720bb3282925293c32c8e523d058df44ecc1f0d26d1554baad9c5a9a5ba9f7a01e9c7161bf022952d162c2d09f54d8234a1c4bfa8b085480cca19a30f4ac9a7cd7e5e9d2b3ad266ced6e75452d956e2fa7f2e22a3e5b4b4cf6f0678e0b7ae7507a761a65e56560f9ba1bbdb1e590dde535545b55cf395694eca696e616bef4cf4e6a0a8af22833273d6cc546a309437f61cba153c658d79f3a92ed258563c2d0b3ba2898a467c74cd81f5f6d551d559454b59bca8e0a6e30a9e9c994d3238b9b32fbc9f8e5774242bc3afa8697c41efd626c6aaaeaa8b692fdaee59b69d4d736f2131536cb656c98f1a667a529eb4db49b30f4179a54a0bfd038459a2a5213869e438b801bf4accd84032164c6c3ccb89acff87e31a2aa3acacccd204f5202a566a4506a7a4afbef8c647e9d393925893fefea96a3b9b1991a1b9aa8a1b691ea6bd84f43fb4f6d03353534f37efb4e4072d2282b278332f333f809899d47ac9930f407fdd9f97d0a56b66a13869eddab67a34cb82be1d65537505d75bdcfacda8dab91da5adba8bab296d8d242726a12ffc92ec8a4d6e656bedc9d9894f8cb6f0f25a526517c5c1c5ff28ef7c4f3df09ec77423c7f5c876d3ac27f8b9ff838f2b679f96358be1ffe7fa2d6d6566a6d69e3f58adf2c4d537d133537b55073630b353735f3df09890954b5ab9a1b2fbbe6c0ea65335a560f3b91683fa1683fb948cb643f7a1ef18209773d6c427fc12c25f2cf4dd75fe43dec588213268cf1d41de3a92b4c38d8178099313338f6c3ccafb1bedd0085113263f42426f0255e669c6d1603cdc849a3cad2ea4e869bd73387ca8b2b3b19734e8f4caaa9a86b377061e49e043e536d66e69fe4e97002909c92488929897cc6ce4e12e20d5d5a377d10d43968417fc10844feb9e9fa8bbc87e69870b0be603c0d4628f8e7327a8e0a130e8e0429821190114db0b2ecf8dc6413b6a3bfb156a6e9fa531d0fe8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dbbce84173c742fddfdc01d1d889f79ead934ebdab99492127cb7a92fbefa8cb66edf42271e7b7297516b68a8a779b7cfe69f875aae5912906f8d8c68e44b8f3c87298316f417792c039560bafe54f71a7a564dd4acf264f4ec4a13fe62e56774ff1d0b2937278f2a2acbe9f26ba651dfa27e410df3a70d3fd2a5575e44179e7b314cd84fb332a2d1217793062de84fbd024cd79fea1e43cfaa899a559e8c9e5d6fc20c3d9bdd9e7cf609f4d293ffa671630fa057fef3125d7eeda53c2a2386ed4d0fdcbd88f272f3b8597fb0ec7dfef72b2fbd86a65f3c83ac339bdf4e388c9b7b6a4a2a9f0957d754f3b4afbef18aaf9c3d060de17f0b948f9d1408a3ff6edd1a9e4eb4c9da4ef66f5117cb63c221231a1ded3575d082fed4a8c174fda9e9e5afa540cfede332c653a2a83061eb0c77d4dea3e9be07efa67937dcc2156f9d256fdbb1adc34c9899f7cbafbdc867d0e2b3a3271d43179c731137e195abbeea60e062b6bdfabb6fbbcdc7ea6565fefdf14524664de515e5beba8f3ae2f7c62d779b3e089a3c68417f915b94e9fa8bbc871d4b809e7f5dbd8cf5f134ea4c585cebb5ce86c535637f13165f0bebac96cd9085090b3365d79a59790f3ff65097676fd67c4f2f7992fcaf53fbe767ff7ff9d5177dcbeaaabfe4b2e5993e08ba65d082fe6495d79ede74fd85d7abae7341cf184f853aa2ce84fbf6e9c797a699095e7df9dfe8cefb6fe37db5ce76c5356161d4cc40cffee3543e6b1e37e680a026fced9a557cb9db3f1f5bde164be302b03063362bf6bfa14c2c958b2519d55f7499f24c1f04dd3268417f32aafb35ade9fa0baf57ee3761e839bcc8cbe8392a4cd87a4df89315cb7c4bc0e2da6e2013f65f12ae6fa80fc984ef9e7f3f3df5fc629fb15bf331131687b8618c5d83befff607f89ffd67d2e185d79e5c32a2b1a705dd976ab209437f912bc274fd45dec38e2540cfed33618ca751704dd8ff71a237df7ec367761515e5be5971a099305b8616d76c3ff8f83ddfec562c47b365657663d51e838774b8b66cbdd66bcd679d4d5b67c5ac8cdcdc3c5c138e60243375d082fe2208aa252b4c580d47d952ac6320bb49147a96251838bd8c9e5d3913eeee3961eb0c942df71614f4a038a20e773d8b6bb6679d3695aebcfe726277328bb4fd8afad135975f4777dc7f6b87bba3ad77335bef80b6e6b31abdb83b5adc85cd42655daac6ddd1726237c984a13fb9d885925a66d00aa53cd3d340cfed4fa2f83f51128be3a9eb4cd8f42f975bdb67fa2068caa0e5d6f89ade6ed3f5a79a1ff4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac4490987d00000a2d494441549aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e8d995262cee809e7ed10cbe57b438d8e61b9bb76ce67b428b5bedd99dd0ecf0dfc18adda9cc9e293e78fc04fe1893f52e66965ed4c1fe2deee2531166d1ae938e9bd2a1ed2aca8ea40c19d144524fb8794d1ab4a0bf70a3d8753ed3f5a7bac7d0b39a3df3a3613c8d5a136686cc0eb68da008d401fb8df7bd3d893d1fc70c989beca27b29273b87ef372d5ea8c04c3ad0df23fd324683682265104e7eb70d5ad09f5c9461c272bc54a60ee5a4127a96232ea3e7a835617f644c449f7db9826f5fc98e7b16de45a79df447621b7ab09738646464d2e48947fa66a7cca40b0a0a68f9679fd0f557cda4ff5b741f5967afc2c4478e18c55fc62066dc6c772cfffd83d9b36f6c230fb651b978061933613951bbcd84a13fb9f8ca0c5a72259b991a7ac6782a94193326cc4c931d6ca99a6db6f1fccbcfd215d3aee2c6c84c989969696929ff9c9d19b23da799512e7ef6713e43663b6389a56ef139db9bbaabbfb3b726cdb97526cdb9ee262aea5de47b6b124c38bc41d1ed8316f4d77ddc61c2e17d2f54e40a6526ec5f0ff4ac4ecfae3661f16e602b0eff6bbbec33b6b4bc60d1bdbe6bbbd6a515f13ac3334ffb132dfac7426eb83ffdfc23bf5e7ccc51c7f95e8bc84cd56adcec7366d8d6ebd0d6765867deec2d4ca21e987078c38689260cfd8517cb40b960c2ea58ca9664dd65d03f2fc653599aede965f4ec6a13eeeec62c818e99dfcc9bafeff40a42763d98ddd425cc91cd6a1ffac742be44fdfa9baf51ff7efdc9fa6e62f63208b184cd3e17f9593dd65721b27da259b9fee60c130e4fcc229789260cfd4516536b6e99414b5dadfa4a829e319ec6c47274a077f65a9792d94d58c21cd9b562f6f287d2b2325ab57a25fdf5922b39a3fb1ebcdb77c3162b8f7dfef3c61ff96b12c54d5c02262b7bd62d37f0bcec7587e21a3466c2910f766e1cb4a0bfd0e30e130e9d95ea94a12e4743cfa19397d173d4ce84fd97a0ad3363b1942c96aad9356166c2ecfab07817b1781983d584c58b1b8e9e740c5f8a16b360366b663763590d9e2d5f5f7ae54574d38df3f9f56676f3163bb01c1dba90ad29dd66c2d09f5c9c65062db992cd4c0d3de7f17b73d81819ebe369d49ab07589587c0dd9b3c2fbee33969212137d77305b67c2e2ddc0271d3f857fce446235e1408f17f95f4f11cbd1c2e099a9b3835d5bd959b203261ce698e8b6410bfa930b344c588e97cad4a1cc84a16739e2327a76a509cbe15097dadf94654ab69a3d5b9e36ed90118d8eb69b64c23afacfea84fe7491575f2ff40c3d0b55c18443fc7e8977015b67ba2166e5c960c232b43aa78df5410bfa8b4c3fa6e5869e3fe397fe309e12c1844dfb766a6a0f66c29ac0a35a4ec074fda90e53ac9bb06a9ea69527a3e7904df8e5fbff47e326ed635a5fd11e45043e5ffa0d9d7cf96445a5a92f06fa53cfd4a4124dd79f6a56d0b36aa2669527a3e7904df8f9bbdea011e3f7a4ecfc4cb37a8bd6444ca0b27437adfde2273af58aa3232ecbae02a03fbbc8ea2fd70dfa534d097a564dd49cf264f51cb209af5ef6036d5abb9d461d34cc9cdea2254a087cbb6c2d0d1ad997461c34444979761402fdd941d58c32dda03fd5a4a067d544cd294f56cf219b30ebe2c7fffa92925292a8d7801ee6f4182d8988c08e0d25d4dcd242879c3036a2729cc80cfd3941d9d93adca43fd564a067d544f597178e9ea54c9875f1857bdfa401c38b60c4fae31d710b766eda455bd66fa7932f3f32e2b29c2a00fa738ab4fdf5b8517faaa940cfaa89ea2b2f5c3d4b9b30ebe23bcf2ca7daddf534fa90bd282e3e4e5faf51735804dadada68d5476b292b378d269e7e605865e8cc04fde9a41f79dd6ed75fe4043a96003dab26ea6c7991ea392c13665dfc61e526fafcad6fa867ff1eb4e7be039ded356a0b9bc0fa951ba8745b398d9b3c8a86ecdb3fec72746784fe744720bcfaa3457fe1f5beeb5cd0b36aa2ce94a742cf619b30eba2d7eba5cfdffc9636acde4ad93db268e0f0224acb326f372867c2616e2d6cd562d3da6d545152454346f7a7719347525c9cfb5730a03f7335676d59b4ea4f357de85935517bca53ade7884c5874b1ada58dbefe702dad59f603e5f6caa6bc9e39d47b600f4af024d84301a50625d0dad24aec2681b29d9554b96b378d9cb0278d3e7438c527c407cdebb604d09f79118b25fda9a60f3dab261a797976ea5989095bbbb875fd4efafeb39fe8e76fb75261df3cea39a00715f4cea594f4e4c849a0846e09d4d73650d98e4a623708b025e74123fbd18803f7a0a2213d63861cf4a72fd4d09f7af6d0b37aa6a196e8949e959bb0b5831bd76ca3ad3feca09f566d214fa2870a8a72f92c39b7308b3fea842332028df54dc41e0c2fdf5949bbb655506b730b0dd97700f5ddb3270d18511459e151901bfab33788d09fbd7cfd4b879eede5ad4bcfb69ab015597971156d5db793b6ff5c42db7f2aa1c4640fe5f6cca6bcc26c4acf4ea3acbc0c2c5f77a331b61cb2bbbc866aabeaa9bcb8925fdf6d6e6ae1b3dcde837a50bfa1bd384f1c8109407f912903fa8b8c9feadcd07364444dd2b36326ec8fac725735156fda451525bb69ebfa62be8c9a9699c26ff04acf4ce5c69c919dc67f2744e175ccae24d4dada46b5557554535547b5957554bbbb8eaacaaaa9bea681f27ae570b3cd29cca25e030b28bb005b8886fb5584fe029383fec25594de7cd0b37bf5accd840321ab2cd94da53b2aa96c5b059517efe63714ed2eaba1acfc0cf22426506a7a0aa5a425536a460aa56624f3ebccc9294994989ca8f71b20517b73633335363451436d23d5d7b09f06aaaf6ba486da06629f5557d451767e06651766515ecf2ccaef934b057d7228a74796442d481a0e01e80ffa0b4737a6e6819edda167a34cb82b31b365d8dd65b55453514bd595b5545d5e4bbbcb6b892d295414efe6d74293d393b941b359624b630b376d761d9a2d7b27267928293589e2e3e2f89277bc279eff4e60bf13e2f9e33a6cd311fe5bfcc4c791b7cdcb1fc3f2fdf0ff13b5b6b6526b4b1baf5ffc66699aea9bf8127173630bb534b39f564a4c4ae0b3fd86fa266aac6da484440fe5f7cea6b8f878caca4ba74cf6939b4e1939e9fc6483fd0d875904a03fb3e281d64446007a8e8c9feadcae30e1609d6666c8669475d50dd458d74875d58dc42eb2b39f869af67f7b923c7c66ddd2d4cacd5198249b75b2a5706eb4cc647f31de1e7df369d7d6b25f0dfa1793ceef9dcb978785c97b92dacd3ea74726b534b5f01381e4f4244a4e4dfafff6ed200540180602a0a72afdff83c5de45161641999b5092ca34b05470dbe758b7f6638ef5a9fd7af6dbd6d3697e6fddfc7defccbcf1bd80797e773a7e11c2ef92d98d000102040874048470c751170204081020100b08e1984c010102040810e80808e18ea32e0408102040201610c23199020204081020d01110c21d475d0810204080402c20846332050408102040a02320843b8eba102040800081584008c7640a081020408040474008771c75214080000102b1c009f0d85e2e8a834b040000000049454e44ae426082); +INSERT IGNORE INTO ORDINE (`id_ordine`, `anno`, `data_ordine`, `urgente`, `ragione_sociale`, `nome_reparto`, `id_dipartimento`, `codice`, `nome_nazione`) VALUES (1, 2020, '2020-12-13', TRUE, 'dottore', 'Falegnameria', 1, 'COD', 'Italia'); +INSERT IGNORE INTO RIGA_ORDINE (`id_prodotto`,`id_ordine`, `anno`, `nome_reparto`, `id_dipartimento`, `codice`, `nome_nazione`, `quantita`) VALUES (1, 1, 2020, 'Falegnameria', 1, 'COD', 'Italia', 1);[/comment] + +[comment]INSERT INTO CLIENTE VALUES ('dottore','PPPPPPP','ciao@example.com','08111111','mice','DFO383AFA','pippo','www.ciao.it','08113434','bakugo'); +INSERT IGNORE INTO TIPO_ORDINE (`id_tipo_ordine`, `nome_tipo_ordine`) VALUES (1,'fornitore'); +INSERT IGNORE INTO TIPO_ORDINE (`id_tipo_ordine`, `nome_tipo_ordine`) VALUES (2,'ignora') ; +INSERT IGNORE INTO PRODOTTO (`id_prodotto`, `created_by`, `created_date`, `last_modified_by`, `last_modified_date`, `descrizione_prodotto`, `prezzo_unitario`, `scheda_tecnica`) VALUES (1, 'anonymousUser', '2021-09-15 15:17:04.766', 'anonymousUser', '2021-09-15 15:17:04.766','Pentola in acciaio inox',14.50, 0x89504e470d0a1a0a0000000d49484452000001e1000001f90806000000b6cf86f80000825a744558746d7866696c65002533436d7866696c65253230686f73742533442532326170702e6469616772616d732e6e65742532322532306d6f646966696564253344253232323032312d30362d3134543133253341323225334131352e3530365a2532322532306167656e74253344253232352e302532302857696e646f77732532304e5425323031302e3025334225323057696e3634253342253230783634292532304170706c655765624b69742532463533372e3336253230284b48544d4c2532432532306c696b652532304765636b6f292532304368726f6d6525324639312e302e343437322e3130312532305361666172692532463533372e333625323225323065746167253344253232767a6e49774663496e59374134333047412d545525323225323076657273696f6e25334425323231342e372e37253232253230747970652533442532326465766963652532322533452533436469616772616d2532306964253344253232734e3869355a3476387363586a5653744a6c62582532322532306e616d65253344253232506167652d31253232253345374c315838253242504b665362386158527046584b34524534456b5968343430496b63694c79703325324652253246356c6a535a62733358314c33765857636d724f496445496a66376c30412532466e54796a58486449636a36552532425a486e374a77544b6a6a253242682532464a3851424559773676344149253242657645514c4866673238357972376664466642707a71796e3850517239483179724c5033397a3454494d37564b4e667a7559446e3266703876666a4d587a504f7825324665316b787448383736786925324638373862634e4b34253246667452763871573874636f685a42253246475a667a366c332532424d544e4d304c2532464f645045664625324639657961654d7332482532467179465525324242504b7a634f7725324650725748567a6541754c39515a646639346e25324677646c253246653745353735662532466d527547494a304e715758555575316b35763276577a7a412532462532464c374b567663727238583746543925324231343841706d414d676a456a474e627066465344663266454b4b3970324b54253242663732427425324625324247506d4d635125324257754a7925324636555a4d4b31675857777a3938692532463762774978397958394d48647825324235634c2532466e67533037253246584e70365250353534722532425058512532462532425943506d623579507a73505a5a4470594733616633736c70795a3478546348612532464a6645654b3565757659396738425a5632334a444f3877253246393649466c655a70436c35376d59636d25324636737a4359566a4f505437765a33667325324631426f33786538754d2532464a4437386279793964534566756e795a7a253246755350323467666b764225324259643477332532464766343373667845724450743956666c58496b5839486f74253246532532464c37337837253242463262665833377a253242332532424239386a663866377671487a4c374169253242567432506d7677315451453562726c6f6d625a363925324666594d6f782532464e6671496b377731683025324631497a636f6e777a4c4d6e54334253303477635a703825324637683446397a3565665066636e505a4d786e2532464b584f674276784877644664514365733725324666687925324258426467424268414345644f73782532463563335a61677147375a6d5025324263336a4d695968597638663042786a253246335a7a75386838253242253246784833324c386c3825324678384d345443674a414c253246363238682532464664777a6225324625324275684247714425324250253246667566495149302532464c636938496468253242477342515025324265253246332532424d2532466450356a253246344425324676395738442532465554712532465365666958547a35763156554e66365762796225324233414825324278436334343379596b4158627433316d506636494b5a33684f5a6467253246556d454b535643432532424163432532426d386925324246253242677a696a7839377a384e253246372532424e54507025324679706c4a7635445a674a54396825324662357325324250787757572532425637253246386664322532426339253246253246764e66736633587325324634446b337954632532466c62707630746325324671687a25324638644a3338507862395a6c4e376b7a25324264253246774c7575796a49777a54253242556b72253242566f333843647a4830333347582532466e745454524a2532467a317a6b763471354d504633784d367a4f307a3566546a4d53336b62717a357568622532424d2532466a75792532464f576178774173395139253246366e785a7a743878563777757739397937366257664162672532466a386a2532424225324648345625324266354925324666542532463931645034253242253242697a78764441672532424149386265505070307225324647426172396f2532466e253246316f54574d682532467a71643733634d36702532466c2532465171446651655939775474662532466a4e4334762532425938585065336a5a7125324239735825324261657a6b66706664376a2532464448253246366a7a3331502532466170662532424e322532462532464379507834555a58346449754b504f25324251716a7a587348644b6b393844636635364f5777727525324225324634576755504a34686a392532467554514d4c31394258742532466651584236507179375952422532426b356c6459753639684d354c4a5148624b7449486862374963504964557847593553564a373634775432626267306d6b384769667078516a4462532532465453787a74564c5656336e556e466e756f3966754f376f52784f394c585a4e6a3046414325324244344335684565524c376a4b7432776c3545614247786f624a68767125324669755a4634506c4e796638734457317a77363734384c36503777467770796c547568374971444a354d444f6f56784d633758513471674d3064584e4c666a47544a6453533273462532464d6a43655a486479366a5939314e6776535448765534753433594f75686f50545976496e39705079554a4176344c453630656f4c5a5544526765756e35695235513672253242733757466549456f6858507078667a5a4d764a55525655597532616a336b25324267364270484b6261445a5434477452556f565a517643486e793738796b3276502532424c5276732532424c6e4d47685437786454356363734d6f36543468753243524339626370792532426e467135726b253242664c4f4b586f38524d33735a7662466c75785a69754e7a7a37654546506455793370487243575a253246694f63583547504b714638753672735951454e31786f30613746566f7077485433364644654c74536e546c5572537053784c646a4d6f637562435963443774735472514c4b5a4135366e4e4d7739644772664272324871442532424f454c53473764673865674572506c68726d7357796c6851613077664f556f5225324243346c4370594352354c617932253246316c6f7947495236665077564d4764486d66665a356d496978727265253246785137512532424b6e3351546737454c55487a54533432253246425861544c4a7777624e2532427036594a48253246787276384d594d585a7559724235637858796c4857253246714641464e3531456d32414557647a4353796b625379797357625865453358414a61654570333566384d5a6225324265774a35253242337a427462467668356e72694d516a37557562766e6755756d38565a726c33253246716d367572514e654f556c304f6a4963576a4450433566624a375735324a6e346a546c557a5070686c5772356c47253242253246574734326e4325324665704f496475496c423045527258543839706c336b496f7a2532466548644a6d4245344f4830253246516c595552613852387236666d643149326e71554e494847564a4575467735563755253246504461466c36794945426b71656374427775434a45754b6c4837566c51743965766c563925324644794e4d33312532425970667236785937776348253246703267417935667a356b6b626e6c6b253242306577646357472532427461327a6272627536384a4d4f4c7a6a6b746b6f79564f5556374e6a697549667243586d7265576f426e563247253242446e7737587a52577a7952746f5535565a6831512532466c614e77312532464853714e43436931596779304274454453586e7a49396f64316a6f365955434f734d744f7836394c6576756d64666172516e374f5546356173416d2532422532464645512532465745563450713141784645672532426339737652487a414166347244336777786533435a62435164547667495849696d7170366c33614133726274726451736961674a5055547a7843585a346f78564e6233764731684e57523047652532426a5a754e54776c556a643073464e59366369793763496555386d6d6775524a5563766b786f6561326b7234474649483163464433354354463052253242375625324256456e706b2532427677356e6874656456794965695a4773584855346e785777364b324b4d7a595948664a56792532464f746b4b425a4c6658716254427a4e555a4d636458435059413136704e61546a3043554f6372346d334e594d66634e4f7a697471435377444c4a505634586956495250336b5a41593738476b443974493250416a6e3374696a6d436f456c4763776d616339686858784c494255497367594769675235417639525771334a25324638686a64574c74664a4770356d7264634c394e7875533978307549796b656d4467653372432532426b35473573637a505945526c6d4c4f6e305247342532425055417531783133326b475a6c386465253246344d647a4d594675382532464852325448714f464167724746486773566831673465757a624f6b394253543245656253354179576e3377585a777463457359634e68397041434f354b37724668353574794a796879617549784c47472532466a63434336505a6a7a5a39677a643372495666576a345057454372253246615763306b346e5168656246413958516d5943253242326c756341383667515548394f59685573436b31334f614f706f566a756625324239756950724772506e6462382532464264754f395a56506c4e6925324225324279566a253242333932457656736337253246466d253246794a66253242656361426139534a78596656346b6f3741324850765634484f5354444e56356d61414132785a7831527156336f375072326358575054426539704d25324264414737733144327878537665435a56682532463373786731716845596e51362532466d5655586c327041554c745a746f57757644667471377a44764e4a573671766e4b7547386378754379323936656b334a37514d4153694a384767554f384a625858324f74647169306a644273706c6e716c37347679327a34586b5230797053665837485471477a2532466134754a474733487875544d7a6179586c6a6e5337657a365038586f393052456a35336d75253242444f467334444e716a6447354d4c45686a544e6b596d707a4c394d7054523377627938792532426334532532426f463951685765253242373031704c4a56426a4e6951393357467a67584259456b3141566c2532424774374e666d6f61467649724e54564678337959554b7838483647567657346c5832304b6b357265594d6452576a636757626567753872787358626253376348326836704372426463724538485961513872713425324275622532425a386377253246346a4967614349644541694d32614e7a45554653626b4c572532466d7577736f45467148727268495163516f62515733314770652532426256346d5476497442545962316f36353730674e3847314f417a65552532425348446b6d4346764b58687264324844497076544b5952686d725566446b484a667642485471654856316f59436c666f51524851627a5a796f774973414e38457876434d3765325739517a47394f6d4564495947763976486f625a556b7332755a36714d574e524b32526a376b773659764765742532426b74476671645a6f6b49444d4849756c326658355a4c69435953706c78624e4d723168555a356b566e677473536e5243343563507035324c4e52727a6a724c4637535a484a704f4250416a724764386938456d656d5746527572746b7443326a59763559754c5030315436686a576b6a6867447a693955544f6e39386a7970664448657555253246412532424442624245655436444a4930306c63704c46454f79306f486f6a49493638793539493467734b766567426a4a745a48717472624b564974654771613049776b58625958784f5379716f4567507a66376b6e5445253246496d6b4d504b5539776b48466e734a544f44767451305945727641326d547847316c55665164756d6f3456347148394c5536327a654564777459394470327832546373444663416969416a6c4f72584653436f503677484a4c3572547a3438436250634f4e5a71334c7a6a32725067437870526569596b44653669644b4f6f4b334e4f425a4461566342417a6c5874456e614e7851556a394b5377542532466534626f6b356957395576705a4b4a59646a5969566e587669364c523153674c597a754644566a776c6d396c55343148654d495a74374133596f444d566473656f4d6e767470746f4d68587a7870456971334768306a624b6e6648795742627a495656305768694e6f4e6f426e38726d79586f72624a4b544b44776970713457706a364c62253246457455336b76636a62494d38776e7531736c4234493771544f365958425a715239463575414b4733576a4b58576b33327863433851544b5a72306d6959512532466b46694a68686159484f72543662505834727350685a6845685a394c4e523132452532466d4f7a4a3757366a526f6b617379325133654773516f496864685a4b6645594934356d34465971646a6941553563746235754b6173494e6b2532425343513764586772543244786941326b46746352634835764163684944537577416a677a41646d5756754937645a3355782532424f526562253242693559555431317364356a637a3147305442664f316f3944614f65596937574c544e53654f37436c34684675526455587638475a53786b64456a686a4457656432556c7347616f7459502532463164434a696458636950574d504a474776706145574b7451355a316f584b54556e38624a3934427354563356675271545265506f5646505243587a534d4c61695a785775706e616130706a4e597a74393070784c4f797133526b544e47467152425a53704c4b65466d74435164496c716e673950454d253246686f6b3768746346354234727072346a36685857444b384867656a4b774e4f5058734949364634564a556c5968633464494b6c6534453663552532426148614a69466c33544562464756774475777761756f58327957736c6f66585045544b734d25324252636d4e78527a5a593070566748634f7936527a385125324250703250665632783238723669636a3356733377415551764234534a497056584e62446c5439735a756c4b4b474b30697a4f61386e72623146784f4233384b6661635779436439483238546c253242505370343356346a64473472546e684d474b71757836396e7a65655650354e4d727a593963686c5a477569436532584a6250416d4b587865473053737679534a6648706777634f535655787176794366446a6f307643546c6a6f6c5965543042357566597868362532424e4d796f4e4d6d33574143356758415537345a676b6353313425324648345263673348504a796b5968456d4c6e51253246334f7155585177754b6a724e7a6247253242456b4d454a313679767a334a487a4f5951366657626b3647726847516763747a4c6c465743586825324235396162786e436467574d4b467a46466b48437442756a4d306971596332377438387775496c4578356572746830724142746d44397a6e784b69346d66766e737244727367513735434737346563253246537033795654374134354d6a763067703652253246646f6e7556674857356a456825324243343632752532464e6d373337253246527577704f6e426838725959574a56365151616d356c71322532426274367869346b3750253246586b7a6d58356c494b506f67647358384a684a686279517171693870356b6650426b583649637654586f58347035435a46643759646972464b786b6630744b6544314857664143306679557444675235565771796f4d4b6c79615a5649517a374c666a435a6775386250427170417165757573306858505a472532466d75684f387448517868622532466c313837496a363657775a577862364652574d4543666e566a302532466c52315950397742565832374c727a547070394879306b307a483671673947646c754f51674f4f454e6f56554d4453583959704a62336b7a5756462532424d494c72593556665247765751724a253242595a365847657371384277515178694e556c78504e42516b7458454159253242627039494a4545435a64474b34764f7542444d7358716c5a493769515046574d4572325a686c6b486f68795450467971355a6c5150786b747945695156615a4c5352773277644b3361364e38526c52715825324236726668514353556c5142696648374b564770636164764b566c69442532425a6b4b69654467594355253246253242674c4d5a67704732314c6e36697173474a57697550545330587251634f673469504d46757265343755497a317a3033423534306f302532463478354b78575138646b554c42524c643178556c555a586f672532464f526b536e61724442556b38565070763825324655716b316f774658786d4e4b55794b674c6231523552716b306f49636c30754a5850547139524d52704d546b6370383374667730636e666d33473878785144425255473878314d6338524e584e726b6c4a355934766b756c6a49667145374832393846696b71306c725548736f533862714b73724551626c5a324174393335676b7677526f414a6b4a7a77592532424e464959253242686a754244696f6d4e6e34656c564c74756433656b39525262526f593936616c62565330456a56655a6c53253242766d716d3559315446527a25324668346576574a6b574b5868477358585443534f624c3630494f62746e6c4e49564d70716e336125324638636173594277253242612532466776587351624a57764e6f37475658793843635038304c79656d4d5078766265654d517a6c6c6f534d4746764a36794a34523369735479587a316a6377394825324250484d616a694364657136514a58354d4a424632563163755a444257436451623169317a4c4375687642717738314d694d545364426d386255655255423058444d776c4a6d70674f7a48707347484b79666763563239756936706e734c4c6f3750543556586e4d6f51577355536c7244444a5663573234443554566b4e65377025324266304c5a34496d7671556b5239616b7774657925324231316f51594558316e46394b704b58336e4279703735755731626152425970347a4b553973784b46583166394d53774f31546c636b38714d6f5954533835253246564959767252416543573957374b4f4263516e6946474e4c4a73764266735652507a3664326d4d6179374168356331794e58484e4e4f755447725375364c4b416173536943564c6b374779457457327047636773706a7a544e5a53742532427a6a5243594e455a746c4c674a7a346a6e70546859306a6e5a6234253242305942583256443054734530727359784d4e51384a4771436b4858576d6a35687032654d42645a495368504c56566b6252354b6c677035537a436b47524e4b4f5a4276584f304c47486675584e34504a43594e556544504f527665517a7642644e7173326a754b6e724125324264322532423879562532464a2532426c6a476a3551253242474b4e4c51667755576f356f5675767044767853486f792532467369527a376b6273473130253242516b7825324630615470736373253242356c7168305271253246566837484e4f50624939796f6e4556515257657850766348614b306866777664383457365131694e7835315a4d39597a7543436254656e5244586c744e474c473653417655617a5653392532425a38785268354c32584c253242655968684c655a5573515337304b48624e693276574571486359717a664c686859376f395a774d526f6b69754747714a33663752553441304c4a7a39676c4d52707937535977554b67346259497a5a4b79764d50526764324f616b4941614575386c526a496b436366616270346f35446b4539666d646b473839557a73754d37764e316b6a424851636157475178535a6d4e66475669797578706e7a644a38457337586c447a38496e6a74574a72673735495133346b7233656f506561796366726f484b714278526748537943627161334144253242555a4d716b3761476855574c253242393556624f4e6c48324f4d6a4b426a6a6c626a39684f46534b546c6a6b4d4b41495664694456642532425a7379787339364646655a674d785771356e6866484b4151517379527663744c3568475351513349716e794545724f35706e25324275676f51744676712532466872614f37315959474573596446645163484179617a4578634c6e3865376f63493548454e6f397351447732576d4f674a567774576258437772504d64553042624d303043336d52776a5447346a6555315659717a6f616f50566558366673584c7655382532464425324230436f71756f704d326f624a6e3037724d63394d484a6e3950516e73714143594c2532426243434d47535348435a757133793149357078474542305a38396c4466574568725549754e6f544b74704f4d346e6b537a444b506e253242435a426f565930745a764263556161446c4a5a784b71754c316a544e695866364c33665044745a756d616c774770505968716c58565363754556692532467343736d6b6559744b3436574f73385a446232724f4c487425324632346d434f766e68426a56454b6b4e594f6b656d65393732716e3674375a64364256654c507438686f7671747739544a494944527837507a68494f7070566e7a6f50323858347975537a31253242686a30754e4431457633424971354c4d396436334b75586766314d4d6d3262703542363646784c5141466c4b3354624f4663674e372532427376576f5a66564358443343616f586e47433642627a6d3543697633575944644a48464d74306867364f634a413977356e33466c7043387438534e737565714d664578344458434f4f4f70435577253246762532426c6c384350464d55345147596e5152586943676b2532466571365952323363253242773974366635776a43653567484354535959496e51253242347668446d25324270577a6a476e4d3158323425324631446c465675786a39596462443253474647797958317530415155714344694c253246624167413969665946624c73313666713667776a37626e514b32583075355545415a706a417a5a6237474e36366362327a4479496f4442616875253242374f76334c48547625324238526b6459356a315543306f583468566772354665727a7a7550777a417833676c394252484f7948386b31253242335537644275554150666f59645574796970516368344b5537477671364e494a6e636e735a394c4d7445484c67646c5a4d454f427a7733614f6a3166444b645a6a2532466b7842334b49535350253242494e5334674d30517469574241304f394b5842487458316174343647786b6d4a79696f69687650586b564c253242494962637934456e304755536f6e33534e4a384b676a623325324273396e68393548544377633449775566646a79694c6e5357456d637170526e344d3052716750373965367245415061586174333458547a666d6a335a647137735965487a7665776b34516d7a6e64386c50336d703866354e79556c5952426f644457776e5a436e453659597a68634b6442414d543869446b586d734e304779454c63686963644675475a7a3961662532423949253246376656545a6a424b565956317376304867694c3957434e306a44506d454f514c4d79484d536b5669534e427934327650655570532532464435656571566a5925324243546425324235694c4859703049545425324242734d3733516146714e36775538356234354c664d7176684e78634b78633863586c6c5159454b5652454f4b7763546d4b664b6f4834697463786561396a797076624972644e4947466f59474b774e5069307a5062435a4b6a3479597052777978554f59317a546b7a5570476b55424754475a7a50414c48684e696e682532424d6249684e5845386b25324643546e4875534d362532466f69463950424b444a394558424b4e6d6d724b71654b7662784747327636494978537a733368747a43396f543056786d446c486f744375586232712532466a4b506b7574534e335366536a6f55386957687a496f6d565677736759614c6c37394e4d63636938624f546953786f4674626e634c6c6b655743514967324d7070553553434b614b62565a783025324252614e48784c4d685576536b35594b7076666451526a536e774b5645593871544a7852795875427349394625324247376174774c66427044766c385370746f464e454151715872453850686c49754765692532424d614533577444546374776e72386a736d5344526d45677577386856576b514337656833684b3937685575366c57656c74376f434852706559795377337446796737253242376478704176715a51666f776c7a54574b327836706261666344764b366878686d675872415763423472433659417025324269742532466b4e74414a517a496c467357594b59467544456956524765564c646c4c6a4f45357967356e6156744c4c304e507078744d4c54754d3336313364397432684c68636a4f76484a587a4a387756547851423455643230704b4c415a536558312532426f6670685139316f736c4e47367a726e796553555264253242564b7a626c6b5756357672353567355130453562734b4f484465467239365537676f7231544e594d513741253242596a75475353663654253246465661626d324439336b50684137396570795337336f4957597870714a30715776704d704c6c6e58432532466a77656e47617a775569614a345657765569427473734e4b42573035574442426c344776587a6a37554a64556b766925324263384e514f7773516a496d5576435733706341564a7847566e534f423841433565676b634b38647376766a496874484c696d49676f415a505a445543485239307a6e51676433516d43466f4b3567556c627a32414966694a7676553177253246696639695230716b4a78517366727a484f65726825324659253242464d52795a67576d524e6758353946425071566a4e5250386470494276385737506671626e6c796b42253246535225324225324270516178566279785352656c6b756f626872714270753939633959526258686a2532426c784c382532426774693365304b43516f68554330507a694358646c253242394671686350684437253242567a3475676771756f4969743770336558597050494d535a4545757758335832554c685171367749657967694c7a44593125324253644132614e6d6242596a2532426173253246754766665438452532462532467748505a67715256327442327058305361424153317456534767675a5630583367794c356e6b253242343353526f714f34566434734669436f354770396b6a5068574d7848784b5a754a78353877664f6939414f3674676a38583176564f4f44786a664c4549335a3970496672565451444f565747484e505755445261624850522532466f253242624d47765377437547447a7576774b77577569307759445732546337253242766371356f312532464c46313149496a71344138446d6e6159587832434431593662573736565168392532464d534d754e42576d4551253246416154324b394a3478454369593136337a39535031786468664e316f4e6f476a37564c7050564772334e4d416f76344d364f364c613742624f3161585668795530692532423137376578354e352532424d6939726a746f486b67447036523752766d485832684b4c746f4d71342532424a4e703734326b6f77456f4655697337392532427834432532426a6e79696339456f2532464738673242706f54625254792532425a694537304648644a253246714872485175354c7750253246634f55397334544e3372335769775338474b45466d734b7a4c3745667a712532467747443850616450786845415241737a4a7853654b5271524f25324674435453453655754566573565596876596c3541796b6735304b6e45304f494f356f504c2532425348757372654254636e7535746539486c7a3859456e79483150634d253242654449426137443261473464253246336d48713633585425324225324265253242317925324653626b523268664a433525324255746379385a493473447241363525324266764b6270726739317a464e5a6a506e25324669356f7034392532427576476e7a61695757743463706b345a64625563317268714142253242733168753662357070684b3325324645776a685050334659384e5048656449467938756266656c414e4b42536b5674384749766950647a6176634f56425a77424c6a516c54306c6a6d6e68776230356a716f7747356544575461724b4b7a6e796730376a4d796525324637493238786a79614f6e674e2532427a4470396b66325325324670315a253242704933486d317825324255654665343972663145562532424a504d6b6239323831253242595261797625324638504d65695376253246444a4b637a427832613639624d70304a567157625a35313141457478537877492532426d35653342497569396a38756d557650784556346259575654437966704e302532466f46566f3777472532467834486f53354b77425549424e333078253242634574764e71646359796b6a414325324230415973584b675447435574796a253246624178683146516f6f33526e6d45656c3331594771356d67616b3030424f666b54476966746c5730374276545a6559745a41716d33754f573262534335646b597369495a455877383234376c435259553053724c4a704a46682532424f306a6e46343673456f7869316f437259716f57545a5435626a4d4958354d46306b574a49624b41347a544a4475517378626558253242596f64495669394f31766171326c64435051676674467850627238617263765146652532464130675359704352634f484b4447536434703948303875317236383862253246395825324634436350535a48726530514e5673756f737575546b59716465676670414d715045706f7844656e744d25324645476c7a36756f50486575315a3764655266654d4d387a7a676e644b574272347a4667366b6e464e42484f7874324653764b56684f456a5233456d73733043704c7a645a4238443853366f594874377977374643785a466f4c73786f674a544a5a70315777394e50352532466b32713064483547784d616e4d78384b436e56316b434172766b4a654762666f70253242524a306b68777a6a676d70576677695831416b4a4b25324234554c693825324653776a73377146616266325a6d795a6645495a43386e585076764e59395668544c6b7777716d505932574b544861454e7970684e6c526a68436b767535593369586a7349566d59504f4c61736f4d6353726b4a46465359446e78596d566c68735655736f594b35725530394a6465484c4e6470396c664350707854686771474c44332532423176304465774a5679546b2532425949757a6b55416a675a55347448686425324275776250415370367764594d6755595076253246253242623034716b5a6539304e4749703158694d45796c65314946664643347839356768616d4c6e6c4b4d2532466a7a4156434936326c4650472532425354524336655165326b4d6435334f517a4b53546f69484a6d39615a6e497138614c564c53704225324656596e636656426d66366f4c414f7931326e75434768655858486c78756d676635362532425744727a714e2532426b446e746c775130396b3025324638717066717435786269614554727278794e3547327a36364b5148426f4d6c31524e74495478324346632532424152716b6c5a7062644670557754253246344a716b4a5256617075633056374a366a53526751253246653464616c65325833426c636725324265425266594330315764774877637659716c70704d36324166316156624530556c4d67675961753070336878576b48685631737825324272566a714a36464a34644551304d6c7241337879373157757a68556d6c4c485270504d57445569465669253246526a7943253242747230617a6559696649356d45524e6b624e784e504f6a4c61683153784b77314d5525324658434e694d4f496a6741376b77683150524f57596f492532423148475833253242565751697938685452253246544f36594b393375494b347059465056335061426e253242422532464d6b564750547a4151477a544e424f43445a3349646a4469313474744b6a2532425338304325324273425066724a667258552532424b6b6b79787a6e50386e3446625875396b5838594e566b67706654686b364d5865684d773365536837714a6253496c614543794174336d756d25324263715a426a6f4864475543545125324250253246513271704c3459486b4b6471644b304c634571733579697a493669463744686b7569716f414b546632633658456950617570326d726f6b6a4a73317645396a7a43594738736f78366a68253242376b7a726e615459503379566e77253242764b64494b556c5467724172374d576b7135446d676e494a62476f6a34366d4d754b65716a7650424f324a7041384a6b6a36446c786f617341613255634648745756336f516b445562415253716970394c6a59356964464542644c676b4c773148336c4f66765175576f346530497a476c6f6754675065334d6c707a4e6245324b4e7461304c596e4a355a6d437437765164746a7878554374506f5142484a5430706f34734d584e4e74426b4d67565962304474473555335246697856335854704c53636363567a476b683779734c61713772415578676b73387a7149644a626477666a665751694b4b6c717855253242753854454c787979644376343450304653726c705a455a68416151636534676a51253246414d37426c4f7751386731754b62776765345870594b445a704b793734305733454662764b59253246253242726d364754346d443159487253737450644f774c5059796e764d5945414a474b473358444768493873386a52584b4d4651776132674c4c397a7956334f6858493478344d43647143635473253246636e516e614d6a2532426678386d47762532427042674939515136334d6b4871334c4737636c627637687a25324635632532465a74346f637a4555613869647833706d724a6d65747738776e66536d2532426f4a4241796236364a7571596b253246414564467a306846484e653349364c35336237383247596a7871474f5444346d68666a32464a3633357439457870564637774b446f416739564a4d3776553439565146374c6c424f6650696a62724a51584b54784a6b7925324242754c796246484856717036736869684e48672532423364525043303056577673354e446e734f3479745431466c4948343953795a2532467158683144425430487039726825324236554a6a7773556648666c4a682532463762476b33734e737532324e7a386872453761394b65303874734c66767a6c52513377533131674e545173734868626166394a782532465753706d42527238575a436c68475463427278414677464a756941253242586c78704778454a67774b6e4d73586f364d676637364b6a584d6d39436661554c4a66736c73574863733762776261506d3536744f69367a6d43725825324277504e487358614459716b797474714e694f6c7235663769463067445048566e693837346d377a477a3245253242526b395965354825324643707270363361324f253242734e4f32636571395a70566478656849667a41596c73386f6c64655a7a6b6f7475716c5164334f553954716354615269596e615a78306725324672796f544e49585a6354594f5a436f726c61744e5334774b7130344b63384543306449574425324239777177597a6d796f56496c786d66504e4a696931436a6d4c3473622532465274516d746b3234764355316f6d763179697432334773726846507453727a5072756a45533463764870796370413250647975784f716c46514a7a67646d734678584d6a784e702532464d4175645736704a455561645a367336712532462532466454755570474b574b495745734b634350674b6d766d79716a6e736657646e63384c794b7378446478446a476436704d544d2532424f4a50363043744c54764a6d4a507a6a635342744a576d36794c30677078745a62336d6d4f3759733467647a556b554a79253246794241415075716f4d3168477139346c7174414d62477547623652477644716b6330357a43505776434f3565476173314469764662686235564f684e416f7a3753682532464d6348696a6246617549494a4644504b3335664753743473356b714c3257632532424a61756c794c634436754e586862253242726c7149487056514b33536c3679347141554b326847574a736d716a30354a696a5a4555624241797735414355364579576131685064676b4a5a4455455451687334505a584a334878374579724c695a4b4f6d3169797048697056634b53303644504d386c567669325065454c536a646e50645579596b6b434b6a6d31454f7054705161315a5a5a50326c5159564735253242494e55634a737261396f6f796d73626d4d5452726a514c516d75494667344e683025324269365a713265314c3855464b4a614a357779583261624f6a69374154616b6b2532465162756b745537323536415439696c715579414834664a305963376461424d37517344787a253242346a68686f6778504b63575370593441326742396458625252544362715a7968626843785378314876486e3230253242584e334e546b4a555639486d6348356125324649303671463436645737734f79414977704a3641686f74595a6d452532464a3665506825324678524b4a4c74765933626f596b355a59575561704367774b71674d763165436663646b615264514558627445625359344e434f444c6a4b71766a4156385a476e4e7a4f4d79325a4d3971416f574b7833734544734c484a45746b6d394c5a6425324276546b69446142526d5166726b35624d6b51376e3647416d675731253242466d66395766526c6d7a686c4753547a4d444a3372537a3865447a6c4a776a564474585a376d37253242617873666354316535556e34494d6e6c68755367626251777138553059635263472532424e677a556a68364f71447a374f303557413544486353466e71494f34477242306d2532424f5154746b574d33556e515767707678395937566d563865724131782532423748365767736d5467384149364f457643314a484b4663784c48594433454963693070566a6f483370344264514e25324271654833736854647758536e394a6641754a474a306d4a764e73374e3372784355305156334f71253242466a67736d613563384773675477387538487a37707634734e6a59336f79796447554f4c4f716e4b67496d7438344c62433578727565634357435772613232374d596d767a396e736d5368574433253246584243734450647950533345554f4463395351706666657931546648674e4c483741415032466b43426c625957304f6d4c46674a48726c395873787a4b79746968397869324d33597754364e6a4343457a5476337141253242304a31334648696e4e73647854524d3668723639656f6c3765424b7669554236425a686e42794e56393779737173424c356e4956367068414f546e51746e4278774a356a4557313077586b6738314572316d33684c425533615250776773596147646b484979514a72723544364e422532424833374f73436c33384665675025324254707052774348424b303735437236635a6743794c484b7530723779517561356d3663385a3952464b475a4d58506f4130796d34657864585a6c706362776d7252455153676d6835366645495425324625324653416d727852726a764f6858614279463566327153566b6b6556717525324652766d7168397567344c754f526a6b436e59457672617749364373595a4e6d62646648446b394a59572532426241776244526c64253242736f6c6353486f4b4e744a694a424252737936646c6a476631514c4e7a47374a3575494f72716f70537a6c364c7531697537414248476a31535178384561453454366a48664c32366230424d5173483541696e4f79543644416763594865384d57376a577734625733315a515453567a4a3156484b4f4a654438563965374f41587751774c62797761377445576259764d253242626e6f3959533648776e6d486c4d547645647248793557516a5a556f737775533025324675454830344d374158744f536b6f3667334f3174302532426c736a467367426a6e2532426a4e72354a396b4b61424c7264646341363668646a3663644272654f4e67564f392532426d25324248353455447a776d6c79534f6151655a72384b454a454864556268395539485671646c25324254543171516873456a4c537a794e25324231783249585642634e495654543043784a4c656e39525a654f7476776e6a4d385533496b796c564445564548304452616c6b6e474a6125324677344271456656676671756d72766d373142694b4c44464d49416d44764157503131707231734b586f787070573733494c51686b347730766b6d6f4535425454776f6e6449417976694a756a354d4943783561476b344e6b5470683771566e55766e253246534f4e6a75387254504e34594e7446497671253246425a5a44484a4e43574576253242646b556e3573754973486a7343445067534a554d6d5239516c4278366a6f5375314e4e4755577041344e6e4278614f45376d4f3359253242746264667a7957457645333445554f6c305873314e4225324663776865366d47664f4a596a69335141644e394f733766366b5a795041757535735072354668644b4563365a696b6b62617a2532466b4b587430657262524e4a6e516a67496e4750776b4b766a782532464d47764172436c3256317350694e6f37766a2532424831433578536756775149683368452532425a4163394d596d66415174634a4225324249464736253246346e7857484a5a704b6f395331253242354c332532425943745069377a703361365570462532467638373049456f676c6e7a4e36652532463544515a4d615767524b61654a47666d7a367150614c4b525837797452417037782532424f4f7061554652515a62794467554833484e644f4d4433674b78546554684c66794d3333486d3254534d446c4c36417372765772516752784b653551665164366a306859755a584f316334445158794279776847356a335041447556472532464b474154785041634d7079484b78526a6c4e71456a776b484e50427643336925324650346164646130464c6542253242667a7142456f616c67436562492532427030696c6758253242325172513142493462613277366432695677595625324247444a78684939316a354425324270445130413674577a74596179325974586737706a52437525324637526d5a466e3177466d49744d4162646d59667a726f7354347676654a534c2532427477716d453659354f5134795862253242696e363641512532425344304347742532426a474e6b705a464244534577646c756d48733948477849525a65615a5a746a584a456d676556516d51733872645a4139584338324e4f52586551634c414d597a56554c6368364546594476383741506825324661357735566a50583974727957306c3450752532424473616c5233436851355a39556b4d334f48584b71464b6233376453634e4f77346e58777661784763643651786b65376c397247646678364e446844596832565a7978576d5164703665437279537938474950514a7a4f30594c6c4c31445557757a34454c634e57576677526b324c556a534e4f253242546f2532466f6470326b58686654474b516d38707956696870253242785337516b746336423032577a664b6b45493641467a7a7a37414a3679725673754170475839356968716b355142736e5237633754313663716a583469655150554f4d676a4f324c66424a5a794949664a61534c3938253242777a62454c6766757675504b66376b464a4a397455626165656d464b593133624f6d3361313073556f6c33566c35587a4c714932676b6d3536516379667a36725759355554696f5a6d326e7a436b537569317a334e432532426b59515832524965676d5a717a4625324258455253526861684b58614c354776645938436e4967385534543774377236724a4e4a57452532423149417251547846447248483641486d474a4a67526853424f2532462532423364634637434b456137686e5473337137454c6a79513253776f4f7a49523156756a6c72686f6b4b44314e78354e4325324279515a7368306771467665555a447844467a4e4e3441554e623333347a6c71453153336f2532427870745954355a6a6c6b50374469633338464c6577675645344c46707048714c634c42537672542532464d4b6d4d47386b7135333425324638304833614c416a55586856504632546c305034676639667445447375744c6f357053704b67417156454b6c7778344366774f43414b46743571364338365451755658354e686e4435705531387275306175306a253242316e755575376d675425324230504a506e4b656a5745705843632532467274734a504550674f68436872597630614b4434705875636c436a6e4a47776a6b675264764a253242717567774458596d6434486435556164484e4b706a33536c594a76616134716c72443279474e54314d73792532423639566e4c714a324f4c73464a72786d684d65666d534525324648384f7752524f327870375a324956703471563830513941727355794a743158525a734f476b353874356e5a754962554679734a4d4c782532427133614d4c7761416d4344753735714b696c44546f4a7825324636336747785453502532463779675357797777595579474a6f354170536e494a5a6566453049727668706e7454714f2532427965423376253242415166386e6f4866384832446538663879574454356677495725324662386633557a253246583446757072382532464a2532464825324656374e51354c253246627a306e3838664e4c58367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a3646367625324278617225324636597456253246324c5676316a314c316239693158253246597457253246575055765676324c566639693162395939533957253246597456253246324c562532462532465446716e25324278366c25324273253242686572253246735771253246784d517466682532464e3677363958253246346e253246416d25324635762532464539347725324648384679763250312532467a433350253246586c524b48253246747642334a45767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a44334c387a394333502532467774792532464d5063767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a443350333168376c2532425925324278666d2532466f57356632487558356a37462532426225324268626c253246596535666d5073583576364675583968376c2532425925324278666d2532466f57356632487558356a37462532426225324268626e2532463651747a253246384c63767a44334c387a394333502532467774792532464d5063767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a44334c387a394333502532463078666d2532466b253242437565506f667a65594f25324633253246786a2532464a44755025324673326a31253246364e6764667825324644465a6e7a46754c49436c65386a302532422532467836582532466f253246513637253242773676646458447341494e6c253246414a68653576767a47734162736d4d25324256253246656138766d7678383225324644503650676578486e76336d502532467750414e52646c575525324673765250554371592532424675594f6f4c25324276564a683244253246514b754b253246544b7651253246366468366b346e2532463025324644314f39675a3858467638445538253242624e4d2532466c7831755a4f33613546645877616b5244304a3065614b674b5769553178734e444b646a6e703564253246745a6849453870545031486c304778746156436954374876356e573464434c66705453583469253246703137515839366a486b503230703448614166304f784e36586935497641344450343047583630393879572532463736646466384539564e4d2532426765753957795a517835706548504a5772586468754e726a614a695534685169424a3935386943636f784f7657424558536d6a38496e363263526d72656a59544e4e663452484d4e78634c423048754237694f654f64557a523662414a5878504a4f65796d25324658764d306568463073724734414f395a354d52506c346b78345131625154584b473046335a642532424525324249357437346738786261596b6e253246656d6858426a72397837346f3572775365376d74514246706a67774b31326754636a564b7644563351315152396a4b7a323968527a3575305677423838364d55366575376a6d74576c57375177576d5939564e78253246723730696a6d57707077775139374b74387758772532424b797a3725324673623759304d4c31505853612532467a6f4d717256743435416266613034784a79486c4c5a696f3934536e4f4d366c7634346a4444794d675676563158646b486c534d466955436f79527353573933422532465338537044774e5850496437704637544869495a37426b59766f50615a30553775496c7a77414c55514c4f366c485a65354a597561554539547650306b7842726458686862385436514242394462456f546a6a6b33624225324247764230675542575334785a68614e66686a7238307150547557554e39692532425855704f7959703050584f43645543676873645771396d61554d4e51556e716b30425243784e696f7525324639383563575553253246675448716e41696e4a4865646c504e584270336c61384425324245444f344c366d6961584437464250736a4436336f3355534d766e56586271564232676b5837577278786d6d4d554d6470785772336d446f73545079382532464e5031323943356657356a4743524c52393925324641645a512532462532463675413634425350656b576f4346557950384758552532426d72656a3835306b4355423350436f4a4b334159706b554c6d364c627a7a5968793546346f3944446371483164253246576d65736463306e68383373384872545368526532386e5736326a58744556347765315564426951354e4c444a444130414a6742253242703078386563534334545352655962704b516b70504665436d795725324272576258794176736f76422532427a574549636e3450347941665547776c49794a6c55514d67304e716a52347a794a476542737a55657554354548774d7153503864694169735634544c69666c545957386b566c377a6d445838416553503448704a743653412532464b6e6461507951784755336942734f61456b47776f6756317766576c54632532426d54765241304d4d4432397a3336594154736a41514a34647631586b716f427059443731456b71774e76755043526541537931786462374f5772527670592532464e48757a4447784559636351592532467561494a5859704f44313538764c396d306a786c504d666230795378343967504649253242685045335a5772564e46734248614451465277706b52616675587150744e3153416747634b6c346654723375584e6e4679687356316569497147654b4e4b6b764a53587934576661695242707425324277665a7531646d54536c6c426f67433758495158426b614b7a627663695938417735385563576a6f775439327148417948656a35726a66636125324267724d51484e683631374b766f4a432532424f49517a5a3361397474714f2532424d5a6e764a2532466325324225324259706c4c634c445a62674f316b3178374c6b45253242776c325244666b4a765472717a6d335538587047444d45506b324358487735467659754142325859424f64685051426f7936416a57547650364a645632787366335a34704d754345746e7773554d336774646b526279664d314a65486a5a6156594f515949744e6c4c31337a253246436e7842364152726f7932377368505666523151614e663074586966554b626e47344a6c314f69646f323650526b73426b347472773946557a43357a396641564f714537337333316d7a46777049356e713935593355744e7859476177656c4d453666764842253246476c633651716f534a7348504936776e46635445353057464f7a4e754f7578724665253242552532425750516477626a656f6d377976636e32586c76394e7a3855306c41666a315749692532422532463868447363475158636449673279515866543137377a484675696138253246425a744f696f57496978354b7557424b625564356573376b447564657a2532465a68464d684a5a78676d716b477858576955253246637977684d652532465479594566253242636264636533477273383852684c5025324644667970316a4356547168347a25324636444b6f4e32614c4c42746e31424e6e586575524b4e436d2532464136556d594e764a7a6f3643537a6648494f354e466c75534f723351344b546d424832756a79424a787273363174517575794861716a734c7a68475a6b6e574958753258676b315a526b7554724136356a2532466c4b6b51646a697453366f34784825324633564539716469317336306433754c6c31474e34576f735164616d476f3053626559253246253246696e424c6a70516325324677417379504638694b72305164376330695978325659614a467a4c41546638674e7543574d5333636e2532464d503372557a61714167794b4a6e32484d7334746e7873676c656351253246704e72472532464861646a66575461657079646362363742644b463830562532424c49653337484e356674774c6e78576e72766342646425324632574f3738726b7158253246326a58696b6c6479765a314a685363316e2532426874313872333432586f47624f6c567a44506d6c3467685a4c655a6f347a746a444654717753374335777536524e4e694b7044796456564a704546375538644d656d39526e4632734f364c7170677a6347717377787768526e43786c4d5a664b67617748784957673959357a6c6e253242345352432532423242446c31793856647075333571553150435742335062683352513672572532466779664b77426531445a3939464b34694338393345355a644264683443465568716f356e654d664c386a7736315471327a6a6162504b4a474c55462532424525324256253242547a4776536d2532425541397a685a51695a6f304e6e616558664f6635325536694f4e25324632417868734e4a377664615238546c646f69345062484d4679787250554447656a253242565432516c464475376d38723663756b2532464a49324d71253242484355684448253242614c304844364d5231383671636e32436e2532425268703269503141334d253246504852744f3974654a6a314a52453477334f6e7a72694d784635666e786d55684d71713271376f3952344e58754c6555574737654b646c594a76416d45547a3053534e30253242694478306b556234413949414a6a586b744e576379513736486f65494b565878253246696342693767486e6a765578657a4a66494c55465762307644694a7559656475374a447868707239475a614a735a763255753472377834457539714d696f4d67455079786b3265377a6c624b4f556f6c56347125324676435769306f78636b557142563764764a6f7051706567634c307669387064567146364537477959554e5a747234414a4a67336969513037715374334174474454396c524e54356b5052616731784b717625324252547a5a38486f30346b76544348667a466c346a505862664d6c76705330726b5539324a6b3151577a6a486c4e54695a5338534a46384725324625324253783859373869637648504a4147695165675732566f596b4f6f534f5632397563424b654a303665794f4e5678735677346d6f5836646e68474a454e677a6572345a446b455a4f355445754845746b35534133672532424537624746796330436b57365479785335394361305245452532425971786e4b7165435879584b507a67527970796c725a6a4c7079652532466265516d6a65365275374c3442456b746d3731323473654473726a7234316725324665736a515757253242506172464d6a33495a77384c745364534c4c4a663259315137466f346778575070394a4e6645797354783151387a34396338756f54472532426a3346646b537337354d784131514d7a5435496e32387951597548345347474c6f3657795a72523451544f4d734747706433726e4b417159665534314e74395056366158556e36595165646e3030463665706542417337727841384633253246524b4d637158354b5161716a7676332532463276754f5a636d68354c7176305659426235594143743537564f336776546346344f7546577a326159417948306f54496f6268675233664536336f6f344a724d764f656b51253246414b32694663577639534b47766f34663673376d78584750306271665172787425324655657937504539346f654f74634f6247366157532532465835594b5465624d32426d706d39727872776a745533636a6d7a667a37627a43574975314c253242666f746e6a696d253246524d73553359397855325868444c676d4b376750384c744f7474534f4f386858337a4f4f5555375279316e50577256253246775959384b6e434f5472305a54756d736c436d6246516836757972316f7963774d6234614e324a62345473432532427145506c5525324246555636564e253242596b424678737652685471726d626f7a39306470374b4d6d253242536757773838736846626d3769333141647556672532424d63746b74686e5a345a6c6c326645334b346d617061746b7a39526e6c576c356d37564c61466c704d4c253242646f614d756151624f654b593337473954577a4e364e253246566a7850546c754c416443586c376268337579486725324232627a7867253246563368756a506c346d526961253242703657713242253242434c5639306e695a696f4834624b344e4f4455306a4255253242614863384d71757a6d36744474346d4856383056304f25324634537a357837457a476a4f6532773066774a396369643371557175426470383968626335666d7557507a6b744b774c4a71663574456d4a306151384564677a496142534c47394f306b4639553838455a677a543143363932567164564f5a5a64525263303745725235795a5769326330553774397770766e4a6979564d6458253242736473646e4a732532463854644d46336544696a533044536531596269756a316d646e553134717865747369644e666e51627a46524b58454631486456784d596a713770595561764942694c47773251253242304d726e424551684973645a53356e253246546a7a385069794c6f756f51253242465643777242325277717577634a6b4c54567750596d535269253242624a76636f504c37685539784a73506d5a37505832574b7677776f6c564c334b345a6162462532424d683356646f4143455255674e77737366646c4e74553679527647523830516a3655544865506525324238716e52366f3447306f5555764f5863374c7248554d4c6f3249424f4d636f4f756831533252334e724474415856756c597659344c38717665303759377553357a2532463653634b38416c693853696744455925324633624d6d6f34454b6845746b4138334563736d736a76575056796c383550445246566b4a644255513456713671394d77586447324668776850316f755846446f3231507975755a50344b4a6a4a4a5764464a4e735142696f6e5864427a59646c54594d6a596a5a744b506276536e75347670786651634f477a75385a5a4339253242477a754c4b553664593733693351303879543570764d65744d71565337576d6f4b7745363836796e784c37766a47475446323569773355316874253242746837517732713571794b747a4339375877792532466d6d48414b725865704636446a3663583749526c357468642532427259476d3752316d346d726b6e2532424d7157443332455339714a63622532423438785a696b41576d596d33597938746d68523855774d4c5a6a5125324236586639576f546a695457647a6a694d71516b63694c5464504755546c51334739524c32373432334e66455554336d5a314d4651415a4f50746f6c4d78343155366843646d6961442532464f794a4d6d316d5352434355684c75666e566c427968415670464f644b6a4e4e37677171653335545650764575477559733935786a47702532424a4f6c43566e4a37515644614761615349596b7361655558445a74506737734b7331614237626e50455a5679556d433631376e545a77453753546b66567159513969345930695a4a504f664b62415264466557765239624d35346a6b7a3145555248344c39695558335a53305678664d535a63452532465a6a736479645149784f63456b5852585632644a4a4f6c455a79696d73754231477a423647306834704752426855573257374a7052457947776a71626c7569253242615277474a3435314969455335796b4c3279334377794c5734653252253242392532426a55733469686d4a6a4578356b4a35717979463531467a50574f46526d494547436f6f394e7a7047527448384e4171342532466b7469253242612532465154636839496136414f516d58757a6d317453703355564a6c467a6e574265744e33704d57766d48514c4a456971474d4a66577465677642365876434a3525324262656f42586a6e35786c797a5a4379315050694d7a536a75323257636b5377774c3261336a5a666b7866754857525759755a64437333436c32624f52466375323238584652794e716f58774456755a4e65585a42735557323639646570735451354a666a386c684164377925324630323767454e4351574a6171626b3637645567337925324674714238555a6955783531796a4944456e6d31594939506367506d587a4835554f54394c536857655775634a71624f59253246787a4774385a2532425a337a4c763348373674476f31346f6d4a4e754b385036453479383032313841325837444e463973714c556a6662774e373168614146477667484957697141556b433879796f6d714f4725324655626756346233314d4d747857423530356a616c59783878714678776c72377936487265663756304652533076377452433725324673467a487930564f6f56534e4e36767a773941545175434d7348723156306256334176564b676d3663444662765261384f4d2532424651534f374f6277794867614844636f4a6b734a6c544f6751357148344f454a6f5249756830467147745731797773536e6442345070703075587379644879654358334264316925324647747631545a774f644e6a6d4357564c49466c78663576333250657a755333446a61427a5a544e67344467706674637734714f725949346637515470724f4653526376656f334470354f6525324634445051646c4f4d4b566a4f5a7439433842466e7370425951635857345a58714d45315867516b4c4773477465556c436d72485a7479367a426454466a6f6768456157586c504661487670644b7a4a47687974615a34464a4b493173746a7a75483950367539546165566c63727a536549595251762532425968464a49396b503863525a76534433526839745356474d63775331767076357a626d6841784f6a55253242516b6533253242634939377a616269714a416a542532464a61363675524d4653797342513546364152496c376f465050486b5054324f3175253242456c4849747349486e2532464a48756a7a7a597a36494759333368314163334b4e496e38506c6f4f62393773756d71764c714474356a2532464642784b4a7575714b6b46414d72633553734f456d77456e4150533471557141316c49726d71312532424d4f4e4f767764367a3254664d584f572532464872564251475351363477665530625465383035704a69495470684c5a5333526730413957574e636e4f6f444b534b3231535a6a54753966427863316b4f5a304b48623132704850762532425a66515443336e4f3747747a344c775a6b3625324242424f355966327164712532425a4a3969466a423630374a596d616e4331745039645337324825324243635a6a7578613339743342444e744c344561505a574e724842396c493034787272387447567a564f5a53477039426f686a796d4242476c7478684a424e6d6e76347a6d4839667a36462532464452656f782532465364525269526253745a3525324272596e47753634435a5249535177794d642532424e51665271417869634b5764794830483557556453636337594968737a48326b434456425a565935414967504d5847374d36754e44597063726c45463173784f514a787545545057655a627925324236784a4c78766d3233317876593464456b2532426e4c253246627249456870574e714c6a37757278506c6a654b67695845466a55726f71746a4e677936586275596f496b72744676477a314c575a43356c516d355966795352504c576c31655039726e58797a3241493347537a6a504277253242636f596e796647594c41414a467a506d773072696e66546b316551505a396c516a4367673859474b52444a63656e39562532466f69517a70655a25324670794c543278796d79494965464f314b5a6a694651534741466c6d792532426e36253246574678504a48586c53556a6754786642726944366176487a4a444175647368637832537a726e30766333344b4e2532466d6748536b6356614759426c72434939364f777871306938787a4f486d44677742735148765072763966333774356c5961624a79344f44796e444f4b536f7a6b6f4374574a6e38525978453734506a53767646385964544f6f7566783369545655685941682532425a25324642465a75646951617159556137464f79746769347743253246455235627544684f526d50487436687872634953367a76684852536a4b53794869675453397758333643344c514a32724277316e32645045634e25324243454a494143637141615a394754657425324661644e6c35333251513639745325324234436a25324644536b524f624c584e4f3867756c25324271427a4a7342544f38253246554c474956667a6c4a3972416e324f75474b4b34666f323265764333374f73516d345563583053486d733963534d6b6f253242612532466644583172674e4b684136494456422532423064584c4a52794d58696932577941306f67472532465138734b414f554969315972486b71434f5747716b567a5531764a33536f355a65434a45653376626332397167716d4e594b4841623841307a6f424342374453637463713341314d475a586c41676c794b6e6449657878734436685577553770506d737448534c5968424362467676487925324265396b58253242303137756f2532464473324d594668736b784c4838356d577a747844424a697833766d52695a64477150424536544a4225324237466c594253353264346a6f3259743446253246624543556f613858374572475a526e36455558476b5742562532464239746a58796144476c5432614d4a77463146664f253242797564594a6759694676514a2532463346374c674f2532423735486d314b64506b346a68344a6e6651525025324274596c43636c79786237345134644e63366f386d7a72706c43366b697759253242536d596c51516d683050525939376b31526a6b315339253242516232336b796e536e3277433838577a364c67506c4854307a6125324653525756304c56624c733649325545716f797a4d56476371366d7158694e25324663536869466442342532466859506453727173776452376552384d595356416a644d777033446f444b7438634e5770786a3371444c757675746d394c684c3755716d65736853515933743646637538586d253246436c6b5a686e675132427439306f697469707876424e466268312532426a534742564a414943535a68756e78253246756a717a51386432514364544f6b675a4c634832363075624a4341517852783155627237526742466945716c733642354d783545794e4d6939684c6f7a504179374b554e5036705a5a356c654f784b3136543431444c2532466d47646350376830516169765a6a4f424845794770566249543053385432355159793725324231546b4e374b69644e65414f57323871736b66786d597825324270446678714f6731454d64646e58775648414c484d25324625324645764b7258253246654c4251676a6938427431522532463166377a494767486e667539445773644a3074576568504271633825324625324251704539563171394e3754786751522532464841305857674f466b6b45357750386d456759304d465736467458764c4c6f732532464a7a663154666270765677253242626730515745624341316f4841253242364a75575639305649666b576d646c5a4b56336134567352703244476f414630497543704e4763644a76556d525053595a4d466850567153686c57492532463738536c6e4242785a4b6a6a727879705a4b7a37524d48744b4c75553041694b473934516364524872534a524436644d4c76504748775138735877253246586d7a4c54413066534b623041716854623948466675347364477a45567942766b794f587532742532465378334e76576c32755778375131664c4f6b306c4c79497a302532466e3738785574253242642532427a367a66315a686b53754e7a6b734e2532467679704a4164734c356b4c386f7a4b426339715857696131566e6139664d74534267417a4f50584b70736d316e543569485771644c25324631456c4554645a353941616138754447714b4c5a664537446f794a42356f6b553954514a25324232253242617131594f64744b4b4f504a4c7056365976344a61556e4b5a345038394c5154506158305734253242717765747874375131685753566e46437172686e253242384e314e4873566371577a3936496c326c694134567769486e6f76366539557931344c5673592532464c7142484273393138394f6d563161516233655958537867456b654e31617451763272386c3665657938564a6454504769365048506a34495757253246436e4d34537a495641366c6837353761534d776b5132532532467a586b7a6253446c4964586f78765438686e34253242415766723855644163334a796e6e47685941544439316e587546364e38586e796c53655425324665776f55535934714f30253246783554673530773148306e676b3856676e76384c524748567a253242794b5966324656596f6237665473486f467a55487a574b51564a31566f424a463638714b4c5a69253242574d7a6c3246666d756d545a756f50314b715643746250574f31396d33766e7430746674387148776d6a663172517a3754725147594456697061747a795a44645634253246706b4c485966506d5137435659575550664a74253246475a4b663445685052354e57523870644825324656253246696749387a38514b6e664a5a253242253242755277253246675a3135787031663373324d566b68253246474d793459584b7369553859704a556c6e534834627a36714e765435687a31694254497035306c6d506c4c58397570486658253246504349746e383330253246377337667349366e48745439507956586f305134424f313666527750525225324638395343436f373525324269624d6876635925324668587a30692532467371593258653753513744796177447925324241444c6d4c6c4d50704c6754624437504a5877436150526e34586f34376925324262364532322532467a7857496c4d446f5a6e396f4d77797562347643436e78764c68685a6434786b7078253246354d4b73653338635430253242336c38616a65306125324675613668714758533659744e6f3975635468586551305348583145453052596d5373596c44624f4533693663494256385a453356752532423571684137794d344c364246366a566c54342532423054377268737849306b43475567706670786e487976724f375377517771762532467350787a545a6341495a6a6c49746d41506b4e72424636787625324652496c6a73482532464a5a6d34646442384b3157724b6c7531784847572532427962443144676239537933455330417834775765443673546e435076507775335155596f5349355777782532424136615a47364c6548487769592532423373555542456f6431557052796f71634a4d4d50594f514f665a576b4979733645674d3425324248635625324651425a466d64504563696336566f68774c4a446a4439424d386541343279734846696d4138663959776a42316e5858466c462532463943706844417a33483038686642796775666874705965766e6161735a3038694642496a76476777774853314c436444444f4552647263726e7a44624b39615453633858354f4766656b504b6a7547764a5675545a645368696939783525324668395957475033344a624c3274586b79684d7948743725324669754f576c34414e436f7a44684a537264344a4c6e4177794f58433042425238646835415555744434577831376839434c64517639474263376c63523643457a4d59443571394b6646427376674169434c766a7255446c6f3744316e3975527a4350585771464374306b42354c33543277324153384b4d7a6951253242683746327642564e4d54784b4f3632592532467136707a52473453774e365934587071717664726a3674526d7936746d5269656632344b4977614777452532425a325450423056414e746a31474a476d6b6b3541307531574668253246765656336a373746344d58354634354e534b755925324675616f644165414d54583634504b514c687279693837455142253242333772793756596f7025324631515076615a4a515276766e507767473261437933576e584c3355507578495071485a384752394a466c51454e58565055514f494865584c765255742532464b64774b43627a55253246377247717561627353415a466832466b50766a6f4162614b44474a786262574561755330685368337a3847644b6c387434703256323668356d54415843253246672532466e684d32346f6a4762253242724b703773753061464271393674647231326c6d3249654e713668376d7972426f686c33537778713430477a7a73617a6b726735796b3738666749553578734e764538516f5a4a7445616773314f76393034253246396d7a536278456b31304572573834593238584a614c33694478656b43584251775335324a4a253242746a70336c647736766d6973466d7678436b3265703370253246532532467a35617971643854444a3772687a5a5a4525324670485969316b366259496f4b744330596a6d723170253242656c6a3136555239543731327335676b704556785372725064344846356f7058764c7442676d315861253242646c396b4d444562314f477a437a4b6a72357025324667324f304c556d4b546e466e4b766575774575746c6a4e4970577876763569307a642532466e454457366e336359684668355232567337475356253246576b477068626f53614b79434e3079575538376f32427a594e30553555313461453454253246766e755052624346614261587863636d63496f395a3767367532764c253242716d695661497168526d6d5478454c6278386f58664267535a7a4245524d646a69584a3236314f6b584f643973716d6a47304362623647687741764a70437137716b5155494667324c6a4530616d653430746e3644716c375a70766d4b54704e6d4f356a4b64424d7535684c64354948665a44595a62446f31506c776d7052455539646642417746644e467630587078483364786f7157426b25324279446578547a525342306e433468587442374c674e41637144743839367a524f397865723649697063376b756f7a4d455678356439783141316249554673556e743834326154775134326d43324b57764d547941496970766d72784138765739623766723063434a48765145786c3176564f785972576968347659705546744942704a4f7954666159364f4b552532464d6a71373078414b35635142434a705479614f54473161725273797a6f565653763858687025324633396162526d25324659776d676c4b3078253246573637724a73433356446f7656477751733058374149775146554d565638723561346b5579616570764f486330655a45475847634550643247326b6369713874514a334653787448326c4c504f644b7076304c54444b736c3858253242746c3162547565346625324268767151476f6f4d4d76504f474a715a38664c724236352532426f72653577666d47444825324230342532424d545a4344494e526e4e474e79316e59253246335453566e724e637450494c4147626f45253246395249546c45444f6d626c253242385a44654256436d6d6f594d2532464f566a7a453750473561464d3875704c5625324670683355634679766e35306d6a4c583871504d464262484f7a356d4b733771253242637442464f6a6f5a35664142717a6d704763546b446e7a4b506931716b56366e5763485279717356557a45335a25324676757955376d636a65377a42473857253242664b3254483345536a316c2532464d434e505866626b6e3067644b756b4d77636c465463624e4d7265384c467861363243673056544b374d51567853334d57416a59364225324246434e536f32344442696f2532464e497672626e5163364a765242695042423041353734584d566a7344545a774b35484d3833667367677a55706178494c374954387a6e5a4177417775547436477525324671466974586825324241584b627a426430675975253242644d444138384d4d343057665667414661696a694a5665383558253242454f594d46575436553144584d49426b38435376524a416538764f6f5663514e4a474e3462536858416c253246587531526d5a465a427a756565346b6d37656f416c3238722532466d4e253242447267546c4f306a78346f784b4566424c5047695a6676384c7076675641634b79704b4c71763438445a514a31374242335a3930576a3930465633253246674c3152535925324679344832714c6f2532424231522532426c6242646b597643366a725578426a754f6b45614b3269784432722532464a7169494b505179487235716e415968515269364c6a7a6764586737735235397577393659545525324265424d34614d614158704a696a666246423456575169324a7743556a6f557278646f6f6942636550564a677439253242783663373067514734535325324263394178424f353662436225324266476c625638306256734a32504c613652253246783125324643582532466f4139513557615136437a6f7257674c25324668586164564e716d367567794b4c6b4e5a42253242566e34512532424a4e6162576d44783279554f456c57784e6e4d50706a6266655a7742575863452532464c4e7535614b49746a514e4c537939655551527375694664622532467a744351736d513876376f55516d6a3948616a58253246787469453676674d517645796b4d6e456238674b722532424b34387152326d4c7546787432306b332532427651636c386e45427565304e37346c53794f6f253246464b387573756a56424c6d534945323071546457644b4f687a47467866737a4c6348506b437765704b4f645342684c4333305a6464674a61656244465564455735724a2532466d4b397049427458785a4367416c737048565032505862355625324267647975476657735163584e596751334b6233584250703073253246356c59676a4978325a76584b4c54374968487356324b6444304832624a64364c4f3963596c4847686a4b4b33397646664b506966424171566b6b346a4b644676304663533943744e4c37456f4873666525324262722532466166514839324f50435071394b62726c46775078253246737137797666577165795742764f436a4125324675634e75466e4d253246687245614f6b564c454c4f696b7a7752642532424c483133526f746830743566597730426425324251326c624b746d25324647755a45396a584c3854394f46394f615139677525324251476b54496352544d7952615933666f7748566c7a63466561466e646a4d386d59374e546c71426359357769614a706f6b4a6e6d7a776451552532427736594f444d5834734b74732532427358785948253246555673767062556a4544566646717425324276694879487055556741253246447554632532425a6352784d774e473552452532464e626f6e754466697330616e587572315a5347347a424e487945416477526f425225324255586474326f45447a3453354d4e6767763775387338647673326c315062466b44476a6b6f624f63557a25324255614e3241532532426a5964326b46615a766c3559665a4d79525a324a5759415976787353397443343725324677654e31654b576a634a374562675450654f35343069476c55336956794e5a784e525165414125324668537349534551435273564774393165576a6b7a78544d386b54797a463656334d486e63546c76534b6f6e376561636b483753765555563045704433773042484a4276753466693143636d42614e467058644672647679776254336b666e71715a304156253246584a6d6f4541665a413150772532424a66513448794b5a7472445359374b6b4c467a253246366236416674253246466c794c73396451736d756149714f5879504563624e72656675394d472532466f673363766a497a67495469333349422532464c7a517a786a6f57466a63624959426777566d45546f534c446b727a775433675a32522532463764634f65715562556649253242685834757639795a7772447064614c784f75707a393453476a726637673458476d7a5074646e75517943433949334c374a4c656772774e672532424d754a4f395234347970577a7925324662624151324a5338654b773849743237766748464437586479365a736765554359714c524674784d4954685332715834654f52744e594f48304c30576a686b674141617325324667616648686848334f494150467358794b75796c3935317a72327725324269343662443925324279743468446657334444692532426d53766b41377750364e4b67647665426b42505a68546679674a317441344a426c543074676138714174523679414865447569334e47522532466e393059797449635a47354570795571396d57754461566461375a4252726831716153253246494231655762674c304a686834714a54707a4771566b794e4f4e465475546b4867545869767838504a5275427a337251253242253242336868597176566e626e6730437a44713353587a66786351324b796830526f3575454d5151614a466678354f666a30396a783677314e6941525a6e4a6b316654306d68253246667a4a4a346525324232334e4a38724150716e324e365876314d75567a4c5931784f734b4a466335486a656548303057666d6d36354d6663436c4762664e35727a6d4b6147724f47253246413779764e6e525541746c777953375763573530346d396a5a4d6b746b655a5a53615242714f4a456d58443358565338433654566a57434d48774c4f5149654e44475a535425324673684958574e374a4d41566e253242644d25324225324677376d3962625951476c62464848506b7a63745150676c4d555369546546794c4344753567716e4b4468566833384d6f624a726f71626a707241372532425368546d615437253242356c3666424e6b4a4f4438535135506442713949756c655458304339576e504b76673261735330624c6f3648336931594654624645784449546361583246795162494a30434e522532464b34457357513648687355743067726e4139704b6b6e337971654d59796f715174596e75394c454d6532794b6e484673253242253246496d544d6c675934696b663730314c76756c5571444b46784b5158415251693567354c6e436b56576f2532426c794241414b74376275644c5533493262413963394576326c6e7839467241797464373858744a4555664f316e6a62746768563643506c5257625434436c682532466352634f2532424f4b6e3376645634766c6c4a596c414442633774253242486558566756576a49314b3665426b3635634f7a524159317367365551516f43614c587576374b76316c48497338457625324678694e427635436e3478473267797731427830442532462532425a6774454f3734353662584a4a253242516c48356e374345327074666c324363333562526e54444d46334739624c7665495238584d6d79586a354c6770486d656e6261736c3531366d4c4851683125324241354d3550594c6a7646625272623769776c62336b4854484e434c41253246506a39564b71524b637163667435386f314d704f4953784f357757676f48774e50415365564a6c474a7063536f6f6d36797655356344426e56316249474a4851335453746a4d646e575033585536744d4353637a517347304f386a4c6c53794369336956393144466a524f623979724475796f49467a664b743177464b7134757251533861523546655449614e56616b4a485949253242632532425643486b4f515533786957385950744845385565325a673941304667396367704d345831537569453248426f5a32595634667251504b366343506b4865336d4b796c7a4f4349646273717938374e3464346a6945764f753830784b66544664774b5674577958484144784c673053253242365272663249787a5179306d42326972315238744858655525324245676125324656323849622532466d56786857555850576d3830253242304c6e7272675459763658456c663054777462313768397735704b4b703144656e2532426f62595373347535524e676656684c73546e7552344a6e714825324637486170494f4170347531437662626b786a486d453962773176674f576c77575065756477744d505a495271645731756c7366686e55544c76475a4a7154764b53776363367644334c4c5049714b5376597553787a41626b645956253242766225324646443041645849514c5a3034453578536834595243545758494e4876514d686a454225324656733254613935394b5852414870614e424e4130574967717941463557786e5a4a544a38637045696871306c4c42374b4a437063346b52624f377831774468353145537537515877375142305a495856786573793743794a714f546d46724544395449455653644a4e424964765662314564454975574b5971394651505a4f416765584156574874737061475525324630795056327132417569664a4c5556703178666d6c646131496e3646664c476253307a715a49476a6d47726a72374325324667543943634a676a7654346d5457253242714779737958694f4234376f6e794e7435376a42787065583330316f31647870643552493644634e566468696d315475784d41706f384e7662504a312532465038774d48347a253242366c62707268585259695271464f5849765a3637663577536235613371714a6861336d434c73746162546558565a5a58637049766b65734d342532463231583337774c655525324641714379574b7a4c435045387672395933334369416234654a6e6857343946677643614d6f79327a73336c6c766661686e586f704d30554f413776736139327976626f3336716b6c346e6a5552597633503042444139585834253242637033434b4f7a655a4d51545331334a35566f5737525265646e4642306b756d702532466a4c556f717972426f6d436a656a316475253246463767426542737044753767734753253242796f54424f49364b463666483850485738484172694d59575639594c644c76514d5530654a58484a537a4b4f423475545262493557626d4e55332532423144783765445752787a546355327a253242354478356c565138496b4f6f36386f6c586a5a364f756b253242543136635139253246584130707a63506c47336c68344c5377766a323245504c4b7567746f6a5636253242727870523271397a693176576f37336f7a6c59774f444748424836614635374e69384a62586d6d424378366b6f6d5a46642532464b70515777384c6e6a4963416e59344c614a3855657038764f674b644378516b44676f39694b65456625324238253246335872353047366d634552757662653441347630395a78664678666d6d567369784230536234253242783953253242307239546530725176355025324646395676784c3433796c2532427866394a786138493976253246357a656e2532467856253242636a714425324659436b36253242762532427a464233356579584d66314f4b2532466f71334f496e5825324642393759376f455271526636397a396d375851366458566a78677336502532423977447a35497a4261387463502532466c6f5a6265376263357625324658586d25324225324671554948663833363650253246357158724f5a7a684f666e335872704f4579516145253246253242636f6e55632532427464712532423366667255373973347257456679253246634375492532463166312532466f253246555725324249663146763633366d33662532466d714e646250455038714d4f6a665748714d253246427442253242444f7576337a7262325468723850346434674838643847345a39704546446b763578424950253246624950776644514c3144786f452532424e25324662564f627657775438623434513747253246376d66797a4c514c31337862686e326b52634f672532467a7949415838593462763953514a3731725051787938455625324677732533442533432532466469616772616d2533452533432532466d7866696c652533459471022b0000200049444154785eec9d07981445fac6bfdd9dcd39b084258b80082288a2e279e209ea194f319ce1383d338a87f10c441573e22f8aa7a772660ce7e9e9e96156444c8882020672d865239be3fc9faab5c6ded9d99da999eaaeea99b79f679f859d8abfef9d7abbaabbabe3bc5eaf9770800008800008800008384e200e26ec38735408022000022000029c004c184200011000011000014d0460c29ac0a35a100001100001108009430320000220000220a089004c581378540b022000022000023061680004400004400004341180096b028f6a4100044000044000260c0d8000088000088080260230614de0512d08800008800008846cc23f2e790eb440000440000440202a090c39f5742dfd0ad984df3ae50f34e090df6869242a0501100001100001bb086cfaf8233af2857fd9557cb7e54a99f061d7dfa8a591a81404400004400004ec22f0fefc9b61c276c145b920000220000220d01d019830f401022000022000029a08c084358147b520000220000220001386064000044000044040130198b026f0a8160440000440000460c2d0000880000880000868220013d6041ed582000880000880004c181a00011000011000014d0460c29ac0a35a100001100001108009430320000220000220a089004c581378540b022000022000023061680004400004400004341180096b028f6a4100044000044000260c0d8000088000088080260230614de0512d08800008800008c084a10110000110000110d0440026ac093caa050110000110000198303400022000022000029a08c0841d02ef6d6ea1d6d22a6a5af513357eb48a92c60da39403f6a2f8826c8a4b4e72a815a8060440000440c0240230619ba3e1ad6fa4ba379653fdbb5f51ebcf3ba9a5b8c2576342411679061751ca6f4651dab107517c7686cdad41f120000220000226118009ab8e86d74bad9535d4b2a598ea5ffe986adff894a8a535782d9e784a9d3886d24f9d489e013d293e2f8be2e2e383e7430a100001100001d7128009ab0a5d6b2b35acfa911adff98a1a57fd442d3f6c256f7308e6eb577f9c279e12f72822cfc881947af87e943c6e18c5257a54b512e5800008800008184400261c4130bc8d4d7cd6dbf8fe4aaa7efa6d6add5a1a5269f1b919d456554bd4e60d9aded33397d2cf3c82527eb71f25e466505c4a72d03c48000220000220e00e0230e130e2d4b2b584eadfff9a1a3ffd9e5abedf44ad95d544c1fd94d714171f47b9775c4815b31e276f5d6368b5c7c5517c662a79860fa0e4fd8751dae163c933b017515c5c68f9910a0440000440c04802306189b034fdb095763ff032357efa1d51184bcdacaad4a3f6a7bcf91750c54d8ba9ee5f1f4bd46e49ea89a7e4317b52d68c532869f880f0ca402e100001100001ed0460c21221a8fbef0aaab8e151891c1d93c667a4528f97e691a7470eb5965551c9c9b3a86d775dd8e5e5cefe13a59df09bb0f323230880000880805e02306109fe4d5fff40bbcebd432247c7a46947ee4fb9b75ee0fb63e5bcc554fbef8f435ecaf6afb8e0e12b2979ffe161b70719410004400004f41280094bf06fd95146c5c7fc4d2247c7a4b9b75d406993f7f7fdb1e1a36fa8fcaa07c3ba8b9a15d2f3b5f9e429ea11767b90b1238167dff82f9d73e34cfec77d860ea5a76e9b4f43070ea44fbefe9a0e3ff73c7af7b147e9e07df70d1b5b38e5945556d29f6f98494b972fef50efe337df447ffcfdd161b74536a3b51d91721075d73734d0d577dfc3ff7be79557d0cab56b23e6cccabcf7c9a7e8c253a6505a4a4a87f253535264bb8df420603b0198b004626f6b2b6d3fe862a29610efc2b294cd6eaceaf5bfbb3aec8ee56d6aa6923fdc482d3bca255af14b524f3cf559fe20c52524c8e7458e4e04d66fdc4867fded7abaef6fd7d0b08103b9f10de8d39b9b83aac13b12133e68dfd174fdf9e7f176cf7fe4517ae59d777d27094e8453b49dd535ebe28b7c6d89a46e7f1356c199b159fef52a7ae2969b283f272792e6212f08384200262c89b9f884eba965cb2eb95c714439b79c47e9478def948feda4557ef543d24bd2094505d4ebb55be5da81d45d12102613c860ace6599093c3cdfaace38ea1a59f7cca67a8d63cc2ccbf59bf9ece3bf924dab47d070903f53761abb14d3ae8a080c62166a056131675ccf8d3d97c36dcd50c5e18f6bc8716f199fd11071e486f7ffa69a7193e4bd755fd029830377662c2fa6435392b3b5697d5a8455b45dd820b3bb961477733612b4b96d63a0367ed117589b6ffef93e51d56321e9d3b9bfefee24bbc1e7132d55599e2ef5dc5155f1d10b08b004c58926ce9b47ba971f97752b93c837b53cf17e7f9f2789b9b292e31d1f7ff5d7f9c474debb64895c9ae05b36bc238d410b01a22334feb0c3890091f306a244ff3cabbefd1bdff7c921b5bbf5ebdb8a908935ab771235f5e15261da81c66a4271e3eb1cb65d36026bcdf88bde8e687ff4ef75e7b0d07619dc18be55db6742deaf8ecdbd5bcadec602713c1ea67e9ac6d386cff719d968cfd4f60c44901334d71d22278056a933049eb72b4588d38e398dff3130deb0c97717de6f53738ff2d3b77f27e9cf8bbc3f9ecdc9ace7f395aa4b59ebc88d8091e81e2ca2e49e00001bb08c08425c956def60cd52e794f2a57d685c751e685c7fbf2b0c79c32cf3fd6b7345dfde45bb4fbfe9742dabc43149276e204ca9df567a9762071f704acb32bebcc2b90798a41bfbbcffc0dd49a9619b5300036c833e362c6e2bf8c1ac884032d475b67c3e224825d1bb52e5bb334a2ce2fbffb3ea4fa19076bbb85395a67e6fe337c6b9ba74c3ac267f6cc4cad4bd0f32e9d46b31e58c883e27f4d98fdedafb7ddd1ed92bb355ee244a73b13b69e3031e681da1928ae91dc0780ef1c08042300130e46c8eff39aa7ff475577bf2095abc773b32869683f9e876df4517ce28dd4e3991b2969687ffeb7e60d3ba8f4ac5ba8ad3ec4cd3b8828f3921328ebbc63a5da81c4c109045a2216335aebcc4ecca6ba9add32c3e9ce84dffffc0bdf72aa6895f56630f1b7ae6ecc124bb3a27e66bc73a75d42b3173ee8333566c2d6eba356137e71e9db21d5cf0af3bfceeaff7f3b4cd8ff24c51a3971c2c18c97dd80c566ffe2a4a03b13f6e7d1ddc94238d7ef83ab0b2940a0330198b0a42aea3f5849e533da07ba508ed489fb52de5d97b4ef6ee5f5125fcefef47bbef355fe4357f0973478bd5eaa9cf90faa7b63452845f234b937ff85d27e7f60c8e991508e8075b6595a59e95b8215cbabdd99b0984dc9cc84bb6a5da099b0356d30d3097526dc55fdfed750ade9c41dda769830ab27d01de9fe3773d53534846cc2a1cc8403c5153361b9ef0e52cb118009cbf1a2a6f59b69d799b710b5b605cf999840bddeba9312723279dae6f55ba8e4f45faf0df778f27a4ada7b10ffcc5b5d473b265f45dec6e6e0e526c453c1c35750f2d861c1d322454804fc9778fdaf410a43e8ce84c70c1fdee19ab0b85148f535616b87acb35b71b22096a3add75f271f7c1037abe2b232a96bc2d6ebbbc28cc48981b87b5cd423ea6566c71ef5b2ae1cf4cccfe74bed6255c17a9d9af5c77f39da7fd9db7f162f66f8fe8c23bd260c130ee9eb82440a09c0842561b66cda49a5e7dcce5fdcd0ed11479476f478cabdb9fdb11276ecfefb6b54bde855dfff33fe3499b22f9fe2db03baf29627a9f6e50f83de299d9095c667d1897b61cb4ac9f075995cccb01e7de9659ea6abe784bb336166524edc1d6ded8475b99ab5b9303f8fe228ce776d595c370de7ee68c1c4ff6e68567fa0958285375c4f0fbff022b13ba0c52cb9bbbb8e833d271cec4e66568fe8f3c03e7d3a18396be37f173d482f2d7d9be30a7477b435c6fe779c63395ad5370be5042300130e46c8eff3e61d655476d1ddd41aec31254f02e5df7511a51cfaebe60ebbce98474d6b7fbd0b3a718f3ec466c3e2cd488d9fafa5b2cbff8fbc0d4dddb6cad32b8ff21ffc2b7906f6966c3d92db49c0df54fcefc6b5b3ee4065fb1b895dcfd0766758fee6e63403d40702a61380094b46a8ada29aca2ebb9f9abedbd46dce84be0554f8f44c8acf4ce3e91a57aea7d20beeeeb08c1d97104f79f75f4a29078fe269da6aeba9f4bc3ba939c8e34a8943fa50de82e9e4e9952fd97a24b79b80f5c62e5697ffe34e76d76f2ddf7f76cf3e53b5db95b51e98b09351455dd14600262c1951669465573d484d2bd6769b33e7a67329fd98837c696a9e5e4aad9b4b3ae549e8d78332ce9aecfb7bfddb5f52f935ed1b1e747524ed3398f2eebf8c12b233245b8fe4200002200002261180094b46c3dbdc4a15373e42f54bbfec3267e2e03ed4e3f959e16d29e9f552c91937753b1b4e3e686fcabf771ac525fdbae1876437901c0440000440c0000230e130825071eb5354f7c2078173c611655d7a12659e13fee6fab52fbc4795b73fdbe5e61d69bfef78c357185d40161000011000010308c084c30842f53f5ea7dd0b5f0998332e35897afcf37a4adca3a8fdf3d6566ad95519b49684fc6c8a4bf4f0742d5b4a68d79f6fa5b68ac07760679e7b34377a1c20c06eb6da5e52a2f44513fe54d9cd55626b4c999722f85f1fb7e37a341400026e2700130e238275ff594e15b31e0b983375f238fecee038b6390711d5fd671955def66cd05ab2a69d48197f3cc297aef2a6c554fbaf8f03e6cbb9fe2c4a9ff2dba0652241741360e6b8e0e9677827a79f79067feda21d473826cc1e9d62bb77b15dbc98713343bef5917fe0ed4676040865ba9a004c388cf035ae5843a517dfd729279b05173e379b3cfd0af967defa462a3e750eb56e2b0d5a4b42610e15be348fe2d35379dad6eda5547cda5cf2d63674ca9b7fff6594f29b7d82968904d14d806d60218e0ddbb6f95e2f284c332b2383c473cfd659a8d880433c3b9c919e4633ce3e8b6f34c25e98c09e7766263ae3f63be8c60b2fe0555867c281deda245e5e51555d432ffcef7f9deec216cf335f77fe5f227a2773744714bd8b450230e130a2debc613b959c3cbb53ceb449fb51eeed17f9fe2ebbc5a5ff569495739ea0da579775aaa7c7f3b32969cfbe61b41c59a285007bfce8a6457fa73f9f783c9f695a679dfecfe65a97acd9b3cb57dc7917dd73f5553c9fd877395413663b5e5967b4ac6c7688fc7d0a0b03be6b98b549d46bd78c3d5a628b7ec41601987018f16eaba9a31dbfbdbcc3ce56712989947bd3b994fabb71ed25b6b551c5bc7f525d0013edaacad4896328f7b60b7cd7861b96afa18a6b17515b8d65361c47d4fbfdfb7dcf1f87d17c64890202ccd49e78e5559a79d105949a92c277b062af1914bb76590d8f2d058b57ffb12d25adb36636ab65ff0fd584fdaf09fbe79f30660c7ff5a0f510cf2b07fa2c0a42812e8040440460c261e2dbf9bb2ba8b5a2da973ba17f4f2a7cfa06df72325f8a3e6926b51657845c437c5e26153e378b120a72da7dbcbe91ca2eb88b9ad66cfcb59e9c74eaf56ee7a5f0902b41c2a820605d12161d127b54fb5fc3b59a307b93103bd8bb77d9216bc2e21dbd62999b95c1eaf53771d12661c05dcd90a32218e80408444000261c26bcd2736fa3c6af7ff2e54e3d721ca54efa6516cc5ed6f0c336aa7ef835e9d233ce9e4449a3f7f0e56bf8f0db0eb3e9a45183a8c7e2eba5cb4586e82110e8fa6a77d770c399095b978f1939714d98bd3061d9ca95bebbb1bb32719647b4935d67f69f1d474f34d01310888c004c384c7e75ff5d4155773c4b6d55b5ed257812282ebefd8e687678dbda885a4278d3925ffd719e78a2f8f880e5c467a450f615a751da898784d96a648b060281ee34b62ef9ee3762af0e3752594d38d835613163b5beb5a82b13b6be46d07f268c25e868501afae00401987004949b37efa49a475fa7868f57535bb0b72a45504f7c561a251f3882b2ce3f963ce2f9e308ca43567713103743892565d11b669cecda2fbb4efcc033cfd2bdd75ee37b3c485c1366d78fc552f6a4830ea249071f483575f57c79dafad6a23bae9c415fac5ed3e9ee685617bb996be9f2e5c4f25f70ca147a6bd9329a77e9349af5c042dfddd55dbd8718cf0abb5b7b68bd7a0230e14899b6b652f3861db4fba157a9e1c355a1bd6738d43ae3e32879fc5e9475d9497cf30fb19947a8d9910e04ba2380d92af40102fa09c08415c5c0dbda4a0dcb5653cd13ffa5e6ef3793b7b139ec92e3923c9438ac1fa59f3989d81dd330dfb05122a31f01ff5dacc4cd5c00050220a087004c583177f696a5c615df51d5edcf52ebae2ae9d213723328ebcad3f8661ce23588d28520030880000880802b08c0846d0a93b7a1916a9e78936adf5841addb767578a6b85395714409bdf329ed887194f197dfc37c6d8a098a0501100001d308c0846d8c08bb43ba6d5b29552f79976a9f7997c8eb0d585bfac98752c619475042ffc2f05e7f68631f50340880000880807d0460c2f6b1ed5072f30f5ba96ac18bd4f4c57a7ebd985df74dda774fca9c7622258f1aec502b500d088000088080490460c20e4683ed80d5f4fd266a786305a54e1a4b892307fb76d872b019a80a0440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c2100133624106806088000088040ec118009c75eccd1631000011000014308c0840d09049a010220000220107b0460c2b11773f4180440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c2100133624106806088000088040ec118009c75eccd1631000011000014308c0840d09049a010220000220107b0460c2b11773f4180440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c21e01a131e74e86f0d41866680000880000880801a021b3efc808e7ce15f6a0a932c25ceebf57a43c9f3e392e74249863420000220000220e03a02434e3d5d4b9b4336612dad43a520108304d6ac5943071c7000ad58b182468e1c198304d06510881d0230e1d889357aea120213264ca04f3ef9840e3ef8605ab66c994b5a8d66820008844300261c0e35e401019b08ac5cb9920e3df450aaa9a9a18c8c0cfae0830f68ecd8b136d5866241000474138009eb8e00ea07010b01310b167fc26c18f20081e82600138eeef8a2772e22609d058b666336eca200a2a920100601987018d0900504ec202066c1e9e9e994909040adadad545b5b8b6bc376c046992060080198b021814033629b009b051f78e0819493934377df7d379d7df6d9f4e4934fd295575e49959595b47cf9725c1b8e6d89a0f7514a00261ca58145b7dc45a0acac8cfefdef7fd3b9e79ecb1b1e171747e211fec71f7f9c8e3ffe78cacfcf7757a7d05a100081a00460c24111210108384fc06ac2ced78e1a4100049c220013768a34ea0101090230610958480a022e2600137671f0d0f4e82500138eded8a2672060250013861e40c0400230610383822681800d0460c236404591201029019870a404911f04dc410026ec8e38a195314600261c630147776396004c3866438f8e9b4c00266c7274d0361050470026ac8e254a0201650460c2ca50a22010309a004cd8e8f0a071b14a00261cab9147bf638d004c38d6228efeba82004cd8156142234120620230e18811a20010504f0026ac9e294a04011309c0844d8c0ada14f30460c2312f010088110230e1180934bae92e02306177c50bad05817009c084c325877c2060230198b08d70513408184400266c5030d01410100460c2d00208c4060198706cc419bd74190198b0cb0286e68240980460c26182433610b093004cd84eba281b04cc210013362716680908f808c084210610880d0230e1d888337ae93202306197050ccd05813009c084c304876c2060270198b09d74513608984300266c4e2cd01210c07234340002314600261c63014777dd4100336177c409ad04814809c084232588fc2060030198b00d50512408184800266c6050d024108009430320101b0460c2b11167f4d2650460c22e0b189a0b026112800987090ed940c04e0230613be9a26c103087004cd89c58a02520e0230013861840203608c0846323cee8a5cb08c0845d1630341704c22400130e131cb281809d0460c276d245d920600e0198b039b1404b4000cbd1d00008c4180198708c051cdd750701cc84dd1127b41204222500138e9420f2838002024b972ea52953a6d082050b68ead4a9244c78f1e2c5347dfa747ae1851768f2e4c90a6a4211200002261180099b140db425a609a4a4a490c7e3a1d4d4542a2d2da5828202aaafafa7e6e6666a6c6c8c6936e83c08442b019870b44616fd721d81db6ebb8d66cf9e4d4d4d4dbeb6272525d19c3973e8baebae735d7fd060100081e00460c2c119210508384680cd821b1a1a7cf525272777f8bf630d41452000028e1080093b82199580406804acb361cc824363865420e06602306137470f6d8f4a0262368c59705486179d02810e0460c2100408184680cd8667cd9a4573e7cec5b560c36283e680806a023061d544511e08444880dd0d7dde79e7d1238f3c426c491a07088040f412d066c213274ea4f7df7f3f7ac9a267200002200002b61038ecb0c3e8bdf7deb3a56ca70bd562c26ce301f6b364c912a7fb8bfa4000044000045c4ee0d4534fa5534e3985ffb8fdd062c2d104d0ed0240fb41000440c06d04a26922a7c584b12faedb248ff682000880805904a2c5471c37e1683a83314b92680d08800008c40e8168595175dc84a3055cec481d3d0501100001f30844cb84ce71138e962504f324891681000880406c1188063f71d484a3e5cc25b6648ede82000880809904a26165d551138e0660664a11ad0201100081d823100d133b474d381a960e624fe6e83108800008984bc0edbee2980947c3198bb93244cb40000440203609b87d85d53113763ba8d894377a0d02200002661370fb04cf311376fb9281d93244eb40000440207609b8d95f1c3161b79fa9c4aeb4d17310000110309f809b575a1d31613703325f7e682108800008c43601374ff41c316153960a1a5a6aa9b6a99a1a5beb6877433935b5365052420a65a5e45172422aa52766514a627a6cab19bd0701100001171230c56764d1d96ec2269ca194d66da3659b5ea39fcabfa18afa62aa69aca0566fab8f55425c026524e7525e6a4f1a9cb70f1d3ce038ea915624cb12e9410004400004341170eb8aabed26ac0b8cd7eba5f2fa62fa60c38bb46cd3abd4dcd6c8a591e249a78ca46c4af6a4527c9c875adb5af88cb8a6a992d84c991d89f14974f080e3e9b04153283fad1711c5699215aa0501100001100885800913be50dae99fc67613d6b544f0ddae15f4d2ea05b4ab762bef73617a3f3a6cd0293420772fca48cae126cc66c0ad6dad3e13de50b1863edcf83215d76ce2790ad28be8d451336878c1fee1b0451e1000011000010709e8f29b48ba68ab09eb383369f3b6d1f2cdffa125dfde435ef252617a7f3a7cf06934bedf519410ef09ca8a99f2675bdfa4777f7efe17338ea32923a7d321034ea4f8b8f8a0f991c0dd04d6ad5b47a79d761aefc4f3cf3f4fc3860df375e8a69b6ea259b36675e8e085175e48f7de7b2fffdb8c1933f86ff6ffd4d4d44e20962d5b46871c7288efefa3478fee544757f458bbde78e30d5f1deea68cd683803d0474adbc46d21b5b4d580790cfb7fe8f9efde60e6a696ba6d1bd7e4ba7ef7315a52566123b430af5604bd9752dd5f4e2b7f7d397dbdf264f7c229dbcf7749a30e0f8508b403a971278fae9a7e9acb3cee2ad7feaa9a7e8cc33cfec60c2cc48599afcfc7c12a6cad29d74d249dd9a30cb73e79d7776305d66ea2fbdf45250232e2b2be3ed98306102cd9c39d3a564d16c10b09f808e895fa4bdb2d5849d5e1af8b6f8137af4f3ebf90c78bf3e47d02923ff4a6949996133aa6faea1e7beb98b56ee788f9771fefef36954cf096197878c6613a8afafe7465a5555c51b9a9d9ddd6156cb4cd36ac2223d4b3b7ffe7cbafefaeb03ce84c5ecfaeaabafee60eafe3444ba55ab56f94e0284b93ffcf0c3fc6f62e6fdd5575ff966d5471e79243f316087d5acc549c2bc79f3b8798bff7ffcf1c7b471e346dfc986989117141474327bff3e9b1d41b40e04884fb8d844ca2d876d26ecf41949abb785e6be733a5536eca27d7a1d4ae78c9d1dd2f273b040b11bb79efefa36fa62fb52ca4e29a059873f4389f1c9c1b2e1731712b09a256b7ea0996b38261c6816ec8f4718fad9679fcd67bcd659b2bf395adbe93f03bfebaebb7c270a6fbef926375a61dc2fbffc323df9e4933477ee5cbaefbefbe881071ef019f7c08103f9098735bfbfa9bb30a468720c12d0b1021b0966db4cd80910ec8ee6d5c5cb6963c51afef811bba12a37b5274d3ff07eca4fef1d3697daa6dd949e94e5cb5f515f420f2c9f41bbeab6d2a0dc9174e941f7f23ba871441701ab59b29eb16bc3d6d9abffac30d4e5687f13f6bf366c5df6b6ce86bb9aa1fa97c7fecfcc95fd5ebb762d4d9b368d2f712f59b2845fc366e53cf1c413b468d1222a2a2af22d695b97defd67d86cb6cc0e760d9bfd9b9d18e000013710707a02182913db4cd8ee25812fb7bd43cf7f7bb7efb12206223e2e81fe76e813d42bb37fd85cb654aea7155bfe4b53465ddea18c929a2d74cbfb7f222fb5d1c5e3efa2bd7ae08ee9b0211b98d1bab4dcd58d56816ecc124bbdfef9ad3766599781ad66669dd11e75d4517c2978e7ce9ddc40bff8e20bdf4cdc7f261ca81dc2b0c5c9c3d4a953e9adb7de22b654cd7eb319f3830f3ec84f2ad8ac97992b33de5b6eb9856eb8e1061e11d6efbaba3ade0e3623fff9e79f3b2cbf1b18363409040212b0db7f5462b7c584ed3c13a969aaa21757df4f5fef789fdabcad94959ccfafd30ec8d98b8ab28650bf9ca161f3d951bd911effb27d19fbb283eee33774598f7f7c318b56edfc8026f43f9e4edbe7cab0eb4146f308f8cf4ead2d1433c1eeae8f7667c25d5d13b6fe5d18a3a8cb3adbf537e1ee96b7453b366cd8c0bb70fbedb7f31930bba62c8c9acd90c5b27a5a5a5aa71bca583fbffbee3b9e7fc48811b819cc3cb9a245410838b112ab2a08b698b05d00d8661a0f7f7e1dfd54b68acf7ac7154da2d3475d459e84c48878b0c79a3657aea587565c4df52d35fc39e2e907dd4fbd32077628973dfaf4ec3777f2bf1565ef4953c7cca25e19fdb0994744f4cdc81ce84e656192279f7c3237a2704d98f5502cfd0a9315773cb3592a5b8e1e376e9c6ff9db7f562c734d98cdc0455de286ad40d786c5f5eed2d252dfac583c5a653d21c152b419fa442be408d83911946b49f0d4b698b05d4b01ec4ee54f33112a770000200049444154b7bc4ea99e4cfee8119b01c7c72704ef651729d81d74eb4bbfe265ae2e594e8d2d753c651cc5d38507dc46230ac777c859d75c4dafac79903edfb6945abdcd949e94cd9f419e38f854fe18130e77121086286e4e124bc96256c9ee2466c6c69673ad3766597bdbdd4c58a40b34db16cbd92c8d7599995d8f66cbd2d65938bbbe2b8c955dfb15cf1c8bbfb1c7a6d8e17ff2e07f97b4f50480cd8e7bf6ecc9ef28158f5e89cfc5c98328d79dd145ab6395805d3ea49aa77213b6eb0ce49b9d1fd1a35fdcc837cc3865e4157470ff63437af6972d5957375650795d31edacd948d58de5c496b44bebb6d386f2d554dbdcfe388aff71ccd0f3e8c8a16707fc8c5d377e61f5bdb4b96a1ddfd0f2d8e1e7d3e1834f0fa93daa0388f2404035013c97ac9a28cad341c0ae1559d57d516ec27674bcb1a59e1ef9e27a3e6bddbf68329d31fa6f9410c20cb8a9b591febbfe715ab5e3432aabdbc16faaeaee604bdceca7a5ad89d773f698f61b56021dac4dfffe7e117dbce9154a4c48a63f8f9d8d678855ab13e5394e40ccc6fd67d78e37041582408404ec9a1046d8ac4ed9959bb01d4b00ecd1a37b965d42e4257ec354dfec3d83726868a9a37faebc855617b73f6a11ca519056442c5f4d53050d2b1847d30ebcbbdb6c6c8bcb7f7c7923ad2efe847a670ee2d791d912350e100001100001fd04ecf023d5bd526ac2769d797cb6f52d7aeaebf9d4376b4fbaeca0fb29358477fe7eb4f1dff4d29afbf91dd4a11cec66ac03fa1e45effdbc84cf98f7cc1fc30d3fd8515cb3991ef87406d53456d2f9fbdf42230a0f0c96059f8300088000083840c08e9559d5cd566ac2767578c9ea7be9e38dafd098de13f9b26fb07da0d90c75cebba75155c3ae90782527a4d1d143cfa1377f78c2f7dcf1e85e87d15fc6cd0d9a9fd5f5cf9537f1ad2dc7f73b9ace1cfdb7a07990000440000440c07e02764d0c55b65ca909db35f57ff4f31be99be28ff8cd4f278eb83868ffcbea76d2dc77dbdf8413ecc84ccaa3f3c6dd4c6facff07ad2bfdd297fcd861e7d3e43ddb37f20f767cb2e9357aeedbbb282fb537cdf9dd73c192e373c309f86f8611ce633aec0ee53973e6f0ad2155dd5d6cbdab992114bb5cb1bbb955d7c7eea8661cc41dd386870ccd03812e09d8e54baa902b33613bcf381eff6a2eaddcfe2e1d3af064fe5ac16007db6672f63ba7749bcc139f4443f2f7a54943cea2afb7bf471f6dfa972f7d52420a5d32fe6e1a9c37325855fcf375bbbea0852baea4f8380fdd77cc3b21e54122330930e3d9b66d9befc50de2719f850b176addba511830dbc94abcd98919e4471f7dc4dbba79f366a5a60f1336539f68953c01bb5668e55b1238873213b6b3a3afadfd3b2dfdf1691a5eb03f5d3cfecea0cbd1ecf9df79ef9e4165f5db03f69a5d5b3e65d40cea9735941efeec5a5a57f6eb0c98651898bb374d1b7f37257b3abf13365081eb4abfa2859fce8009ab52a5a672c4b3bebff9cd6f3abdc29035e9aaabaee2bb4b8d1d3b963f33ccde7624f67d66663d7d7afb09223bf3b6be24813dd32b5e96f0dc73cff976ae62ef2ab6ce6ed9cc96bdc189cda0adef3166655a0dd7ff396666cc6c430febccdbfa4cb2ff3b8fc54b2258dd975e7aa9af3eebbed5ecf9e5ae9e89d6141e540b026111b07382185683fc322933613ba7fcdfeffa8c16adb8867aa4f7e5376665a7b46f4ad0ddb176d7e7fceee8e6b646ea953190fa660da1fe39c3b8c1b2ad2ebfd8b694df84555ebfb343313d3306d0b963e752efac41c1aaf07dfee1867fd18b6beea3c2f4fe74e3c42743ce8784e61110bb4d5937d110adf4dfbc83ed36c58c77c182053c09db6043cc98adcbc362630db6accd0c9c19b97891029b79b383edc8d5d576945d9d1c58e959eb63ed126db1d6274e220299b0d8954bccb4f10a43f3b48916854fc04e7f0abf55ed399598b0dd671a6c79f9de65d3687763195d74c0ed343c849727b4b5b552434b3da524a6f10d3ed85151bf8bdefbf979fa70e3cb01ef9ade237734fd79bfd92199bc00cfeebe667b4a7f5bfc311dd4ff58fae33e57471a13e4d74cc0ffdaabff4b1aac3365665683070fe6db4e0a4366b3587f13b65e5f6566cb5e8e70c92597749889facf4cfdcd5f9867203cfef5b1b72a59b7a164f53ffae8a374f3cd37f39733b0174958eb63655a67d2aaaf316b0e29aa8f710276aed4468a568909dbdd4166746ccf66f676a3de198368fac10b3abc6ad01f02bb6379d6db5368afc203e88cd1d750795d096daffe8976566fa4e6b62662ef08f67adbf89697ec250dd9c9f9d43b6b30f5c91c4471bf1876a860d94b1f1e58fe577e57f5f9fbcf0fe90421d4b2914e3f01eb2c54bcbbd76a865613eecac4d84cd86a8ac284d9f7c66adcc14cd87f99bcab9930db2b5a5c2bb6deb4c5f68beeca84d9ecd97aa20013d6af3db4401d01bb278a91b45489093b31d567cbc637bf7b16b5789bf98b1bce187d6db7fb35b3571de6a5f6a44121de5c150ec496d6665af4d9b5b4beec4bbe81c8a507dedbe9cd4be1948b3c7a08301364aff563aff7b3ded12c4c532ce70a33b41a349b09cb9a70a833614623d03561f677669c871f7e78876bc2fea62f6eb2f29f098bebd862391d33613dba43adce1070c2a7c2e949c426ece419c6e75b97d2f3dfdec567b2fb151d41c70fbf90b252f2c2e977c479d89698cfaeba93bedcbe9412e393e9a2f1b7f30d3e70b89b80f51a2deb89f5ae643113667f1777245baf09cb9ab07833132bafbb6bc2feedb0de1dcd66d8cca0d94c56d41fec9ab0b81e6dbd06ddbf7f7f7ead5a9c60e09ab0bb758cd6772660f78a6db8cc233661273bc65e39b8f4c7a7f89dd24dad0d9497da8b4ede7b3af5cb1ecab78b646f320ab69147b8a0583e66feec5587ec050eec9dc6bbeab6f27da34fdefb323ab8ff7191148dbc0611f07f4e58dc012d66beccc4d81b8dd8219e21f65fbeedee1aad985933e3b55e7fbee79e7be8b3cf3e0b7877b4d588d9eb0fd961dddfd9bffe4077478ba56976d316bbb3dbbf3eebddd1ec33f67fff550183c284a68080140127278c320d8bd8849d9ee2b36bb95f6e7f97bfc5a8beb986f7b520ad0fe5a5f5a2b4c42c4a88f3c8f45f22ad97d8ab0cab1acaa8a4760b7fc903bb9e7ccac81934baf7a17895a10449b7261526dcdd0d5291f40dcfe646420f7941203801a7fd2a788b22bc3b5ae799057b3de1ebeb1ea375a59f53554329b5b43587d25f256972527a5051d69ef487bda751617a5f2565a210f309a8366151dec30f3fcc3bcfdeedcbde21ecff8cb0f964d0421070070127576e432512d14c587787d8acb8a2611755d417d3b6dd3ff24790dada5a42edbb74bacce41c2aca1e42ec6d4bf969bdf96b0f71800008800008b88380ce8963578422326113a7f6ee90025a090220000220a0838069be15b6099b7846a123a0a8130440000440c03d0474afe0fa930adb844deb887b248096820008800008e82260da04326c13366d4aaf2ba0a8170440000440c05d044cf2afb04cd8b4330977851fad050110000110d049c0a495dcb04cd8a40ee80c24ea060110000110701f019326926199b0495379f7851f2d060110000110d04dc0141f93366193ce20740711f5830008800008b89380292bbad2266c4ac3dd1976b41a0440000440c00402a64c28a54dd89429bc0941441b400004400004dc4bc0043f93326153ce1cdc1b72b41c0440000440c0140226acec4a99b0090d3625786807088000088080bb099830b194326113a6eeee0e395a0f0220000220601201ddbe16b2099b70c66052e0d016100001100001f713d0bdc21bb209eb6ea8fb438d1e800008800008984640f7043364139e387122bdfffefba6f1437b40000440000440202202871d7618bdf7de7b1195116ee6904d38dc0a904f1f81e6e6669a3a752a2d5ebc98121313f53504354b1140dca47019931871332614ae6a084cd855e1926becfcf9f369eedcb9346bd62cbae1861be43223b53602889b36f411558cb845842f6633c384a338f4292929d4d8d848494949fc370e771040dcdc1127ff56226eee8c9bee56c3847547c0a6fad959f9bc79f3b8f9262727d3cc9933311bb689b5ca62113795349d2b0b71738e75b4d504138eb688fed21f71562eba87d9b03b028db8b9234e5dcd82f17d7367fc74b61a26ac93be4d755bcfca4515980ddb045b61b1889b42980e1685b839083b0aab820947615099e17a3c1ecac8c8a09292122a2c2ca49a9a1a62776f36353545618fa3a34b889b3be388b8b9336ea6b41a266c4a2414b5e3edb7dfa62953a6d0030f3c40679d7516892dd99e7aea29baecb2cb68c992253469d22445b5a1185504103755249d2d077173967734d606138ec6a85afaa47b5fd428c76b5bf71037dbd0da5a30e2662bdea82c1c261c9561fdb5531814dc1960c40d71732701b45a96004c589698cbd263307759c07e692ee286b8b993005a2d4b00262c4bcc65e93198bb2c60306177060c717375dc74361e26ac93be0375c3841d806c4315889b0d501d281271730072945501138eb280fa770783823b038cb8216eee248056cb128009cb1273597a0ce62e0b189635dd1930c4cdd571d3d97898b04efa0ed40d137600b20d55206e364075a048c4cd01c85156054c38ca028ae5e8e80828067377c611717367dc74b61a26ac93be037563507000b20d55206e364075a048c4cd01c85156054c38ca028a997074041483b93be388b8b9336e3a5b0d13d649df81ba31283800d9862a10371ba03a5024e2e600e428ab02261c6501c54c383a028ac1dc9d7144dcdc19379dad8609eba4ef40dd18141c806c4315889b0d501d281271730072945501138eb28062261c1d01c560eece38226eee8c9bce56c38475d277a06e0c0a0e40b6a10ac4cd06a80e1489b8390039caaa800947594031138e8e80623077671c113777c64d67ab61c23ae93b503706050720db5005e2660354078a44dc1c801c6555c084a32ca098094747403198bb338e889b3be3a6b3d530619df41da81b838203906da80271b301aa0345226e0e408eb22a60c2511650cc84a323a018ccdd1947c4cd9d71d3d96a98b04efa0ed48d41c101c8365481b8d900d581221137072047591530e1280b2866c2d111500ce6ee8c23e2e6ceb8e96c354c58277d07eac6a0e000641baa40dc6c80ea4091889b0390a3ac0a987094051433e1e80828067377c611717367dc74b61a26ac93be037563507000b20d55206e364075a048c4cd01c85156054cb88b804e9c3891de7fff7dd787fbb0c30ea3f7de7bcff5fd88b50e60307767c4a365dc504d1fe350d74461c25db0c120a8fa6b88f26408407f32b490d67402d0334c585aa3108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384838a70e9d2a53465ca145ab060014d9d3a958468162f5e4cd3a74fa7175e7881264f9e1cb41c2400817008407fe150431e530940cfa14726ceebf57a434f1edd29535252c8e3f1506a6a2a95969652414101d5d7d7537373333536364677e7d13bed04a03fed2140031412809e43830913b670baedb6db68f6ecd9d4d4d4e4fb6b525212cd993387aebbeebad088221508844900fa0b131cb21949007a0e2d2c30613f4e6c16dcd0d0e0fb6b72727287ff878615a940203c02d05f78dc90cb4c02d073f0b8c084fd1859cfde300b0e2e20a4504b00fa53cb13a5e925003d07e70f130ec0489cbd61161c5c4048a19e00f4a79e294ad447007aee9e3d4c38001f76f6366bd62c9a3b772eae05ebfbeec66ccdd05fcc863e2a3b0e3dc384a585cdee863eefbcf3e891471e21b6248d03049c2400fd39491b75d94d007a5664c237fde742bb6385f235139879ecc39a5bd075f5d09fb1a151d63093f5a7ac93bf14043dab266a5e79a1ea39e4e568269a93f79f6e5e4fd12225045efa7c01852a1a25154a1602fd4902735972d3f5a71a27f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e63d6845bbd2d54d7541556e4d293b2293ece13565e5333c98846471fa26dd082fe3aaac874fda9d63cf4fc2bd1581f4f63ce84d9e0f7f9b6d76875f187d4dcd618d6772b29218546f5fc2d8d2b3a96e22921ac324ccb64fa20182d8316f41758f9a6eb4ff5f7157afe9568ac8fa73167c2effefc04ad2bfb4cc9776aef1e13e8d081672a294b7721a60f82d13268417f306146007aeeac83581d4f63ca847754ff40afacbd57a9dffd61afaba857c660a565ea280c266c3f75e8af6bc6a6eb4fb53aa2c184a167357a8e1913f67abdf4c277f3a9ac6e9bd2ef5361fa003a69c4351447714acb75ba30d30741b70f5ad05ff78a365d7faabf8fd07360a2b1389ec68c097fb7eb63fa60e333217d97d213b3a9c5db4c8d2d7521a53f7cd0d934ace0a090d29a9ac8f441d0ed8316f40713b612809ebbd643ac8da73161c28dad75f4ec3773a8bea526a807f6cf194e7f3de8ffa8a9b59ee67f700eed6e2c0b9a272d319bce18358712139283a63535014cd8bec8407fc1d99aaebfe03d904be16613869e83c75a46cf3161c29f6c7e895615bf13905c5e6a2f62b7c86fa95ac73f3f6cd0143a79efcbf8bf1f5c710d7dbf6b055f6a1e5ab01f6ddbfd23d53455062c674cefc97460df138347c7d01432a2d1d105370f5ad05f70c598aebfe03d904b013d633c158a897a13ae6c28a6e757df4c6dded64edf92bd0b0fa273c6cea1a48464ba67d925b4b1f2bb0e26fcd067d7d277259fd221fd4fa0d3f6b982763796d3a215d7d296ddeb3b959510e7a1d347cda2ace402b96fa321a94d1f04dd3a68417fa109dc74fd85d68bd05341cf184f63c6845f5fbf903657ade9f4edd8236f1fbaf4c07bc8139f484d2d0d74c747e75371ede68026ccccfa82fde7537c5c3cd53655d19d1f5f446575db3b953928671f3a6acf8b42ff261a94d2f441d0ad8316f4179ac84dd75f68bd083d15f48cf134264c7873d56a7a7dfd839dbe194909a974e361ffa4dcd442aa6dda4d0f7c7a056dddfd43a7e5683113661f8cec7930fd65bf9bc813efa19fcb57d3bd9f4c0bf88d3b7ef8742aca1c1efab7d19094a60f826e1cb4a0bfd0c56dbafe42ef496829a1678ca7516fc26cf979c9ea9ba9a2a1b8d3b7e2883dcea413f6ba80d863230f7dc6aefbfeba7987f59ab0d584592113079d4a27eddd6ebe8f7c7e037d53fc71a7b2f352fbd0a97b5f4f7171f1a17d1b0d4965fa20e8b6410bfa9313b6e9fa93eb4df0d4d033c6d3a837e16f8adfa1659b5f0af86d983df1192a482fa235c59fd2a2cfafed90a63b1366cbd1330f7b9a0ad2fbd09ae2e5b4e8f3bf052cff37034ea39185bf0dfe4d342885e983a0db062de84f4edca6eb4fae37c15343cfc42fef613c258aca1bb31a9a6be899d5b3a9b1a5bed3b7213fad37cd39fc39fef7c7bf9c4b5fed7837641366097f3ff45c3a7ae8547e1df9eab77e1ff086af644f3a9d396a0eb1df6e394c1f04dd3468417ff2aa375d7ff23dea3e07f4dcce07e369949af0f22d2fd1d73b033f92b4578f03e892f1777201cc7df70c2af5db41abbb9930cb33b2f060baf0805b79fed9ef9c46e5f53b037edbf6eb73241d507482eaefae6de5993e08ba69d082fee4656abafee47b143d260c3dcb475f46cf5139137ee9bbdba9a476534072a37b1d4ae78dbb897f76fdff4ea4eaa68a0ee926f43f8e4edfe72afeb7fb3fb99c7e2cffbac3e743f246d3e5072fe07fbbe5fda9b4b36663c07afa64ee41270cbf523e7a9a72c888464713dd64c2d09fbc424cd79f7c8fa2c784a167f9e8cbe8392a4df85fdfdf493b6b360424b767fe189a7ed07dfcb3db3efc0bdf80c37a247bd2e8a411d3a8aeb99a5efdfeefe4a5b60e9f8fed7d389db3df6cfeb71b96fe813f3b1ce828ca1c4ac70fffab7cf434e590118d8e26bac984a13f798598ae3ff91e458f0943cff2d197d173549af017dbfe439f6f7f232039b62ff4ad935fe1772fbfb87a017db031f0cd5b5d613f75e40cfacdc013a9bab182ae5fdaf50e59e3fb1e4f637b1f251f3d4d396444a3a3896e3261e84f5e21a6eb4fbe47d163c2d0b37cf465f41c9526dcd4d6c0f78aae6bde1d90de8c8317d2e0bc91b4b37a33ddfae1546af3769ced76853c2d318be61cfe2ca52666d0f2cdafd333dfdc11306946520e9d3e6a3625c6bb672f6919d1c84b32f21c6e3261e84f3edea6eb4fbe47d163c2d0b37cf465f41c9526cc90adddf509bdb7f1a980f4c6f49e48e7ee37877ff6fabac7e8cd1f16874479ea989934aee808f27adbe8f68fceefb4942d0af9dd1e7fa6a179078454a629896444a3a3cd6e3261e84f5e21a6eb4fbe47d163c2d0b37cf465f41cb526ec252fb11b0a76d56e0e48f0b203efa3a10563f8861d2f7fb790dedff04297a4e3e312e8e41197d1a183fec0d37cbce9557afedbbb03a6ef953188feb017bbb1cb5def1796118dbc2423cfe1361386fee4626ebafee47a133c35f48cf154a8246a4d98757067cd4ff4afef039b6556723e5d31e141ca4febc559acddf505fdefc7a7e8c7b255be9bb1d8bed2230a0fa4a3f79c4a7db3f7e4e93654aca1ff5b3e839adb1a037ed34e1e710d15a60f0cfe2d342c85e983a0db062de84f4ee0a6eb4fae37c15343cf184f63c2845927dffef931faa1ec8b80df8adc94423a7fff5ba85ff650dfe70d2d75545eb793efe6c236f6b0be2398edb0f5c4ca79d4d0521bb0bce10507d2c4417f0afe0d343085e983a01b072de82f74a19baebfd07b125a4ae899f88e85184fa374b30eebd7a0a6a9829efb762e35b73505fc7624c427d2c441a7d0e1834fa3cce49c80694a6bb7d39b3ffc93566c7d9388bc01d330b3fee3a839c4eebe76e361fa20e8d6410bfa0beddb60bafe42eb45e8a9a0678ca7313313661dfd72fbebf4d9b6d7bbfd86b0f701b3678807e4ee45d9c9f9fce6abf28612da50fe2d5f8266d7f8ba3bc6f73d81c6f63e32f46fa161294d1f04dd3a68417fa109dd74fd85d68bd05341cf184f63ca845bda9ae8d9d5f3a8a68b8d3542ffea044e99955c40a78f9a45ccc8dd7a983e08ba79d082fe827f2b4cd75ff01ec8a5809ebbe6156be36954df98650df38fe55fd0d29f1e93fba68498faa82117d2a0dcd121a6363399e983a09b072d1671e8af7bdd9bae3fd5df5ae8b96ba2b1369ec68c09b390ff7bed3db4bdbae33695917eb9fa660da5e386b9677bcaaefa6bfa20e8f6410bfa83095b0940cf81f5108be3694c997069ed667ae1bbdbbbbcb94ad690e3289e4e1d793de5a5f691cd6a5c7a98b0fd2181feba666cbafe54ab231a4c187a56a3e798326186ec93cd2fd2aae28eef100ef70b36b6f7641adfb7ebfda3c32d57473ed307c16818b4a03f3583968eef87ea3aa1e7ce4463753c8d3913667739af2e7e9f5615bf43d561dea8c536fa18ddeb081a5978a8eb76c6c272b4eae154ae3ce82f302fd34f02e5a21c3c75b49830f41cb99e63ce840532b6a96457cf0e07fb0a79e293822571dde7a60f82d13268417f910f5aaefb72056830f4fc2b94581f4f63d684a3e18bacb20f3061953451962c01d3f527db9f60e9a3cd8483f537d63e97d1334c38d6d4d1457f6544a30319062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a3676d26fc9f97fe43d74efb1b27f7e4ab4fd2d803c6f07f3f74cf227ae08e0768d8dec3e8ee87efa28af24a3afbf8b33ba4310b7768ad69a86fa0db67dfc1135f3bf71a4a494d0998f1abcf566ae9af8c6842ebb1da54aa072de80ffa53ab50b9d2a067395efea9a3693c35c2842fbde652baf88a8b48805df2cf253e131e34645064d142ee9008c4b209437f2149c4d644a6eb4f75e7ed3461e85975b4e4cb93d1b376133efa84a328333b8bcf0e776cdb41575e78150d1e32887efe7143c099f0861f37f034ebd6aceb308b16334826403693164214336b96f8d43f9ddaed2cb4abb495e59574cdb46b69d97bcb3ad429da32e1b707d3b20f3ea1bd47ef4d6c27ae048fc7570f2b73e5e72be9a6bbe7d1a2fb1ef6cd84df7ee36ddf4a8008315b11608775e6ef5ff7ed0b6fa3634f3e565e154172c8884679e5211468d7a005fdfd0a1ffa0b41888a9240cf184f8594b49b3033cba5af2fe586bb66d51a7af5c5d768c26113e8df4bfeddc984993933333c7eca71dc8884c1ddb1f0766edaccbc84f9b20e5a3f67ff6779c7ec3f86cfbafd0feb32706e5e0e37fa732f39878ef8fd111d969199793ef6e0e3bc6dec60e946ef37da67ba6c9993f581b5c95ae739b227dd81000020004944415417ff39e072b430f282c2029e47f4830d88a2bfa2cd762e55c7aa09437fed27b5d1a8bf65cb96d121871c42f3e6cda3993367f2ef637d7d3dcd9831833efdf4537afef9e769d8b061fcef81d22af2db80c5d865c2d0b3fbf4acdd84ffef8905f4dce2e7b9b16ed9b4954a7696d088517bd1b34f3cd7c984999a6fbeee66fe77ff656a7f83123348abe932831406da557e5687f51ab5304966c8ccf8c5ff6fbcf546b29ab5989d5a3fb7ce6a599f025d1316b36f31c3b5f6c37f561cea759070068f583561e8affd1e8c68d45f2c9a30f4ec3e3d6b37e1479eff3b2d7dfd6dee1bdbb66ce366cc0e6196d61bb3b66fd916d4448581fa9b272bb33b13b65e8f1626665d9ef337363668b1e567316316262cca29ec55c8b3b0a56836c3653762f99bb030dc091327f034397939643561fffec284a787737e11308fb8310bfa3b9ba03f65b20ab920bb66c2d0b3fbf4acdd8499d131b3b1de296d351fab09fbcf0cad8a979d09b3a56f51a775095b9835fb8c0d4ed3ae9a4673af99cb97a6fdafc506327aabd917f4c8a731078ced70d319fb9c5dff6607336576139a75e68d9970e071ccae410bfa83fe42764e8509a1678ca7424e4698b030577146fef17b1f079c09fb5f23b5ce6c033dca24734dd85a56efa2debe59ebe5d74da7fb6f5dc07931f30c744dd8dfa0ad378f0983f59fc57ef7edf7fc1ab6ffcd625613c635e15f473d3b072de8efd747e6a03f854edb4d51d033c653a34c58984d51bfa24e46e76faec1ee8eb6ce2a5927ad773cfbcf78fdbf23d6b4e2396576ed38d8ddd1fe262c0c972daf8b65667f137efca127f8b538ebc1da37fe90f1ddde1deddf3f554346ac5e13b6de0007fd417faabe4fc1cab1d384319eb6d377cb78aa6d261c4ca4f8dc5902b166c2ced2456dc10898aebf60ed97fd5cb509cbd68ff4f61290d1334cd8de58b8a67419d1e8e814062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a367d798b0ff1dcad60d0664f0b347305e7bf1b56ef790eeaebc48f3fb97cdeef67ef0ae07e986f937f0cd3a741d32a2d1d146dd8316f4676fd44dd79feade43cfed44319e12b9c284c50028f68c66c1b3eed1eca4794134aa87a3d0cad33968417fa1c528925430e148e8c9e5859ee57885935a46cfae3061365bbcf5c65be9ba9baff3ed192d8474d18c8bf81ece6c363972cc28ba63f61d1d5e83c84c73d13d0f51e9ae32fea285238f9b4c6fbdf63f129b70b0ed25c5f3bad6e788c5a6052c00ecef6c4f6bb65907db6483cda43332d2f98622d619b9ffd69781f6a0666f7f127958d9e2ed4ce1ceecc31148a03c32a25155a74c393a4d18fa93895478694dd75f78bdea3a17f48cf154a8c315266c35b7409b55880d3c261d33896f11c966c95faef8ca679ad6973e8899acff4e58cc5c45badcbc5c6e8ecce0fd5fbc2076ba121bdeb30d3ed8c1ea65ffb69ab57f79d6b73f8974ecf58d588e0e3ec4e91cb4a0bfe0f18934054c385282a1e7879e4367156e4a193dbbc2840508ebec94fdcdfab206eb4c99cd926fb9fe16bae4aa4b88edb8b5e8de451d5e90c066b2c284f71b3f96ef09ed9fc77addd8ba04cd4cd85a9eb8a67bd5acabf8fb828f9b721c8d3d600c09a1b3f2d98b1eac466b9d59b17ec084834b5da709437fc1e313690a99412bd2ba4cc80f3db7df9783f1d425d784037d69ba33b2500c5598b0304d6b1ef672073193666f3ff23761ab410b13664bd6b7dc309fcf9e9909b383cd8cfb0de84b7dfa1575306e6b5d30e1d0864413062d6b4ba1bfd0e2166a2a9870a8a4ec49073dabe52aa36757cc849909aef878055ff215879869321365d784ad3361aba0d84c38d0acb63b13ee2a4fa033377ecdf9de4574d3ddf3301356abe30ea5e93461e8cfc6c0fe52b4cca0657f6becaf017a0e3c138ec5f1d415266cbd094bcc3259b0c43557f695b1bed7d7ff9ab0ac0987724d582c85e39ab0fd0316ab41e7a005fdd91f6398b0fd8c450dd0b3fdac65f4ec0a1366c8fc9fd3b4bee5482c09676465f2f7f3fabfa45cd684d99b93c4f56756cf1fff7c3abf7611e8ee68ebab0865ef8e668f56897eb13e8a372ed92f91ce35c8884647fb749a30f4677fc44dd79f6a02d033c653a129d79870775f02bb37bcb0ce76557f194d29cff44150f7a005fdd9ab54d3f5a7baf7d073fb1325d17ac8e819261c4005feef2cb6ce76211a3d046269d082fef468ccc95aa1e76b88ddf41aad47cc9970b406d2c97ec988c6c97689ba4c1eb474f088b63a4dd79f6aded0b36aa2669527a3e7a898099b85df9dad91118d8e1e62d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a7695098bbb8fd97ecf915ed4b7deccf5f38f1bc27eb39275e38dde45bde9f6d977f876cd324b16ddb74646343afa65c2a005fdd91779d3f5a7bae7d07360a2b1389ebaca84c5ce552c7c97ff6d7a44affe537547b55534ecd126b71ea60f82260c5ad09f7dea365d7faa7b0e3d0737e158194f5d65c2ec51a1f1878ce7bb67b1ed20d99ecfec1083a3ff9b8dd8dd776c66ca5ec2f0ec13cf117b839178f142773361568f78b392d894c3ff3965b64de53917ff9997cf9e4d66cf13cf5f700b3dbf78896f266cbdcbd5ffd9e5671f7b86b7fd8d57fedbe1ad4faabfeca19667fa2068c2a005fd85aa26f974a6eb4fbe47dde7809e2b7d6f9063a462793c758d093313bcffb6057c065c515e412f3ff3324dbb7a1abfcd5d6cace1ff66236192dbb66ce31b61b07c627b4b1678f1e204eb72f4db6fbc4d5b366de5cbddfe2f67102f7bb06e8bc976d7122f8bb02e470f1e32888b2cd09b93c49b9898c18bb734a958628f64a0307d10d43d68417f91a82b785ed3f517bc077229a0e78709e369bb665c63c2d6fd7bd9b5b985772ea493ce3889bf5f58ec372a769ceaca3c5987c54b15ac6f361226ecbf9f74575f2beb127457262cde717cc3fc1bf8b2b9ff7ed6d63731b16d3685f1cb7d95d5a5367d10d43d68417feab416a824d3f5a7baf7d0f3af44637d3c758d095b978845f8c4ccd7fa96233633eeeaf582c14cf8c2bf5e40b3ae9cdde14d48a22effd7288a6d33bb326196cf6ab4ddbdd909261c7c88d33d68417fc16314490a987024f4e4f342cff2cc6472c8e8d915266c9d458a8bf5fed774fddf196c7db39158f6e8ea1dbfc166c2fe1b9eab3873b3ee670d130e2e6f9d260cfd058f4fa4296406ad48eb32213ff47cad6fb213ebe3a92b4cd8fa5624b1d599d518d997eaece3cf26ff371b896bc2ec73f6f2851ddb7604bd26fcf8434ff0efa8b826ccae21b36bcf0bef7ad0271ad69ec71e7c9cee7ef82e0af79a304c586e28d43968417f72b10a27354c381c6ae1e5819ec3e326934b46cfc69bb075f62aee861630d8924ac9ce123af2b8c9f4d2d32ff13fb3bb8dc55ecfecffecee6576d393ffddce5ddd1d2df2b03b9ed9218c9d09f7da697fe37f9b73e76cfe5625f62e637163d5aa2f5749dd1d0d139691b4be5719427f72710a37b5cca0156e1d26e5d37552093d3ba302193d1b6fc2a120f3bf262cf208c131b314ef210ea5bc584c23231a1d7c740d5aa1f415fa0b8552f7694cd75fe43dec5802f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9ea3c284cdc2efced6c88846470f4d1eb474f088b63a4dd79f6aded0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a367291336ab9b688d6a02338f7d587591caca6383168ee82660b2fe5493879e551335afbc50f51cb2099bd745fb5ad4dcdc4c53a74ea5c58b17536262a27d15a16410084000fa832ca28900f4dc7d3461c201f8cc9f3f9fe6ce9d4bb366cda21b6eb8219abe0fe88b0b08407f2e08129a183201e819261cb25844c29494146a6c6ca4a4a424fe1b0708384900fa739236eab29b00f40c1396d2183b6b9b376f1e37dfe4e4649a39732666c3520491381202d05f24f490d73402d073f0886039da8f91386b137fc66c38b88890421d01e84f1d4b94a49f00f41c3c0630610b23eb599bf83366c3c14584146a08407f6a38a214330840cfa1c501266ce1c40cd7e3f15046460695949450616121d5d4d410bbbbafa9a92934a2480502611280fec204876c4612809e430b0b4cf8174e6fbffd364d9932851e78e0013aebacb3282e2e8ebc5e2f3df5d45374d96597d192254b68d2a449a151452a10902400fd49024372a30940cfa1870726dc052b61c2a1a3444a10504700fa53c71225e927003d771d0398304c58ff37142de84400831644114d04a06798b0b49e211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a067987050112e5dba94a64c99420b162ca0a953a79210cde2c58b69faf4e9f4c20b2fd0e4c9938396830420100e01e82f1c6ac8632a01e839f4c8c479bd5e6fe8c9a33b654a4a0a793c1e4a4d4da5d2d2522a2828a0fafa7a6a6e6ea6c6c6c6e8ee3c7aa79d00f4a73d0468804202d073683061c2164eb7dd761bcd9e3d9b9a9a9a7c7f4d4a4aa23973e6d075d75d171a51a402813009407f61824336230940cfa1850526ecc789cd821b1a1a7c7f4d4e4eeef0ffd0b0221508844700fa0b8f1b729949007a0e1e1798b01f23ebd91b66c1c10584146a09407f6a79a234bd04a0e7e0fc61c2011889b337cc82830b0829d41380fed4334589fa0840cfddb3870907e0c3cede66cd9a4573e7cec5b5607ddfdd98ad19fa8bd9d04765c7a16798b0b4b0d9ddd0e79d771e3df2c823c496a47180809304a03f2769a32ebb0940cf3160c2cd4d2d545fdd4075d50dd458dfc87f37d53753435d1335d635f2df49491eaad8b59b5a9a5aa9a5b9855a9ad9ef56ca2ec8a4b21d15e46d23624f6bf19f362f15f6cba7922d6514171fc79f19e63ff144057df2a8aa7437257812c893e8214f12fb9d40997919e46d6ba3e4b4644a4e4da2e4b4244a494da294f4244acd48a1d4cc144acb4ce17970441701e82fbae219ebbd819e9d55802b96a32b4b775375592d5557b09f3aaa2eafe1ff6e6d6da38a9d55c49e744e494ba2e4f464caed91454c441e6692491e4a4cf650629287925292283e3e8e9b6782279e121212289efdf6c4fb4c96b8d992efff565366611106cdea6d6d613fadfc775b6b2b6f4b734333af9bfdb436b7526b5b2b35b213817a7632d0440d758d14171f4f7d87f4a4a6c666cacc4da7ccbc74cacc69ff9d959fc1ff86c32c02d09f59f1406b2223003d47c64f756ea34cb87c67159f95966eaba48ae22aaadc554dbbcbaa29a7308bcf20d98c32252db97d66999ec267996cd6e9a6d9259b853343aeaf6da0fa9a46fe9b99337989f7bda1b6919b714e8f2c2aec9fcfff9ddf2787f27a66ab8e3dcaf32300fd417fd1f4a5809edda1676d26cc4c76e7c652aa2aada6cdeb7650f98e2a3e0bcc2ac8a0f4cc344acf4ea38c5f7ed89270ac1c6dad6d54bbbb8e6aaaeab821579555ff32f3afa3bcded93460af22caca4ba79e030b60cc118802fa0b0c0ffa8b40541ab342cfeed5b363265cb6bd92b6acdf413b36eca26d3f96506a7a329fe1b2191e33dcacbc0c8a8f8fd72863b3ab6e6b6ba3eaf25aaad95dc757092a4aaaf875f0a2213da9d7a002ea37ac3715f4c935bb131a5b07fd45061ffa8b8c9feadcd07364444dd2b3ad26fcf3b75b68eb0fc5f4d3aacd7cd9b8a02897f27ae6f0ebb689c9899151446e7eed99dd6c56b1b392766d2be7d79e07ee5d44034714d1a0917d639e10f467af04a03f7bf9fa970e3ddbcb5b979e959bf0e6b5dbe9fbcf7ea60ddf6ea55e030ba857ff1e94df27979b300e7b09301366665cb2a5948a3795d21ea3fbd3b0fd0751bfa1bdedadd8a0d2a13f7dc180fed4b3879ed5330db544a7f4acc4849b9b5be89b0fd6d1ea4f7ee04ba26cb6db7b500f2c2f871a6d1bd2b16b7bdb37945075450d156f2ea35113f6a491870ce5778a47db01fd9917d158d29f6afad0b36aa2919767a79e233261f63cedf2ffaca42deb77526e8ff69b86d89dcb38cc2250575d4f9bd76fa79aca3a2a1a5248e38f1e6d5603c36c0df417263887b345abfe5463849e5513b5a73cd57a0edb84d77db981be5cba9a7a0f2ca43df619604f6f51aa72023faeda489bd66ea30927ec4743c70e545ebe5305427f4e91565b4fb4e84f2d1522e859355167ca53a1e7b04cf8eda73fa186da26dae790e1cef414b52825c0ee0cfcf6e37594919746134f1dafb46c270a83fe9ca06c5f1d6ed79f6a32d0b36aa2ce9617a99ea54d78c9ddffa5c1a3fa5361df7c677b8ada9413d8f8dd16aaaeaca563ce3b4c79d9761508fdd945d6f972dda83fd594a067d544f59517ae9ea54cf8c3973ea7b48c34beaf328ee8205055514d3b37eca249671d6c7c87a03fe34324dd4037e94fba73413240cfaa89ea2f2f1c3d876cc2ab97ada72deb76d2de070ed5df53b4402981d59faea78123fad0880387282d576561d09f4a9a6695e506fda926063dab266a4e79b27a0ed9849fbfeb0d1a317e4fcacecf34a7b7688912026cebd0b55ffe44a7cc384a4979761402fdd941d58c32dda03fd5a4a067d544cd294f56cf219bf03fe7bd42874d39d09c9ea2254a09bcffe2a7f4a759272a2d536561d09f4a9ae69565bafe5413839e551335ab3c193d876cc20f5df52c1d72c238cc84cd8ab592d6b0579b2d7bf54bbaf8ae3f2a29cf8e42a03f3ba89a51a61bf4a79a14f4ac9aa839e5c9ea59ca84d9f687782cc99c60ab6ac9aa0fbfa7ad3fee34de84a13f551137ab1c37e84f353166c2d0b36aaa669427ab6729131e3caa1fe5166653af013dcce82d5a1131811d1b4af8eb247ffa76b3f1260cfd451c6ee30a708bfe548363260c3daba6aabfbc70f42c65c2c79c3b9196bdf625edb14f7f18b1fe7847dc829d9b76117b33cbc1c78ea5d71f7bcf781386fe220eb95105b8497faac13113869e5553d55b5eb87a963661d6cd6f3efa9e5a5bdb68df4347505c7c9cde9ea37669026c8797afdfff8ebf4e72d484613cbf5b4c18fa930eb77119dca83fd510850943cfaac93a5f5ea47a0ecb845937b7fd544c6cdfccde830a69e89841cef71c35864560dd573f53c9e632da63f400ea33a8d057869b4c18fa0b2bf4466472abfe54c3b39a30f4ac9aae73e5a9d073d826ccbae9f57ae987951ba9646b19e5f5caa181c38b282d2bd53902a8292402b5bbebf94b1bca7654f0f73b0fd97700c5c5755cc1709b09437f2185de8844d1a03fd520fd4d187a564dd8bef254eb39221316dd64d3f18d6bb6d2c6b5db28bf570ee5f7cea5de037b508227c13e1228b95b02ad2dadc46e1228dd514115c555346078110ddcbb6f97ef7876a309437fe67e09a24d7faa49073261e859356575e5d9a96725266cedeaae6de5b4edc79db463e32e2ae893cb97ab0b7ae7524a7ab23a2228292081fada062adb5149db7f2ee1b35ec6beef905e3c0ec10e379b30f4172cbace7c1ecdfa534db03b13869e55d30eaf3ca7f4acdc84addd2dde5cca67626c469698e4a1823e79dc10720bb3282925293c32c8e523d058df44ecc1f0d26d1554baad9c5a9a5ba9f7a01e9c7161bf022952d162c2d09f54d8234a1c4bfa8b085480cca19a30f4ac9a7cd7e5e9d2b3ad266ced6e75452d956e2fa7f2e22a3e5b4b4cf6f0678e0b7ae7507a761a65e56560f9ba1bbdb1e590dde535545b55cf395694eca696e616bef4cf4e6a0a8af22833273d6cc546a309437f61cba153c658d79f3a92ed258563c2d0b3ba2898a467c74cd81f5f6d551d559454b59bca8e0a6e30a9e9c994d3238b9b32fbc9f8e5774242bc3afa8697c41efd626c6aaaeaa8b692fdaee59b69d4d736f2131536cb656c98f1a667a529eb4db49b30f4179a54a0bfd038459a2a5213869e438b801bf4accd84032164c6c3ccb89acff87e31a2aa3acacccd204f5202a566a4506a7a4afbef8c647e9d393925893fefea96a3b9b1991a1b9aa8a1b691ea6bd84f43fb4f6d03353534f37efb4e4072d2282b278332f333f809899d47ac9930f407fdd9f97d0a56b66a13869eddab67a34cb82be1d65537505d75bdcfacda8dab91da5adba8bab296d8d242726a12ffc92ec8a4d6e656bedc9d9894f8cb6f0f25a526517c5c1c5ff28ef7c4f3df09ec77423c7f5c876d3ac27f8b9ff838f2b679f96358be1ffe7fa2d6d6566a6d69e3f58adf2c4d537d133537b55073630b353735f3df09890954b5ab9a1b2fbbe6c0ea65335a560f3b91683fa1683fb948cb643f7a1ef18209773d6c427fc12c25f2cf4dd75fe43dec588213268cf1d41de3a92b4c38d8178099313338f6c3ccafb1bedd0085113263f42426f0255e669c6d1603cdc849a3cad2ea4e869bd73387ca8b2b3b19734e8f4caaa9a86b377061e49e043e536d66e69fe4e97002909c92488929897cc6ce4e12e20d5d5a377d10d43968417fc10844feb9e9fa8bbc87e69870b0be603c0d4628f8e7327a8e0a130e8e0429821190114db0b2ecf8dc6413b6a3bfb156a6e9fa531d0fe8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dbbce84173c742fddfdc01d1d889f79ead934ebdab99492127cb7a92fbefa8cb66edf42271e7b7297516b68a8a779b7cfe69f875aae5912906f8d8c68e44b8f3c87298316f417792c039560bafe54f71a7a564dd4acf264f4ec4a13fe62e56774ff1d0b2937278f2a2acbe9f26ba651dfa27e410df3a70d3fd2a5575e44179e7b314cd84fb332a2d1217793062de84fbd024cd79fea1e43cfaa899a559e8c9e5d6fc20c3d9bdd9e7cf609f4d293ffa671630fa057fef3125d7eeda53c2a2386ed4d0fdcbd88f272f3b8597fb0ec7dfef72b2fbd86a65f3c83ac339bdf4e388c9b7b6a4a2a9f0957d754f3b4afbef18aaf9c3d060de17f0b948f9d1408a3ff6edd1a9e4eb4c9da4ef66f5117cb63c221231a1ded3575d082fed4a8c174fda9e9e5afa540cfede332c653a2a83061eb0c77d4dea3e9be07efa67937dcc2156f9d256fdbb1adc34c9899f7cbafbdc867d0e2b3a3271d43179c731137e195abbeea60e062b6bdfabb6fbbcdc7ea6565fefdf14524664de515e5beba8f3ae2f7c62d779b3e089a3c68417f915b94e9fa8bbc871d4b809e7f5dbd8cf5f134ea4c585cebb5ce86c535637f13165f0bebac96cd9085090b3365d79a59790f3ff65097676fd67c4f2f7992fcaf53fbe767ff7ff9d5177dcbeaaabfe4b2e5993e08ba65d082fe6495d79ede74fd85d7abae7341cf184f853aa2ce84fbf6e9c797a699095e7df9dfe8cefb6fe37db5ce76c5356161d4cc40cffee3543e6b1e37e680a026fced9a557cb9db3f1f5bde164be302b03063362bf6bfa14c2c958b2519d55f7499f24c1f04dd3268417f32aafb35ade9fa0baf57ee3761e839bcc8cbe8392a4cd87a4df89315cb7c4bc0e2da6e2013f65f12ae6fa80fc984ef9e7f3f3df5fc629fb15bf331131687b8618c5d83befff607f89ffd67d2e185d79e5c32a2b1a705dd976ab209437f912bc274fd45dec38e2540cfed33618ca751704dd8ff71a237df7ec367761515e5be5971a099305b8616d76c3ff8f83ddfec562c47b365657663d51e838774b8b66cbdd66bcd679d4d5b67c5ac8cdcdc3c5c138e60243375d082fe2208aa252b4c580d47d952ac6320bb49147a96251838bd8c9e5d3913eeee3961eb0c942df71614f4a038a20e773d8b6bb6679d3695aebcfe726277328bb4fd8afad135975f4777dc7f6b87bba3ad77335bef80b6e6b31abdb83b5adc85cd42655daac6ddd1726237c984a13fb9d885925a66d00aa53cd3d340cfed4fa2f83f51128be3a9eb4cd8f42f975bdb67fa2068caa0e5d6f89ade6ed3f5a79a1ff4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac4490987d00000a2d494441549aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e8d995262cee809e7ed10cbe57b438d8e61b9bb76ce67b428b5bedd99dd0ecf0dfc18adda9cc9e293e78fc04fe1893f52e66965ed4c1fe2deee2531166d1ae938e9bd2a1ed2aca8ea40c19d144524fb8794d1ab4a0bf70a3d8753ed3f5a7bac7d0b39a3df3a3613c8d5a136686cc0eb68da008d401fb8df7bd3d893d1fc70c989beca27b29273b87ef372d5ea8c04c3ad0df23fd324683682265104e7eb70d5ad09f5c9461c272bc54a60ee5a4127a96232ea3e7a835617f644c449f7db9826f5fc98e7b16de45a79df447621b7ab09738646464d2e48947fa66a7cca40b0a0a68f9679fd0f557cda4ff5b741f5967afc2c4478e18c55fc62066dc6c772cfffd83d9b36f6c230fb651b978061933613951bbcd84a13fb9f8ca0c5a72259b991a7ac6782a94193326cc4c931d6ca99a6db6f1fccbcfd215d3aee2c6c84c989969696929ff9c9d19b23da799512e7ef6713e43663b6389a56ef139db9bbaabbfb3b726cdb97526cdb9ee262aea5de47b6b124c38bc41d1ed8316f4d77ddc61c2e17d2f54e40a6526ec5f0ff4ac4ecfae3661f16e602b0eff6bbbec33b6b4bc60d1bdbe6bbbd6a515f13ac3334ffb132dfac7426eb83ffdfc23bf5e7ccc51c7f95e8bc84cd56adcec7366d8d6ebd0d6765867deec2d4ca21e987078c38689260cfd8517cb40b960c2ea58ca9664dd65d03f2fc653599aede965f4ec6a13eeeec62c818e99dfcc9bafeff40a42763d98ddd425cc91cd6a1ffac742be44fdfa9baf51ff7efdc9fa6e62f63208b184cd3e17f9593dd65721b27da259b9fee60c130e4fcc229789260cfd4516536b6e99414b5dadfa4a829e319ec6c47274a077f65a9792d94d58c21cd9b562f6f287d2b2325ab57a25fdf5922b39a3fb1ebcdb77c3162b8f7dfef3c61ff96b12c54d5c02262b7bd62d37f0bcec7587e21a3466c2910f766e1cb4a0bfd0e30e130e9d95ea94a12e4743cfa19397d173d4ce84fd97a0ad3363b1942c96aad9356166c2ecfab07817b1781983d584c58b1b8e9e740c5f8a16b360366b663763590d9e2d5f5f7ae54574d38df3f9f56676f3163bb01c1dba90ad29dd66c2d09f5c9c65062db992cd4c0d3de7f17b73d81819ebe369d49ab07589587c0dd9b3c2fbee33969212137d77305b67c2e2ddc0271d3f857fce446235e1408f17f95f4f11cbd1c2e099a9b3835d5bd959b203261ce698e8b6410bfa930b344c588e97cad4a1cc84a16739e2327a76a509cbe15097dadf94654ab69a3d5b9e36ed90118d8eb69b64c23afacfea84fe7491575f2ff40c3d0b55c18443fc7e8977015b67ba2166e5c960c232b43aa78df5410bfa8b4c3fa6e5869e3fe397fe309e12c1844dfb766a6a0f66c29ac0a35a4ec074fda90e53ac9bb06a9ea69527a3e7904df8e5fbff47e326ed635a5fd11e45043e5ffa0d9d7cf96445a5a92f06fa53cfd4a4124dd79f6a56d0b36aa2669527a3e7904df8f9bbdea011e3f7a4ecfc4cb37a8bd6444ca0b27437adfde2273af58aa3232ecbae02a03fbbc8ea2fd70dfa534d097a564dd49cf264f51cb209af5ef6036d5abb9d461d34cc9cdea2254a087cbb6c2d0d1ad997461c34444979761402fdd941d58c32dda03fd5a4a067d544cd294f56cf219b30ebe2c7fffa92925292a8d7801ee6f4182d8988c08e0d25d4dcd242879c3036a2729cc80cfd3941d9d93adca43fd564a067d544f597178e9ea54c9875f1857bdfa401c38b60c4fae31d710b766eda455bd66fa7932f3f32e2b29c2a00fa738ab4fdf5b8517faaa940cfaa89ea2b2f5c3d4b9b30ebe23bcf2ca7daddf534fa90bd282e3e4e5faf51735804dadada68d5476b292b378d269e7e605865e8cc04fde9a41f79dd6ed75fe4043a96003dab26ea6c7991ea392c13665dfc61e526fafcad6fa867ff1eb4e7be039ded356a0b9bc0fa951ba8745b398d9b3c8a86ecdb3fec72746784fe744720bcfaa3457fe1f5beeb5cd0b36aa2ce94a742cf619b30eba2d7eba5cfdffc9636acde4ad93db268e0f0224acb326f372867c2616e2d6cd562d3da6d545152454346f7a7719347525c9cfb5730a03f7335676d59b4ea4f357de85935517bca53ade7884c5874b1ada58dbefe702dad59f603e5f6caa6bc9e39d47b600f4af024d84301a50625d0dad24aec2681b29d9554b96b378d9cb0278d3e7438c527c407cdebb604d09f79118b25fda9a60f3dab261a797976ea5989095bbbb875fd4efafeb39fe8e76fb75261df3cea39a00715f4cea594f4e4c849a0846e09d4d73650d98e4a623708b025e74123fbd18803f7a0a2213d63861cf4a72fd4d09f7af6d0b37aa6a196e8949e959bb0b5831bd76ca3ad3feca09f566d214fa2870a8a72f92c39b7308b3fea842332028df54dc41e0c2fdf5949bbb655506b730b0dd97700f5ddb3270d18511459e151901bfab33788d09fbd7cfd4b879eede5ad4bcfb69ab015597971156d5db793b6ff5c42db7f2aa1c4640fe5f6cca6bcc26c4acf4ea3acbc0c2c5f77a331b61cb2bbbc866aabeaa9bcb8925fdf6d6e6ae1b3dcde837a50bfa1bd384f1c8109407f912903fa8b8c9feadcd07364444dd2b36326ec8fac725735156fda451525bb69ebfa62be8c9a9699c26ff04acf4ce5c69c919dc67f2744e175ccae24d4dada46b5557554535547b5957554bbbb8eaacaaaa9bea681f27ae570b3cd29cca25e030b28bb005b8886fb5584fe029383fec25594de7cd0b37bf5accd840321ab2cd94da53b2aa96c5b059517efe63714ed2eaba1acfc0cf22426506a7a0aa5a425536a460aa56624f3ebccc9294994989ca8f71b20517b73633335363451436d23d5d7b09f06aaaf6ba486da06629f5557d451767e06651766515ecf2ccaef934b057d7228a74796442d481a0e01e80ffa0b4737a6e6819edda167a34cb82b31b365d8dd65b55453514bd595b5545d5e4bbbcb6b892d295414efe6d74293d393b941b359624b630b376d761d9a2d7b27267928293589e2e3e2f89277bc279eff4e60bf13e2f9e33a6cd311fe5bfcc4c791b7cdcb1fc3f2fdf0ff13b5b6b6526b4b1baf5ffc66699aea9bf8127173630bb534b39f564a4c4ae0b3fd86fa266aac6da484440fe5f7cea6b8f878caca4ba74cf6939b4e1939e9fc6483fd0d875904a03fb3e281d64446007a8e8c9feadcae30e1609d6666c8669475d50dd458d74875d58dc42eb2b39f869af67f7b923c7c66ddd2d4cacd5198249b75b2a5706eb4cc647f31de1e7df369d7d6b25f0dfa1793ceef9dcb978785c97b92dacd3ea74726b534b5f01381e4f4244a4e4dfafff6ed200540180602a0a72afdff83c5de45161641999b5092ca34b05470dbe758b7f6638ef5a9fd7af6dbd6d3697e6fddfc7defccbcf1bd80797e773a7e11c2ef92d98d000102040874048470c751170204081020100b08e1984c010102040810e80808e18ea32e0408102040201610c23199020204081020d01110c21d475d0810204080402c20846332050408102040a02320843b8eba102040800081584008c7640a081020408040474008771c75214080000102b1c009f0d85e2e8a834b040000000049454e44ae426082); +INSERT IGNORE INTO ORDINE (`id_ordine`, `anno`, `data_ordine`, `urgente`, `ragione_sociale`) VALUES (1, 2020, '2020-12-13', TRUE, 'dottore'); +INSERT IGNORE INTO RIGA_ORDINE (`id_prodotto`,`id_ordine`) VALUES (1, 1);[/comment] + +INSERT INTO CLIENTE VALUES ('dottore','PPPPPPP','ciao@example.com','08111111','mice','DFO383AFA','pippo','www.ciao.it','08113434','bakugo'); +INSERT IGNORE INTO TIPO_ORDINE (`id_tipo_ordine`, `nome_tipo_ordine`) VALUES (1,'fornitore'); +INSERT IGNORE INTO TIPO_ORDINE (`id_tipo_ordine`, `nome_tipo_ordine`) VALUES (2,'ignora') ; +INSERT IGNORE INTO PRODOTTO (`id_prodotto`, `created_by`, `created_date`, `last_modified_by`, `last_modified_date`, `descrizione_prodotto`, `prezzo_unitario`, `scheda_tecnica`) VALUES (1, 'anonymousUser', '2021-09-15 15:17:04.766', 'anonymousUser', '2021-09-15 15:17:04.766','Pentola in acciaio inox',14.50, 0x89504e470d0a1a0a0000000d49484452000001e1000001f90806000000b6cf86f80000825a744558746d7866696c65002533436d7866696c65253230686f73742533442532326170702e6469616772616d732e6e65742532322532306d6f646966696564253344253232323032312d30362d3134543133253341323225334131352e3530365a2532322532306167656e74253344253232352e302532302857696e646f77732532304e5425323031302e3025334225323057696e3634253342253230783634292532304170706c655765624b69742532463533372e3336253230284b48544d4c2532432532306c696b652532304765636b6f292532304368726f6d6525324639312e302e343437322e3130312532305361666172692532463533372e333625323225323065746167253344253232767a6e49774663496e59374134333047412d545525323225323076657273696f6e25334425323231342e372e37253232253230747970652533442532326465766963652532322533452533436469616772616d2532306964253344253232734e3869355a3476387363586a5653744a6c62582532322532306e616d65253344253232506167652d31253232253345374c315838253242504b665362386158527046584b34524534456b5968343430496b63694c79703325324652253246356c6a535a62733358314c33765857636d724f496445496a66376c30412532466e54796a58486449636a36552532425a486e374a77544b6a6a253242682532464a3851424559773676344149253242657645514c4866673238357972376664466642707a71796e3850517239483179724c5033397a3454494d37564b4e667a7559446e3266703876666a4d587a504f7825324665316b787448383736786925324638373862634e4b34253246667452763871573874636f685a42253246475a667a366c332532424d544e4d304c2532464f645045664625324639657961654d7332482532467179465525324242504b7a634f7725324650725748567a6541754c39515a646639346e25324677646c253246653745353735662532466d527547494a304e715758555575316b35763276577a7a412532462532464c374b567663727238583746543925324231343841706d414d676a456a474e627066465344663266454b4b3970324b54253242663732427425324625324247506d4d635125324257754a7925324636555a4d4b31675857777a3938692532463762774978397958394d48647825324235634c2532466e67533037253246584e70365250353534722532425058512532462532425943506d623579507a73505a5a4470594733616633736c70795a3478546348612532464a6645654b3565757659396738425a5632334a444f3877253246393649466c655a70436c35376d59636d25324636737a4359566a4f505437765a33667325324631426f33786538754d2532464a4437386279793964534566756e795a7a253246755350323467666b764225324259643477332532464766343373667845724450743956666c58496b5839486f74253246532532464c37337837253242463262665833377a253242332532424239386a663866377671487a4c374169253242567432506d7677315451453562726c6f6d625a363925324666594d6f782532464e6671496b377731683025324631497a636f6e777a4c4d6e54334253303477635a703825324637683446397a3565665066636e505a4d786e2532464b584f674276784877644664514365733725324666687925324258426467424268414345644f73782532463563335a61677147375a6d5025324263336a4d695968597638663042786a253246335a7a75386838253242253246784833324c386c3825324678384d345443674a414c253246363238682532464664777a6225324625324275684247714425324250253246667566495149302532464c636938496468253242477342515025324265253246332532424d2532466450356a253246344425324676395738442532465554712532465365666958547a35763156554e66365762796225324233414825324278436334343379596b4158627433316d506636494b5a33684f5a6467253246556d454b535643432532424163432532426d386925324246253242677a696a7839377a384e253246372532424e54507025324679706c4a7635445a674a54396825324662357325324250787757572532425637253246386664322532426339253246253246764e66736633587325324634446b337954632532466c62707630746325324671687a25324638644a3338507862395a6c4e376b7a25324264253246774c7575796a49777a54253242556b72253242566f333843647a4830333347582532466e745454524a2532467a317a6b763471354d504633784d367a4f307a3566546a4d53336b62717a357568622532424d2532466a75792532464f576178774173395139253246366e785a7a743878563777757739397937366257664162672532466a386a2532424225324648345625324266354925324666542532463931645034253242253242697a78764441672532424149386265505070307225324647426172396f2532466e253246316f54574d682532467a71643733634d36702532466c2532465171446651655939775474662532466a4e4334762532425938585065336a5a7125324239735825324261657a6b66706664376a2532464448253246366a7a3331502532466170662532424e322532462532464379507834555a58346449754b504f25324251716a7a587348644b6b393844636635364f5777727525324225324634576755504a34686a392532467554514d4c31394258742532466651584236507179375952422532426b356c6459753639684d354c4a5148624b7449486862374963504964557847593553564a373634775432626267306d6b384769667078516a4462532532465453787a74564c5656336e556e466e756f3966754f376f52784f394c585a4e6a3046414325324244344335684565524c376a4b7432776c3545614247786f624a68767125324669755a4634506c4e796638734457317a77363734384c36503777467770796c547568374971444a354d444f6f56784d633758513471674d3064584e4c666a47544a6453533273462532464d6a43655a486479366a5939314e6776535448765534753433594f75686f50545976496e39705079554a4176344c453630656f4c5a5544526765756e35695235513672253242733757466549456f6858507078667a5a4d764a55525655597532616a336b25324267364270484b6261445a5434477452556f565a517643486e793738796b3276502532424c5276732532424c6e4d47685437786454356363734d6f36543468753243524339626370792532426e467135726b253242664c4f4b586f38524d33735a7662466c75785a69754e7a7a37654546506455793370487243575a253246694f63583547504b714638753672735951454e31786f30613746566f7077485433364644654c74536e546c5572537053784c646a4d6f637562435963443774735472514c4b5a4135366e4e4d7739644772664272324871442532424f454c53473764673865674572506c68726d7357796c6851613077664f556f5225324243346c4370594352354c617932253246316c6f7947495236665077564d4764486d66665a356d496978727265253246785137512532424b6e3351546737454c55487a54533432253246425861544c4a7777624e2532427036594a48253246787276384d594d585a7559724235637858796c4857253246714641464e3531456d32414557647a4353796b625379797357625865453358414a61654570333566384d5a6225324265774a35253242337a427462467668356e72694d516a37557562766e6755756d38565a726c33253246716d367572514e654f556c304f6a4963576a4450433566624a375735324a6e346a546c557a5070686c5772356c47253242253246574734326e4325324665704f496475496c423045527258543839706c336b496f7a2532466548644a6d4245344f4830253246516c595552613852387236666d643149326e71554e494847564a4575467735563755253246504461466c36794945426b71656374427775434a45754b6c4837566c51743965766c563925324644794e4d33312532425970667236785937776348253246703267417935667a356b6b626e6c6b253242306577646357472532427461327a6272627536384a4d4f4c7a6a6b746b6f79564f5556374e6a697549667243586d7265576f426e563247253242446e7737587a52577a7952746f5535565a6831512532466c614e77312532464853714e43436931596779304274454453586e7a49396f64316a6f365955434f734d744f7836394c6576756d64666172516e374f5546356173416d2532422532464645512532465745563450713141784645672532426339737652487a414166347244336777786533435a62435164547667495849696d7170366c33614133726274726451736961674a5055547a7843585a346f78564e6233764731684e57523047652532426a5a754e54776c556a643073464e59366369793763496555386d6d6775524a5563766b786f6561326b7234474649483163464433354354463052253242375625324256456e706b2532427677356e6874656456794965695a4773584855346e785777364b324b4d7a595948664a56792532464f746b4b425a4c6658716254427a4e555a4d636458435059413136704e61546a3043554f6372346d334e594d66634e4f7a697471435377444c4a505634586956495250336b5a41593738476b443974493250416a6e3374696a6d436f456c4763776d616339686858784c494255497367594769675235417639525771334a25324638686a64574c74664a4770356d7264634c394e7875533978307549796b656d4467653372432532426b35473573637a505945526c6d4c4f6e305247342532425055417531783133326b475a6c386465253246344d647a4d594675382532464852325448714f464167724746486773566831673465757a624f6b394253543245656253354179576e3377585a777463457359634e68397041434f354b37724668353574794a796879617549784c47472532466a63434336505a6a7a5a39677a643372495666576a345057454372253246615763306b346e5168656246413958516d5943253242326c756341383667515548394f59685573436b31334f614f706f566a756625324239756950724772506e6462382532464264754f395a56506c4e6925324225324279566a253242333932457656736337253246466d253246794a66253242656361426139534a78596656346b6f3741324850765634484f5354444e56356d61414132785a7831527156336f375072326358575054426539704d25324264414737733144327878537665435a56682532463373786731716845596e51362532466d5655586c327041554c745a746f57757644667471377a44764e4a573671766e4b7547386378754379323936656b334a37514d4153694a384767554f384a625858324f74647169306a644273706c6e716c37347679327a34586b5230797053665837485471477a2532466134754a474733487875544d7a6179586c6a6e5337657a365038586f393052456a35336d75253242444f467334444e716a6447354d4c45686a544e6b596d707a4c394d7054523377627938792532426334532532426f463951685765253242373031704c4a56426a4e6951393357467a67584259456b3141566c2532424774374e666d6f61467649724e54564678337959554b7838483647567657346c5832304b6b357265594d6452576a636757626567753872787358626253376348326836704372426463724538485961513872713425324275622532425a386377253246346a4967614349644541694d32614e7a45554653626b4c572532466d7577736f45467148727268495163516f62515733314770652532426256346d5476497442545962316f36353730674e3847314f417a65552532425348446b6d4346764b58687264324844497076544b5952686d725566446b484a667642485471654856316f59436c666f51524851627a5a796f774973414e38457876434d3765325739517a47394f6d4564495947763976486f625a556b7332755a36714d574e524b32526a376b773659764765742532426b74476671645a6f6b49444d4849756c326658355a4c69435953706c78624e4d723168555a356b566e677473536e5243343563507035324c4e52727a6a724c4637535a484a704f4250416a724764386938456d656d5746527572746b7443326a59763559754c5030315436686a576b6a6867447a693955544f6e39386a7970664448657555253246412532424442624245655436444a4930306c63704c46454f79306f486f6a49493638793539493467734b766567426a4a745a48717472624b564974654771613049776b58625958784f5379716f4567507a66376b6e5445253246496d6b4d504b5539776b48466e734a544f44767451305945727641326d547847316c55665164756d6f3456347148394c5536327a654564777459394470327832546373444663416969416a6c4f72584653436f503677484a4c3572547a3438436250634f4e5a71334c7a6a32725067437870526569596b44653669644b4f6f4b334e4f425a4461566342417a6c5874456e614e7851556a394b5377542532466534626f6b356957395576705a4b4a59646a5969566e587669364c523153674c597a754644566a776c6d396c55343148654d495a74374133596f444d566473656f4d6e767470746f4d68587a7870456971334768306a624b6e6648795742627a495656305768694e6f4e6f426e38726d79586f72624a4b544b44776970713457706a364c62253246457455336b76636a62494d38776e7531736c4234493771544f365958425a715239463575414b4733576a4b58576b33327863433851544b5a72306d6959512532466b46694a68686159484f72543662505834727350685a6845685a394c4e523132452532466d4f7a4a3757366a526f6b617379325133654773516f496864685a4b6645594934356d34465971646a6941553563746235754b6173494e6b2532425343513764586772543244786941326b46746352634835764163684944537577416a677a41646d5756754937645a3355782532424f526562253242693559555431317364356a637a3147305442664f316f3944614f65596937574c544e53654f37436c34684675526455587638475a53786b64456a686a4457656432556c7347616f7459502532463164434a696458636950574d504a474776706145574b7451355a316f584b54556e38624a3934427354563356675271545265506f5646505243587a534d4c61695a785775706e616130706a4e597a74393070784c4f797133526b544e47467152425a53704c4b65466d74435164496c716e673950454d253246686f6b3768746346354234727072346a36685857444b384867656a4b774e4f5058734949364634564a556c5968633464494b6c6534453663552532426148614a69466c33544562464756774475777761756f58327957736c6f66585045544b734d25324252636d4e78527a5a593070566748634f7936527a385125324250703250665632783238723669636a3356733377415551764234534a497056584e62446c5439735a756c4b4b474b30697a4f61386e72623146784f4233384b6661635779436439483238546c253242505370343356346a64473472546e684d474b71757836396e7a65655650354e4d727a593963686c5a477569436532584a6250416d4b587865473053737679534a6648706777634f535655787176794366446a6f307643546c6a6f6c5965543042357566597868362532424e4d796f4e4d6d33574143356758415537345a676b6353313425324648345263673348504a796b5968456d4c6e51253246334f7155585177754b6a724e7a6247253242456b4d454a313679767a334a487a4f5951366657626b3647726847516763747a4c6c465743586825324235396162786e436467574d4b467a46466b48437442756a4d306971596332377438387775496c4578356572746830724142746d44397a6e784b69346d66766e737244727367513735434737346563253246537033795654374134354d6a763067703652253246646f6e7556674857356a456825324243343632752532464e6d373337253246527577704f6e426838725959574a56365151616d356c71322532426274367869346b3750253246586b7a6d58356c494b506f67647358384a684a686279517171693870356b6650426b583649637654586f58347035435a46643759646972464b786b6630744b6544314857664143306679557444675235565771796f4d4b6c79615a5649517a374c666a435a6775386250427170417165757573306858505a472532466d75684f387448517868622532466c313837496a363657775a577862364652574d4543666e566a302532466c52315950397742565832374c727a547070394879306b307a483671673947646c754f51674f4f454e6f56554d4453583959704a62336b7a5756462532424d494c72593556665247765751724a253242595a365847657371384277515178694e556c78504e42516b7458454159253242627039494a4545435a64474b34764f7542444d7358716c5a493769515046574d4572325a686c6b486f68795450467971355a6c5150786b747945695156615a4c5352773277644b3361364e38526c52715825324236726668514353556c5142696648374b564770636164764b566c69442532425a6b4b69654467594355253246253242674c4d5a67704732314c6e36697173474a57697550545330587251634f673469504d46757265343755497a317a3033423534306f302532463478354b78575138646b554c42524c643178556c555a586f672532464f526b536e61724442556b38565070763825324655716b316f774658786d4e4b55794b674c6231523552716b306f49636c30754a5850547139524d52704d546b6370383374667730636e666d33473878785144425255473878314d6338524e584e726b6c4a355934766b756c6a49667145374832393846696b71306c725548736f533862714b73724551626c5a324174393335676b7677526f414a6b4a7a77592532424e464959253242686a754244696f6d4e6e34656c564c74756433656b39525262526f593936616c62565330456a56655a6c53253242766d716d3559315446527a25324668346576574a6b574b5868477358585443534f624c3630494f62746e6c4e49564d70716e336125324638636173594277253242612532466776587351624a57764e6f37475658793843635038304c79656d4d5078766265654d517a6c6c6f534d4746764a36794a34523369735479587a316a6377394825324250484d616a694364657136514a58354d4a424632563163755a444257436451623169317a4c4375687642717738314d694d545364426d386255655255423058444d776c4a6d70674f7a48707347484b79666763563239756936706e734c4c6f3750543556586e4d6f51577355536c7244444a5663573234443554566b4e65377025324266304c5a34496d7671556b5239616b7774657925324231316f51594558316e46394b704b58336e4279703735755731626152425970347a4b553973784b46583166394d53774f31546c636b38714d6f5954533835253246564959767252416543573957374b4f4263516e6946474e4c4a73764266735652507a3664326d4d6179374168356331794e58484e4e4f755447725375364c4b416173536943564c6b374779457457327047636773706a7a544e5a53742532427a6a5243594e455a746c4c674a7a346a6e70546859306a6e5a6234253242305942583256443054734530727359784d4e51384a4771436b4858576d6a35687032654d42645a495368504c56566b6252354b6c677035537a436b47524e4b4f5a4276584f304c47486675584e34504a43594e556544504f527665517a7642644e7173326a754b6e724125324264322532423879562532464a2532426c6a476a3551253242474b4e4c51667755576f356f5675767044767853486f792532467369527a376b6273473130253242516b7825324630615470736373253242356c7168305271253246566837484e4f50624939796f6e4556515257657850766348614b306866777664383457365131694e7835315a4d39597a7543436254656e5244586c744e474c473653417655617a5653392532425a38785268354c32584c253242655968684c655a5573515337304b48624e693276574571486359717a664c686859376f395a774d526f6b69754747714a33663752553441304c4a7a39676c4d52707937535977554b67346259497a5a4b79764d50526764324f616b4941614575386c526a496b436366616270346f35446b4539666d646b473839557a73754d37764e316b6a424851636157475178535a6d4e66475669797578706e7a644a38457337586c447a38496e6a74574a72673735495133346b7233656f506561796366726f484b714278526748537943627161334144253242555a4d716b3761476855574c253242393556624f4e6c48324f4d6a4b426a6a6c626a39684f46534b546c6a6b4d4b41495664694456642532425a7379787339364646655a674d785771356e6866484b4151517379527663744c3568475351513349716e794545724f35706e25324275676f51744676712532466872614f37315959474573596446645163484179617a4578634c6e3865376f63493548454e6f397351447732576d4f674a567774576258437772504d64553042624d303043336d52776a5447346a6555315659717a6f616f50566558366673584c7655382532464425324230436f71756f704d326f624a6e3037724d63394d484a6e3950516e73714143594c2532426243434d47535348435a757133793149357078474542305a38396c4466574568725549754e6f544b74704f4d346e6b537a444b506e253242435a426f565930745a764263556161446c4a5a784b71754c316a544e695866364c33665044745a756d616c774770505968716c58565363754556692532467343736d6b6559744b3436574f73385a446232724f4c487425324632346d434f766e68426a56454b6b4e594f6b656d65393732716e3674375a64364256654c507438686f7671747739544a494944527837507a68494f7070566e7a6f50323858347975537a31253242686a30754e4431457633424971354c4d396436334b75586766314d4d6d3262703542363646784c5141466c4b3354624f4663674e372532427376576f5a66564358443343616f586e47433642627a6d3543697633575944644a48464d74306867364f634a413977356e33466c7043387438534e737565714d664578344458434f4f4f70435577253246762532426c6c384350464d55345147596e5152586943676b2532466571365952323363253242773974366635776a43653567484354535959496e51253242347668446d25324270577a6a476e4d3158323425324631446c465675786a39596462443253474647797958317530415155714344694c253246624167413969665946624c73313666713667776a37626e514b32583075355545415a706a417a5a6237474e36366362327a4479496f4442616875253242374f76334c48547625324238526b6459356a315543306f583468566772354665727a7a7550777a417833676c394252484f7948386b31253242335537644275554150666f59645574796970516368344b5537477671364e494a6e636e735a394c4d7445484c67646c5a4d454f427a7733614f6a3166444b645a6a2532466b7842334b49535350253242494e5334674d30517469574241304f394b5842487458316174343647786b6d4a79696f69687650586b564c253242494962637934456e304755536f6e33534e4a384b676a623325324273396e68393548544377633449775566646a79694c6e5357456d637170526e344d3052716750373965367245415061586174333458547a666d6a335a647137735965487a7665776b34516d7a6e64386c50336d703866354e79556c5952426f644457776e5a436e453659597a68634b6442414d543869446b586d734e304779454c63686963644675475a7a3961662532423949253246376656545a6a424b565956317376304867694c3957434e306a44506d454f514c4d79484d536b5669534e427934327650655570532532464435656571566a5925324243546425324235694c4859703049545425324242734d3733516146714e36775538356234354c664d7176684e78634b78633863586c6c5159454b5652454f4b7763546d4b664b6f4834697463786561396a797076624972644e4947466f59474b774e5069307a5062435a4b6a3479597052777978554f59317a546b7a5570476b55424754475a7a50414c48684e696e682532424d6249684e5845386b25324643546e4875534d362532466f69463950424b444a394558424b4e6d6d724b71654b7662784747327636494978537a733368747a43396f543056786d446c486f744375586232712532466a4b506b7574534e335366536a6f55386957687a496f6d565677736759614c6c37394e4d63636938624f546953786f4674626e634c6c6b655743514967324d7070553553434b614b62565a783025324252614e48784c4d685576536b35594b7076666451526a536e774b5645593871544a7852795875427349394625324247376174774c66427044766c385370746f464e454151715872453850686c49754765692532424d614533577444546374776e72386a736d5344526d45677577386856576b514337656833684b3937685575366c57656c74376f434852706559795377337446796737253242376478704176715a51666f776c7a54574b327836706261666344764b366878686d675872415763423472433659417025324269742532466b4e74414a517a496c467357594b59467544456956524765564c646c4c6a4f45357967356e6156744c4c304e507078744d4c54754d3336313364397432684c68636a4f76484a587a4a387756547851423455643230704b4c415a536558312532426f6670685139316f736c4e47367a726e796553555264253242564b7a626c6b5756357672353567355130453562734b4f484465467239365537676f7231544e594d513741253242596a75475353663654253246465661626d324439336b50684137396570795337336f4957597870714a30715776704d704c6c6e58432532466a77656e47617a775569614a345657765569427473734e4b42573035574442426c344776587a6a37554a64556b766925324263384e514f7773516a496d5576435733706341564a7847566e534f423841433565676b634b38647376766a496874484c696d49676f415a505a445543485239307a6e51676433516d43466f4b3567556c627a32414966694a7676553177253246696639695230716b4a78517366727a484f65726825324659253242464d52795a67576d524e6758353946425071566a4e5250386470494276385737506671626e6c796b42253246535225324225324270516178566279785352656c6b756f626872714270753939633959526258686a2532426c784c382532426774693365304b43516f68554330507a694358646c253242394671686350684437253242567a3475676771756f4969743770336558597050494d535a4545757758335832554c685171367749657967694c7a44593125324253644132614e6d6242596a2532426173253246754766665438452532462532467748505a67715256327442327058305361424153317456534767675a5630583367794c356e6b253242343353526f714f34566434734669436f354770396b6a5068574d7848784b5a754a78353877664f6939414f3674676a38583176564f4f44786a664c4549335a3970496672565451444f565747484e505755445261624850522532466f253242624d47765377437547447a7576774b77577569307759445732546337253242766371356f312532464c46313149496a71344138446d6e6159587832434431593662573736565168392532464d534d754e42576d4551253246416154324b394a3478454369593136337a39535031786468664e316f4e6f476a37564c7050564772334e4d416f76344d364f364c613742624f3161585668795530692532423137376578354e352532424d6939726a746f486b67447036523752766d485832684b4c746f4d71342532424a4e703734326b6f77456f4655697337392532427834432532426a6e79696339456f2532464738673242706f54625254792532425a694537304648644a253246714872485175354c7750253246634f55397334544e3372335769775338474b45466d734b7a4c3745667a712532467747443850616450786845415241737a4a7853654b5271524f25324674435453453655754566573565596876596c3541796b6735304b6e45304f494f356f504c2532425348757372654254636e7535746539486c7a3859456e79483150634d253242654449426137443261473464253246336d48713633585425324225324265253242317925324653626b523268664a433525324255746379385a493473447241363525324266764b6270726739317a464e5a6a506e25324669356f7034392532427576476e7a61695757743463706b345a64625563317268714142253242733168753662357070684b3325324645776a685050334659384e5048656449467938756266656c414e4b42536b5674384749766950647a6176634f56425a77424c6a516c54306c6a6d6e68776230356a716f7747356544575461724b4b7a6e796730376a4d796525324637493238786a79614f6e674e2532427a4470396b66325325324670315a253242704933486d317825324255654665343972663145562532424a504d6b6239323831253242595261797625324638504d65695376253246444a4b637a427832613639624d70304a567157625a35313141457478537877492532426d35653342497569396a38756d557650784556346259575654437966704e302532466f46566f3777472532467834486f53354b77425549424e333078253242634574764e71646359796b6a414325324230415973584b675447435574796a253246624178683146516f6f33526e6d45656c3331594771356d67616b3030424f666b54476966746c5730374276545a6559745a41716d33754f573262534335646b597369495a455877383234376c435259553053724c4a704a46682532424f306a6e46343673456f7869316f437259716f57545a5435626a4d4958354d46306b574a49624b41347a544a4475517378626558253242596f64495669394f31766171326c64435051676674467850627238617263765146652532464130675359704352634f484b4447536434703948303875317236383862253246395825324634436350535a48726530514e5673756f737575546b59716465676670414d715045706f7844656e744d25324645476c7a36756f50486575315a3764655266654d4d387a7a676e644b574272347a4667366b6e464e42484f7874324653764b56684f456a5233456d73733043704c7a645a4238443853366f594874377977374643785a466f4c73786f674a544a5a70315777394e50352532466b32713064483547784d616e4d78384b436e56316b434172766b4a654762666f70253242524a306b68777a6a676d70576677695831416b4a4b25324234554c693825324653776a73377146616266325a6d795a6645495a43386e585076764e59395668544c6b7777716d505932574b544861454e7970684e6c526a68436b767535593369586a7349566d59504f4c61736f4d6353726b4a46465359446e78596d566c68735655736f594b35725530394a6465484c4e6470396c664350707854686771474c44332532423176304465774a5679546b2532425949757a6b55416a675a55347448686425324275776250415370367764594d6755595076253246253242623034716b5a6539304e4749703158694d45796c65314946664643347839356768616d4c6e6c4b4d2532466a7a4156434936326c4650472532425354524336655165326b4d6435334f517a4b53546f69484a6d39615a6e497138614c564c53704225324656596e636656426d66366f4c414f7931326e75434768655858486c78756d676635362532425744727a714e2532426b446e746c775130396b3025324638717066717435786269614554727278794e3547327a36364b5148426f4d6c31524e74495478324346632532424152716b6c5a7062644670557754253246344a716b4a5256617075633056374a366a53526751253246653464616c65325833426c636725324265425266594330315764774877637659716c70704d36324166316156624530556c4d67675961753070336878576b48685631737825324272566a714a36464a34644551304d6c7241337879373157757a68556d6c4c485270504d57445569465669253246526a7943253242747230617a6559696649356d45524e6b624e784e504f6a4c61683153784b77314d5525324658434e694d4f496a6741376b77683150524f57596f492532423148475833253242565751697938685452253246544f36594b393375494b347059465056335061426e253242422532464d6b564750547a4151477a544e424f43445a3349646a4469313474744b6a2532425338304325324273425066724a667258552532424b6b6b79787a6e50386e3446625875396b5838594e566b67706654686b364d5865684d773365536837714a6253496c614543794174336d756d25324263715a426a6f4864475543545125324250253246513271704c3459486b4b6471644b304c634571733579697a493669463744686b7569716f414b546632633658456950617570326d726f6b6a4a73317645396a7a43594738736f78366a68253242376b7a726e615459503379566e77253242764b64494b556c5467724172374d576b7135446d676e494a62476f6a34366d4d754b65716a7650424f324a7041384a6b6a36446c786f617341613255634648745756336f516b445562415253716970394c6a59356964464542644c676b4c773148336c4f66765175576f346530497a476c6f6754675065334d6c707a4e6245324b4e7461304c596e4a355a6d437437765164746a7878554374506f5142484a5430706f34734d584e4e74426b4d67565962304474473555335246697856335854704c53636363567a476b683779734c61713772415578676b73387a7149644a626477666a665751694b4b6c717855253242753854454c787979644376343450304653726c705a455a68416151636534676a51253246414d37426c4f7751386731754b62776765345870594b445a704b793734305733454662764b59253246253242726d364754346d443159487253737450644f774c5059796e764d5945414a474b473358444768493873386a52584b4d4651776132674c4c397a7956334f6858493478344d43647143635473253246636e516e614d6a2532426678386d47762532427042674939515136334d6b4871334c4737636c627637687a25324635632532465a74346f637a4555613869647833706d724a6d65747738776e66536d2532426f4a4241796236364a7571596b253246414564467a306846484e653349364c35336237383247596a7871474f5444346d68666a32464a3633357439457870564637774b446f416739564a4d3776553439565146374c6c424f6650696a62724a51584b54784a6b7925324242754c796246484856717036736869684e48672532423364525043303056577673354e446e734f3479745431466c4948343953795a2532467158683144425430487039726825324236554a6a7773556648666c4a682532463762476b33734e737532324e7a386872453761394b65303874734c66767a6c52513377533131674e545173734868626166394a782532465753706d42527238575a436c68475463427278414677464a756941253242586c78704778454a67774b6e4d73586f364d676637364b6a584d6d39436661554c4a66736c73574863733762776261506d3536744f69367a6d43725825324277504e487358614459716b797474714e694f6c7235663769463067445048566e693837346d377a477a3245253242526b395965354825324643707270363361324f253242734e4f32636571395a70566478656849667a41596c73386f6c64655a7a6b6f7475716c5164334f553954716354615269596e615a78306725324672796f544e49585a6354594f5a436f726c61744e5334774b7130344b63384543306449574425324239777177597a6d796f56496c786d66504e4a696931436a6d4c3473622532465274516d746b3234764355316f6d763179697432334773726846507453727a5072756a45533463764870796370413250647975784f716c46514a7a67646d734678584d6a784e702532464d4175645736704a455561645a367336712532462532466454755570474b574b495745734b634350674b6d766d79716a6e736657646e63384c794b7378446478446a476436704d544d2532424f4a50363043744c54764a6d4a507a6a635342744a576d36794c30677078745a62336d6d4f3759733467647a556b554a79253246794241415075716f4d3168477139346c7174414d62477547623652477644716b6330357a43505776434f3565476173314469764662686235564f684e416f7a3753682532464d6348696a6246617549494a4644504b3335664753743473356b714c3257632532424a61756c794c634436754e586862253242726c7149487056514b33536c3679347141554b326847574a736d716a30354a696a5a4555624241797735414355364579576131685064676b4a5a4455455451687334505a584a334878374579724c695a4b4f6d3169797048697056634b53303644504d386c567669325065454c536a646e50645579596b6b434b6a6d31454f7054705161315a5a5a50326c5159564735253242494e55634a737261396f6f796d73626d4d5452726a514c516d75494667344e683025324269365a713265314c3855464b4a614a357779583261624f6a69374154616b6b2532465162756b745537323536415439696c715579414834664a305963376461424d37517344787a253242346a68686f6778504b63575370593441326742396458625252544362715a7968626843785378314876486e3230253242584e334e546b4a555639486d6348356125324649303671463436645737734f79414977704a3641686f74595a6d452532464a3665506825324678524b4a4c74765933626f596b355a59575561704367774b71674d763165436663646b615264514558627445625359344e434f444c6a4b71766a4156385a476e4e7a4f4d79325a4d3971416f574b7833734544734c484a45746b6d394c5a6425324276546b69446142526d5166726b35624d6b51376e3647416d675731253242466d66395766526c6d7a686c4753547a4d444a3372537a3865447a6c4a776a564474585a376d37253242617873666354316535556e34494d6e6c68755367626251777138553059635263472532424e677a556a68364f71447a374f303557413544486353466e71494f34477242306d2532424f5154746b574d33556e515767707678395937566d563865724131782532423748365767736d5467384149364f457643314a484b4663784c48594433454963693070566a6f483370344264514e25324271654833736854647758536e394a6641754a474a306d4a764e73374e3372784355305156334f71253242466a67736d613563384773675477387538487a37707634734e6a59336f79796447554f4c4f716e4b67496d7438344c62433578727565634357435772613232374d596d767a396e736d5368574433253246584243734450647950533345554f4463395351706666657931546648674e4c483741415032466b43426c625957304f6d4c46674a48726c395873787a4b79746968397869324d33597754364e6a4343457a5476337141253242304a31334648696e4e73647854524d3668723639656f6c3765424b7669554236425a686e42794e56393779737173424c356e4956367068414f546e51746e4278774a356a4557313077586b6738314572316d33684c425533615250776773596147646b484979514a72723544364e422532424833374f73436c33384665675025324254707052774348424b303735437236635a6743794c484b7530723779517561356d3663385a3952464b475a4d58506f4130796d34657864585a6c706362776d7252455153676d6835366645495425324625324653416d727852726a764f6858614279463566327153566b6b6556717525324652766d7168397567344c754f526a6b436e59457672617749364373595a4e6d62646648446b394a59572532426241776244526c64253242736f6c6353486f4b4e744a694a424252737936646c6a476631514c4e7a47374a3575494f72716f70537a6c364c7531697537414248476a31535178384561453454366a48664c32366230424d5173483541696e4f79543644416763594865384d57376a577734625733315a515453567a4a3156484b4f4a654438563965374f41587751774c62797761377445576259764d253242626e6f3959533648776e6d486c4d547645647248793557516a5a556f737775533025324675454830344d374158744f536b6f3667334f3174302532426c736a467367426a6e2532426a4e72354a396b4b61424c7264646341363668646a3663644272654f4e67564f392532426d25324248353455447a776d6c79534f6151655a72384b454a454864556268395539485671646c25324254543171516873456a4c537a794e25324231783249585642634e495654543043784a4c656e39525a654f7476776e6a4d385533496b796c564445564548304452616c6b6e474a6125324677344271456656676671756d72766d373142694b4c44464d49416d44764157503131707231734b586f787070573733494c51686b347730766b6d6f4535425454776f6e6449417976694a756a354d4943783561476b344e6b5470683771566e55766e253246534f4e6a75387254504e34594e7446497671253246425a5a44484a4e43574576253242646b556e3573754973486a7343445067534a554d6d5239516c4278366a6f5375314e4e4755577041344e6e4278614f45376d4f3359253242746264667a7957457645333445554f6c305873314e4225324663776865366d47664f4a596a69335141644e394f733766366b5a795041757535735072354668644b4563365a696b6b62617a2532466b4b587430657262524e4a6e516a67496e4750776b4b766a782532464d47764172436c3256317350694e6f37766a2532424831433578536756775149683368452532425a4163394d596d66415174634a4225324249464736253246346e7857484a5a704b6f395331253242354c332532425943745069377a703361365570462532467638373049456f676c6e7a4e36652532463544515a4d615767524b61654a47666d7a367150614c4b525837797452417037782532424f4f7061554652515a62794467554833484e644f4d4433674b78546554684c66794d3333486d3254534d446c4c36417372765772516752784b653551665164366a306859755a584f316334445158794279776847356a335041447556472532464b474154785041634d7079484b78526a6c4e71456a776b484e50427643336925324650346164646130464c6542253242667a7142456f616c67436562492532427030696c6758253242325172513142493462613277366432695677595625324247444a78684939316a354425324270445130413674577a74596179325974586737706a52437525324637526d5a466e3177466d49744d4162646d59667a726f7354347676654a534c2532427477716d453659354f5134795862253242696e363641512532425344304347742532426a474e6b705a464244534577646c756d48733948477849525a65615a5a746a584a456d676556516d51733872645a4139584338324e4f52586551634c414d597a56554c6368364546594476383741506825324661357735566a50583974727957306c3450752532424473616c5233436851355a39556b4d334f48584b71464b6233376453634e4f77346e58777661784763643651786b65376c397247646678364e446844596832565a7978576d5164703665437279537938474950514a7a4f30594c6c4c31445557757a34454c634e57576677526b324c556a534e4f253242546f2532466f6470326b58686654474b516d38707956696870253242785337516b746336423032577a664b6b45493641467a7a7a37414a3679725673754170475839356968716b355142736e5237633754313663716a583469655150554f4d676a4f324c66424a5a794949664a61534c3938253242777a62454c6766757675504b66376b464a4a397455626165656d464b593133624f6d3361313073556f6c33566c35587a4c714932676b6d3536516379667a36725759355554696f5a6d326e7a436b537569317a334e432532426b59515832524965676d5a717a4625324258455253526861684b58614c354776645938436e4967385534543774377236724a4e4a57452532423149417251547846447248483641486d474a4a67526853424f2532462532423364634637434b456137686e5473337137454c6a79513253776f4f7a49523156756a6c72686f6b4b44314e78354e4325324279515a7368306771467665555a447844467a4e4e3441554e623333347a6c71453153336f2532427870745954355a6a6c6b50374469633338464c6577675645344c46707048714c634c42537672542532464d4b6d4d47386b7135333425324638304833614c416a55586856504632546c305034676639667445447375744c6f357053704b67417156454b6c7778344366774f43414b46743571364338365451755658354e686e4435705531387275306175306a253242316e755575376d675425324230504a506e4b656a5745705843632532467274734a504550674f68436872597630614b4434705875636c436a6e4a47776a6b675264764a253242717567774458596d6434486435556164484e4b706a33536c594a76616134716c72443279474e54314d73792532423639566e4c714a324f4c73464a72786d684d65666d534525324648384f7752524f327870375a324956703471563830513941727355794a743158525a734f476b353874356e5a754962554679734a4d4c782532427133614d4c7761416d4344753735714b696c44546f4a7825324636336747785453502532463779675357797777595579474a6f354170536e494a5a6566453049727668706e7454714f2532427965423376253242415166386e6f4866384832446538663879574454356677495725324662386633557a253246583446757072382532464a2532464825324656374e51354c253246627a306e3838664e4c58367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a364636762532427861702532467365706672506f58712532463746716e25324278366c253242732532426865722532467357716637487158367a3646367625324278617225324636597456253246324c5676316a314c316239693158253246597457253246575055765676324c566639693162395939533957253246597456253246324c562532462532465446716e25324278366c25324273253242686572253246735771253246784d517466682532464e3677363958253246346e253246416d25324635762532464539347725324648384679763250312532467a433350253246586c524b48253246747642334a45767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a44334c387a394333502532467774792532464d5063767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a443350333168376c2532425925324278666d2532466f57356632487558356a37462532426225324268626c253246596535666d5073583576364675583968376c2532425925324278666d2532466f57356632487558356a37462532426225324268626e2532463651747a253246384c63767a44334c387a394333502532467774792532464d5063767a50304c6325324625324643334c387739792532464d25324651747a253246384c63767a44334c387a394333502532463078666d2532466b253242437565506f667a65594f25324633253246786a2532464a44755025324673326a31253246364e6764667825324644465a6e7a46754c49436c65386a302532422532467836582532466f253246513637253242773676646458447341494e6c253246414a68653576767a47734162736d4d25324256253246656138766d7678383225324644503650676578486e76336d502532467750414e52646c575525324673765250554371592532424675594f6f4c25324276564a683244253246514b754b253246544b7651253246366468366b346e2532463025324644314f39675a3858467638445538253242624e4d2532466c7831755a4f33613546645877616b5244304a3065614b674b5769553178734e444b646a6e703564253246745a6849453870545031486c304778746156436954374876356e573464434c66705453583469253246703137515839366a486b503230703448614166304f784e36586935497641344450343047583630393879572532463736646466384539564e4d2532426765753957795a517835706548504a5772586468754e726a614a695534685169424a3935386943636f784f7657424558536d6a38496e363263526d72656a59544e4e663452484d4e78634c423048754237694f654f64557a523662414a5878504a4f65796d25324658764d306568463073724734414f395a354d52506c346b78345131625154584b473046335a642532424525324249357437346738786261596b6e253246656d6858426a72397837346f3572775365376d74514246706a67774b31326754636a564b7644563351315152396a4b7a323968527a3575305677423838364d55366575376a6d74576c57375177576d5939564e78253246723730696a6d57707077775139374b74387758772532424b797a3725324673623759304d4c31505853612532467a6f4d717256743435416266613034784a79486c4c5a696f3934536e4f4d366c7634346a4444794d675676563158646b486c534d466955436f79527353573933422532465338537044774e5850496437704637544869495a37426b59766f50615a30553775496c7a77414c55514c4f366c485a65354a597561554539547650306b7842726458686862385436514242394462456f546a6a6b33624225324247764230675542575334785a68614e66686a7238307150547557554e39692532425855704f7959703050584f43645543676873645771396d61554d4e51556e716b30425243784e696f7525324639383563575553253246675448716e41696e4a4865646c504e584270336c61384425324245444f344c366d6961584437464250736a4436336f3355534d766e56586271564232676b5837577278786d6d4d554d6470785772336d446f73545079382532464e5031323943356657356a4743524c52393925324641645a512532462532463675413634425350656b576f4346557950384758552532426d72656a3835306b4355423350436f4a4b334159706b554c6d364c627a7a5968793546346f3944446371483164253246576d65736463306e68383373384872545368526532386e5736326a58744556347765315564426951354e4c444a444130414a6742253242703078386563534334545352655962704b516b70504665436d795725324272576258794176736f76422532427a574549636e3450347941665547776c49794a6c55514d67304e716a52347a794a476542737a55657554354548774d7153503864694169735634544c69666c545957386b566c377a6d445838416553503448704a743653412532464b6e6461507951784755336942734f61456b47776f6756317766576c54632532426d54765241304d4d4432397a3336594154736a41514a34647631586b716f427059443731456b71774e76755043526541537931786462374f5772527670592532464e48757a4447784559636351592532467561494a5859704f44313538764c396d306a786c504d666230795378343967504649253242685045335a5772564e46734248614451465277706b52616675587150744e3153416747634b6c346654723375584e6e4679687356316569497147654b4e4b6b764a53587934576661695242707425324277665a7531646d54536c6c426f67433758495158426b614b7a627663695938417735385563576a6f775439327148417948656a35726a66636125324267724d51484e683631374b766f4a432532424f49517a5a3361397474714f2532424d5a6e764a2532466325324225324259706c4c634c445a62674f316b3178374c6b45253242776c325244666b4a765472717a6d335538587047444d45506b324358487735467659754142325859424f64685051426f7936416a57547650364a645632787366335a34704d754345746e7773554d336774646b526279664d314a65486a5a6156594f515949744e6c4c31337a253246436e7842364152726f7932377368505666523151614e663074586966554b626e47344a6c314f69646f323650526b73426b347472773946557a43357a396641564f714537337333316d7a46777049356e713935593355744e7859476177656c4d453666764842253246476c633651716f534a7348504936776e46635445353057464f7a4e754f7578724665253242552532425750516477626a656f6d377976636e32586c76394e7a3855306c41666a315749692532422532463868447363475158636449673279515866543137377a484675696138253246425a744f696f57496978354b7557424b625564356573376b447564657a2532465a68464d684a5a78676d716b477858576955253246637977684d652532465479594566253242636264636533477273383852684c5025324644667970316a4356547168347a25324636444b6f4e32614c4c42746e31424e6e586575524b4e436d2532464136556d594e764a7a6f3643537a6648494f354e466c75534f723351344b546d424832756a79424a787273363174517575794861716a734c7a68475a6b6e574958753258676b315a526b7554724136356a2532466c4b6b51646a697453366f34784825324633564539716469317336306433754c6c31474e34576f735164616d476f3053626559253246253246696e424c6a70516325324677417379504638694b72305164376330695978325659614a467a4c41546638674e7543574d5333636e2532464d503372557a61714167794b4a6e32484d7334746e7873676c656351253246704e72472532464861646a66575461657079646362363742644b463830562532424c49653337484e356674774c6e78576e72766342646425324632574f3738726b7158253246326a58696b6c6479765a314a685363316e2532426874313872333432586f47624f6c567a44506d6c3467685a4c655a6f347a746a444654717753374335777536524e4e694b7044796456564a704546375538644d656d39526e4632734f364c7170677a6347717377787768526e43786c4d5a664b67617748784957673959357a6c6e253242345352432532423242446c31793856647075333571553150435742335062683352513672572532466779664b77426531445a3939464b34694338393345355a644264683443465568716f356e654d664c386a7736315471327a6a6162504b4a474c55462532424525324256253242547a4776536d2532425541397a685a51695a6f304e6e616558664f6635325536694f4e25324632417868734e4a377664615238546c646f69345062484d4679787250554447656a253242565432516c464475376d38723663756b2532464a49324d71253242484355684448253242614c304844364d5231383671636e32436e2532425268703269503141334d253246504852744f3974654a6a314a52453477334f6e7a72694d784635666e786d55684d71713271376f3952344e58754c6555574737654b646c594a76416d45547a3053534e30253242694478306b556234413949414a6a586b744e576379513736486f65494b565878253246696342693767486e6a765578657a4a66494c55465762307644694a7559656475374a447868707239475a614a735a763255753472377834457539714d696f4d67455079786b3265377a6c624b4f556f6c56347125324676435769306f78636b557142563764764a6f7051706567634c307669387064567146364537477959554e5a747234414a4a67336969513037715374334174474454396c524e54356b5052616731784b717625324252547a5a38486f30346b76544348667a466c346a505862664d6c76705330726b5539324a6b3151577a6a486c4e54695a5338534a46384725324625324253783859373869637648504a4147695165675732566f596b4f6f534f5632397563424b654a303665794f4e5678735677346d6f5836646e68474a454e677a6572345a446b455a4f355445754845746b35534133672532424537624746796330436b57365479785335394361305245452532425971786e4b7165435879584b507a67527970796c725a6a4c7079652532466265516d6a65365275374c3442456b746d3731323473654473726a7234316725324665736a515757253242506172464d6a33495a77384c745364534c4c4a663259315137466f346778575070394a4e6645797354783151387a34396338756f54472532426a3346646b537337354d784131514d7a5435496e32387951597548345347474c6f3657795a72523451544f4d734747706433726e4b417159665534314e74395056366158556e36595165646e3030463665706542417337727841384633253246524b4d637158354b5161716a7676332532463276754f5a636d68354c7176305659426235594143743537564f336776546346344f7546577a326159417948306f54496f6268675233664536336f6f344a724d764f656b51253246414b32694663577639534b47766f34663673376d78584750306271665172787425324655657937504539346f654f74634f6247366157532532465835594b5465624d32426d706d39727872776a745533636a6d7a667a37627a43574975314c253242666f746e6a696d253246524d73553359397855325868444c676d4b376750384c744f7474534f4f386858337a4f4f5555375279316e50577256253246775959384b6e434f5472305a54756d736c436d6246516836757972316f7963774d6234614e324a62345473432532427145506c5525324246555636564e253242596b424678737652685471726d626f7a39306470374b4d6d253242536757773838736846626d3769333141647556672532424d63746b74686e5a345a6c6c326645334b346d617061746b7a39526e6c576c356d37564c61466c704d4c253242646f614d756151624f654b593337473954577a4e364e253246566a7850546c754c416443586c376268337579486725324232627a7867253246563368756a506c346d526961253242703657713242253242434c5639306e695a696f4834624b344e4f4455306a4255253242614863384d71757a6d36744474346d4856383056304f25324634537a357837457a476a4f6532773066774a396369643371557175426470383968626335666d7557507a6b744b774c4a71663574456d4a306151384564677a496142534c47394f306b4639553838455a677a543143363932567164564f5a5a64525263303745725235795a5769326330553774397770766e4a6979564d6458253242736473646e4a732532463854644d46336544696a533044536531596269756a316d646e553134717865747369644e666e51627a46524b58454631486456784d596a713770595561764942694c47773251253242304d726e424551684973645a53356e253246546a7a385069794c6f756f51253242465643777242325277717577634a6b4c54567750596d535269253242624a76636f504c37685539784a73506d5a37505832574b7677776f6c564c334b345a6162462532424d683356646f4143455255674e77737366646c4e74553679527647523830516a3655544865506525324238716e52366f3447306f5555764f5863374c7248554d4c6f3249424f4d636f4f756831533252334e724474415856756c597659344c38717665303759377553357a2532463653634b38416c693853696744455925324633624d6d6f34454b6845746b4138334563736d736a76575056796c383550445246566b4a644255513456713671394d77586447324668776850316f755846446f3231507975755a50344b4a6a4a4a5764464a4e735142696f6e5864427a59646c54594d6a596a5a744b506276536e75347670786651634f477a75385a5a4339253242477a754c4b553664593733693351303879543570764d65744d71565337576d6f4b7745363836796e784c37766a47475446323569773355316874253242746837517732713571794b747a4339375877792532466d6d48414b725865704636446a3663583749526c357468642532427259476d3752316d346d726b6e2532424d7157443332455339714a63622532423438785a696b41576d596d33597938746d68523855774d4c5a6a5125324236586639576f546a695457647a6a694d71516b63694c5464504755546c51334739524c32373432334e66455554336d5a314d4651415a4f50746f6c4d78343155366843646d6961442532464f794a4d6d316d5352434355684c75666e566c427968415670464f644b6a4e4e37677171653335545650764575477559733935786a47702532424a4f6c43566e4a37515644614761615349596b7361655558445a74506737734b7331614237626e50455a5679556d433631376e545a77453753546b66567159513969345930695a4a504f664b62415264466557765239624d35346a6b7a3145555248344c39695558335a53305678664d535a63452532465a6a736479645149784f63456b5852585632644a4a4f6c455a79696d73754231477a423647306834704752426855573257374a7052457947776a71626c7569253242615277474a3435314969455335796b4c3279334377794c5734653252253242392532426a55733469686d4a6a4578356b4a35717979463531467a50574f46526d494547436f6f394e7a7047527448384e4171342532466b7469253242612532465154636839496136414f516d58757a6d317453703355564a6c467a6e574265744e33704d57766d48514c4a456971474d4a66577465677642365876434a3525324262656f42586a6e35786c797a5a4379315050694d7a536a75323257636b5377774c3261336a5a666b7866754857525759755a64437333436c32624f52466375323238584652794e716f58774456755a4e65585a42735557323639646570735451354a666a386c684164377925324630323767454e4351574a6171626b3637645567337925324674714238555a6955783531796a4944456e6d31594939506367506d587a4835554f54394c536857655775634a71624f59253246787a4774385a2532425a337a4c763348373674476f31346f6d4a4e754b385036453479383032313841325837444e463973714c556a6662774e373168614146477667484957697141556b433879796f6d714f4725324655626756346233314d4d747857423530356a616c59783878714678776c72377936487265663756304652533076377452433725324673467a487930564f6f56534e4e36767a773941545175434d7348723156306256334176564b676d3663444662765261384f4d2532424651534f374f6277794867614844636f4a6b734a6c544f6751357148344f454a6f5249756830467147745731797773536e6442345070703075587379644879654358334264316925324647747631545a774f644e6a6d4357564c49466c78663576333250657a755333446a61427a5a544e67344467706674637734714f725949346637515470724f4653526376656f334470354f6525324634445051646c4f4d4b566a4f5a7439433842466e7370425951635857345a58714d45315867516b4c4773477465556c436d72485a7479367a426454466a6f6768456157586c504661487670644b7a4a47687974615a34464a4b493173746a7a75483950367539546165566c63727a536549595251762532425968464a49396b503863525a76534433526839745356474d63775331767076357a626d6841784f6a55253242516b6533253242634939377a616269714a416a542532464a61363675524d4653797342513546364152496c376f465050486b5054324f3175253242456c4849747349486e2532464a48756a7a7a597a36494759333368314163334b4e496e38506c6f4f62393773756d71764c714474356a2532464642784b4a7575714b6b46414d72633553734f456d77456e4150533471557141316c49726d71312532424d4f4e4f767764367a3254664d584f572532464872564251475351363477665530625465383035704a69495470684c5a5333526730413957574e636e4f6f444b534b3231535a6a54753966427863316b4f5a304b48623132704850762532425a66515443336e4f3747747a344c775a6b3625324242424f355966327164712532425a4a3969466a423630374a596d616e4331745039645337324825324243635a6a7578613339743342444e744c344561505a574e724842396c493034787272387447567a564f5a53477039426f686a796d4242476c7478684a424e6d6e76347a6d4839667a36462532464452656f782532465364525269526253745a3525324272596e47753634435a5249535177794d642532424e51665271417869634b5764794830483557556453636337594968737a48326b434456425a565935414967504d5847374d36754e44597063726c45463173784f514a787545545057655a627925324236784a4c78766d3233317876593464456b2532426e4c253246627249456870574e714c6a37757278506c6a654b67695845466a55726f71746a4e677936586275596f496b72744676477a314c575a43356c516d355966795352504c576c31655039726e58797a3241493347537a6a504277253242636f596e796647594c41414a467a506d773072696e66546b316551505a396c516a4367673859474b52444a63656e39562532466f69517a70655a25324670794c543278796d79494965464f314b5a6a694651534741466c6d792532426e36253246574678504a48586c53556a6754786642726944366176487a4a444175647368637832537a726e30766333344b4e2532466d6748536b6356614759426c72434939364f777871306938787a4f486d44677742735148765072763966333774356c5961624a79344f44796e444f4b536f7a6b6f4374574a6e38525978453734506a53767646385964544f6f7566783369545655685941682532425a25324642465a75646951617159556137464f79746769347743253246455235627544684f526d50487436687872634953367a76684852536a4b53794869675453397758333643344c514a32724277316e32645045634e25324243454a494143637141615a394754657425324661644e6c35333251513639745325324234436a25324644536b524f624c584e4f3867756c25324271427a4a7342544f38253246554c474956667a6c4a3972416e324f75474b4b34666f323265764333374f73516d345563583053486d733963534d6b6f253242612532466644583172674e4b684136494456422532423064584c4a52794d58696932577941306f67472532465138734b414f554969315972486b71434f5747716b567a5531764a33536f355a65434a45653376626332397167716d4e594b4841623841307a6f424342374453637463713341314d475a586c41676c794b6e6449657878734436685577553770506d737448534c5968424362467676487925324265396b58253242303137756f2532464473324d594668736b784c4838356d577a747844424a697833766d52695a64477150424536544a4225324237466c594253353264346a6f3259743446253246624543556f613858374572475a526e36455558476b5742562532464239746a58796144476c5432614d4a77463146664f253242797564594a6759694676514a2532463346374c674f2532423735486d314b64506b346a68344a6e6651525025324274596c43636c79786237345134644e63366f386d7a72706c43366b697759253242536d596c51516d683050525939376b31526a6b315339253242516232336b796e536e3277433838577a364c67506c4854307a6125324653525756304c56624c733649325545716f797a4d56476371366d7158694e25324663536869466442342532466859506453727173776452376552384d595356416a644d777033446f444b7438634e5770786a3371444c757675746d394c684c3755716d65736853515933743646637538586d253246436c6b5a686e675132427439306f697469707876424e466268312532426a534742564a414943535a68756e78253246756a717a51386432514364544f6b675a4c634832363075624a4341517852783155627237526742466945716c733642354d783545794e4d6939684c6f7a504179374b554e5036705a5a356c654f784b3136543431444c2532466d47646350376830516169765a6a4f424845794770566249543053385432355159793725324231546b4e374b69644e65414f57323871736b66786d597825324270446678714f6731454d64646e58775648414c484d25324625324645764b7258253246654c4251676a6938427431522532463166377a494767486e667539445773644a3074576568504271633825324625324251704539563171394e3754786751522532464841305857674f466b6b45357750386d456759304d465736467458764c4c6f732532464a7a663154666270765677253242626730515745624341316f4841253242364a75575639305649666b576d646c5a4b56336134567352703244476f414630497543704e4763644a76556d525053595a4d466850567153686c57492532463738536c6e4242785a4b6a6a727879705a4b7a37524d48744b4c75553041694b473934516364524872534a524436644d4c76504748775138735877253246586d7a4c54413066534b623041716854623948466675347364477a45567942766b794f587532742532465378334e76576c32755778375131664c4f6b306c4c79497a302532466e3738785574253242642532427a367a66315a686b53754e7a6b734e2532467679704a4164734c356b4c386f7a4b426339715857696131566e6139664d74534267417a4f50584b70736d316e543569485771644c25324631456c4554645a353941616138754447714b4c5a664537446f794a42356f6b553954514a25324232253242617131594f64744b4b4f504a4c7056365976344a61556e4b5a345038394c5154506158305734253242717765747874375131685753566e46437172686e253242384e314e4873566371577a3936496c326c694134567769486e6f76366539557931344c5673592532464c7142484273393138394f6d563161516233655958537867456b654e31617451763272386c3665657938564a6454504769365048506a34495757253246436e4d34537a495641366c6837353761534d776b5132532532467a586b7a6253446c4964586f78765438686e34253242415766723855644163334a796e6e47685941544439316e587546364e38586e796c53655425324665776f55535934714f30253246783554673530773148306e676b3856676e76384c524748567a253242794b5966324656596f6237665473486f467a55487a574b51564a31566f424a463638714b4c5a69253242574d7a6c3246666d756d545a756f50314b715643746250574f31396d33766e7430746674387148776d6a663172517a3754725147594456697061747a795a44645634253246706b4c485966506d5137435659575550664a74253246475a4b663445685052354e57523870644825324656253246696749387a38514b6e664a5a253242253242755277253246675a3135787031663373324d566b68253246474d793459584b7369553859704a556c6e534834627a36714e765435687a31694254497035306c6d506c4c58397570486658253246504349746e383330253246377337667349366e48745439507956586f305134424f313666527750525225324638395343436f373525324269624d6876635925324668587a30692532467371593258653753513744796177447925324241444c6d4c6c4d50704c6754624437504a5877436150526e34586f34376925324262364532322532467a7857496c4d446f5a6e396f4d77797562347643436e78764c68685a6434786b7078253246354d4b73653338635430253242336c38616a65306125324675613668714758533659744e6f3975635468586551305348583145453052596d5373596c44624f4533693663494256385a453356752532423571684137794d344c364246366a566c54342532423054377268737849306b43475567706670786e487976724f375377517771762532467350787a545a6341495a6a6c49746d41506b4e72424636787625324652496c6a73482532464a5a6d34646442384b3157724b6c7531784847572532427962443144676239537933455330417834775765443673546e435076507775335155596f5349355777782532424136615a47364c6548487769592532423373555542456f6431557052796f71634a4d4d50594f514f665a576b4979733645674d3425324248635625324651425a466d64504563696336566f68774c4a446a4439424d386541343279734846696d4138663959776a42316e5858466c462532463943706844417a33483038686642796775666874705965766e6161735a3038694642496a76476777774853314c436444444f4552647263726e7a44624b39615453633858354f4766656b504b6a7547764a5675545a645368696939783525324668395957475033344a624c3274586b79684d7948743725324669754f576c34414e436f7a44684a537264344a4c6e4177794f58433042425238646835415555744434577831376839434c64517639474263376c63523643457a4d59443571394b6646427376674169434c766a7255446c6f3744316e3975527a4350585771464374306b42354c33543277324153384b4d7a6951253242683746327642564e4d54784b4f3632592532467136707a52473453774e365934587071717664726a3674526d7936746d5269656632344b4977614777452532425a325450423056414e746a31474a476d6b6b3541307531574668253246765656336a373746344d58354634354e534b755925324675616f644165414d54583634504b514c687279693837455142253242333772793756596f7025324631515076615a4a515276766e507767473261437933576e584c3355507578495071485a384752394a466c51454e58565055514f494865584c765255742532464b64774b43627a55253246377247717561627353415a466832466b50766a6f4162614b44474a786262574561755330685368337a3847644b6c387434703256323668356d54415843253246672532466e684d32346f6a4762253242724b703773753061464271393674647231326c6d3249654e713668376d7972426f686c33537778713430477a7a73617a6b726735796b3738666749553578734e764538516f5a4a7445616773314f76393034253246396d7a536278456b31304572573834593238584a614c33694478656b43584251775335324a4a253242746a70336c647736766d6973466d7678436b3265703370253246532532467a35617971643854444a3772687a5a5a4525324670485969316b366259496f4b744330596a6d723170253242656c6a3136555239543731327335676b704556785372725064344846356f7058764c7442676d315861253242646c396b4d444562314f477a437a4b6a72357025324667324f304c556d4b546e466e4b766575774575746c6a4e4970577876763569307a642532466e454457366e336359684668355232567337475356253246576b477068626f53614b79434e3079575538376f32427a594e30553555313461453454253246766e755052624346614261587863636d63496f395a3767367532764c253242716d695661497168526d6d5478454c6278386f58664267535a7a4245524d646a69584a3236314f6b584f643973716d6a47304362623647687741764a70437137716b5155494667324c6a4530616d653430746e3644716c375a70766d4b54704e6d4f356a4b64424d7535684c64354948665a44595a62446f31506c776d7052455539646642417746644e467630587078483364786f7157426b25324279446578547a525342306e433468587442374c674e41637144743839367a524f397865723649697063376b756f7a4d455678356439783141316249554673556e743834326154775134326d43324b57764d547941496970766d72784138765739623766723063434a48765145786c3176564f785972576968347659705546744942704a4f7954666159364f4b552532464d6a71373078414b35635142434a705479614f54473161725273797a6f565653763858687025324633396162526d25324659776d676c4b3078253246573637724a73433356446f7656477751733058374149775146554d565638723561346b5579616570764f486330655a45475847634550643247326b6369713874514a334653787448326c4c504f644b7076304c54444b736c3858253242746c3162547565346625324268767151476f6f4d4d76504f474a715a38664c724236352532426f72653577666d47444825324230342532424d545a4344494e526e4e474e79316e59253246335453566e724e637450494c4147626f45253246395249546c45444f6d626c253242385a44654256436d6d6f594d2532464f566a7a453750473561464d3875704c5625324670683355634679766e35306d6a4c583871504d464262484f7a356d4b733771253242637442464f6a6f5a35664142717a6d704763546b446e7a4b506931716b56366e5763485279717356557a45335a25324676757955376d636a65377a42473857253242664b3254483345536a316c2532464d434e505866626b6e3067644b756b4d77636c465463624e4d7265384c467861363243673056544b374d51567853334d57416a59364225324246434e536f32344442696f2532464e497672626e5163364a765242695042423041353734584d566a7344545a774b35484d3833667367677a55706178494c374954387a6e5a4177417775547436477525324671466974586825324241584b627a426430675975253242644d444138384d4d343057665667414661696a694a5665383558253242454f594d46575436553144584d49426b38435376524a416538764f6f5663514e4a474e3462536858416c253246587531526d5a465a427a756565346b6d37656f416c3238722532466d4e253242447267546c4f306a78346f784b4566424c5047695a6676384c7076675641634b79704b4c71763438445a514a31374242335a3930576a3930465633253246674c3152535925324679344832714c6f2532424231522532426c6242646b597643366a725578426a754f6b45614b3269784432722532464a7169494b505179487235716e415968515269364c6a7a6764586737735235397577393659545525324265424d34614d614158704a696a666246423456575169324a7743556a6f557278646f6f6942636550564a677439253242783663373067514734535325324263394178424f353662436225324266476c625638306256734a32504c613652253246783125324643582532466f4139513557615136437a6f7257674c25324668586164564e716d367567794b4c6b4e5a42253242566e34512532424a4e6162576d44783279554f456c57784e6e4d50706a6266655a7742575863452532464c4e7535614b49746a514e4c537939655551527375694664622532467a744351736d513876376f55516d6a3948616a58253246787469453676674d517645796b4d6e456238674b722532424b34387152326d4c7546787432306b332532427651636c386e45427565304e37346c53794f6f253246464b387573756a56424c6d534945323071546457644b4f687a47467866737a4c6348506b437765704b4f645342684c4333305a6464674a61656244465564455735724a2532466d4b397049427458785a4367416c737048565032505862355625324267647975476657735163584e596751334b6233584250703073253246356c59676a4978325a76584b4c54374968487356324b6444304832624a64364c4f3963596c4847686a4b4b33397646664b506966424171566b6b346a4b644676304663533943744e4c37456f4873666525324262722532466166514839324f50435071394b62726c46775078253246737137797666577165795742764f436a4125324675634e75466e4d253246687245614f6b564c454c4f696b7a7752642532424c483133526f746830743566597730426425324251326c624b746d25324647755a45396a584c3854394f46394f615139677525324251476b54496352544d7952615933666f7748566c7a63466561466e646a4d386d59374e546c71426359357769614a706f6b4a6e6d7a776451552532427736594f444d5834734b74732532427358785948253246555673767062556a4544566646717425324276694879487055556741253246447554632532425a6352784d774e473552452532464e626f6e754466697330616e587572315a5347347a424e487945416477526f425225324255586474326f45447a3453354d4e6767763775387338647673326c315062466b44476a6b6f624f63557a25324255614e3241532532426a5964326b46615a766c3559665a4d79525a324a5759415976787353397443343725324677654e31654b576a634a374562675450654f35343069476c55336956794e5a784e525165414125324668537349534551435273564774393165576a6b7a78544d386b54797a463656334d486e63546c76534b6f6e376561636b483753765555563045704433773042484a4276753466693143636d42614e467058644672647679776254336b666e71715a304156253246584a6d6f4541665a413150772532424a66513448794b5a7472445359374b6b4c467a253246366236416674253246466c794c73396451736d756149714f5879504563624e72656675394d472532466f673363766a497a67495469333349422532464c7a517a786a6f57466a63624959426777566d45546f534c446b727a775433675a32522532463764634f65715562556649253242685834757639795a7772447064614c784f75707a393453476a726637673458476d7a5074646e75517943433949334c374a4c656772774e672532424d754a4f395234347970577a7925324662624151324a5338654b773849743237766748464437586479365a736765554359714c524674784d4954685332715834654f52744e594f48304c30576a686b674141617325324667616648686848334f494150467358794b75796c3935317a72327725324269343662443925324279743468446657334444692532426d53766b41377750364e4b67647665426b42505a68546679674a317441344a426c543074676138714174523679414865447569334e47522532466e393059797449635a47354570795571396d57754461566461375a4252726831716153253246494231655762674c304a686834714a54707a4771566b794e4f4e465475546b4867545869767838504a5275427a337251253242253242336868597176566e626e6730437a44713353587a66786351324b796830526f3575454d5151614a466678354f666a30396a783677314e6941525a6e4a6b316654306d68253246667a4a4a346525324232334e4a38724150716e324e365876314d75567a4c5931784f734b4a466335486a656548303057666d6d36354d6663436c4762664e35727a6d4b6147724f47253246413779764e6e525541746c777953375763573530346d396a5a4d6b746b655a5a53615242714f4a456d58443358565338433654566a57434d48774c4f5149654e44475a535425324673684958574e374a4d41566e253242644d25324225324677376d3962625951476c62464848506b7a63745150676c4d555369546546794c4344753567716e4b4468566833384d6f624a726f71626a707241372532425368546d615437253242356c3666424e6b4a4f4438535135506442713949756c655458304339576e504b76673261735330624c6f3648336931594654624645784449546361583246795162494a30434e522532464b34457357513648687355743067726e4139704b6b6e337971654d59796f715174596e75394c454d6532794b6e484673253242253246496d544d6c675934696b663730314c76756c5571444b46784b5158415251693567354c6e436b56576f2532426c794241414b74376275644c5533493262413963394576326c6e7839467241797464373858744a4555664f316e6a62746768563643506c5257625434436c682532466352634f2532424f4b6e3376645634766c6c4a596c414442633774253242486558566756576a49314b3665426b3635634f7a524159317367365551516f43614c587576374b76316c48497338457625324678694e427635436e3478473267797731427830442532462532425a6774454f3734353662584a4a253242516c48356e374345327074666c324363333562526e54444d46334739624c7665495238584d6d79586a354c6770486d656e6261736c3531366d4c4851683125324241354d3550594c6a7646625272623769776c62336b4854484e434c41253246506a39564b71524b637163667435386f314d704f4953784f357757676f48774e50415365564a6c474a7063536f6f6d36797655356344426e56316249474a4851335453746a4d646e575033585536744d4353637a517347304f386a4c6c53794369336956393144466a524f623979724475796f49467a664b743177464b7134757251533861523546655449614e56616b4a485949253242632532425643486b4f515533786957385950744845385565325a673941304667396367704d345831537569453248426f5a32595634667251504b366343506b4865336d4b796c7a4f4349646273717938374e3464346a6945764f753830784b66544664774b5674577958484144784c673053253242365272663249787a5179306d42326972315238744858655525324245676125324656323849622532466d56786857555850576d3830253242304c6e7272675459763658456c663054777462313768397735704b4b703144656e2532426f62595373347535524e676656684c73546e7552344a6e714825324637486170494f4170347531437662626b786a486d453962773176674f576c77575065756477744d505a495271645731756c7366686e55544c76475a4a7154764b53776363367644334c4c5049714b5376597553787a41626b645956253242766225324646443041645849514c5a3034453578536834595243545758494e4876514d686a454225324656733254613935394b5852414870614e424e4130574967717941463557786e5a4a544a38637045696871306c4c42374b4a437063346b52624f377831774468353145537537515877375142305a495856786573793743794a714f546d46724544395449455653644a4e424964765662314564454975574b5971394651505a4f416765584156574874737061475525324630795056327132417569664a4c5556703178666d6c646131496e3646664c476253307a715a49476a6d47726a72374325324667543943634a676a7654346d5457253242714779737958694f4234376f6e794e7435376a42787065583330316f31647870643552493644634e566468696d315475784d41706f384e7662504a312532465038774d48347a253242366c62707268585259695271464f5849765a3637663577536235613371714a6861336d434c73746162546558565a5a58637049766b65734d342532463231583337774c655525324641714379574b7a4c435045387672395933334369416234654a6e6857343946677643614d6f79327a73336c6c766661686e586f704d30554f413776736139327976626f3336716b6c346e6a5552597633503042444139585834253242637033434b4f7a655a4d51545331334a35566f5737525265646e4642306b756d702532466a4c556f717972426f6d436a656a316475253246463767426542737044753767734753253242796f54424f49364b463666483850485738484172694d59575639594c644c76514d5530654a58484a537a4b4f423475545262493557626d4e55332532423144783765445752787a546355327a253242354478356c565138496b4f6f36386f6c586a5a364f756b253242543136635139253246584130707a63506c47336c68344c5377766a323245504c4b7567746f6a5636253242727870523271397a693176576f37336f7a6c59774f444748424836614635374e69384a62586d6d424378366b6f6d5a46642532464b70515777384c6e6a4963416e59344c614a3855657038764f674b644378516b44676f39694b65456625324238253246335872353047366d634552757662653441347630395a78664678666d6d567369784230536234253242783953253242307239546530725176355025324646395676784c3433796c2532427866394a786138493976253246357a656e2532467856253242636a714425324659436b36253242762532427a464233356579584d66314f4b2532466f71334f496e5825324642393759376f455271526636397a396d375851366458566a78677336502532423977447a35497a4261387463502532466c6f5a6265376263357625324658586d25324225324671554948663833363650253246357158724f5a7a684f666e335872704f4579516145253246253242636f6e55632532427464712532423366667255373973347257456679253246634375492532463166312532466f253246555725324249663146763633366d33662532466d714e646250455038714d4f6a665748714d253246427442253242444f7576337a7262325468723850346434674838643847345a39704546446b763578424950253246624950776644514c3144786f452532424e25324662564f627657775438623434513747253246376d66797a4c514c31337862686e326b52634f672532467a7949415838593462763953514a3731725051787938455625324677732533442533432532466469616772616d2533452533432532466d7866696c652533459471022b0000200049444154785eec9d07981445fac6bfdd9dcd39b084258b80082288a2e279e209ea194f319ce1383d338a87f10c441573e22f8aa7a772660ce7e9e9e96156444c8882020672d865239be3fc9faab5c6ded9d99da999eaaeea99b79f679f859d8abfef9d7abbaabbabe3bc5eaf9770800008800008800008384e200e26ec38735408022000022000029c004c184200011000011000014d0460c29ac0a35a100001100001108009430320000220000220a089004c581378540b022000022000023061680004400004400004341180096b028f6a4100044000044000260c0d8000088000088080260230614de0512d08800008800008846cc23f2e790eb440000440000440202a090c39f5742dfd0ad984df3ae50f34e090df6869242a0501100001100001bb086cfaf8233af2857fd9557cb7e54a99f061d7dfa8a591a81404400004400004ec22f0fefc9b61c276c145b920000220000220d01d019830f401022000022000029a08c084358147b520000220000220001386064000044000044040130198b026f0a8160440000440000460c2d0000880000880000868220013d6041ed582000880000880004c181a00011000011000014d0460c29ac0a35a100001100001108009430320000220000220a089004c581378540b022000022000023061680004400004400004341180096b028f6a4100044000044000260c0d8000088000088080260230614de0512d08800008800008c084a10110000110000110d0440026ac093caa050110000110000198303400022000022000029a08c0841d02ef6d6ea1d6d22a6a5af513357eb48a92c60da39403f6a2f8826c8a4b4e72a815a8060440000440c0240230619ba3e1ad6fa4ba379653fdbb5f51ebcf3ba9a5b8c2576342411679061751ca6f4651dab107517c7686cdad41f120000220000226118009ab8e86d74bad9535d4b2a598ea5ffe986adff894a8a535782d9e784a9d3886d24f9d489e013d293e2f8be2e2e383e7430a100001100001d7128009ab0a5d6b2b35acfa911adff98a1a57fd442d3f6c256f7308e6eb577f9c279e12f72822cfc881947af87e943c6e18c5257a54b512e5800008800008184400261c4130bc8d4d7cd6dbf8fe4aaa7efa6d6add5a1a5269f1b919d456554bd4e60d9aded33397d2cf3c82527eb71f25e466505c4a72d03c48000220000220e00e0230e130e2d4b2b584eadfff9a1a3ffd9e5abedf44ad95d544c1fd94d714171f47b9775c4815b31e276f5d6368b5c7c5517c662a79860fa0e4fd8751dae163c933b017515c5c68f9910a0440000440c04802306189b034fdb095763ff032357efa1d51184bcdacaad4a3f6a7bcf91750c54d8ba9ee5f1f4bd46e49ea89a7e4317b52d68c532869f880f0ca402e100001100001ed0460c21221a8fbef0aaab8e151891c1d93c667a4528f97e691a7470eb5965551c9c9b3a86d775dd8e5e5cefe13a59df09bb0f323230880000880805e02306109fe4d5fff40bbcebd432247c7a46947ee4fb9b75ee0fb63e5bcc554fbef8f435ecaf6afb8e0e12b2979ffe161b70719410004400004f41280094bf06fd95146c5c7fc4d2247c7a4b9b75d406993f7f7fdb1e1a36fa8fcaa07c3ba8b9a15d2f3b5f9e429ea11767b90b1238167dff82f9d73e34cfec77d860ea5a76e9b4f43070ea44fbefe9a0e3ff73c7af7b147e9e07df70d1b5b38e5945556d29f6f98494b972fef50efe337df447ffcfdd161b74536a3b51d91721075d73734d0d577dfc3ff7be79557d0cab56b23e6cccabcf7c9a7e8c253a6505a4a4a87f253535264bb8df420603b0198b004626f6b2b6d3fe862a29610efc2b294cd6eaceaf5bfbb3aec8ee56d6aa6923fdc482d3bca255af14b524f3cf559fe20c52524c8e7458e4e04d66fdc4867fded7abaef6fd7d0b08103b9f10de8d39b9b83aac13b12133e68dfd174fdf9e7f176cf7fe4517ae59d777d27094e8453b49dd535ebe28b7c6d89a46e7f1356c199b159fef52a7ae2969b283f272792e6212f08384200262c89b9f884eba965cb2eb95c714439b79c47e9478def948feda4557ef543d24bd2094505d4ebb55be5da81d45d12102613c860ace6599093c3cdfaace38ea1a59f7cca67a8d63cc2ccbf59bf9ece3bf924dab47d070903f53761abb14d3ae8a080c62166a056131675ccf8d3d97c36dcd50c5e18f6bc8716f199fd11071e486f7ffa69a7193e4bd755fd029830377662c2fa6435392b3b5697d5a8455b45dd820b3bb961477733612b4b96d63a0367ed117589b6ffef93e51d56321e9d3b9bfefee24bbc1e7132d55599e2ef5dc5155f1d10b08b004c58926ce9b47ba971f97752b93c837b53cf17e7f9f2789b9b292e31d1f7ff5d7f9c474debb64895c9ae05b36bc238d410b01a22334feb0c3890091f306a244ff3cabbefd1bdff7c921b5bbf5ebdb8a908935ab771235f5e15261da81c66a4271e3eb1cb65d36026bcdf88bde8e687ff4ef75e7b0d07619dc18be55db6742deaf8ecdbd5bcadec602713c1ea67e9ac6d386cff719d968cfd4f60c44901334d71d22278056a933049eb72b4588d38e398dff3130deb0c97717de6f53738ff2d3b77f27e9cf8bbc3f9ecdc9ace7f395aa4b59ebc88d8091e81e2ca2e49e00001bb08c08425c956def60cd52e794f2a57d685c751e685c7fbf2b0c79c32cf3fd6b7345dfde45bb4fbfe9742dabc43149276e204ca9df567a9762071f704acb32bebcc2b90798a41bfbbcffc0dd49a9619b5300036c833e362c6e2bf8c1ac884032d475b67c3e224825d1bb52e5bb334a2ce2fbffb3ea4fa19076bbb85395a67e6fe337c6b9ba74c3ac267f6cc4cad4bd0f32e9d46b31e58c883e27f4d98fdedafb7ddd1ed92bb355ee244a73b13b69e3031e681da1928ae91dc0780ef1c08042300130e46c8eff39aa7ff475577bf2095abc773b32869683f9e876df4517ce28dd4e3991b2969687ffeb7e60d3ba8f4ac5ba8ad3ec4cd3b8828f3921328ebbc63a5da81c4c109045a2216335aebcc4ecca6ba9add32c3e9ce84dffffc0bdf72aa6895f56630f1b7ae6ecc124bb3a27e66bc73a75d42b3173ee8333566c2d6eba356137e71e9db21d5cf0af3bfceeaff7f3b4cd8ff24c51a3971c2c18c97dd80c566ffe2a4a03b13f6e7d1ddc94238d7ef83ab0b2940a0330198b0a42aea3f5849e533da07ba508ed489fb52de5d97b4ef6ee5f5125fcefef47bbef355fe4357f0973478bd5eaa9cf90faa7b63452845f234b937ff85d27e7f60c8e991508e8075b6595a59e95b8215cbabdd99b0984dc9cc84bb6a5da099b0356d30d3097526dc55fdfed750ade9c41dda769830ab27d01de9fe3773d53534846cc2a1cc8403c5153361b9ef0e52cb118009cbf1a2a6f59b69d799b710b5b605cf999840bddeba9312723279dae6f55ba8e4f45faf0df778f27a4ada7b10ffcc5b5d473b265f45dec6e6e0e526c453c1c35750f2d861c1d322454804fc9778fdaf410a43e8ce84c70c1fdee19ab0b85148f535616b87acb35b71b22096a3add75f271f7c1037abe2b232a96bc2d6ebbbc28cc48981b87b5cd423ea6566c71ef5b2ae1cf4cccfe74bed6255c17a9d9af5c77f39da7fd9db7f162f66f8fe8c23bd260c130ee9eb82440a09c0842561b66cda49a5e7dcce5fdcd0ed11479476f478cabdb9fdb11276ecfefb6b54bde855dfff33fe3499b22f9fe2db03baf29627a9f6e50f83de299d9095c667d1897b61cb4ac9f075995cccb01e7de9659ea6abe784bb336166524edc1d6ded8475b99ab5b9303f8fe228ce776d595c370de7ee68c1c4ff6e68567fa0958285375c4f0fbff022b13ba0c52cb9bbbb8e833d271cec4e66568fe8f3c03e7d3a18396be37f173d482f2d7d9be30a7477b435c6fe779c63395ad5370be5042300130e46c8eff3e61d655476d1ddd41aec31254f02e5df7511a51cfaebe60ebbce98474d6b7fbd0b3a718f3ec466c3e2cd488d9fafa5b2cbff8fbc0d4dddb6cad32b8ff21ffc2b7906f6966c3d92db49c0df54fcefc6b5b3ee4065fb1b895dcfd0766758fee6e63403d40702a61380094b46a8ada29aca2ebb9f9abedbd46dce84be0554f8f44c8acf4ce3e91a57aea7d20beeeeb08c1d97104f79f75f4a29078fe269da6aeba9f4bc3ba939c8e34a8943fa50de82e9e4e9952fd97a24b79b80f5c62e5697ffe34e76d76f2ddf7f76cf3e53b5db95b51e98b09351455dd14600262c1951669465573d484d2bd6769b33e7a67329fd98837c696a9e5e4aad9b4b3ae549e8d78332ce9aecfb7bfddb5f52f935ed1b1e747524ed3398f2eebf8c12b233245b8fe4200002200002261180094b46c3dbdc4a15373e42f54bbfec3267e2e03ed4e3f959e16d29e9f552c91937753b1b4e3e686fcabf771ac525fdbae1876437901c0440000440c0000230e130825071eb5354f7c2078173c611655d7a12659e13fee6fab52fbc4795b73fdbe5e61d69bfef78c357185d40161000011000010308c084c30842f53f5ea7dd0b5f0998332e35897afcf37a4adca3a8fdf3d6566ad95519b49684fc6c8a4bf4f0742d5b4a68d79f6fa5b68ac07760679e7b34377a1c20c06eb6da5e52a2f44513fe54d9cd55626b4c999722f85f1fb7e37a341400026e2700130e238275ff594e15b31e0b983375f238fecee038b6390711d5fd671955def66cd05ab2a69d48197f3cc297aef2a6c554fbaf8f03e6cbb9fe2c4a9ff2dba0652241741360e6b8e0e9677827a79f79067feda21d473826cc1e9d62bb77b15dbc98713343bef5917fe0ed4676040865ba9a004c388cf035ae5843a517dfd729279b05173e379b3cfd0af967defa462a3e750eb56e2b0d5a4b42610e15be348fe2d35379dad6eda5547cda5cf2d63674ca9b7fff6594f29b7d82968904d14d806d60218e0ddbb6f95e2f284c332b2383c473cfd659a8d880433c3b9c919e4633ce3e8b6f34c25e98c09e7766263ae3f63be8c60b2fe0555867c281deda245e5e51555d432ffcef7f9deec216cf335f77fe5f227a2773744714bd8b450230e130a2debc613b959c3cbb53ceb449fb51eeed17f9fe2ebbc5a5ff569495739ea0da579775aaa7c7f3b32969cfbe61b41c59a285007bfce8a6457fa73f9f783c9f695a679dfecfe65a97acd9b3cb57dc7917dd73f5553c9fd877395413663b5e5967b4ac6c7688fc7d0a0b03be6b98b549d46bd78c3d5a628b7ec41601987018f16eaba9a31dbfbdbcc3ce56712989947bd3b994fabb71ed25b6b551c5bc7f525d0013edaacad4896328f7b60b7cd7861b96afa18a6b17515b8d65361c47d4fbfdfb7dcf1f87d17c64890202ccd49e78e5559a79d105949a92c277b062af1914bb76590d8f2d058b57ffb12d25adb36636ab65ff0fd584fdaf09fbe79f30660c7ff5a0f510cf2b07fa2c0a42812e8040440460c261e2dbf9bb2ba8b5a2da973ba17f4f2a7cfa06df72325f8a3e6926b51657845c437c5e26153e378b120a72da7dbcbe91ca2eb88b9ad66cfcb59e9c74eaf56ee7a5f0902b41c2a820605d12161d127b54fb5fc3b59a307b93103bd8bb77d9216bc2e21dbd62999b95c1eaf53771d12661c05dcd90a32218e80408444000261c26bcd2736fa3c6af7ff2e54e3d721ca54efa6516cc5ed6f0c336aa7ef835e9d233ce9e4449a3f7f0e56bf8f0db0eb3e9a45183a8c7e2eba5cb4586e82110e8fa6a77d770c399095b978f1939714d98bd3061d9ca95bebbb1bb32719647b4935d67f69f1d474f34d01310888c004c384c7e75ff5d4155773c4b6d55b5ed257812282ebefd8e687678dbda885a4278d3925ffd719e78a2f8f880e5c467a450f615a751da898784d96a648b060281ee34b62ef9ee3762af0e3752594d38d835613163b5beb5a82b13b6be46d07f268c25e868501afae00401987004949b37efa49a475fa7868f57535bb0b72a45504f7c561a251f3882b2ce3f963ce2f9e308ca43567713103743892565d11b669cecda2fbb4efcc033cfd2bdd75ee37b3c485c1366d78fc552f6a4830ea249071f483575f57c79dafad6a23bae9c415fac5ed3e9ee685617bb996be9f2e5c4f25f70ca147a6bd9329a77e9349af5c042dfddd55dbd8718cf0abb5b7b68bd7a0230e14899b6b652f3861db4fba157a9e1c355a1bd6738d43ae3e32879fc5e9475d9497cf30fb19947a8d9910e04ba2380d92af40102fa09c08415c5c0dbda4a0dcb5653cd13ffa5e6ef3793b7b139ec92e3923c9438ac1fa59f3989d81dd330dfb05122a31f01ff5dacc4cd5c00050220a087004c583177f696a5c615df51d5edcf52ebae2ae9d213723328ebcad3f8661ce23588d28520030880000880802b08c0846d0a93b7a1916a9e78936adf5841addb767578a6b85395714409bdf329ed887194f197dfc37c6d8a098a0501100001d308c0846d8c08bb43ba6d5b29552f79976a9f7997c8eb0d585bfac98752c619475042ffc2f05e7f68631f50340880000880807d0460c2f6b1ed5072f30f5ba96ac18bd4f4c57a7ebd985df74dda774fca9c7622258f1aec502b500d088000088080490460c20e4683ed80d5f4fd266a786305a54e1a4b892307fb76d872b019a80a0440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c2100133624106806088000088040ec118009c75eccd1631000011000014308c0840d09049a010220000220107b0460c2b11773f4180440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c2100133624106806088000088040ec118009c75eccd1631000011000014308c0840d09049a010220000220107b0460c2b11773f4180440000440c01002306143028166800008800008c41e019870ecc51c3d0601100001103084004cd89040a019200002200002b14700261c7b31478f4100044000040c21e01a131e74e86f0d41866680000880000880801a021b3efc808e7ce15f6a0a932c25ceebf57a43c9f3e392e74249863420000220000220e03a02434e3d5d4b9b4336612dad43a520108304d6ac5943071c7000ad58b182468e1c198304d06510881d0230e1d889357aea120213264ca04f3ef9840e3ef8605ab66c994b5a8d66820008844300261c0e35e401019b08ac5cb9920e3df450aaa9a9a18c8c0cfae0830f68ecd8b136d5866241000474138009eb8e00ea07010b01310b167fc26c18f20081e82600138eeef8a2772e22609d058b666336eca200a2a920100601987018d0900504ec202066c1e9e9e994909040adadad545b5b8b6bc376c046992060080198b021814033629b009b051f78e0819493934377df7d379d7df6d9f4e4934fd295575e49959595b47cf9725c1b8e6d89a0f7514a00261ca58145b7dc45a0acac8cfefdef7fd3b9e79ecb1b1e171747e211fec71f7f9c8e3ffe78cacfcf7757a7d05a100081a00460c24111210108384fc06ac2ced78e1a4100049c220013768a34ea0101090230610958480a022e2600137671f0d0f4e82500138eded8a2672060250013861e40c0400230610383822681800d0460c236404591201029019870a404911f04dc410026ec8e38a195314600261c630147776396004c3866438f8e9b4c00266c7274d0361050470026ac8e254a0201650460c2ca50a22010309a004cd8e8f0a071b14a00261cab9147bf638d004c38d6228efeba82004cd8156142234120620230e18811a20010504f0026ac9e294a04011309c0844d8c0ada14f30460c2312f010088110230e1180934bae92e02306177c50bad05817009c084c325877c2060230198b08d70513408184400266c5030d01410100460c2d00208c4060198706cc419bd74190198b0cb0286e68240980460c26182433610b093004cd84eba281b04cc210013362716680908f808c084210610880d0230e1d888337ae93202306197050ccd05813009c084c304876c2060270198b09d74513608984300266c4e2cd01210c07234340002314600261c63014777dd4100336177c409ad04814809c084232588fc2060030198b00d50512408184800266c6050d024108009430320101b0460c2b11167f4d2650460c22e0b189a0b026112800987090ed940c04e0230613be9a26c103087004cd89c58a02520e0230013861840203608c0846323cee8a5cb08c0845d1630341704c22400130e131cb281809d0460c276d245d920600e0198b039b1404b4000cbd1d00008c4180198708c051cdd750701cc84dd1127b41204222500138e9420f2838002024b972ea52953a6d082050b68ead4a9244c78f1e2c5347dfa747ae1851768f2e4c90a6a4211200002261180099b140db425a609a4a4a490c7e3a1d4d4542a2d2da5828202aaafafa7e6e6666a6c6c8c6936e83c08442b019870b44616fd721d81db6ebb8d66cf9e4d4d4d4dbeb6272525d19c3973e8baebae735d7fd060100081e00460c2c119210508384680cd821b1a1a7cf525272777f8bf630d41452000028e1080093b82199580406804acb361cc824363865420e06602306137470f6d8f4a0262368c59705486179d02810e0460c2100408184680cd8667cd9a4573e7cec5b560c36283e680806a023061d544511e08444880dd0d7dde79e7d1238f3c426c491a07088040f412d066c213274ea4f7df7f3f7ac9a267200002200002b61038ecb0c3e8bdf7deb3a56ca70bd562c26ce301f6b364c912a7fb8bfa4000044000045c4ee0d4534fa5534e3985ffb8fdd062c2d104d0ed0240fb41000440c06d04a26922a7c584b12faedb248ff682000880805904a2c5471c37e1683a83314b92680d08800008c40e8168595175dc84a3055cec481d3d0501100001f30844cb84ce71138e962504f324891681000880406c1188063f71d484a3e5cc25b6648ede82000880809904a26165d551138e0660664a11ad0201100081d823100d133b474d381a960e624fe6e83108800008984bc0edbee2980947c3198bb93244cb40000440203609b87d85d53113763ba8d894377a0d02200002661370fb04cf311376fb9281d93244eb40000440207609b8d95f1c3161b79fa9c4aeb4d17310000110309f809b575a1d31613703325f7e682108800008c43601374ff41c316153960a1a5a6aa9b6a99a1a5beb6877433935b5365052420a65a5e45172422aa52766514a627a6cab19bd0701100001171230c56764d1d96ec2269ca194d66da3659b5ea39fcabfa18afa62aa69aca0566fab8f55425c026524e7525e6a4f1a9cb70f1d3ce038ea915624cb12e9410004400004341170eb8aabed26ac0b8cd7eba5f2fa62fa60c38bb46cd3abd4dcd6c8a591e249a78ca46c4af6a4527c9c875adb5af88cb8a6a992d84c991d89f14974f080e3e9b04153283fad1711c5699215aa0501100001100885800913be50dae99fc67613d6b544f0ddae15f4d2ea05b4ab762bef73617a3f3a6cd0293420772fca48cae126cc66c0ad6dad3e13de50b1863edcf83215d76ce2790ad28be8d451336878c1fee1b0451e1000011000010709e8f29b48ba68ab09eb383369f3b6d1f2cdffa125dfde435ef252617a7f3a7cf06934bedf519410ef09ca8a99f2675bdfa4777f7efe17338ea32923a7d321034ea4f8b8f8a0f991c0dd04d6ad5b47a79d761aefc4f3cf3f4fc3860df375e8a69b6ea259b36675e8e085175e48f7de7b2fffdb8c1933f86ff6ffd4d4d44e20962d5b46871c7288efefa3478fee544757f458bbde78e30d5f1deea68cd683803d0474adbc46d21b5b4d580790cfb7fe8f9efde60e6a696ba6d1bd7e4ba7ef7315a52566123b430af5604bd9752dd5f4e2b7f7d397dbdf264f7c229dbcf7749a30e0f8508b403a971278fae9a7e9acb3cee2ad7feaa9a7e8cc33cfec60c2cc48599afcfc7c12a6cad29d74d249dd9a30cb73e79d7776305d66ea2fbdf45250232e2b2be3ed98306102cd9c39d3a564d16c10b09f808e895fa4bdb2d5849d5e1af8b6f8137af4f3ebf90c78bf3e47d02923ff4a6949996133aa6faea1e7beb98b56ee788f9771fefef36954cf096197878c6613a8afafe7465a5555c51b9a9d9ddd6156cb4cd36ac2223d4b3b7ffe7cbafefaeb03ce84c5ecfaeaabafee60eafe3444ba55ab56f94e0284b93ffcf0c3fc6f62e6fdd5575ff966d5471e79243f316087d5acc549c2bc79f3b8798bff7ffcf1c7b471e346dfc986989117141474327bff3e9b1d41b40e04884fb8d844ca2d876d26ecf41949abb785e6be733a5536eca27d7a1d4ae78c9d1dd2f273b040b11bb79efefa36fa62fb52ca4e29a059873f4389f1c9c1b2e1731712b09a256b7ea0996b38261c6816ec8f4718fad9679fcd67bcd659b2bf395adbe93f03bfebaebb7c270a6fbef926375a61dc2fbffc323df9e4933477ee5cbaefbefbe881071ef019f7c08103f9098735bfbfa9bb30a468720c12d0b1021b0966db4cd80910ec8ee6d5c5cb6963c51afef811bba12a37b5274d3ff07eca4fef1d3697daa6dd949e94e5cb5f515f420f2c9f41bbeab6d2a0dc9174e941f7f23ba871441701ab59b29eb16bc3d6d9abffac30d4e5687f13f6bf366c5df6b6ce86bb9aa1fa97c7fecfcc95fd5ebb762d4d9b368d2f712f59b2845fc366e53cf1c413b468d1222a2a2af22d695b97defd67d86cb6cc0e760d9bfd9b9d18e000013710707a02182913db4cd8ee25812fb7bd43cf7f7bb7efb12206223e2e81fe76e813d42bb37fd85cb654aea7155bfe4b53465ddea18c929a2d74cbfb7f222fb5d1c5e3efa2bd7ae08ee9b0211b98d1bab4dcd58d56816ecc124bbdfef9ad3766599781ad66669dd11e75d4517c2978e7ce9ddc40bff8e20bdf4cdc7f261ca81dc2b0c5c9c3d4a953e9adb7de22b654cd7eb319f3830f3ec84f2ad8ac97992b33de5b6eb9856eb8e1061e11d6efbaba3ade0e3623fff9e79f3b2cbf1b18363409040212b0db7f5462b7c584ed3c13a969aaa21757df4f5fef789fdabcad94959ccfafd30ec8d98b8ab28650bf9ca161f3d951bd911effb27d19fbb283eee33774598f7f7c318b56edfc8026f43f9e4edbe7cab0eb4146f308f8cf4ead2d1433c1eeae8f7667c25d5d13b6fe5d18a3a8cb3adbf537e1ee96b7453b366cd8c0bb70fbedb7f31930bba62c8c9acd90c5b27a5a5a5aa71bca583fbffbee3b9e7fc48811b819cc3cb9a245410838b112ab2a08b698b05d00d8661a0f7f7e1dfd54b68acf7ac7154da2d3475d459e84c48878b0c79a3657aea587565c4df52d35fc39e2e907dd4fbd32077628973dfaf4ec3777f2bf1565ef4953c7cca25e19fdb0994744f4cdc81ce84e656192279f7c3237a2704d98f5502cfd0a9315773cb3592a5b8e1e376e9c6ff9db7f562c734d98cdc0455de286ad40d786c5f5eed2d252dfac583c5a653d21c152b419fa442be408d83911946b49f0d4b698b05d4b01ec4ee54f33112a770000200049444154b7bc4ea99e4cfee8119b01c7c72704ef651729d81d74eb4bbfe265ae2e594e8d2d753c651cc5d38507dc46230ac777c859d75c4dafac79903edfb6945abdcd949e94cd9f419e38f854fe18130e77121086286e4e124bc96256c9ee2466c6c69673ad3766597bdbdd4c58a40b34db16cbd92c8d7599995d8f66cbd2d65938bbbe2b8c955dfb15cf1c8bbfb1c7a6d8e17ff2e07f97b4f50480cd8e7bf6ecc9ef28158f5e89cfc5c98328d79dd145ab6395805d3ea49aa77213b6eb0ce49b9d1fd1a35fdcc837cc3865e4157470ff63437af6972d5957375650795d31edacd948d58de5c496b44bebb6d386f2d554dbdcfe388aff71ccd0f3e8c8a16707fc8c5d377e61f5bdb4b96a1ddfd0f2d8e1e7d3e1834f0fa93daa0388f2404035013c97ac9a28cad341c0ae1559d57d516ec27674bcb1a59e1ef9e27a3e6bddbf68329d31fa6f9410c20cb8a9b591febbfe715ab5e3432aabdbc16faaeaee604bdceca7a5ad89d773f698f61b56021dac4dfffe7e117dbce9154a4c48a63f8f9d8d678855ab13e5394e40ccc6fd67d78e37041582408404ec9a1046d8ac4ed9959bb01d4b00ecd1a37b965d42e4257ec354dfec3d83726868a9a37faebc855617b73f6a11ca519056442c5f4d53050d2b1847d30ebcbbdb6c6c8bcb7f7c7923ad2efe847a670ee2d791d912350e100001100001fd04ecf023d5bd526ac2769d797cb6f52d7aeaebf9d4376b4fbaeca0fb29358477fe7eb4f1dff4d29afbf91dd4a11cec66ac03fa1e45effdbc84cf98f7cc1fc30d3fd8515cb3991ef87406d53456d2f9fbdf42230a0f0c96059f8300088000083840c08e9559d5cd566ac2767578c9ea7be9e38dafd098de13f9b26fb07da0d90c75cebba75155c3ae90782527a4d1d143cfa1377f78c2f7dcf1e85e87d15fc6cd0d9a9fd5f5cf9537f1ad2dc7f73b9ace1cfdb7a07990000440000440c07e02764d0c55b65ca909db35f57ff4f31be99be28ff8cd4f278eb83868ffcbea76d2dc77dbdf8413ecc84ccaa3f3c6dd4c6facff07ad2bfdd297fcd861e7d3e43ddb37f20f767cb2e9357aeedbbb282fb537cdf9dd73c192e373c309f86f8611ce633aec0ee53973e6f0ad2155dd5d6cbdab992114bb5cb1bbb955d7c7eea8661cc41dd386870ccd03812e09d8e54baa902b33613bcf381eff6a2eaddcfe2e1d3af064fe5ac16007db6672f63ba7749bcc139f4443f2f7a54943cea2afb7bf471f6dfa972f7d52420a5d32fe6e1a9c37325855fcf375bbbea0852baea4f8380fdd77cc3b21e54122330930e3d9b66d9befc50de2719f850b176addba511830dbc94abcd98919e4471f7dc4dbba79f366a5a60f1336539f68953c01bb5668e55b1238873213b6b3a3afadfd3b2dfdf1691a5eb03f5d3cfecea0cbd1ecf9df79ef9e4165f5db03f69a5d5b3e65d40cea9735941efeec5a5a57f6eb0c98651898bb374d1b7f37257b3abf13365081eb4abfa2859fce8009ab52a5a672c4b3bebff9cd6f3abdc29035e9aaabaee2bb4b8d1d3b963f33ccde7624f67d66663d7d7afb09223bf3b6be24813dd32b5e96f0dc73cff976ae62ef2ab6ce6ed9cc96bdc189cda0adef3166655a0dd7ff396666cc6c430febccdbfa4cb2ff3b8fc54b2258dd975e7aa9af3eebbed5ecf9e5ae9e89d6141e540b026111b07382185683fc322933613ba7fcdfeffa8c16adb8867aa4f7e5376665a7b46f4ad0ddb176d7e7fceee8e6b646ea953190fa660da1fe39c3b8c1b2ad2ebfd8b694df84555ebfb343313d3306d0b963e752efac41c1aaf07dfee1867fd18b6beea3c2f4fe74e3c42743ce8784e61110bb4d5937d110adf4dfbc83ed36c58c77c182053c09db6043cc98adcbc362630db6accd0c9c19b97891029b79b383edc8d5d576945d9d1c58e959eb63ed126db1d6274e220299b0d8954bccb4f10a43f3b48916854fc04e7f0abf55ed399598b0dd671a6c79f9de65d3687763195d74c0ed343c849727b4b5b552434b3da524a6f10d3ed85151bf8bdefbf979fa70e3cb01ef9ade237734fd79bfd92199bc00cfeebe667b4a7f5bfc311dd4ff58fae33e57471a13e4d74cc0ffdaabff4b1aac3365665683070fe6db4e0a4366b3587f13b65e5f6566cb5e8e70c92597749889facf4cfdcd5f9867203cfef5b1b72a59b7a164f53ffae8a374f3cd37f39733b0174958eb63655a67d2aaaf316b0e29aa8f710276aed4468a568909dbdd4166746ccf66f676a3de198368fac10b3abc6ad01f02bb6379d6db5368afc203e88cd1d750795d096daffe8976566fa4e6b62662ef08f67adbf89697ec250dd9c9f9d43b6b30f5c91c4471bf1876a860d94b1f1e58fe577e57f5f9fbcf0fe90421d4b2914e3f01eb2c54bcbbd76a865613eecac4d84cd86a8ac284d9f7c66adcc14cd87f99bcab9930db2b5a5c2bb6deb4c5f68beeca84d9ecd97aa20013d6af3db4401d01bb278a91b45489093b31d567cbc637bf7b16b5789bf98b1bce187d6db7fb35b3571de6a5f6a44121de5c150ec496d6665af4d9b5b4beec4bbe81c8a507dedbe9cd4be1948b3c7a08301364aff563aff7b3ded12c4c532ce70a33b41a349b09cb9a70a833614623d03561f677669c871f7e78876bc2fea62f6eb2f29f098bebd862391d33613dba43adce1070c2a7c2e949c426ece419c6e75b97d2f3dfdec567b2fb151d41c70fbf90b252f2c2e977c479d89698cfaeba93bedcbe9412e393e9a2f1b7f30d3e70b89b80f51a2deb89f5ae643113667f1777245baf09cb9ab07833132bafbb6bc2feedb0de1dcd66d8cca0d94c56d41fec9ab0b81e6dbd06ddbf7f7f7ead5a9c60e09ab0bb758cd6772660f78a6db8cc233661273bc65e39b8f4c7a7f89dd24dad0d9497da8b4ede7b3af5cb1ecab78b646f320ab69147b8a0583e66feec5587ec050eec9dc6bbeab6f27da34fdefb323ab8ff7191148dbc0611f07f4e58dc012d66beccc4d81b8dd8219e21f65fbeedee1aad985933e3b55e7fbee79e7be8b3cf3e0b7877b4d588d9eb0fd961dddfd9bffe4077478ba56976d316bbb3dbbf3eebddd1ec33f67fff550183c284a68080140127278c320d8bd8849d9ee2b36bb95f6e7f97bfc5a8beb986f7b520ad0fe5a5f5a2b4c42c4a88f3c8f45f22ad97d8ab0cab1acaa8a4760b7fc903bb9e7ccac81934baf7a17895a10449b7261526dcdd0d5291f40dcfe646420f7941203801a7fd2a788b22bc3b5ae799057b3de1ebeb1ea375a59f53554329b5b43587d25f256972527a5051d69ef487bda751617a5f2565a210f309a8366151dec30f3fcc3bcfdeedcbde21ecff8cb0f964d0421070070127576e432512d14c587787d8acb8a2611755d417d3b6dd3ff24790dada5a42edbb74bacce41c2aca1e42ec6d4bf969bdf96b0f71800008800008b88380ce8963578422326113a7f6ee90025a090220000220a0838069be15b6099b7846a123a0a8130440000440c03d0474afe0fa930adb844deb887b248096820008800008e82260da04326c13366d4aaf2ba0a8170440000440c05d044cf2afb04cd8b4330977851fad050110000110d049c0a495dcb04cd8a40ee80c24ea060110000110701f019326926199b0495379f7851f2d060110000110d04dc0141f93366193ce20740711f5830008800008b89380292bbad2266c4ac3dd1976b41a0440000440c00402a64c28a54dd89429bc0941441b400004400004dc4bc0043f93326153ce1cdc1b72b41c0440000440c0140226acec4a99b0090d3625786807088000088080bb099830b194326113a6eeee0e395a0f0220000220601201ddbe16b2099b70c66052e0d016100001100001f713d0bdc21bb209eb6ea8fb438d1e800008800008984640f7043364139e387122bdfffefba6f1437b40000440000440202202871d7618bdf7de7b1195116ee6904d38dc0a904f1f81e6e6669a3a752a2d5ebc98121313f53504354b1140dca47019931871332614ae6a084cd855e1926becfcf9f369eedcb9346bd62cbae1861be43223b53602889b36f411558cb845842f6633c384a338f4292929d4d8d848494949fc370e771040dcdc1127ff56226eee8c9bee56c3847547c0a6fad959f9bc79f3b8f9262727d3cc9933311bb689b5ca62113795349d2b0b71738e75b4d504138eb688fed21f71562eba87d9b03b028db8b9234e5dcd82f17d7367fc74b61a26ac93be4d755bcfca4515980ddb045b61b1889b42980e1685b839083b0aab820947615099e17a3c1ecac8c8a09292122a2c2ca49a9a1a62776f36353545618fa3a34b889b3be388b8b9336ea6b41a266c4a2414b5e3edb7dfa62953a6d0030f3c40679d7516892dd99e7aea29baecb2cb68c992253469d22445b5a1185504103755249d2d077173967734d606138ec6a85afaa47b5fd428c76b5bf71037dbd0da5a30e2662bdea82c1c261c9561fdb5531814dc1960c40d71732701b45a96004c589698cbd263307759c07e692ee286b8b993005a2d4b00262c4bcc65e93198bb2c60306177060c717375dc74361e26ac93be0375c3841d806c4315889b0d501d281271730072945501138eb280fa770783823b038cb8216eee248056cb128009cb1273597a0ce62e0b189635dd1930c4cdd571d3d97898b04efa0ed40d137600b20d55206e364075a048c4cd01c85156054c38ca028ae5e8e80828067377c611717367dc74b61a26ac93be037563507000b20d55206e364075a048c4cd01c85156054c38ca028a997074041483b93be388b8b9336e3a5b0d13d649df81ba31283800d9862a10371ba03a5024e2e600e428ab02261c6501c54c383a028ac1dc9d7144dcdc19379dad8609eba4ef40dd18141c806c4315889b0d501d281271730072945501138eb28062261c1d01c560eece38226eee8c9bce56c38475d277a06e0c0a0e40b6a10ac4cd06a80e1489b8390039caaa800947594031138e8e80623077671c113777c64d67ab61c23ae93b503706050720db5005e2660354078a44dc1c801c6555c084a32ca098094747403198bb338e889b3be3a6b3d530619df41da81b838203906da80271b301aa0345226e0e408eb22a60c2511650cc84a323a018ccdd1947c4cd9d71d3d96a98b04efa0ed48d41c101c8365481b8d900d581221137072047591530e1280b2866c2d111500ce6ee8c23e2e6ceb8e96c354c58277d07eac6a0e000641baa40dc6c80ea4091889b0390a3ac0a987094051433e1e80828067377c611717367dc74b61a26ac93be037563507000b20d55206e364075a048c4cd01c85156054cb88b804e9c3891de7fff7dd787fbb0c30ea3f7de7bcff5fd88b50e60307767c4a365dc504d1fe350d74461c25db0c120a8fa6b88f26408407f32b490d67402d0334c585aa3108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384a54508d1482343068504a03f853051947602d0334c585a84108d343264504800fa530813456927003dc384838a70e9d2a53465ca145ab060014d9d3a958468162f5e4cd3a74fa7175e7881264f9e1cb41c2400817008407fe150431e530940cfa14726ceebf57a434f1edd29535252c8e3f1506a6a2a95969652414101d5d7d7537373333536364677e7d13bed04a03fed2140031412809e43830913b670baedb6db68f6ecd9d4d4d4e4fb6b525212cd993387aebbeebad088221508844900fa0b131cb21949007a0e2d2c30613f4e6c16dcd0d0e0fb6b72727287ff878615a940203c02d05f78dc90cb4c02d073f0b8c084fd1859cfde300b0e2e20a4504b00fa53cb13a5e925003d07e70f130ec0489cbd61161c5c4048a19e00f4a79e294ad447007aee9e3d4c38001f76f6366bd62c9a3b772eae05ebfbeec66ccdd05fcc863e2a3b0e3dc384a585cdee863eefbcf3e891471e21b6248d03049c2400fd39491b75d94d007a5664c237fde742bb6385f235139879ecc39a5bd075f5d09fb1a151d63093f5a7ac93bf14043dab266a5e79a1ea39e4e568269a93f79f6e5e4fd12225045efa7c01852a1a25154a1602fd4902735972d3f5a71a27f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e63d6845bbd2d54d7541556e4d293b2293ece13565e5333c98846471fa26dd082fe3aaac874fda9d63cf4fc2bd1581f4f63ce84d9e0f7f9b6d76875f187d4dcd618d6772b29218546f5fc2d8d2b3a96e22921ac324ccb64fa20182d8316f41758f9a6eb4ff5f7157afe9568ac8fa73167c2effefc04ad2bfb4cc9776aef1e13e8d081672a294b7721a60f82d13268417f306146007aeeac83581d4f63ca847754ff40afacbd57a9dffd61afaba857c660a565ea280c266c3f75e8af6bc6a6eb4fb53aa2c184a167357a8e1913f67abdf4c277f3a9ac6e9bd2ef5361fa003a69c4351447714acb75ba30d30741b70f5ad05ff78a365d7faabf8fd07360a2b1389ec68c097fb7eb63fa60e333217d97d213b3a9c5db4c8d2d7521a53f7cd0d934ace0a090d29a9ac8f441d0ed8316f40713b612809ebbd643ac8da73161c28dad75f4ec3773a8bea526a807f6cf194e7f3de8ffa8a9b59ee67f700eed6e2c0b9a272d319bce18358712139283a63535014cd8bec8407fc1d99aaebfe03d904be16613869e83c75a46cf3161c29f6c7e895615bf13905c5e6a2f62b7c86fa95ac73f3f6cd0143a79efcbf8bf1f5c710d7dbf6b055f6a1e5ab01f6ddbfd23d53455062c674cefc97460df138347c7d01432a2d1d105370f5ad05f70c598aebfe03d904b013d633c158a897a13ae6c28a6e757df4c6dded64edf92bd0b0fa273c6cea1a48464ba67d925b4b1f2bb0e26fcd067d7d277259fd221fd4fa0d3f6b982763796d3a215d7d296ddeb3b959510e7a1d347cda2ace402b96fa321a94d1f04dd3a68417fa109dc74fd85d68bd05341cf184f63c6845f5fbf903657ade9f4edd8236f1fbaf4c07bc8139f484d2d0d74c747e75371ede68026ccccfa82fde7537c5c3cd53655d19d1f5f446575db3b953928671f3a6acf8b42ff261a94d2f441d0ad8316f4179ac84dd75f68bd083d15f48cf134264c7873d56a7a7dfd839dbe194909a974e361ffa4dcd442aa6dda4d0f7c7a056dddfd43a7e5683113661f8cec7930fd65bf9bc813efa19fcb57d3bd9f4c0bf88d3b7ef8742aca1c1efab7d19094a60f826e1cb4a0bfd0c56dbafe42ef496829a1678ca7516fc26cf979c9ea9ba9a2a1b8d3b7e2883dcea413f6ba80d863230f7dc6aefbfeba7987f59ab0d584592113079d4a27eddd6ebe8f7c7e037d53fc71a7b2f352fbd0a97b5f4f7171f1a17d1b0d4965fa20e8b6410bfa9313b6e9fa93eb4df0d4d033c6d3a837e16f8adfa1659b5f0af86d983df1192a482fa235c59fd2a2cfafed90a63b1366cbd1330f7b9a0ad2fbd09ae2e5b4e8f3bf052cff37034ea39185bf0dfe4d342885e983a0db062de84f4edca6eb4fae37c15343cfc42fef613c258aca1bb31a9a6be899d5b3a9b1a5bed3b7213fad37cd39fc39fef7c7bf9c4b5fed7837641366097f3ff45c3a7ae8547e1df9eab77e1ff086af644f3a9d396a0eb1df6e394c1f04dd3468417ff2aa375d7ff23dea3e07f4dcce07e369949af0f22d2fd1d73b033f92b4578f03e892f1777201cc7df70c2af5db41abbb9930cb33b2f060baf0805b79fed9ef9c46e5f53b037edbf6eb73241d507482eaefae6de5993e08ba69d082fee4656abafee47b143d260c3dcb475f46cf5139137ee9bbdba9a476534072a37b1d4ae78dbb897f76fdff4ea4eaa68a0ee926f43f8e4edfe72afeb7fb3fb99c7e2cffbac3e743f246d3e5072fe07fbbe5fda9b4b36663c07afa64ee41270cbf523e7a9a72c888464713dd64c2d09fbc424cd79f7c8fa2c784a167f9e8cbe8392a4df85fdfdf493b6b360424b767fe189a7ed07dfcb3db3efc0bdf80c37a247bd2e8a411d3a8aeb99a5efdfeefe4a5b60e9f8fed7d389db3df6cfeb71b96fe813f3b1ce828ca1c4ac70fffab7cf434e590118d8e26bac984a13f798598ae3ff91e458f0943cff2d197d173549af017dbfe439f6f7f232039b62ff4ad935fe1772fbfb87a017db031f0cd5b5d613f75e40cfacdc013a9bab182ae5fdaf50e59e3fb1e4f637b1f251f3d4d396444a3a3896e3261e84f5e21a6eb4fbe47d163c2d0b37cf465f41c9526dcd4d6c0f78aae6bde1d90de8c8317d2e0bc91b4b37a33ddfae1546af3769ced76853c2d318be61cfe2ca52666d0f2cdafd333dfdc11306946520e9d3e6a3625c6bb672f6919d1c84b32f21c6e3261e84f3edea6eb4fbe47d163c2d0b37cf465f41c9526cc90adddf509bdb7f1a980f4c6f49e48e7ee37877ff6fabac7e8cd1f16874479ea989934aee808f27adbe8f68fceefb4942d0af9dd1e7fa6a179078454a629896444a3a3cd6e3261e84f5e21a6eb4fbe47d163c2d0b37cf465f41cb526ec252fb11b0a76d56e0e48f0b203efa3a10563f8861d2f7fb790dedff04297a4e3e312e8e41197d1a183fec0d37cbce9557afedbbb03a6ef953188feb017bbb1cb5def1796118dbc2423cfe1361386fee4626ebafee47a133c35f48cf154a8246a4d98757067cd4ff4afef039b6556723e5d31e141ca4febc559acddf505fdefc7a7e8c7b255be9bb1d8bed2230a0fa4a3f79c4a7db3f7e4e93654aca1ff5b3e839adb1a037ed34e1e710d15a60f0cfe2d342c85e983a0db062de84f4ee0a6eb4fae37c15343cf184f63c2845927dffef931faa1ec8b80df8adc94423a7fff5ba85ff650dfe70d2d75545eb793efe6c236f6b0be2398edb0f5c4ca79d4d0521bb0bce10507d2c4417f0afe0d343085e983a01b072de82f74a19baebfd07b125a4ae899f88e85184fa374b30eebd7a0a6a9829efb762e35b73505fc7624c427d2c441a7d0e1834fa3cce49c80694a6bb7d39b3ffc93566c7d9388bc01d330b3fee3a839c4eebe76e361fa20e8d6410bfa0beddb60bafe42eb45e8a9a0678ca7313313661dfd72fbebf4d9b6d7bbfd86b0f701b3678807e4ee45d9c9f9fce6abf28612da50fe2d5f8266d7f8ba3bc6f73d81c6f63e32f46fa161294d1f04dd3a68417fa109dd74fd85d68bd05341cf184f63ca845bda9ae8d9d5f3a8a68b8d3542ffea044e99955c40a78f9a45ccc8dd7a983e08ba79d082fe827f2b4cd75ff01ec8a5809ebbe6156be36954df98650df38fe55fd0d29f1e93fba68498faa82117d2a0dcd121a6363399e983a09b072d1671e8af7bdd9bae3fd5df5ae8b96ba2b1369ec68c09b390ff7bed3db4bdbae33695917eb9fa660da5e386b9677bcaaefa6bfa20e8f6410bfa83095b0940cf81f5108be3694c997069ed667ae1bbdbbbbcb94ad690e3289e4e1d793de5a5f691cd6a5c7a98b0fd2181feba666cbafe54ab231a4c187a56a3e798326186ec93cd2fd2aae28eef100ef70b36b6f7641adfb7ebfda3c32d57473ed307c16818b4a03f3583968eef87ea3aa1e7ce4463753c8d3913667739af2e7e9f5615bf43d561dea8c536fa18ddeb081a5978a8eb76c6c272b4eae154ae3ce82f302fd34f02e5a21c3c75b49830f41cb99e63ce840532b6a96457cf0e07fb0a79e293822571dde7a60f82d13268417f910f5aaefb72056830f4fc2b94581f4f63d684a3e18bacb20f3061953451962c01d3f527db9f60e9a3cd8483f537d63e97d1334c38d6d4d1457f6544a30319062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a3676d26fc9f97fe43d74efb1b27f7e4ab4fd2d803c6f07f3f74cf227ae08e0768d8dec3e8ee87efa28af24a3afbf8b33ba4310b7768ad69a86fa0db67dfc1135f3bf71a4a494d0998f1abcf566ae9af8c6842ebb1da54aa072de80ffa53ab50b9d2a067395efea9a3693c35c2842fbde652baf88a8b48805df2cf253e131e34645064d142ee9008c4b209437f2149c4d644a6eb4f75e7ed3461e85975b4e4cb93d1b376133efa84a328333b8bcf0e776cdb41575e78150d1e32887efe7143c099f0861f37f034ebd6aceb308b16334826403693164214336b96f8d43f9ddaed2cb4abb495e59574cdb46b69d97bcb3ad429da32e1b707d3b20f3ea1bd47ef4d6c27ae048fc7570f2b73e5e72be9a6bbe7d1a2fb1ef6cd84df7ee36ddf4a8008315b11608775e6ef5ff7ed0b6fa3634f3e565e154172c8884679e5211468d7a005fdfd0a1ffa0b41888a9240cf184f8594b49b3033cba5af2fe586bb66d51a7af5c5d768c26113e8df4bfeddc984993933333c7eca71dc8884c1ddb1f0766edaccbc84f9b20e5a3f67ff6779c7ec3f86cfbafd0feb32706e5e0e37fa732f39878ef8fd111d969199793ef6e0e3bc6dec60e946ef37da67ba6c9993f581b5c95ae739b227dd81000020004944415417ff39e072b430f282c2029e47f4830d88a2bfa2cd762e55c7aa09437fed27b5d1a8bf65cb96d121871c42f3e6cda3993367f2ef637d7d3dcd9831833efdf4537afef9e769d8b061fcef81d22af2db80c5d865c2d0b3fbf4acdd84ffef8905f4dce2e7b9b16ed9b4954a7696d088517bd1b34f3cd7c984999a6fbeee66fe77ff656a7f83123348abe932831406da557e5687f51ab5304966c8ccf8c5ff6fbcf546b29ab5989d5a3fb7ce6a599f025d1316b36f31c3b5f6c37f561cea759070068f583561e8affd1e8c68d45f2c9a30f4ec3e3d6b37e1479eff3b2d7dfd6dee1bdbb66ce366cc0e6196d61bb3b66fd916d4448581fa9b272bb33b13b65e8f1626665d9ef337363668b1e567316316262cca29ec55c8b3b0a56836c3653762f99bb030dc091327f034397939643561fffec284a787737e11308fb8310bfa3b9ba03f65b20ab920bb66c2d0b3fbf4acdd8499d131b3b1de296d351fab09fbcf0cad8a979d09b3a56f51a775095b9835fb8c0d4ed3ae9a4673af99cb97a6fdafc506327aabd917f4c8a731078ced70d319fb9c5dff6607336576139a75e68d9970e071ccae410bfa83fe42764e8509a1678ca7424e4698b030577146fef17b1f079c09fb5f23b5ce6c033dca24734dd85a56efa2debe59ebe5d74da7fb6f5dc07931f30c744dd8dfa0ad378f0983f59fc57ef7edf7fc1ab6ffcd625613c635e15f473d3b072de8efd747e6a03f854edb4d51d033c653a34c58984d51bfa24e46e76faec1ee8eb6ce2a5927ad773cfbcf78fdbf23d6b4e2396576ed38d8ddd1fe262c0c972daf8b65667f137efca127f8b538ebc1da37fe90f1ddde1deddf3f554346ac5e13b6de0007fd417faabe4fc1cab1d384319eb6d377cb78aa6d261c4ca4f8dc5902b166c2ced2456dc10898aebf60ed97fd5cb509cbd68ff4f61290d1334cd8de58b8a67419d1e8e814062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a367d798b0ff1dcad60d0664f0b347305e7bf1b56ef790eeaebc48f3fb97cdeef67ef0ae07e986f937f0cd3a741d32a2d1d146dd8316f4676fd44dd79feade43cfed44319e12b9c284c50028f68c66c1b3eed1eca4794134aa87a3d0cad33968417fa1c528925430e148e8c9e5859ee57885935a46cfae3061365bbcf5c65be9ba9baff3ed192d8474d18c8bf81ece6c363972cc28ba63f61d1d5e83c84c73d13d0f51e9ae32fea285238f9b4c6fbdf63f129b70b0ed25c5f3bad6e788c5a6052c00ecef6c4f6bb65907db6483cda43332d2f98622d619b9ffd69781f6a0666f7f127958d9e2ed4ce1ceecc31148a03c32a25155a74c393a4d18fa93895478694dd75f78bdea3a17f48cf154a8c315266c35b7409b55880d3c261d33896f11c966c95faef8ca679ad6973e8899acff4e58cc5c45badcbc5c6e8ecce0fd5fbc2076ba121bdeb30d3ed8c1ea65ffb69ab57f79d6b73f8974ecf58d588e0e3ec4e91cb4a0bfe0f18934054c385282a1e7879e4367156e4a193dbbc2840508ebec94fdcdfab206eb4c99cd926fb9fe16bae4aa4b88edb8b5e8de451d5e90c066b2c284f71b3f96ef09ed9fc77addd8ba04cd4cd85a9eb8a67bd5acabf8fb828f9b721c8d3d600c09a1b3f2d98b1eac466b9d59b17ec084834b5da709437fc1e313690a99412bd2ba4cc80f3db7df9783f1d425d784037d69ba33b2500c5598b0304d6b1ef672073193666f3ff23761ab410b13664bd6b7dc309fcf9e9909b383cd8cfb0de84b7dfa1575306e6b5d30e1d0864413062d6b4ba1bfd0e2166a2a9870a8a4ec49073dabe52aa36757cc849909aef878055ff215879869321365d784ad3361aba0d84c38d0acb63b13ee2a4fa033377ecdf9de4574d3ddf3301356abe30ea5e93461e8cfc6c0fe52b4cca0657f6becaf017a0e3c138ec5f1d415266cbd094bcc3259b0c43557f695b1bed7d7ff9ab0ac0987724d582c85e39ab0fd0316ab41e7a005fdd91f6398b0fd8c450dd0b3fdac65f4ec0a1366c8fc9fd3b4bee5482c09676465f2f7f3fabfa45cd684d99b93c4f56756cf1fff7c3abf7611e8ee68ebab0865ef8e668f56897eb13e8a372ed92f91ce35c8884647fb749a30f4677fc44dd79f6a02d033c653a129d79870775f02bb37bcb0ce76557f194d29cff44150f7a005fdd9ab54d3f5a7baf7d073fb1325d17ac8e819261c4005feef2cb6ce76211a3d046269d082fef468ccc95aa1e76b88ddf41aad47cc9970b406d2c97ec988c6c97689ba4c1eb474f088b63a4dd79f6aded0b36aa2669527a3e7a898099b85df9dad91118d8e1e62d0d241ddb93a4dd79f6a12d0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a7695098bbb8fd97ecf915ed4b7deccf5f38f1bc27eb39275e38dde45bde9f6d977f876cd324b16ddb74646343afa65c2a005fdd91779d3f5a7bae7d07360a2b1389ebaca84c5ce552c7c97ff6d7a44affe537547b55534ecd126b71ea60f82260c5ad09f7dea365d7faa7b0e3d0737e158194f5d65c2ec51a1f1878ce7bb67b1ed20d99ecfec1083a3ff9b8dd8dd776c66ca5ec2f0ec13cf117b839178f142773361568f78b392d894c3ff3965b64de53917ff9997cf9e4d66cf13cf5f700b3dbf78896f266cbdcbd5ffd9e5671f7b86b7fd8d57fedbe1ad4faabfeca19667fa2068c2a005fd85aa26f974a6eb4fbe47dde7809e2b7d6f9063a462793c758d093313bcffb6057c065c515e412f3ff3324dbb7a1abfcd5d6cace1ff66236192dbb66ce31b61b07c627b4b1678f1e204eb72f4db6fbc4d5b366de5cbddfe2f67102f7bb06e8bc976d7122f8bb02e470f1e32888b2cd09b93c49b9898c18bb734a958628f64a0307d10d43d68417f91a82b785ed3f517bc077229a0e78709e369bb665c63c2d6fd7bd9b5b985772ea493ce3889bf5f58ec372a769ceaca3c5987c54b15ac6f361226ecbf9f74575f2beb127457262cde717cc3fc1bf8b2b9ff7ed6d63731b16d3685f1cb7d95d5a5367d10d43d68417feab416a824d3f5a7baf7d0f3af44637d3c758d095b978845f8c4ccd7fa96233633eeeaf582c14cf8c2bf5e40b3ae9cdde14d48a22effd7288a6d33bb326196cf6ab4ddbdd909261c7c88d33d68417fc16314490a987024f4e4f342cff2cc6472c8e8d915266c9d458a8bf5fed774fddf196c7db39158f6e8ea1dbfc166c2fe1b9eab3873b3ee670d130e2e6f9d260cfd058f4fa4296406ad48eb32213ff47cad6fb213ebe3a92b4cd8fa5624b1d599d518d997eaece3cf26ff371b896bc2ec73f6f2851ddb7604bd26fcf8434ff0efa8b826ccae21b36bcf0bef7ad0271ad69ec71e7c9cee7ef82e0af79a304c586e28d43968417f72b10a27354c381c6ae1e5819ec3e326934b46cfc69bb075f62aee861630d8924ac9ce123af2b8c9f4d2d32ff13fb3bb8dc55ecfecffecee6576d393ffddce5ddd1d2df2b03b9ed9218c9d09f7da697fe37f9b73e76cfe5625f62e637163d5aa2f5749dd1d0d139691b4be5719427f72710a37b5cca0156e1d26e5d37552093d3ba302193d1b6fc2a120f3bf262cf208c131b314ef210ea5bc584c23231a1d7c740d5aa1f415fa0b8552f7694cd75fe43dec5802f4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9ea3c284cdc2efced6c88846470f4d1eb474f088b63a4dd79f6aded0b36aa2669527a36798b059b1d3d61a19d1e86824062d1dd49dabd374fda926013dab266a5679327a86099b153b6dad91118d8e4662d0d241ddb93a4dd79f6a12d0b36aa2669527a367291336ab9b688d6a02338f7d587591caca6383168ee82660b2fe5493879e551335afbc50f51cb2099bd745fb5ad4dcdc4c53a74ea5c58b17536262a27d15a16410084000fa832ca28900f4dc7d3461c201f8cc9f3f9fe6ce9d4bb366cda21b6eb8219abe0fe88b0b08407f2e08129a183201e819261cb25844c29494146a6c6ca4a4a424fe1b0708384900fa739236eab29b00f40c1396d2183b6b9b376f1e37dfe4e4649a39732666c3520491381202d05f24f490d73402d073f0886039da8f91386b137fc66c38b88890421d01e84f1d4b94a49f00f41c3c0630610b23eb599bf83366c3c14584146a08407f6a38a214330840cfa1c501266ce1c40cd7e3f15046460695949450616121d5d4d410bbbbafa9a92934a2480502611280fec204876c4612809e430b0b4cf8174e6fbffd364d9932851e78e0013aebacb3282e2e8ebc5e2f3df5d45374d96597d192254b68d2a449a151452a10902400fd49024372a30940cfa1870726dc052b61c2a1a3444a10504700fa53c71225e927003d771d0398304c58ff37142de84400831644114d04a06798b0b49e211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a06798b0b408211a6964c8a09000f4a710268ad24e007a86094b8b10a29146860c0a09407f0a61a228ed04a067987050112e5dba94a64c99420b162ca0a953a79210cde2c58b69faf4e9f4c20b2fd0e4c9938396830420100e01e82f1c6ac8632a01e839f4c8c479bd5e6fe8c9a33b654a4a0a793c1e4a4d4da5d2d2522a2828a0fafa7a6a6e6ea6c6c6c6e8ee3c7aa79d00f4a73d0468804202d073683061c2164eb7dd761bcd9e3d9b9a9a9a7c7f4d4a4aa23973e6d075d75d171a51a402813009407f61824336230940cfa1850526ecc789cd821b1a1a7c7f4d4e4eeef0ffd0b0221508844700fa0b8f1b729949007a0e1e1798b01f23ebd91b66c1c10584146a09407f6a79a234bd04a0e7e0fc61c2011889b337cc82830b0829d41380fed4334589fa0840cfddb3870907e0c3cede66cd9a4573e7cec5b5607ddfdd98ad19fa8bd9d04765c7a16798b0b4b0d9ddd0e79d771e3df2c823c496a47180809304a03f2769a32ebb0940cf3160c2cd4d2d545fdd4075d50dd458dfc87f37d53753435d1335d635f2df49491eaad8b59b5a9a5aa9a5b9855a9ad9ef56ca2ec8a4b21d15e46d23624f6bf19f362f15f6cba7922d6514171fc79f19e63ff144057df2a8aa7437257812c893e8214f12fb9d40997919e46d6ba3e4b4644a4e4da2e4b4244a494da294f4244acd48a1d4cc144acb4ce17970441701e82fbae219ebbd819e9d55802b96a32b4b775375592d5557b09f3aaa2eafe1ff6e6d6da38a9d55c49e744e494ba2e4f464caed91454c441e6692491e4a4cf650629287925292283e3e8e9b6782279e121212289efdf6c4fb4c96b8d992efff565366611106cdea6d6d613fadfc775b6b2b6f4b734333af9bfdb436b7526b5b2b35b213817a7632d0440d758d14171f4f7d87f4a4a6c666cacc4da7ccbc74cacc69ff9d959fc1ff86c32c02d09f59f1406b2223003d47c64f756ea34cb87c67159f95966eaba48ae22aaadc554dbbcbaa29a7308bcf20d98c32252db97d66999ec267996cd6e9a6d9259b853343aeaf6da0fa9a46fe9b99337989f7bda1b6919b714e8f2c2aec9fcfff9ddf2787f27a66ab8e3dcaf32300fd417fd1f4a5809edda1676d26cc4c76e7c652aa2aada6cdeb7650f98e2a3e0bcc2ac8a0f4cc344acf4ea38c5f7ed89270ac1c6dad6d54bbbb8e6aaaeab821579555ff32f3afa3bcded93460af22caca4ba79e030b60cc118802fa0b0c0ffa8b40541ab342cfeed5b363265cb6bd92b6acdf413b36eca26d3f96506a7a329fe1b2191e33dcacbc0c8a8f8fd72863b3ab6e6b6ba3eaf25aaad95dc757092a4aaaf875f0a2213da9d7a002ea37ac3715f4c935bb131a5b07fd45061ffa8b8c9feadcd07364444dd2b3ad26fcf3b75b68eb0fc5f4d3aacd7cd9b8a02897f27ae6f0ebb689c9899151446e7eed99dd6c56b1b392766d2be7d79e07ee5d44034714d1a0917d639e10f467af04a03f7bf9fa970e3ddbcb5b979e959bf0e6b5dbe9fbcf7ea60ddf6ea55e030ba857ff1e94df27979b300e7b09301366665cb2a5948a3795d21ea3fbd3b0fd0751bfa1bdedadd8a0d2a13f7dc180fed4b3879ed5330db544a7f4acc4849b9b5be89b0fd6d1ea4f7ee04ba26cb6db7b500f2c2f871a6d1bd2b16b7bdb37945075450d156f2ea35113f6a491870ce5778a47db01fd9917d158d29f6afad0b36aa2919767a79e233261f63cedf2ffaca42deb77526e8ff69b86d89dcb38cc2250575d4f9bd76fa79aca3a2a1a5248e38f1e6d5603c36c0df417263887b345abfe5463849e5513b5a73cd57a0edb84d77db981be5cba9a7a0f2ca43df619604f6f51aa72023faeda489bd66ea30927ec4743c70e545ebe5305427f4e91565b4fb4e84f2d1522e859355167ca53a1e7b04cf8eda73fa186da26dae790e1cef414b52825c0ee0cfcf6e37594919746134f1dafb46c270a83fe9ca06c5f1d6ed79f6a32d0b36aa2ce9617a99ea54d78c9ddffa5c1a3fa5361df7c677b8ada9413d8f8dd16aaaeaca563ce3b4c79d9761508fdd945d6f972dda83fd594a067d544f59517ae9ea54cf8c3973ea7b48c34beaf328ee8205055514d3b37eca249671d6c7c87a03fe34324dd4037e94fba73413240cfaa89ea2f2f1c3d876cc2ab97ada72deb76d2de070ed5df53b4402981d59faea78123fad0880387282d576561d09f4a9a6695e506fda926063dab266a4e79b27a0ed9849fbfeb0d1a317e4fcacecf34a7b7688912026cebd0b55ffe44a7cc384a4979761402fdd941d58c32dda03fd5a4a067d544cd294f56cf219bf03fe7bd42874d39d09c9ea2254a09bcffe2a7f4a759272a2d536561d09f4a9ae69565bafe5413839e551335ab3c193d876cc20f5df52c1d72c238cc84cd8ab592d6b0579b2d7bf54bbaf8ae3f2a29cf8e42a03f3ba89a51a61bf4a79a14f4ac9aa839e5c9ea59ca84d9f687782cc99c60ab6ac9aa0fbfa7ad3fee34de84a13f551137ab1c37e84f353166c2d0b36aaa669427ab6729131e3caa1fe5166653af013dcce82d5a1131811d1b4af8eb247ffa76b3f1260cfd451c6ee30a708bfe548363260c3daba6aabfbc70f42c65c2c79c3b9196bdf625edb14f7f18b1fe7847dc829d9b76117b33cbc1c78ea5d71f7bcf781386fe220eb95105b8497faac13113869e5553d55b5eb87a963661d6cd6f3efa9e5a5bdb68df4347505c7c9cde9ea37669026c8797afdfff8ebf4e72d484613cbf5b4c18fa930eb77119dca83fd510850943cfaac93a5f5ea47a0ecb845937b7fd544c6cdfccde830a69e89841cef71c35864560dd573f53c9e632da63f400ea33a8d057869b4c18fa0b2bf4466472abfe54c3b39a30f4ac9aae73e5a9d073d826ccbae9f57ae987951ba9646b19e5f5caa181c38b282d2bd53902a8292402b5bbebf94b1bca7654f0f73b0fd97700c5c5755cc1709b09437f2185de8844d1a03fd520fd4d187a564dd8bef254eb39221316dd64d3f18d6bb6d2c6b5db28bf570ee5f7cea5de037b508227c13e1228b95b02ad2dadc46e1228dd514115c555346078110ddcbb6f97ef7876a309437fe67e09a24d7faa49073261e859356575e5d9a96725266cedeaae6de5b4edc79db463e32e2ae893cb97ab0b7ae7524a7ab23a2228292081fada062adb5149db7f2ee1b35ec6beef905e3c0ec10e379b30f4172cbace7c1ecdfa534db03b13869e55d30eaf3ca7f4acdc84addd2dde5cca67626c469698e4a1823e79dc10720bb3282925293c32c8e523d058df44ecc1f0d26d1554baad9c5a9a5ba9f7a01e9c7161bf022952d162c2d09f54d8234a1c4bfa8b085480cca19a30f4ac9a7cd7e5e9d2b3ad266ced6e75452d956e2fa7f2e22a3e5b4b4cf6f0678e0b7ae7507a761a65e56560f9ba1bbdb1e590dde535545b55cf395694eca696e616bef4cf4e6a0a8af22833273d6cc546a309437f61cba153c658d79f3a92ed258563c2d0b3ba2898a467c74cd81f5f6d551d559454b59bca8e0a6e30a9e9c994d3238b9b32fbc9f8e5774242bc3afa8697c41efd626c6aaaeaa8b692fdaee59b69d4d736f2131536cb656c98f1a667a529eb4db49b30f4179a54a0bfd038459a2a5213869e438b801bf4accd84032164c6c3ccb89acff87e31a2aa3acacccd204f5202a566a4506a7a4afbef8c647e9d393925893fefea96a3b9b1991a1b9aa8a1b691ea6bd84f43fb4f6d03353534f37efb4e4072d2282b278332f333f809899d47ac9930f407fdd9f97d0a56b66a13869eddab67a34cb82be1d65537505d75bdcfacda8dab91da5adba8bab296d8d242726a12ffc92ec8a4d6e656bedc9d9894f8cb6f0f25a526517c5c1c5ff28ef7c4f3df09ec77423c7f5c876d3ac27f8b9ff838f2b679f96358be1ffe7fa2d6d6566a6d69e3f58adf2c4d537d133537b55073630b353735f3df09890954b5ab9a1b2fbbe6c0ea65335a560f3b91683fa1683fb948cb643f7a1ef18209773d6c427fc12c25f2cf4dd75fe43dec588213268cf1d41de3a92b4c38d8178099313338f6c3ccafb1bedd0085113263f42426f0255e669c6d1603cdc849a3cad2ea4e869bd73387ca8b2b3b19734e8f4caaa9a86b377061e49e043e536d66e69fe4e97002909c92488929897cc6ce4e12e20d5d5a377d10d43968417fc10844feb9e9fa8bbc87e69870b0be603c0d4628f8e7327a8e0a130e8e0429821190114db0b2ecf8dc6413b6a3bfb156a6e9fa531d0fe8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dc384cd8a9db6d6c8884647233168e9a0ee5c9da6eb4f3509e8593551b3ca93d1334cd8acd8696b8d8c6874341283960eeaced569bafe5493809e551335ab3c193dbbce84173c742fddfdc01d1d889f79ead934ebdab99492127cb7a92fbefa8cb66edf42271e7b7297516b68a8a779b7cfe69f875aae5912906f8d8c68e44b8f3c87298316f417792c039560bafe54f71a7a564dd4acf264f4ec4a13fe62e56774ff1d0b2937278f2a2acbe9f26ba651dfa27e410df3a70d3fd2a5575e44179e7b314cd84fb332a2d1217793062de84fbd024cd79fea1e43cfaa899a559e8c9e5d6fc20c3d9bdd9e7cf609f4d293ffa671630fa057fef3125d7eeda53c2a2386ed4d0fdcbd88f272f3b8597fb0ec7dfef72b2fbd86a65f3c83ac339bdf4e388c9b7b6a4a2a9f0957d754f3b4afbef18aaf9c3d060de17f0b948f9d1408a3ff6edd1a9e4eb4c9da4ef66f5117cb63c221231a1ded3575d082fed4a8c174fda9e9e5afa540cfede332c653a2a83061eb0c77d4dea3e9be07efa67937dcc2156f9d256fdbb1adc34c9899f7cbafbdc867d0e2b3a3271d43179c731137e195abbeea60e062b6bdfabb6fbbcdc7ea6565fefdf14524664de515e5beba8f3ae2f7c62d779b3e089a3c68417f915b94e9fa8bbc871d4b809e7f5dbd8cf5f134ea4c585cebb5ce86c535637f13165f0bebac96cd9085090b3365d79a59790f3ff65097676fd67c4f2f7992fcaf53fbe767ff7ff9d5177dcbeaaabfe4b2e5993e08ba65d082fe6495d79ede74fd85d7abae7341cf184f853aa2ce84fbf6e9c797a699095e7df9dfe8cefb6fe37db5ce76c5356161d4cc40cffee3543e6b1e37e680a026fced9a557cb9db3f1f5bde164be302b03063362bf6bfa14c2c958b2519d55f7499f24c1f04dd3268417f32aafb35ade9fa0baf57ee3761e839bcc8cbe8392a4cd87a4df89315cb7c4bc0e2da6e2013f65f12ae6fa80fc984ef9e7f3f3df5fc629fb15bf331131687b8618c5d83befff607f89ffd67d2e185d79e5c32a2b1a705dd976ab209437f912bc274fd45dec38e2540cfed33618ca751704dd8ff71a237df7ec367761515e5be5971a099305b8616d76c3ff8f83ddfec562c47b365657663d51e838774b8b66cbdd66bcd679d4d5b67c5ac8cdcdc3c5c138e60243375d082fe2208aa252b4c580d47d952ac6320bb49147a96251838bd8c9e5d3913eeee3961eb0c942df71614f4a038a20e773d8b6bb6679d3695aebcfe726277328bb4fd8afad135975f4777dc7f6b87bba3ad77335bef80b6e6b31abdb83b5adc85cd42655daac6ddd1726237c984a13fb9d885925a66d00aa53cd3d340cfed4fa2f83f51128be3a9eb4cd8f42f975bdb67fa2068caa0e5d6f89ade6ed3f5a79a1ff4ac9aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac4490987d00000a2d494441549aa859e5c9e819266c56ecb4b54646343a1a89414b0775e7ea345d7faa4940cfaa899a559e8c9e61c266c54e5b6b6444a3a39118b4745077ae4ed3f5a79a04f4ac9aa859e5c9e8d995262cee809e7ed10cbe57b438d8e61b9bb76ce67b428b5bedd99dd0ecf0dfc18adda9cc9e293e78fc04fe1893f52e66965ed4c1fe2deee2531166d1ae938e9bd2a1ed2aca8ea40c19d144524fb8794d1ab4a0bf70a3d8753ed3f5a7bac7d0b39a3df3a3613c8d5a136686cc0eb68da008d401fb8df7bd3d893d1fc70c989beca27b29273b87ef372d5ea8c04c3ad0df23fd324683682265104e7eb70d5ad09f5c9461c272bc54a60ee5a4127a96232ea3e7a835617f644c449f7db9826f5fc98e7b16de45a79df447621b7ab09738646464d2e48947fa66a7cca40b0a0a68f9679fd0f557cda4ff5b741f5967afc2c4478e18c55fc62066dc6c772cfffd83d9b36f6c230fb651b978061933613951bbcd84a13fb9f8ca0c5a72259b991a7ac6782a94193326cc4c931d6ca99a6db6f1fccbcfd215d3aee2c6c84c989969696929ff9c9d19b23da799512e7ef6713e43663b6389a56ef139db9bbaabbfb3b726cdb97526cdb9ee262aea5de47b6b124c38bc41d1ed8316f4d77ddc61c2e17d2f54e40a6526ec5f0ff4ac4ecfae3661f16e602b0eff6bbbec33b6b4bc60d1bdbe6bbbd6a515f13ac3334ffb132dfac7426eb83ffdfc23bf5e7ccc51c7f95e8bc84cd56adcec7366d8d6ebd0d6765867deec2d4ca21e987078c38689260cfd8517cb40b960c2ea58ca9664dd65d03f2fc653599aede965f4ec6a13eeeec62c818e99dfcc9bafeff40a42763d98ddd425cc91cd6a1ffac742be44fdfa9baf51ff7efdc9fa6e62f63208b184cd3e17f9593dd65721b27da259b9fee60c130e4fcc229789260cfd4516536b6e99414b5dadfa4a829e319ec6c47274a077f65a9792d94d58c21cd9b562f6f287d2b2325ab57a25fdf5922b39a3fb1ebcdb77c3162b8f7dfef3c61ff96b12c54d5c02262b7bd62d37f0bcec7587e21a3466c2910f766e1cb4a0bfd0e30e130e9d95ea94a12e4743cfa19397d173d4ce84fd97a0ad3363b1942c96aad9356166c2ecfab07817b1781983d584c58b1b8e9e740c5f8a16b360366b663763590d9e2d5f5f7ae54574d38df3f9f56676f3163bb01c1dba90ad29dd66c2d09f5c9c65062db992cd4c0d3de7f17b73d81819ebe369d49ab07589587c0dd9b3c2fbee33969212137d77305b67c2e2ddc0271d3f857fce446235e1408f17f95f4f11cbd1c2e099a9b3835d5bd959b203261ce698e8b6410bfa930b344c588e97cad4a1cc84a16739e2327a76a509cbe15097dadf94654ab69a3d5b9e36ed90118d8eb69b64c23afacfea84fe7491575f2ff40c3d0b55c18443fc7e8977015b67ba2166e5c960c232b43aa78df5410bfa8b4c3fa6e5869e3fe397fe309e12c1844dfb766a6a0f66c29ac0a35a4ec074fda90e53ac9bb06a9ea69527a3e7904df8e5fbff47e326ed635a5fd11e45043e5ffa0d9d7cf96445a5a92f06fa53cfd4a4124dd79f6a56d0b36aa2669527a3e7904df8f9bbdea011e3f7a4ecfc4cb37a8bd6444ca0b27437adfde2273af58aa3232ecbae02a03fbbc8ea2fd70dfa534d097a564dd49cf264f51cb209af5ef6036d5abb9d461d34cc9cdea2254a087cbb6c2d0d1ad997461c34444979761402fdd941d58c32dda03fd5a4a067d544cd294f56cf219b30ebe2c7fffa92925292a8d7801ee6f4182d8988c08e0d25d4dcd242879c3036a2729cc80cfd3941d9d93adca43fd564a067d544f597178e9ea54c9875f1857bdfa401c38b60c4fae31d710b766eda455bd66fa7932f3f32e2b29c2a00fa738ab4fdf5b8517faaa940cfaa89ea2b2f5c3d4b9b30ebe23bcf2ca7daddf534fa90bd282e3e4e5faf51735804dadada68d5476b292b378d269e7e605865e8cc04fde9a41f79dd6ed75fe4043a96003dab26ea6c7991ea392c13665dfc61e526fafcad6fa867ff1eb4e7be039ded356a0b9bc0fa951ba8745b398d9b3c8a86ecdb3fec72746784fe744720bcfaa3457fe1f5beeb5cd0b36aa2ce94a742cf619b30eba2d7eba5cfdffc9636acde4ad93db268e0f0224acb326f372867c2616e2d6cd562d3da6d545152454346f7a7719347525c9cfb5730a03f7335676d59b4ea4f357de85935517bca53ade7884c5874b1ada58dbefe702dad59f603e5f6caa6bc9e39d47b600f4af024d84301a50625d0dad24aec2681b29d9554b96b378d9cb0278d3e7438c527c407cdebb604d09f79118b25fda9a60f3dab261a797976ea5989095bbbb875fd4efafeb39fe8e76fb75261df3cea39a00715f4cea594f4e4c849a0846e09d4d73650d98e4a623708b025e74123fbd18803f7a0a2213d63861cf4a72fd4d09f7af6d0b37aa6a196e8949e959bb0b5831bd76ca3ad3feca09f566d214fa2870a8a72f92c39b7308b3fea842332028df54dc41e0c2fdf5949bbb655506b730b0dd97700f5ddb3270d18511459e151901bfab33788d09fbd7cfd4b879eede5ad4bcfb69ab015597971156d5db793b6ff5c42db7f2aa1c4640fe5f6cca6bcc26c4acf4ea3acbc0c2c5f77a331b61cb2bbbc866aabeaa9bcb8925fdf6d6e6ae1b3dcde837a50bfa1bd384f1c8109407f912903fa8b8c9feadcd07364444dd2b36326ec8fac725735156fda451525bb69ebfa62be8c9a9699c26ff04acf4ce5c69c919dc67f2744e175ccae24d4dada46b5557554535547b5957554bbbb8eaacaaaa9bea681f27ae570b3cd29cca25e030b28bb005b8886fb5584fe029383fec25594de7cd0b37bf5accd840321ab2cd94da53b2aa96c5b059517efe63714ed2eaba1acfc0cf22426506a7a0aa5a425536a460aa56624f3ebccc9294994989ca8f71b20517b73633335363451436d23d5d7b09f06aaaf6ba486da06629f5557d451767e06651766515ecf2ccaef934b057d7228a74796442d481a0e01e80ffa0b4737a6e6819edda167a34cb82b31b365d8dd65b55453514bd595b5545d5e4bbbcb6b892d295414efe6d74293d393b941b359624b630b376d761d9a2d7b27267928293589e2e3e2f89277bc279eff4e60bf13e2f9e33a6cd311fe5bfcc4c791b7cdcb1fc3f2fdf0ff13b5b6b6526b4b1baf5ffc66699aea9bf8127173630bb534b39f564a4c4ae0b3fd86fa266aac6da484440fe5f7cea6b8f878caca4ba74cf6939b4e1939e9fc6483fd0d875904a03fb3e281d64446007a8e8c9feadcae30e1609d6666c8669475d50dd458d74875d58dc42eb2b39f869af67f7b923c7c66ddd2d4cacd5198249b75b2a5706eb4cc647f31de1e7df369d7d6b25f0dfa1793ceef9dcb978785c97b92dacd3ea74726b534b5f01381e4f4244a4e4dfafff6ed200540180602a0a72afdff83c5de45161641999b5092ca34b05470dbe758b7f6638ef5a9fd7af6dbd6d3697e6fddfc7defccbcf1bd80797e773a7e11c2ef92d98d000102040874048470c751170204081020100b08e1984c010102040810e80808e18ea32e0408102040201610c23199020204081020d01110c21d475d0810204080402c20846332050408102040a02320843b8eba102040800081584008c7640a081020408040474008771c75214080000102b1c009f0d85e2e8a834b040000000049454e44ae426082); +INSERT IGNORE INTO ORDINE (`id_ordine`, `data_ordine`, `urgente`, `ragione_sociale`) VALUES (1, '2020-12-13', TRUE, 'dottore'); +INSERT IGNORE INTO RIGA_ORDINE (`id_prodotto`,`id_ordine`) VALUES (1, 1); +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/globalExceptionHandler.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/globalExceptionHandler.mtl new file mode 100644 index 0000000..e363a8a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/globalExceptionHandler.mtl @@ -0,0 +1,18 @@ +[module globalExceptionHandler('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] + +[template public genGlobalExceptionHandler(oclAny : OclAny) post(writeAndFormat(getGlobalExceptionFileName()))] +package [getAdvicesPackage()/]; + +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import [getExceptionLibsPackageAsMs()/].BaseExceptionHandler; + +@RestControllerAdvice +public class GlobalExceptionHandler extends BaseExceptionHandler { + +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/liquibaseConfigurationBean.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/liquibaseConfigurationBean.mtl new file mode 100644 index 0000000..b3ea73e --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/liquibaseConfigurationBean.mtl @@ -0,0 +1,58 @@ +[module liquibaseConfigurationBean('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] + +[template public genLiquibaseConfigurationBean(oclAny : OclAny) post(writeAndFormat(getLiquibaseConfigurationBeanFileName()))] +package [getConfigPackage()/]; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import liquibase.integration.spring.SpringLiquibase; + +@Configuration +public class LiquibaseConfigurationBean { + + @Autowired + private DataSource dataSource; + + @Bean + public LiquibaseProperties liquibaseProperties() { + return new LiquibaseProperties(); + } + + @Bean + public CustomSpringLiquibase liquibase() { + LiquibaseProperties liquibaseProperties = liquibaseProperties(); + SpringLiquibase liquibase = new SpringLiquibase(); + liquibase.setChangeLog("classpath:db/liquibase/update.xml"); + liquibase.setContexts(liquibaseProperties.getContexts()); + liquibase.setDataSource(getDataSource(liquibaseProperties)); + liquibase.setDefaultSchema(liquibaseProperties.getDefaultSchema()); + liquibase.setDropFirst(liquibaseProperties.isDropFirst()); + liquibase.setShouldRun(true); + liquibase.setLabels(liquibaseProperties.getLabels()); + liquibase.setChangeLogParameters(liquibaseProperties.getParameters()); + return new CustomSpringLiquibase(liquibase); + } + + private DataSource getDataSource(LiquibaseProperties liquibaseProperties) { + if (liquibaseProperties.getUrl() == null) { + return this.dataSource; + } + return DataSourceBuilder.create().url(liquibaseProperties.getUrl()) + .username(liquibaseProperties.getUser()) + .password(liquibaseProperties.getPassword()).build(); + } +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/mapperConfig.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/mapperConfig.mtl new file mode 100644 index 0000000..007c39c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/mapperConfig.mtl @@ -0,0 +1,36 @@ +[module mapperConfig('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] + +[template public genMapperConfig(aModel : Model) post(writeAndFormat(getMapperConfigFileName()))] +package [getConfigPackage()/]; + +import org.modelmapper.ModelMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.modelmapper.convention.MatchingStrategies; + +import [getConverterPackageAsMs()/].BeanConverter; +[genDtoImportsForMapperConfig(aModel)/] + + +@Configuration +public class MapperConfig { + @Bean + public ModelMapper modelMapper() { + ModelMapper result = new ModelMapper(); + result.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); + [for(aClass : Class | aModel.getEntities())] + result.addConverter(new BeanConverter<[getDtoClassName(aClass)/],[getEntityClassName(aClass)/]>()); + result.addConverter(new BeanConverter<[getEntityClassName(aClass)/],[getDtoClassName(aClass)/]>()); + [/for] + return result; + } +} + +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msConfig.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msConfig.mtl new file mode 100644 index 0000000..c26eb49 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msConfig.mtl @@ -0,0 +1,23 @@ +[module msConfig('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] + +[template public genMsConfig(aModel : Model) post(writeAndFormat(getMsConfigFileName()))] +package [getConfigPackage()/]; + +[genMsConfigImports()/] + +@EnableConfigurationProperties([getMainClassNameAsMs()/]Properties.class) +@Configuration +public class [getMainClassNameAsMs()/]Config { + @Bean + public MappedInterceptor metricInterceptor(MeterRegistry registry) { + return new MappedInterceptor(new String['['/]]{"/**"}, + new [getMainClassNameAsMs()/]Interceptor(registry)); + } +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msInterceptor.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msInterceptor.mtl new file mode 100644 index 0000000..b93681f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msInterceptor.mtl @@ -0,0 +1,38 @@ +[module msInterceptor('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] + +[template public genMsInterceptor(aModel : Model) post(writeAndFormat(getMsInterceptorFileName()))] +package [getActuatorPackage()/]; + +[genMsInterceptorImports()/] + +public class [getMainClassNameAsMs()/]Interceptor implements HandlerInterceptor { + + private static Logger log = LoggerFactory.getLogger([getMainClassNameAsMs()/]Interceptor.class); + + private MeterRegistry registry; + private String URI, pathKey, METHOD; + + public [getMainClassNameAsMs()/]Interceptor(MeterRegistry registry) { + this.registry = registry; + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + URI = request.getRequestURI(); + METHOD = request.getMethod(); + if (!URI.contains("prometheus")){ + log.info(" >> PATH: {}",URI); + log.info(" >> METHOD: {}", METHOD); + + pathKey = "api_".concat(METHOD.toLowerCase()).concat(URI.replaceAll("/","_").toLowerCase()); + this.registry.counter(pathKey).increment(); + } + } +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msProperties.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msProperties.mtl new file mode 100644 index 0000000..cb83ba3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/msProperties.mtl @@ -0,0 +1,20 @@ +[module msProperties('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] + + +[template public genMsProperties(oclAny : OclAny) post(writeAndFormat(getMsPropertiesFileName()))] +package [getActuatorPackage()/]; + +[genMsPropertiesImports()/] + +@Data +@ConfigurationProperties(prefix = "[getMainClassNameAsMs().toString().toLowerCase()/]") +public class [getMainClassNameAsMs()/]Properties { + private String path; +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/securityConfig.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/securityConfig.mtl new file mode 100644 index 0000000..8cbc481 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/ms-web/securityConfig.mtl @@ -0,0 +1,21 @@ +[module securityConfig('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] + +[template public genSecurityConfig(aModel : Model) post(writeAndFormat(getSecurityConfigFileName()))] +package [getConfigPackage()/]; + +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +@EnableWebSecurity +public class SecurityConfig extends WebSecurityConfigurerAdapter { + @Override + protected void configure(HttpSecurity http) throws Exception { + http.csrf().disable().headers().disable(); + } +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/packageUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/packageUtils.mtl new file mode 100644 index 0000000..23f585f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/packageUtils.mtl @@ -0,0 +1,177 @@ +[comment encoding = UTF-8 /] +[module packageUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties /] + +[template public getGenericPackage(oclAny : OclAny)] +[getBasePackageName()/] +[/template] + +[template public getEntityPackage(oclAny : OclAny)] +[getGenericPackage().concat('.entity')/] +[/template] + +[template public getEntityDtoPackage(oclAny:OclAny)] +[getGenericPackage().concat('.dto')/] +[/template] + +[template public getResponseLibsPackage(oclAny : OclAny)] +[getGenericPackage().concat('.libs.response')/] +[/template] + +[template public getResponseLibsPackageAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.response')/] +[/template] + +[template public getEntityLibsPackage(oclAny:OclAny)] +[getGenericPackage().concat('.libs.entity')/] +[/template] + +[template public getInnerGatewayPackage(oclAny:OclAny)] +[getGenericPackage().concat('.gateway')/] +[/template] + +[template public getAdvicesPackage(oclAny : OclAny)] +[getGenericPackage().concat('.advices')/] +[/template] + +[template public getConfigPackage(oclAny : OclAny)] +[getGenericPackage().concat('.config')/] +[/template] + +[template public getGatewayConfigPackage(oclAny:OclAny)] +[getInnerGatewayPackage().concat('.config')/] +[/template] + +[template public getGatewayFilterPackage(oclAny:OclAny)] +[getInnerGatewayPackage().concat('.filter')/] +[/template] + +[template public getDtoLibsPackage(oclAny:OclAny)] +[getBasePackageName().concat('.libs.dto')/] +[/template] + +[template public getBaseDtoLibsPackage(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId().concat('.libs.dto'))/] +[/template] + +[template public getFilterPackage(oclAny : OclAny )] +[getBasePackageName().concat('.libs.filter')/] +[/template] + + +[template public getConverterPackage(oclAny : OclAny)] +[getBasePackageName().concat('.libs.converter')/] +[/template] + +[template public getConverterPackageAsMs(oclAny : OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId().concat('.libs.converter'))/] +[/template] + +[template public getEntityPackage_(oclAny : OclAny)] +[getEntityPackage().concat('_')/] +[/template] + +[template public getCriteriaPackage(oclAny : OclAny)] +[getGenericPackage().concat('.criteria')/] +[/template] + +[template public getRepositoryPackage(oclAny : OclAny)] +[getGenericPackage().concat('.repository')/] +[/template] + +[template public getRepositoryLibsPackage(oclAny : OclAny)] +[getGenericPackage().concat('.libs.repository')/] +[/template] + +[template public getRepositoryLibsPackageAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.repository')/] +[/template] + +[template public getControllerLibsPackageAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.controller')/] +[/template] + +[template public getExceptionLibsPackageAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.exception')/] +[/template] + +[template public getLibsEntityPackageAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.entity')/] +[/template] + +[template public getServiceLibsPackageAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.service')/] +[/template] + +[template public getServicePackage(oclAny : OclAny)] +[getGenericPackage().concat('.service')/] +[/template] + +[template public getServiceLibsPackage(oclAny : OclAny)] +[getGenericPackage().concat('.libs.service')/] +[/template] + +[template public getControllerPackage(oclAny : OclAny)] +[getGenericPackage().concat('.controller')/] +[/template] + +[template public getAssemblerPackage(oclAny : OclAny)] +[getGenericPackage().concat('.assembler')/] +[/template] + +[template public getControllerLibsPackage(oclAny : OclAny)] +[getGenericPackage().concat('.libs.controller')/] +[/template] + +[template public getLibsUtilitiesPackage(oclAny:OclAny)] +[getGenericPackage().concat('.libs.utilities')/] +[/template] + +[template public getLibsRequestPackage(oclAny: OclAny)] +[getGenericPackage().concat('.libs.request')/] +[/template] + +[template public getLibsRequestPackageAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.request')/] +[/template] + +[template public getLibsExceptionPackage(oclAny:OclAny)] +[getGenericPackage().concat('.libs.exception')/] +[/template] + +[template public getLibsUtilitiesPackageAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.utilities')/] +[/template] + +[template public getUtilitiesPackage(oclAny : OclAny)] +[getGenericPackage().concat('.utilities')/] +[/template] + +[template public getSecurityPackage(oclAny : OclAny)] +[getGenericPackage().concat('.security')/] +[/template] + +[template public getResourcePackage(oclAny : OclAny)] +[getGenericPackage().concat('.resource')/] +[/template] + +[template public getBaseAssemblerPackage(oclAny:OclAny)] +[getGenericPackage().concat('.libs.assembler')/] +[/template] + +[template public getExceptionLibsPackage(oclAny:OclAny)] +[getGenericPackage().concat('.libs.exception')/] +[/template] + +[template public getBaseAssemblerPckAsMs(oclAny:OclAny)] +[getGroupName().concat('.').concat(getRootArtifactId()).concat('.libs.assembler')/] +[/template] + +[template public getResourceServerSecurityPackage(oclAny:OclAny)] +[getGenericPackage().concat('.libs.security')/] +[/template] + +[template public getActuatorPackage(oclAny : OclAny)] +[getGenericPackage().concat('.actuator')/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/pomUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/pomUtils.mtl new file mode 100644 index 0000000..1e35ede --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/pomUtils.mtl @@ -0,0 +1,173 @@ +[comment encoding = UTF-8 /] +[module pomUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::properties /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] + +[template public genParentTag(oclAny : OclAny)] + + [genParentBaseInfo()/] + ../../pom.xml + +[/template] + +[template public genParentBaseInfo(oclAny : OclAny)] +[getGroupName()/] +[getArtifact()/] +[getVersion()/] +[/template] + +[template public genParentCompleteInfo(oclAny : OclAny)] +[genParentBaseInfo()/] +[getProjectName()/] +[getProjectDescription()/] +[/template] + +[template public genImplDependency(oclAny : OclAny)] + + [getGroupName()/] + [getImplModuleName()/] + ${project.parent.version} + +[/template] + +[template public genCoreDependency(oclAny : OclAny)] + + [getGroupName()/] + [getCoreModuleName()/] + ${project.parent.version} + +[/template] + +[template public genVoila2RuntimeImplDependency(oclAny : OclAny)] + + it.mice + voila2runtime-impl + ${voila2.runtime.version} + +[/template] + +[template public genVoila2RuntimeCoreDependency(oclAny : OclAny)] + + it.mice + voila2runtime-core + ${voila2.runtime.version} + +[/template] + +[template public getUrl(oclAny : OclAny)] +http://www.micegroup.it +[/template] + +[template public getWebModuleNaturalLangName(oclAny : OclAny)] +[getProjectName().concat('-web module')/] +[/template] + +[template public getCoreModuleNaturalLangName(oclAny : OclAny)] +[getProjectName().concat('-core module')/] +[/template] + +[template public getImplModuleNaturalLangName(oclAny : OclAny)] +[getProjectName().concat('-impl module')/] +[/template] + +[template public getAngularModuleNaturalLangName(oclAny : OclAny)] +[getProjectName().concat('-angular module')/] +[/template] + +[template public genVoila2RuntimeAttachmentWebDependency(oclAny : OclAny)] + + it.mice + voila2runtime-attachment-web + ${voila2.runtime.version} + +[/template] + +[template public genVoila2RuntimeMailCoreDependency(oclAny : OclAny)] + + it.mice + voila2runtime-mail-core + ${voila2.runtime.version} + +[/template] + +[template public genVoila2RuntimeMailImplDependency(oclAny : OclAny)] + + it.mice + voila2runtime-mail-impl + ${voila2.runtime.version} + +[/template] + +[template public genVoila2RuntimeBusinessIntelligenceCoreDependency(oclAny : OclAny)] + + it.mice + voila2runtime-bi-core + ${voila2.runtime.version} + +[/template] + +[template public genCoreLibsDependency(oclAny:OclAny)] + + [getGroupName()/] + [getRootArtifactId()/]-libs-core + [getVersion()/] + +[/template] + +[template public genVoila2RuntimeBusinessIntelligenceImplDependency(oclAny : OclAny)] + + it.mice + voila2runtime-bi-impl + ${voila2.runtime.version} + +[/template] + +[template public genImplLibsDependency(oclAny:OclAny)] + + [getGroupName()/] + [getRootArtifactId()/]-libs-impl + [getVersion()/] + +[/template] + +[template public genTomcatWebDependency(oclAny : OclAny)] + + org.springframework.boot + spring-boot-starter-tomcat + provided + 2.4.3 + +[/template] + +[template public genLombokDependency(oclAny:OclAny)] + + org.projectlombok + lombok + +[/template] + +[template public genHateosDependency(isMs : Boolean)] + + org.springframework.hateoas + spring-hateoas + 1.1.0.RELEASE + +[/template] + +[template public genLibsWebDependency(oclAny:OclAny)] + + [getGroupName()/] + [getRootArtifactId()/]-libs-web + [getVersion()/] + +[/template] + +[template public genJasperReportsFontWebDependency(oclAny : OclAny)] + + fonts + noto-fonts + 1.0 + +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/repositoryUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/repositoryUtils.mtl new file mode 100644 index 0000000..7de0e44 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/repositoryUtils.mtl @@ -0,0 +1,15 @@ +[comment encoding = UTF-8 /] + +[comment] + +Repository Utility's Templates +This library contains all the methods needed for repositories + +[/comment] +[module repositoryUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + + + +[template public genRepository(aClass : Class)] + +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/runtimeUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/runtimeUtils.mtl new file mode 100644 index 0000000..869d39a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/runtimeUtils.mtl @@ -0,0 +1,107 @@ +[comment encoding = UTF-8 /] +[module runtimeUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[template public getRuntimePackage(oclAny : OclAny)] +['it.micegroup.voila2runtime'/] +[/template] + +[template public getRuntimeRepositoryPackage(oclAny : OclAny)] +[getRuntimePackage().concat('.repository')/] +[/template] + +[template public getRuntimeControllerPackage(oclAny : OclAny)] +[getRuntimePackage().concat('.controller')/] +[/template] + +[template public getRuntimeWebControllerPackage(oclAny: OclAny)] +[getRuntimePackage().concat('.controller')/] +[/template] + +[template public getRuntimeWebGenericControllerFullyQualified(oclAny : OclAny)] +[getRuntimeWebControllerPackage().concat('.GenericController')/] +[/template] + +[template public getRuntimeObjectPackage(oclAny : OclAny)] +[getRuntimePackage().concat('.object')/] +[/template] + +[template public getRuntimeWebDtoPackage(oclAny : OclAny)] +[getRuntimePackage().concat('.dto')/] +[/template] + +[template public getRuntimeGenericDtoFullyQualified(oclAny : OclAny)] +[getRuntimeWebDtoPackage().concat('.GenericDto')/] +[/template] + +[template public getRuntimeGenericObjectFullyQualified(oclAny : OclAny)] +[getRuntimeObjectPackage().concat('.GenericObject')/] +[/template] + +[template public getRuntimeGenericControllerFullyQualified(oclAny : OclAny)] +[getRuntimeControllerPackage().concat('.GenericController')/] +[/template] + + +[template public getRuntimeUtilitiesPackage(oclAny : OclAny)] +[getRuntimePackage().concat('.utilities')/] +[/template] + +[template public getRuntimeUtilsPackage(oclAny : OclAny)] +[getRuntimePackage().concat('.utils')/] +[/template] + +[template public getRuntimeFilterPackage(oclAny : OclAny)] +[getRuntimePackage().concat('.filter')/] +[/template] + +[template public getRuntimeStringFilterFullyQualified(oclAny : OclAny)] +[getRuntimeFilterPackage().concat('.StringFilter')/] +[/template] + +[template public getRuntimeStorageServiceFullyQualified(oclAny : OclAny)] +[getRuntimePackage().concat('.attachment.service.StorageService')/] +[/template] + +[template public getRuntimeGenericEntityFullyQualified(oclAny : OclAny)] +[getRuntimePackage().concat('.entity.GenericEntity')/] +[/template] + +[template public getRuntimeMailFullyQualified(oclAny : OclAny)] +[getRuntimePackage().concat('.mail')/] +[/template] + +[template public getRuntimeMailEntityPackage(oclAny : OclAny)] +[getRuntimeMailFullyQualified().concat('.entity')/] +[/template] + +[template public getRuntimeMailManagerPackage(oclAny : OclAny)] +[getRuntimeMailFullyQualified().concat('.manager')/] +[/template] + +[template public getRuntimeMailMailManagerFullyQualified(oclAny : OclAny)] +[getRuntimeMailManagerPackage().concat('.MailManager')/] +[/template] + +[template public getRuntimeMailTemplateFullyQualified(oclAny : OclAny)] +[getRuntimeMailEntityPackage().concat('.MailTemplate')/] +[/template] + +[template public getRuntimeMailStyleFullyQualified(oclAny : OclAny)] +[getRuntimeMailEntityPackage().concat('.MailStyle')/] +[/template] + +[template public getRuntimeMailConfigFullyQualified(oclAny : OclAny)] +[getRuntimeMailEntityPackage().concat('.MailConfig')/] +[/template] + +[template public getRuntimeMailMailManagerImplFullyQualified(oclAny : OclAny)] +[getRuntimeMailManagerPackage().concat('.MailManagerImpl')/] +[/template] + +[template public getRuntimeResponsePackage(oclAny : OclAny)] +[getRuntimePackage().concat('.response')/] +[/template] + +[template public getRuntimeExceptionPackage(oclAny : OclAny)] +[getRuntimePackage().concat('.exception')/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/securityUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/securityUtils.mtl new file mode 100644 index 0000000..62c7005 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/securityUtils.mtl @@ -0,0 +1,15 @@ +[comment encoding = UTF-8 /] + +[comment] + +Utilities templates for security + +[/comment] + +[module securityUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] + +[template public genPreAutorize(aClass : Class, className: String, privilegeName: String, aModel : Model)] +[if(isSecurityEnabled(aModel))]@PreAuthorize("hasRole(@permissionHolder.[className/]_[privilegeName/].toString())")[/if] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/serviceImplUtils.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/serviceImplUtils.mtl new file mode 100644 index 0000000..24c1096 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/springboot/serviceImplUtils.mtl @@ -0,0 +1,574 @@ +[comment encoding = UTF-8 /] +[module serviceImplUtils('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::runtimeUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils /] + +[import it::micegroup::voila2::cartridge::library::common::idUtils /] +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::specificationFilterUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] + +[template public genFindAll(aClass : Class)] +/* + * (non-Javadoc) + * + * @see [getServicePackage()/].GenericEntityService#findAll(org. + * springframework.data.domain.Pageable) + */ +@Override +@Transactional(readOnly = true) +public Page<[getEntityClassName(aClass)/]> findAll(Pageable pageable) { + return [getObjectRepositoryName(aClass)/].findAll(pageable); +} +[/template] + +[template public genFindAllListed(aClass : Class)] +/* (non-Javadoc) + * @see [getServicePackage()/].GenericEntityService#findAll() + */ +@Override +@Transactional(readOnly = true) +public List<[getEntityClassName(aClass)/]> findAll() { + return [getObjectRepositoryName(aClass)/].findAll(); +} +[/template] + +[template public genFindByCriteriaPaged(aClass : Class)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#findByCriteria(java. + * lang.Object, org.springframework.data.domain.Pageable) + */ +@Override +@Transactional(readOnly = true) +public Page<[getEntityClassName(aClass)/]> findByCriteria([getCriteriaClassName(aClass)/] criteria, Pageable pageable) { + final Specification<[getEntityClassName(aClass)/]> specification = createSpecification(criteria); + return [getObjectRepositoryName(aClass)/].findAll(specification, pageable); +} +[/template] + +[template public genFindByCriteria(aClass : Class)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#findByCriteria(java. + * lang.Object) + */ +@Override +@Transactional(readOnly = true) +public List<[getEntityClassName(aClass)/]> findByCriteria([getCriteriaClassName(aClass)/] criteria) { + final Specification<[getEntityClassName(aClass)/]> specification = createSpecification(criteria); + return [getObjectRepositoryName(aClass)/].findAll(specification); +} +[/template] + +[template public genFindById(aClass : Class)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#findById(java.lang. + * Object) + */ +@Override +@Transactional(readOnly = true) +public Optional<[getEntityClassName(aClass)/]> findById([getClassIdType(aClass)/] id) { + return [getRepositoryClassName(aClass).toLowerFirst()/].findBy[aClass.getClassIdName().toUpperFirst()/](id); +} +[/template] + +[template public genExists(aClass : Class, aModel : Model)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#exists(java.lang. + * Object) + */ +@Override +[if(aModel.isCachingEnabled())] +[if(aClass.isInPrivilegePerRoleRole())] +@Cacheable(value = "PrivilegePerRole", key = "#id.toString()") +[/if] +[/if] +public boolean exists([getClassIdType(aClass)/] id) { + return [getObjectRepositoryName(aClass)/].existsById(id); +} +[/template] + +[template public genInsert(aClass : Class, aModel : Model)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#insert(java. + * lang.Object) + */ +@Override +public [getEntityClassName(aClass)/] insert(@Valid [getEntityClassName(aClass)/] entity) { +[if(isInSecurityUserRole(aClass) or aClass.generalizeSecurityUserRole())] + entity.setPassword(passwordEncoder.encode(entity.getPassword())); + Role role = roleService.findByObjectKey("User").get();// FIXME .get() + RolePerSecurityUser rolePerSecurityUser = new RolePerSecurityUser(); + rolePerSecurityUser.setTheSecurityUser(entity); + rolePerSecurityUser.setTheRole(role); + + entity.addRolePerSecurityUser(rolePerSecurityUser); +[/if] + return [getObjectRepositoryName(aClass)/].save(entity); +} +[/template] + +[template public genUpdate(aClass : Class, aModel : Model)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#update(java. + * lang.Object) + */ +@Override +public [getEntityClassName(aClass)/] update(@Valid [getEntityClassName(aClass)/] entity) { + [if(isInSecurityUserRole(aClass) or aClass.generalizeSecurityUserRole())] + if(entity.getPassword() != null){ + entity.setPassword(passwordEncoder.encode(entity.getPassword())); + } + [/if] + return [getObjectRepositoryName(aClass)/].save(entity); +} +[/template] + +[template public genDeleteById(aClass : Class, aModel : Model)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#deleteById(java.lang. + * Object) + */ +@Override +public void deleteById([getClassIdType(aClass)/] id) { + [getObjectRepositoryName(aClass)/].deleteById(id); +} +[/template] + +[template public genMassDelete(aClass : Class, aModel : Model)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#massDelete(java.lang. + * Object) + */ +@Override +public void massDelete(Collection<[getEntityClassName(aClass)/]> entities) { + [getObjectRepositoryName(aClass)/].deleteAll(entities); +} +[/template] + +[template public genDeleteByIdIn(aClass : Class, aModel : Model)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#deleteByIdIn(java.lang. + * Object) + */ +@Override +public void deleteByIdIn(Collection<[getClassIdType(aClass)/]> ids) { + [getObjectRepositoryName(aClass)/].deleteByIdIn(ids); +} +[/template] + +[template public genMassInsert(aClass : Class, aModel : Model)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#massInsert(java.lang. + * Object) + */ +@Override +public List<[getEntityClassName(aClass)/]> massInsert(Collection<[getEntityClassName(aClass)/]> entities) { + return [getObjectRepositoryName(aClass)/].saveAll(entities); +} +[/template] + +[template public genMassUpdate(aClass : Class, aModel : Model)] +/* + * (non-Javadoc) + * + * @see + * [getServicePackage()/].GenericEntityService#massUpdate(java.lang. + * Object) + */ +@Override +public List<[getEntityClassName(aClass)/]> massUpdate(Collection<[getEntityClassName(aClass)/]> entities) { + return [getObjectRepositoryName(aClass)/].saveAll(entities); +} +[/template] + +[template public genFindByObjectKey(aClass : Class,isMs : Boolean)] +/* + * (non-Javadoc) + * @see [getServicePackage()/].GenericEntityService#findByObjectKey(java.lang.String) + */ +@Override +@Transactional(readOnly = true) +public Optional<[getEntityClassName(aClass)/]> findByObjectKey(String id) +{ + [getEntityClassName(aClass)/] [getObjectName(aClass)/] = new [getEntityClassName(aClass)/]([if(isMs)]id[/if]); + [if(isMs)._not()][getObjectName(aClass)/].setObjectKey(id);[/if] + return findById([getObjectName(aClass)/].get[getClassIdName(aClass).toString().toUpperFirst()/]()); +} +[/template] + + +[template public genFindByParentId(aClass : Class, aModel : Model)] +[for(parentAss : Association | aClass.getParentAssociations()) separator ('\n')] +@Override +public Page<[aClass.getEntityClassName()/]> findBy[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]([aClass.getParentClass(parentAss).getEntityClassName()/] parentEntity, Pageable pageable) +{ + return [getObjectRepositoryName(aClass)/].findBy[if(aClass.hasCompositeKey() and parentAss.isIdentifying())][aClass.getClassIdName().toUpperFirst()/][/if][aClass.getTheParentPropertyName(parentAss).toUpperFirst()/](parentEntity, pageable); +} +[/for] +[/template] + +[** + * Generate block-if for criteria filter class + * @author Luca Barone +*/] +[template public genSpecifySpecification(aClass : Class, p : Property)] + if (criteria.get[p.name.toUpperFirst()/]() != null) { + specification = specification.and(filterService.[getSpecification(p.type) + /](criteria.get[p.name.toUpperFirst()/](), [if(aClass.hasInnerCompositeKey() and p.isID)]r -> r.get([aClass.getEntityClassName()/]_.[aClass.getClassIdName()/]).get([aClass.getClassIdName().toUpperFirst()/]_.[p.name/])[else][aClass.getEntity_ClassName()/].[p.name/][/if])); + } +[/template] + +[** + * Generates block-if for criteria filter father class + * @author Luca Barone + * @author Vittorio Niespolo r.get([aClass.getEntity_ClassName()/].[aClass.getClassIdName().toUpperFirst()/]).get([aClass.getClassIdName()/]_.[aClass.getTheParentPropertyName(parentAss)/]).get([aClass.getParentClass(parentAss).name/]_.[getClassIdName(aClass.getParentClass(parentAss))/]))); +} +[elseif(parentId.isString())] +if (criteria.get[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst()/]() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.get[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst()/](), r-> r.get([aClass.getEntity_ClassName()/].[aClass.getClassIdName().toUpperFirst()/]).get([aClass.getClassIdName()/]_.[aClass.getTheParentPropertyName(parentAss)/]).get([aClass.getParentClass(parentAss).name/]_.[getClassIdName(aClass.getParentClass(parentAss))/]))); +} +[/if] +[/for] +[/template] + + +[** + * Generate the method to convert Criteria in Specification + * @author Vittorio Niespolo +*/] +[template public genCreateSpecification(aClass : Class)] +/** + * Convert [aClass.getCriteriaClassName()/] to a {@link Specification} + * @param criteria + * @return + */ +private Specification<[aClass.getEntityClassName()/]> createSpecification([aClass.getCriteriaClassName()/] criteria) { + Specification<[aClass.getEntityClassName()/]> specification = Specification.where(null); + + if (criteria != null) { + [if(aClass.getAttributeList() -> size() > 0)]// Attribute filters[/if] + [for(p:Property | aClass.getFiltrableAttributes())] + [genSpecifySpecification(aClass, p)/] + [/for] + +[comment] [if(aClass.getParentAssociations() -> size() > 0)]// Parent id filters[/if] + [for(parentAss : Association | aClass.getParentAssociations())] + if(criteria.get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey() != null && criteria.get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey().getEquals() != null) + { + [aClass.getParentClass(parentAss).getEntityClassName()/] [aClass.getParentClass(parentAss).getEntityClassName().toLowerFirst()/] = new [aClass.getParentClass(parentAss).getEntityClassName()/](criteria.get[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]ObjectKey().getEquals()); + [for(parentId : Property | aClass.getParentClass(parentAss).getClassIDs())] + if(criteria.get[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst()/]() == null) { + criteria.set[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst()/](new [getFilterType(parentId.type)/]()); + } + criteria.get[parentId.getParentPropAssName(aClass, parentAss).toUpperFirst()/]().setEquals([aClass.getParentClass(parentAss).getEntityClassName().toLowerFirst()/][if(aClass.getParentClass(parentAss).hasCompositeKey())].get[aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]()[/if].get[parentId.name.toUpperFirst()/]()); + [/for] + } + [/for][/comment] + [if(aClass.hasCompositeKey())]// CompositeKey Filters[/if] + [aClass.genCompositeKeyAndSpecifications()/] + [aClass.genNotIdentifyingParentSpecifications()/] +[comment]TODO Aggiungere filtri per attributi in compositekjey interni all'entità[/comment] + } + return specification; +} +[/template] + +[** + * Generate service MasterDetail update method + * @author: Vittorio Niespolo +*/] +[template public genMasterDetailUpdate(aClass : Class)] + +/* + * (non-Javadoc) + * @see [getServicePackage()/].[aClass.getServiceClassName()/]#masterDetailUpdate([getRuntimeUtilitiesPackage()/].MasterDetail) + */ +@Override +@Transactional +public [aClass.getEntityClassName()/] masterDetailUpdate([aClass.getEntityClassName()/] [aClass.getEntityClassName().toLowerFirst()/]){ +[for(a : Association | aClass.getChildAssociations())] + for ([aClass.getChildClass(a).name/] [aClass.getChildClass(a).name.toLowerFirst()/] : [aClass.getEntityClassName().toLowerFirst()/].get[getTheChildPropertyName(aClass, a).toString().toUpperFirst()/]()) { + if ([aClass.getChildClass(a).name.toLowerFirst()/].isUpdatedEntityState()) { + [aClass.getChildClass(a).name.toLowerFirst()/]Service.update([aClass.getChildClass(a).name.toLowerFirst()/]); + } + if ([aClass.getChildClass(a).name.toLowerFirst()/].isDeletedEntityState()) { + [aClass.getChildClass(a).name.toLowerFirst()/]Service.delete([aClass.getChildClass(a).name.toLowerFirst()/]); + } + if ([aClass.getChildClass(a).name.toLowerFirst()/].isCreatedEntityState()) { + [aClass.getChildClass(a).name.toLowerFirst()/]Service.insert([aClass.getChildClass(a).name.toLowerFirst()/]); + } + [aClass.getEntityClassName().toLowerFirst()/].set[getTheChildPropertyName(aClass, a).toUpperFirst()/](null); + } +[/for] + return update([aClass.getEntityClassName().toLowerFirst()/]); +} +[/template] + +[template public genDelete(aClass : Class)] +@Override +public void delete([aClass.getEntityClassName()/] entity) { + [aClass.getRepositoryClassName().toLowerFirst()/].delete(entity); +} +[/template] + +[** + * Generate PDF report + * @author: Fabio Memoli +*/] +[template public genPrintPdfReport(aClass : Class, aModel: Model)] +[if(aClass.isReportEnabled(aModel))] +public JasperPrint getJasperPrint(String reportName, Collection collection) throws BusinessException { + JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(collection); + Map parameters = new HashMap(); + // Adds to the collection the compiled master report dependency (for subreport) and return the compiled master report. + JasperReport report = prepareJasperReport(reportName, parameters); + // Add report dir. + parameters.put("REPORT_DIR", super.jasperReportsDir); + // Add locale. + Locale locale = LocaleContextHolder.getLocale(); + parameters.put(JRParameter.REPORT_LOCALE, locale); + // Add resource boundle. + ResourceBundle resourceBoundle = ResourceBundle.getBundle("applicationResources", locale); + parameters.put(JRParameter.REPORT_RESOURCE_BUNDLE, resourceBoundle); + // return PDF document. + JasperPrint jasperPrint = null; + try { + return JasperFillManager.fillReport(report, parameters, dataSource); + } catch (JRException e) { + LOGGER.error("Error: ", e); + } + return jasperPrint; +} + +public byte['[]'/] printPdfReport(String objectKey) throws BusinessException { + Collection<[aClass.name/]> [aClass.name.toLowerCase()/]Collection = new ArrayList<[aClass.name/]>(); + [aClass.name.toLowerCase()/]Collection.add(findByObjectKey(objectKey).get()); + byte['[]'/] pdf = null; + try { + pdf = JasperExportManager.exportReportToPdf(getJasperPrint("Detail[aClass.name/]", [aClass.name.toLowerCase()/]Collection)); + } + catch(JRException e) { + LOGGER.error("Error: ", e); + } + return pdf; +} +[/if] +[/template] + +[template public genFindOtherParentByParentServiceImpl(aClass : Class){parentAssociations : Collection(OclAny) = aClass.getParentAssociations();}] +[if(parentAssociations -> size() > 1)] +[for(parentAss : Association | parentAssociations)] +[for(otherParentAss : Association | aClass.getParentAssociationsExcluding(parentAss))] +/* + * + * @see [getGenericPackage(aClass)/].service.[aClass.getEntityClassName()/]Service#find[aClass.getParentClass(parentAss).getEntityClassName()/]By[getTheParentPropertyName(aClass, otherParentAss)/]([getGenericPackage(aClass).concat('.entity')/].[aClass.getParentClass(otherParentAss).getEntityClassName()/], org.springframework.data.domain.Pageable) + */ +@Override +@Transactional(readOnly = true) +public Page<[aClass.getParentClass(parentAss).getEntityClassName()/]> find[aClass.getParentClass(parentAss).getEntityClassName()/]By[getTheParentPropertyName(aClass, otherParentAss).toString().toUpperFirst()/]([aClass.getParentClass(otherParentAss).getEntityClassName()/] [aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/], Pageable pageable) { + Page<[aClass.getEntityClassName()/]> [aClass.getEntityClassName().toLowerFirst()/]Page = [aClass.getEntityClassName().toLowerFirst()/]Repository.findBy[if(aClass.hasCompositeKey() and otherParentAss.isIdentifying())][aClass.getClassIdName().toUpperFirst()/][/if][getTheParentPropertyName(aClass, otherParentAss).toString().toUpperFirst()/]([aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/], pageable); + List<[aClass.getParentClass(parentAss).getEntityClassName()/]> content = [aClass.getEntityClassName().toLowerFirst()/]Page.getContent().stream() + .map([aClass.getEntityClassName()/]::get[getTheParentPropertyName(aClass, parentAss).toString().toUpperFirst()/]).collect(Collectors.toList()); + Page<[aClass.getParentClass(parentAss).getEntityClassName()/]> result = new PageImpl<[aClass.getParentClass(parentAss).getEntityClassName()/]>(content, pageable, [aClass.getEntityClassName().toLowerFirst()/]Page.getTotalElements()); + return result; +} +[/for] +[/for] +[/if] +[/template] + +[template public genBulkUpdate(aClass : Class)] +@Override +@Transactional() +public [getEntityClassName(aClass)/] bulkUpdate([getEntityClassName(aClass)/] [getEntityClassName(aClass).toString().toLowerFirst()/]) { + [if(aClass.hasChilds())] + [for(childAss : Association | aClass.getChildAssociations())] + List<[getEntityClassName(getChildClass(aClass, childAss))/]> update[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/] = [getEntityClassName(aClass).toString().toLowerFirst()/].get[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/]().stream().filter(child -> !child.isDeletedEntityState()).collect(Collectors.toList()); + List<[getEntityClassName(getChildClass(aClass,childAss))/]> delete[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/] = [getEntityClassName(aClass).toString().toLowerFirst()/].get[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/]().stream().filter(GenericEntity::isDeletedEntityState).collect(Collectors.toList()); + + [getEntityClassName(aClass).toString().toLowerFirst()/].set[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/](update[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/]); + [/for] + [for(childAss : Association | aClass.getChildAssFromImportedModels())] + List<[getEntityClassName(getChildClass(aClass, childAss))/]> update[getEntityClassName(getChildClass(aClass, childAss))/] = [getEntityClassName(aClass).toString().toLowerFirst()/].get[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/]().stream().filter(child -> !child.isDeletedEntityState()).collect(Collectors.toList()); + List<[getEntityClassName(getChildClass(aClass,childAss))/]> delete[getEntityClassName(getChildClass(aClass, childAss))/] = [getEntityClassName(aClass).toString().toLowerFirst()/].get[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/]().stream().filter(GenericEntity::isDeletedEntityState).collect(Collectors.toList()); + + [getEntityClassName(aClass).toString().toLowerFirst()/].set[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/](update[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/]); + [/for] + [/if] + + [getEntityClassName(aClass)/] update = this.update([getEntityClassName(aClass).toString().toLowerFirst()/]); + + [if(aClass.hasChilds())] + [for(childAss : Association | aClass.getChildAssociations())] + delete[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/].forEach(child -> [if(childAss.isSelfRelation()._not())][getServiceClassName(getChildClass(aClass, childAss)).toString().toLowerFirst()/].[/if]deleteById(child.get[getClassIdName(getChildClass(aClass,childAss)).toString().toUpperFirst()/]())); + [/for] + [for(childAss : Association | aClass.getChildAssFromImportedModels())] + delete[getTheChildPropertyName(aClass, childAss).toString().toUpperFirst()/].forEach(child -> [if(childAss.isSelfRelation()._not())][getServiceClassName(getChildClass(aClass, childAss)).toString().toLowerFirst()/].[/if]deleteById(child.get[getClassIdName(getChildClass(aClass,childAss)).toString().toUpperFirst()/]())); + [/for] + [/if] + return update; + } +[/template] + +[template public genNotIdentifyingParentSpecifications(aClass : Class)] +[for(identifyingAss: Association | aClass.getNotIdentifyingParentAssociations())] +if (criteria.get[aClass.getTheParentPropertyName(identifyingAss).toUpperFirst()/]ObjectKey() != null) { + [aClass.getParentClass(identifyingAss).getEntityClassName()/] [aClass.getParentClass(identifyingAss).getEntityClassName().toLowerFirst()/] = new [aClass.getParentClass(identifyingAss).getEntityClassName()/](criteria.get[aClass.getTheParentPropertyName(identifyingAss).toUpperFirst()/]ObjectKey()); + +[for(id: Property | aClass.getParentClass(identifyingAss).getClassIDsIncludingFK())] + specification = specification.and(filterService.generateEqualsSpecification( + [aClass.getParentClass(identifyingAss).getEntityClassName().toLowerFirst()/][if(aClass.getParentClass(identifyingAss).hasCompositeKey())].get[aClass.getParentClass(identifyingAss).getClassIdName().toUpperFirst()/]()[/if].get[id.name.toUpperFirst()/](), + r -> r[getLastPathPartForNotIdentifyingParents(id, aClass, identifyingAss)/])); +[/for] +} +[/for] +[/template] + +[template public genCompositeKeyAndSpecifications(aClass : Class)] +[for(identifyingAss: Association | aClass.getIdentifyingParentAssociations())] +if (criteria.get[aClass.getTheParentPropertyName(identifyingAss).toUpperFirst()/]ObjectKey() != null) { + [aClass.getParentClass(identifyingAss).getEntityClassName()/] [aClass.getParentClass(identifyingAss).getEntityClassName().toLowerFirst()/] = new [aClass.getParentClass(identifyingAss).getEntityClassName()/](criteria.get[aClass.getTheParentPropertyName(identifyingAss).toUpperFirst()/]ObjectKey()); + +[for(id: Property | aClass.getParentClass(identifyingAss).getClassIDsIncludingFK())] + specification = specification.and(filterService.generateEqualsSpecification( + [aClass.getParentClass(identifyingAss).getEntityClassName().toLowerFirst()/][if(aClass.getParentClass(identifyingAss).hasCompositeKey())].get[aClass.getParentClass(identifyingAss).getClassIdName().toUpperFirst()/]()[/if].get[id.name.toUpperFirst()/](), + r -> r[getLastPathPart(id, aClass, identifyingAss)/])); +[/for] +[comment] specification = specification.and(filterService.generateEqualsSpecification( + repartoVendite.getRepartoVenditeKey().getIdDipartimento(), + r -> r.get(Ordine_.ordineKey).get(OrdineKey_.theRepartoVendite) + .get(RepartoVendite_.repartoVenditeKey).get(RepartoVenditeKey_.theDipartimento) + .get(Dipartimento_.dipartimentoKey).get(DipartimentoKey_.idDipartimento)));[/comment] +} +[/for] + +[comment][for(identifyingAss: Association | aClass.getIdentifyingParentAssociations())] +[for(parentId: Property | aClass.getParentClass(identifyingAss).getClassIDs())] +[if(parentId.isNumeric())] +if (criteria.get[parentId.getParentPropAssName(aClass, identifyingAss).toUpperFirst()/]() != null) { + specification = specification.and(filterService.generateRangeSpecification(criteria.get[parentId.getParentPropAssName(aClass, identifyingAss).toUpperFirst()/](), r-> r.get([aClass.getEntity_ClassName()/].[aClass.getClassIdName().toLowerFirst()/]).get([aClass.getClassIdName().toUpperFirst()/]_.[aClass.getTheParentPropertyName(identifyingAss)/]).get([aClass.getParentClass(identifyingAss).name/]_.[getClassIdName(aClass.getParentClass(identifyingAss))/])[if(aClass.getParentClass(identifyingAss).hasCompositeKey())].get([getClassIdName(aClass.getParentClass(identifyingAss)).toString().toUpperFirst()/]_.[parentId.getParentPropAssName(aClass, identifyingAss)/])[/if])); +} +[elseif(parentId.isString())] +if (criteria.get[parentId.getParentPropAssName(aClass, identifyingAss).toUpperFirst()/]() != null) { + specification = specification.and(filterService.generateStringSpecification(criteria.get[parentId.getParentPropAssName(aClass, identifyingAss).toUpperFirst()/](), r-> r.get([aClass.getEntity_ClassName()/].[aClass.getClassIdName().toLowerFirst()/]).get([aClass.getClassIdName().toUpperFirst()/]_.[aClass.getTheParentPropertyName(identifyingAss)/]).get([aClass.getParentClass(identifyingAss).name/]_.[getClassIdName(aClass.getParentClass(identifyingAss))/])[if(aClass.getParentClass(identifyingAss).hasCompositeKey())].get([getClassIdName(aClass.getParentClass(identifyingAss)).toString().toUpperFirst()/]_.[parentId.getParentPropAssName(aClass, identifyingAss)/])[/if])); +} +[/if] +[/for][/for][/comment] +[/template] + +[template public getLastPathPart(id : Property, aClass: Class, parentAss: Association)] +.get([aClass.getEntityClassName()/]_.[aClass.getClassIdName().toLowerFirst()/]) +[if(aClass.isInInnerID(id))] +.get([aClass.getClassIdName().toUpperFirst()/]_.[id.name.toLowerFirst()/]) +[else] +[if(aClass.getParentClass(parentAss).isInInnerID(id))] +[if(aClass.getParentClass(parentAss).hasCompositeKey()._not())] +.get([aClass.getClassIdName().toUpperFirst()/]_.[aClass.getTheParentPropertyName(parentAss)/]).get([aClass.getParentClass(parentAss).getEntityClassName().toUpperFirst()/]_.[id.name.toLowerFirst()/]) +[else] +.get([aClass.getClassIdName().toUpperFirst()/]_.[aClass.getTheParentPropertyName(parentAss)/]).get([aClass.getParentEntityClassName(parentAss).toUpperFirst()/]_.[aClass.getParentClass(parentAss).getClassIdName().toLowerFirst()/]).get([aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]_.[id.name.toLowerFirst()/]) +[/if] +[else] +[for(grandParentAss: Association | aClass.getParentClass(parentAss).getIdentifyingParentAssociations())] +[if(aClass.hasCompositeKey())] +.get([aClass.getClassIdName().toUpperFirst()/]_.[aClass.getTheParentPropertyName(parentAss)/]) +[comment].get([aClass.getParentClass(parentAss).getEntityClassName().toUpperFirst()/]_.[aClass.getParentClass(parentAss).getClassIdName().toLowerFirst()/]). +.get([aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]_.[aClass.getParentClass(parentAss).getTheParentPropertyName(grandParentAss)/])[/comment] +[/if][getLastPathPart(id, aClass.getParentClass(parentAss), grandParentAss)/] +[/for] +[/if] +[/if] +[/template] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[template public getLastPathPartForNotIdentifyingParents(id : Property, aClass: Class, parentAss: Association)] +[if(parentAss.isIdentifying()._not())] +.get([aClass.getEntityClassName()/]_.[aClass.getTheParentPropertyName(parentAss)/]) +[else] +[if(aClass.hasCompositeKey())] +.get([aClass.getClassIdName().toUpperFirst()/]_.[aClass.getTheParentPropertyName(parentAss)/]) +[/if] +[/if] +[if(aClass.getParentClass(parentAss).hasCompositeKey())] +.get([aClass.getParentEntityClassName(parentAss)/]_.[aClass.getParentClass(parentAss).getClassIdName().toLowerFirst()/]) +[/if] +[if(aClass.getParentClass(parentAss).isInInnerID(id))] +[if(aClass.getParentClass(parentAss).hasCompositeKey())] +.get([aClass.getParentClass(parentAss).getClassIdName().toUpperFirst()/]_.[id.name.toLowerFirst()/]) +[else] +.get([aClass.getParentEntityClassName(parentAss)/]_.[id.name.toLowerFirst()/]) +[/if] +[else] +[for(grandParentAss: Association | aClass.getParentClass(parentAss).getIdentifyingParentAssociations())] +[getLastPathPartForNotIdentifyingParents(id, aClass.getParentClass(parentAss), grandParentAss)/] +[/for] +[/if] +[/template] + +[template public genConstructor(aClass : Class)] +public [aClass.getServiceImplClassName()/]([getRepositoryClassName(aClass)/] [getRepositoryClassName(aClass).toString().toLowerFirst()/], +[getFilterServiceClassName(aClass)/] filterService, +[for(childAss : Association | aClass.getChildAssociations())] +[if(isSelfRelation(childAss))] +[getServiceClassName(aClass)/] [getServiceClassName(aClass).toString().toLowerFirst()/], +[/if] +[/for] +[for(c:Class| aClass.getChildClassesNoDup()) separator (',')] +[if((getServiceClassName(c).toString().equalsIgnoreCase(getServiceClassName(aClass)))._not())] +[getServiceClassName(c)/] [getServiceClassName(c).toString().toLowerFirst()/][/if][/for] +) { +[for(childAss : Association | aClass.getChildAssociations())] +[if(isSelfRelation(childAss))] +this.[getServiceClassName(aClass).toString().toLowerFirst()/] = [getServiceClassName(aClass).toString().toLowerFirst()/]; +[/if] +[/for] +[for(c:Class| aClass.getChildClassesNoDup())] +[if((getServiceClassName(c).toString().equalsIgnoreCase(getServiceClassName(aClass)))._not())] + this.[getServiceClassName(c).toString().toLowerFirst()/] = [getServiceClassName(c).toString().toLowerFirst()/];[/if][/for] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/test.mtl b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/test.mtl new file mode 100644 index 0000000..e33a8b7 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.library/src/it/micegroup/voila2/cartridge/library/test.mtl @@ -0,0 +1,14 @@ +[comment encoding = UTF-8 /] + +[comment] +test +[/comment] + +[module test('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[template public test(oclAny: OclAny)] +[consoleMessage('test')/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/.classpath b/plugin-version/it.micegroup.voila2.cartridge.springjpa/.classpath new file mode 100644 index 0000000..4f868d5 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/.project b/plugin-version/it.micegroup.voila2.cartridge.springjpa/.project new file mode 100644 index 0000000..4d253a5 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/.project @@ -0,0 +1,50 @@ + + + it.micegroup.voila2.cartridge.springjpa + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.acceleo.ide.ui.acceleoBuilder + + + compilation.kind + compilation.absolute.path + + + compliance + pragmatic + + + resource.kind + xmi + + + trim-position + false + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.acceleo.ide.ui.acceleoNature + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/.settings/org.eclipse.jdt.core.prefs b/plugin-version/it.micegroup.voila2.cartridge.springjpa/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..c05cfdd --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=15 +org.eclipse.jdt.core.compiler.compliance=15 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=15 diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/META-INF/MANIFEST.MF b/plugin-version/it.micegroup.voila2.cartridge.springjpa/META-INF/MANIFEST.MF new file mode 100644 index 0000000..52411bf --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: SpringBoot-Jpa +Bundle-SymbolicName: it.micegroup.voila2.cartridge.springjpa;singleton:=true +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: it.micegroup.voila2.cartridge.springjpa +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: it.micegroup.voila2.cartridge.springjpa.templates +Require-Bundle: org.eclipse.emf.common;bundle-version="2.22.0", + org.eclipse.emf.transaction;bundle-version="1.9.1", + org.eclipse.uml2.uml;bundle-version="5.5.0", + org.apache.log4j;bundle-version="1.2.15", + org.apache.commons.lang3;bundle-version="3.1.0", + org.apache.commons.io;bundle-version="2.6.0", + org.eclipse.ui;bundle-version="3.118.100", + org.eclipse.ui.console;bundle-version="3.10.0", + org.eclipse.emf.mwe.core;bundle-version="1.6.0", + org.eclipse.jdt.core;bundle-version="3.24.0", + org.eclipse.jface.text;bundle-version="3.16.500", + org.eclipse.uml2.uml;visibility:=reexport, + it.micegroup.voila2.cartridge.library, + org.eclipse.acceleo.engine;bundle-version="3.7.11";visibility:=reexport +Bundle-ActivationPolicy: lazy +Bundle-Activator: it.micegroup.voila2.cartridge.springjpa.Activator diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/build.properties b/plugin-version/it.micegroup.voila2.cartridge.springjpa/build.properties new file mode 100644 index 0000000..34d2e4d --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/Activator.java b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/Activator.java new file mode 100644 index 0000000..193c30a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/Activator.java @@ -0,0 +1,67 @@ + +/******************************************************************************* + * Copyright (c) 2008, 2011 Obeo. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package it.micegroup.voila2.cartridge.springjpa; + +import org.eclipse.core.runtime.Plugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle. + */ +public class Activator extends Plugin { + + /** + * The plug-in ID. + */ + public static final String PLUGIN_ID = "it.micegroup.voila2.cartridge.springjpa"; + + /** + * The shared instance. + */ + private static Activator plugin; + + /** + * The constructor. + */ + public Activator() { + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance. + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/applicationResources.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/applicationResources.mtl new file mode 100644 index 0000000..2b38f06 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/applicationResources.mtl @@ -0,0 +1,101 @@ +[comment encoding = UTF-8 /] +[module applicationResources('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] + +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] + +[import it::micegroup::voila2::cartridge::library::properties /] + +[template public genApplicationResources(aModel : Model)] +[genApplicationResourcesContent(aModel, '')/] +[genApplicationResourcesContent(aModel, '_it')/] +[genApplicationResourcesContent(aModel, '_en')/] +[/template] + +[template public genApplicationResourcesContent(aModel : Model, lang : String){classes : Collection(OclAny) = aModel.getEntities();}] +[file(getApplicationResourcesFileName(lang), false, 'UTF-8')] +## Login +login.login=Accedi +login.button=Accedi +login.validation.username=Username è obbligatorio +login.validation.password=La password è obbligatoria +login.label=Effettua l'accesso + +## Pagination +pagination.Showing=Mostra +pagination.ElementsOf=Elementi di +pagination.All=Tutti" + +## Buttons +buttons.new=Nuovo +buttons.save=Salva +buttons.edit=Modifica +buttons.delete=Cancella +buttons.goBack=Indietro +buttons.search=Cerca +buttons.next=Avanti +buttons.export.pdf=Crea PDF + +## Panel +[for(classe : Class | classes)] +[classe.getEntityClassName().toLowerFirst()/].panelTitle.new=Inserisci [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].panelTitle.edit=Modifica [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].panelTitle.view=Dettaglio [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].panelTitle.delete=Cancella [splitCamel(classe.getEntityClassName())/] +[/for] + +## Detail +[for(classe : Class | classes)] +[classe.getEntityClassName().toLowerFirst()/].label=[classe.getEntityLabel()/] +[classe.getEntityClassName().toLowerFirst()/].tooltip=[classe.getEntityTooltip()/] +[classe.getEntityClassName().toLowerFirst()/].insert=Inserisci [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].detail=Dettaglio [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].edit=Modifica [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].delete=Cancella [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].objectTitle=[splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].objectKey=ID [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].jasperReports.title=[splitCamel(classe.getEntityClassName())/] Report +[classe.getEntityClassName().toLowerFirst()/].jasperReports.subTitle=[getProjectName().toUpperFirst()/], v[getVersion()/] +[classe.getEntityClassName().toLowerFirst()/].jasperReports.tableHeader=Dettaglio [splitCamel(classe.getEntityClassName())/] +[for(attributo : Property | classe.getCompleteAttributeListForPresentation()) separator(',\n')] +[if(attributo.isBoolean())] +[classe.getEntityClassName().toLowerFirst()/].[attributo.name/].true=Si +[classe.getEntityClassName().toLowerFirst()/].[attributo.name/].false=No +[/if] +[classe.getEntityClassName().toLowerFirst()/].[attributo.name/]=[attributo.getAttributeLabel()/] +[classe.getEntityClassName().toLowerFirst()/].tooltip.[attributo.name/]=[attributo.getTooltip()/] +[classe.getEntityClassName().toLowerFirst()/].validation.required.[attributo.name/]=[attributo.getNaturalLanguageName()/] è obbligatorio"[/for][if(classe.hasParents())][/if] +[if(classe.hasParents())] +[for(parentAss: Association | classe.getParentAssociations()) separator(',\n') after ('\n')] +[classe.getEntityClassName().toLowerFirst()/].[classe.getTheParentPropertyName(parentAss)/]=[splitCamel(classe.getParentClass(parentAss).getEntityClassName())/][if(not classe.getParentEnd(parentAss).oclIsUndefined() and not classe.getParentEnd(parentAss).name.oclIsUndefined())] [splitCamel(classe.getParentEnd(parentAss).name)/][/if] +[classe.getEntityClassName().toLowerFirst()/].validation.required.[classe.getTheParentPropertyName(parentAss)/]=[splitCamel(classe.getParentClass(parentAss).getEntityClassName())/] è obbligatorio[/for] +[/if] +[/for] + +## App +[for(classe : Class | classes)] +app.[classe.getEntityClassName().toLowerFirst()/].new=Inserisci [splitCamel(classe.getEntityClassName())/] +app.[classe.getEntityClassName().toLowerFirst()/].list=Lista [splitCamel(classe.getEntityClassName())/] +app.[classe.getEntityClassName().toLowerFirst()/].edit=Modifica [splitCamel(classe.getEntityClassName())/] +app.[classe.getEntityClassName().toLowerFirst()/].view=Dettaglio [splitCamel(classe.getEntityClassName())/] +app.[classe.getEntityClassName().toLowerFirst()/].delete=Cancella [splitCamel(classe.getEntityClassName())/] +[/for] + +## JasperReports +jasperReports.logo=mice.png +jasperReports.date.format=dd/MM/yyyy +jasperReports.datetime.format=dd/MM/yyyy HH:mm:ss +jasperReports.pageNumber.label=Pag. +jasperReports.pageNumber.separator=di +jasperReports.footer.text=Copyright \u00a9 2020 MICE srl. Tutti i diritti riservati. + +[/file] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/controller.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/controller.mtl new file mode 100644 index 0000000..d70d261 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/controller.mtl @@ -0,0 +1,87 @@ +[comment encoding = UTF-8 /] + +[comment] + +Controller Java Class Template + +@author Simone Punzo + +[/comment] + + +[module controller('http://www.eclipse.org/uml2/5.0.0/UML')] + + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] +[comment][import it::micegroup::voila2::cartridge::library::springboot::controllerUtils /][/comment] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] +[import it::micegroup::voila2::cartridge::library::microservice::controllerMsUtils/] + +[template public genControllerFileMs(aClass : Class, aModel: Model) post(writeAndFormat(aClass.getControllerFileName()))] +package [getControllerPackage(aClass)/]; + +[genControllerImportsAsMs(aClass)/] + +@RequiredArgsConstructor +@RestController +@RequestMapping(value = "/[camelToDash(aClass.name)/]", produces = MediaType.APPLICATION_JSON_VALUE) +public class [getControllerClassName(aClass)/] extends BaseController>{ + + /// ENTITY SERVICE + private final [getServiceClassName(aClass)/] [getServiceClassName(aClass).toString().toLowerFirst()/]; + private final [getAssemblerClassName(aClass)/] [getAssemblerClassName(aClass).toString().toLowerFirst()/]; + private final PagedResourcesAssembler<[getEntityClassName(aClass)/]> pagedResourcesAssembler; + private final ModelMapper modelMapper; + // CHILD SERVICES + [genChildServices(aClass)/] + + // CONSTRUCTOR +[comment] [genConstructor(aClass)/][/comment] + [genPostConstructor(aClass)/] + + + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger([aClass.getControllerClassName()/].class); + [comment]private static final String ENTITY_NAME = "[aClass.getEntityClassName().toLowerFirst()/]";[/comment] + + // API + [genGetAllPaginated(aClass, aModel)/] + +[comment] [genGetByCriteria(aClass, aModel)/][/comment] + + [genGetById(aClass, aModel)/] + + [genUpdate(aClass, aModel)/] + + [genCreate(aClass, aModel)/] + + [genDeleteByID(aClass, aModel)/] + +[comment] [genMassDelete(aClass)/] + + [genMassUpdate(aClass)/] + + [genMassInsert(aClass)/][/comment] + + [genGetByParentId(aClass, aModel)/] + + [genPrintPdfReport(aClass, aModel)/] + + [genGetChildByObjectKey(aClass, aModel)/] + +[comment] [genFindOtherParentByParent(aClass)/][/comment] + + [genToResponseEntity(aClass)/] + + [genToResponseEntityPaged(aClass)/] + + [genDtoToEntity(aClass)/] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/criteria.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/criteria.mtl new file mode 100644 index 0000000..68cc131 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/criteria.mtl @@ -0,0 +1,61 @@ +[comment encoding = UTF-8 /] + +[comment] + +Criteria Java File Template + +@author Vittorio Niespolo + +[/comment] + +[module criteria('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::generalUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] + +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::filterUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] + +[template public genCriteriaFile(aClass : Class,isMs : Boolean) post(writeAndFormat(aClass.getCriteriaFileName()))] +package [getCriteriaPackage(aClass)/]; + +[genCriteriaImports(aClass)/] + +public class [getCriteriaClassName(aClass)/][if(aClass.hasGeneralClass())] extends [aClass.getGeneralClass().getCriteriaClassName()/][/if] implements Serializable { + + // SERIAL UID + [genSerialUID(aClass)/] + + // FILTER ATTRIBUTES + [genFilterProperties(aClass)/] + + // FILTER FATHER + [genFilterPropertiesFather(aClass)/] + + [if(isMs)] + //FILTER IMPORTED FATHER + [genFilterPropertiesImportedFather(aClass)/] + [/if] + // GETTER/SETTER + [genFilterGetterSetter(aClass)/] + + // GETTER/SETTER FATHER + [genFilterFatherGetterSetter(aClass)/] + + [if(isMs)] + //GETTER/SETTER IMPORTED FATHER + [genFilterImportedFatherGetterSetter(aClass)/] + [/if] + + // GEN COMPOSITE FILTER +[comment] [genFatherCompositeFilter(aClass)/][/comment] + +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityDto.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityDto.mtl new file mode 100644 index 0000000..e776c4b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityDto.mtl @@ -0,0 +1,42 @@ +[module entityDto('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::dtoUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] + +[template public genDtoClassSpecificFile(aClass : Class, aModel : Model) post(writeAndFormat(aClass.getEntityDtoFileName()))] +package [getEntityDtoPackage()/]; + +[genEntityDtoImports(aClass)/] +[genImportsForPropertyDto(aClass)/] +[genBaseDtoImport()/] + +@Data +@EqualsAndHashCode(callSuper = false) +public class [getEntityDtoClassName(aClass)/] extends BaseDto { + + [genSerialUID(aClass)/] + + @JsonProperty + private String objectKey; + @JsonProperty + private String objectTitle; + [genDtoAttributes(aClass)/] + + [genAttributesFromParent(aClass)/] +[comment] [genChildrenDto(aClass)/][/comment] + + [if(aClass.hasCompositeKey())] + @JsonProperty + private [aClass.getClassIdType()/]Dto [aClass.getClassIdName()/]; + [/if] +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityKeyDto.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityKeyDto.mtl new file mode 100644 index 0000000..392e2a8 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityKeyDto.mtl @@ -0,0 +1,32 @@ +[module entityKeyDto('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::dtoUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] + +[template public genDtoEntityKeyFile(aClass : Class , aModel : Model) post(writeAndFormat(aClass.getKeyDtoFileName()))] +package [getEntityDtoPackage()/]; + +[genEntityDtoImports()/] +[genImportsForPropertyDto(aClass)/] +[genGenericDtoImport()/] + +@Data +@EqualsAndHashCode(callSuper = false) +public class [getEntityKeyDtoClassName(aClass)/] extends GenericDto{ +[for(id : Property | aClass.getClassIDs())] + private [id.type.getJavaType()/] [id.name/]; +[/for] +[for(parentAss : Association | aClass.getIdentifyingParentAssociations())] + private String [aClass.getTheParentPropertyName(parentAss)/]ObjectKey; + private String [aClass.getTheParentPropertyName(parentAss)/]ObjectTitle; +[/for] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityWriteDto.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityWriteDto.mtl new file mode 100644 index 0000000..a858a6e --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/entityWriteDto.mtl @@ -0,0 +1,40 @@ +[module entityWriteDto('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::dtoUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] + +[template public genDtoEntityWriteFile(aClass : Class , aModel : Model) post(writeAndFormat(aClass.getDtoWriteFileName()))] +package [getEntityDtoPackage()/]; + +[genEntityDtoImports()/] +[genImportsForPropertyDto(aClass)/] +[genGenericDtoImport()/] +[comment][if(aClass.hasCompositeKey())] +import [getEntityPackage()/].[aClass.getClassIdName().toUpperFirst()/]WriteDto; +[/if][/comment] + +@Data +@EqualsAndHashCode(callSuper = false) +public class [getEntityWriteDtoClassName(aClass)/] extends GenericDto{ + + /** + * + * ObjectKey + * + */ + @JsonProperty + private String objectKey; + + [genWriteDtoAttributes(aClass)/] + [if(aClass.hasCompositeKey())] + @JsonProperty + private [aClass.getClassIdType()/]Dto [aClass.getClassIdName()/]; + [/if] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/mailWriteDto.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/mailWriteDto.mtl new file mode 100644 index 0000000..b19c423 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/dataTransfer/mailWriteDto.mtl @@ -0,0 +1,40 @@ +[module mailWriteDto('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] + + +[template public genMailWriteDto(aModel : Model) post(writeAndFormat(getMailWriteDtoFileName()))] +package [getEntityDtoPackage()/]; + +[genMailRequestDtoImports()/] + +@Data +@EqualsAndHashCode(callSuper = false) +public class MailRequestDto { + + private static final long serialVersionUID = 260627236L; + + @NotNull + @JsonProperty("template") + private String idTemplate; + + @JsonProperty("objectMap") + private Map objectMap; + + @JsonProperty("allegati") + private Map allegati; + + @Override + public String toString() { + return "MailDto{" + + "idTemplate=" + idTemplate + + ",allegati =" + allegati + + '}'; + } + + +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entity.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entity.mtl new file mode 100644 index 0000000..58af74c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entity.mtl @@ -0,0 +1,141 @@ +[comment encoding = UTF-8 /] + +[comment] + +Entity Java File Template + +@author Vittorio Niespolo + +[/comment] + +[module entity('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] + +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils/] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::entityKey/] + +[template public genEntityFile(aClass : Class, aModel: Model) post(writeAndFormat(aClass.getEntityFileName()))] +package [getEntityPackage(aClass)/]; + +[genEntityImports(aClass)/] + +[if(aClass.hasDefinition())] +/** +[getEntityDefinition(aClass)/] +*/ +[/if] +@NoArgsConstructor +[if(entityHasOneStringField(aClass))]@AllArgsConstructor[/if] +@Getter +@Setter +[if(isClassExtended(aClass))] +@Inheritance(strategy = InheritanceType.JOINED) +[/if] +@Entity +@Table(name = "[getPhysicalTableName(aClass)/]") +public class [getEntityClassName(aClass)/] extends +[if(aClass.hasGeneralClass())] [aClass.getGeneralClass().getEntityClassName()/] +[elseif(aClass.isAuditable())] Auditable +[else]BaseEntity +[/if] +implements Serializable{ + + [comment] Generate serial versione uid as Serializable class resquests [/comment] + [genSerialUID(aClass)/] + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger([aClass.getEntityClassName()/].class); + + // ATTRIBUTES + [genAttributes(aClass)/] + + // IMPORTED PARENTS + [genImportedParentProperty(aClass)/] + + // CONSTRUCTORS + [genConstructor(aClass)/] + + // CHILDREN + [genChildCollections(aClass)/] + + // PARENTS + [genParentProperty(aClass)/] + + // GETTER/SETTER + [genGetterSetter(aClass)/] + + [genImportedParentGetterSetter(aClass)/] + + // CHILD GETTER/SETTER + [genChildGetterSetter(aClass)/] + + /// ADD CHILD + [genAddChild(aClass)/] + + // PARENT GETTER/SETTER + [genParentGetterSetter(aClass)/] + [comment]Se ha CK devi creare questi getter tramite la key[/comment] + [genCKParentGetterSetter(aClass)/] + + // PARENT ID GETTER/SETTER + [genParentIdGetter(aClass)/] +[comment] [genParentIdSetter(aClass)/][/comment] + + // PARENT OBJECT TITLE + [genParentObjectTitleGetter(aClass)/] + + // PARENT OBJECT KEY + [for(a : Association | aClass.getNotIdentifyingParentAssociations())] + [genParentObjectKeyGetter(aClass, a, false, false)/] + [genParentObjectKeySetter(aClass, a, false)/] + [/for] + [for(a : Association | aClass.getIdentifyingParentAssociations())] + [genParentObjectKeyGetter(aClass, a, true, false)/] + [genParentObjectKeySetter(aClass, a, true)/] + [/for] + + // IMPORTED PARENT OBJECT KEY + [genImportedParentObjectKeyGetter(aClass)/] + [genImportedParentObjectKeySetter(aClass)/] + + // OPERATIONS + [genOperations(aClass)/] + + // OBJECT KEY + [genGetObjectKey(aClass)/] + [genSetObjectKey(aClass)/] + + // OBJECT TITLE + [genGetObjectTitle(aClass)/] + + [if(hasCompositeKey(aClass))] + + // COMPOSITE PRIMARY KEY + [genCompositeKeyProperty(aClass)/] + + // GETTER/SETTER CK + [genGetterByPropNameNType(getClassIdName(aClass), getClassIdType(aClass))/] + [genSetterByPropNameNType(getClassIdName(aClass), getClassIdType(aClass))/] + + // COMPOSITE KEY CLASS + [genCompositeKeyFile(aClass,aModel)/] + [/if] + + [genPrePersist(aClass, aModel)/] + [genPreUpdate(aClass, aModel)/] + + //Equals / HashCode + [genEqualsHashcode(aClass)/] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entityGeneration.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entityGeneration.mtl new file mode 100644 index 0000000..39efd26 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entityGeneration.mtl @@ -0,0 +1,41 @@ +[module entityGeneration('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::entity/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::service/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::serviceImpl/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::controller/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::criteria/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::resource/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::repository/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::modelAssembler/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::dataTransfer::entityWriteDto/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::dataTransfer::entityKeyDto/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::dataTransfer::entityDto/] + + +[template public genEntitySpecificFiles(aModel : Model, isMs : Boolean)] +[for(aClass : Class | aModel.getEntities())] + [consoleMessage(getInfoSeverity(), 'Code Generation for the Entity: ' + aClass.name)/] + [if (not aClass.hasDefinition())] + [consoleMessage(getWarnSeverity(), 'Entity ' + aClass.name + ' has no definition')/] + [/if] + [genEntityFile(aClass, aModel)/] + [genServiceFile(aClass, aModel)/] + [genServiceImplFile(aClass, aModel,isMs)/] + [genControllerFileMs(aClass, aModel)/] + [genAssemblerFile(aClass)/] + [genDtoEntityWriteFile(aClass, aModel)/] + [if(aClass.hasCompositeKey())] + [genDtoEntityKeyFile(aClass, aModel)/] + [/if] + [genCriteriaFile(aClass,isMs)/] + [genRepositoryFile(aClass,isMs)/] + [genDtoClassSpecificFile(aClass, aModel)/] + [comment]TO DO genClassSpecificAssemblerForMs[/comment] + +[/for] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entityKey.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entityKey.mtl new file mode 100644 index 0000000..7eb9ae2 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/entityKey.mtl @@ -0,0 +1,49 @@ +[module entityKey('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityKeyUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils /] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] + + +[template public genCompositeKeyFile(aClass : Class , aModel : Model) post(writeAndFormat(aClass.getEntityCKFileName()))] +package [getEntityPackage(aClass)/]; + +[genEntityKeyImports(aClass)/] + +@Data +@Embeddable +@NoArgsConstructor +public class [getEntityCKClassName(aClass)/] implements Serializable { + + [genSerialUID(aClass)/] + + /// ATTRIBUTES + [genCKAttributes(aClass)/] + + /// GETTER/SETTER + [genCKGetterSetter(aClass)/] + + /// FIELD CONSTRUCTOR + [genCKConstructor(aClass)/] + + /// OF CONSTRUCTOR + [genOFConstructorForCK(aClass)/] + + [genCKEquals(aClass)/] + + [genCKHashCode(aClass)/] + + // PARENT OBJECT KEY/TITLE + [for(a : Association | aClass.getIdentifyingParentAssociations())] + [genParentObjectKeyGetter(aClass, a, true, true)/] + [genParentObjectTitleGetter(aClass, a)/] + [genParentObjectKeySetter(aClass, a, true)/] + [/for] +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/modelAssembler.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/modelAssembler.mtl new file mode 100644 index 0000000..e2de8e2 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/modelAssembler.mtl @@ -0,0 +1,31 @@ +[module modelAssembler('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::modelAssemblerUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] + +[template public genAssemblerFile(aClass : Class) post(writeAndFormat(aClass.getAssemblerFileName()))] +package [getAssemblerPackage()/]; + +[genAssemblerImports(aClass)/] + +@Component +public class [getAssemblerClassName(aClass)/] extends BaseModelAssembler<[getEntityClassName(aClass)/] , [getDtoClassName(aClass)/],[aClass.getControllerClassName()/]> { + + + [genToModel(aClass)/] + + [genToCollectionModel(aClass)/] + + + + } + + +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/repository.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/repository.mtl new file mode 100644 index 0000000..e981cbf --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/repository.mtl @@ -0,0 +1,55 @@ +[comment encoding = UTF-8 /] + +[comment] + +Repository Java FileTemplate + +@author Vittorio Niespolo + +[/comment] + +[module repository('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] + +[template public genRepositoryFile(aClass : Class,isMs : Boolean) post(writeAndFormat(aClass.getRepositoryFileName()))] +package [getRepositoryPackage(aClass)/]; + +[genRepositoryImports(aClass,isMs)/] +[if(isMs)] +[genRepositoryImportsAsMs()/] +[/if] +@Repository +@EnableJpaRepositories +public interface [getRepositoryClassName(aClass)/] extends BaseRepository<[getEntityClassName(aClass)/], [getClassIdType(aClass)/]>{ + + [genEntityGraph(aClass)/] + Optional<[aClass.getEntityClassName()/]> findBy[aClass.getClassIdName().toUpperFirst()/]([aClass.getClassIdType()/] id); + + [for (a : Association | aClass.getParentAssociations()) separator('\n')] + [genEntityGraph(aClass)/] + [if(aClass.hasCompositeKey() and a.isIdentifying())] + Page<[aClass.getEntityClassName()/]> findBy[aClass.getClassIdName().toUpperFirst()/][aClass.getTheParentPropertyName(a).toUpperFirst()/]([aClass.getParentClass(a).getEntityClassName()/] parentEntity, Pageable pageable); + [else] + Page<[aClass.getEntityClassName()/]> findBy[aClass.getTheParentPropertyName(a).toUpperFirst()/]([aClass.getParentClass(a).getEntityClassName()/] parentEntity, Pageable pageable); + [/if] + [/for] + + @Query("DELETE FROM [aClass.name/] WHERE [aClass.getClassIdName()/] IN ?1") + void deleteByIdIn(Collection<[aClass.getClassIdType()/]> ids); +} +[/template] + +[template public genEntityGraph(aClass : Class)] +[if(aClass.hasParents())] +@EntityGraph(attributePaths = {[for (a2 : Association | aClass.getParentAssociations()) separator(', ')]"[if(aClass.hasCompositeKey() and a2.isIdentifying())][aClass.getClassIdType().toLowerFirst()/].[/if][aClass.getTheParentPropertyName(a2)/]"[/for]}, type = EntityGraphType.FETCH) +[/if] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/resource.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/resource.mtl new file mode 100644 index 0000000..eca5c66 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/resource.mtl @@ -0,0 +1,55 @@ +[comment encoding = UTF-8 /] + +[comment] + +Resource for Java Entity File Template + +@author Vittorio Niespolo + +[/comment] + +[module resource('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] + + +[template public genResourceFile(aClass : Class) post(writeAndFormat(aClass.getResourceFileName()))] +package [getResourcePackage(aClass)/]; + +[genResourceImports(aClass)/] + +/** +* Resource class for [aClass.getEntityClassName()/] +*/ + +public class [aClass.getEntityClassName()/]Resource extends Resource<[aClass.getEntityClassName()/]>{ + + public [aClass.getEntityClassName()/]Resource([aClass.getEntityClassName()/] [aClass.getEntityClassName().toLowerFirst()/]) { + + super([aClass.getEntityClassName().toLowerFirst()/]); + + //SELF LINK + add( + [genSelfLink(aClass)/] + ); + [if(aClass.hasChilds())] + //CHILDS LINKS + add( + [genChildLinks(aClass)/] + ); + [/if] + [if(aClass.hasParents())] + //PARENTS LINKS + add( + [genParentLinks(aClass)/] + ); + [/if] + } +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/service.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/service.mtl new file mode 100644 index 0000000..dcfbff1 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/service.mtl @@ -0,0 +1,64 @@ +[comment encoding = UTF-8 /] + +[comment] + +Service Java Class Template + +@author Vittorio Niespolo + +[/comment] + +[module service('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] + +[template public genServiceFile(aClass : Class, aModel: Model) post(writeAndFormat(aClass.getServiceFileName()))] +package [getServicePackage(aClass)/]; + +[genServiceImports(aClass,true)/] +[genServiceImportsAsMs()/] + +public interface [aClass.getServiceClassName()/] extends BaseEntityService<[aClass.getEntityClassName()/], [aClass.getClassIdType()/], [aClass.getCriteriaClassName()/]>{ + +[comment] [aClass.getEntityClassName()/] masterDetailUpdate([aClass.getEntityClassName()/] [aClass.getEntityClassName().toLowerFirst()/]);[/comment] + + //PARENT-SPECIFIC SERVICES +[for(parentAss : Association | aClass.getParentAssociations())] + Page<[aClass.getEntityClassName()/]> findBy[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]([aClass.getParentClass(parentAss).getEntityClassName()/] parentEntity, Pageable pageable); +[/for] + + [if(aClass.isReportEnabled(aModel))] + public byte['[]'/] printPdfReport(String objectKey) throws BusinessException; + [/if] + + [genFindOtherParentByParentService(aClass)/] + + [getEntityClassName(aClass)/] bulkUpdate([getEntityClassName(aClass)/] [getEntityClassName(aClass).toLowerFirst()/]); + +} +[/template] + +[template public genFindOtherParentByParentService(aClass : Class){parentAssociations : Collection(OclAny) = aClass.getParentAssociations();}] +[if(parentAssociations -> size() > 1)] +[for(parentAss : Association | parentAssociations)] +[for(otherParentAss : Association | aClass.getParentAssociationsExcluding(parentAss))] + /** + * Return a list of [aClass.getParentClass(parentAss).getEntityClassName()/] from all [aClass.getEntityClassName()/] with given [getTheParentPropertyName(aClass, parentAss)/] + * + * @param [aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/] + * @param pageable + * @return list of [aClass.getParentClass(parentAss).getEntityClassName()/] from all [aClass.getEntityClassName()/] with given [getTheParentPropertyName(aClass, parentAss).toUpperFirst()/] + */ + Page<[aClass.getParentClass(parentAss).getEntityClassName()/]> find[aClass.getParentClass(parentAss).getEntityClassName()/]By[getTheParentPropertyName(aClass, otherParentAss).toUpperFirst()/]([aClass.getParentClass(otherParentAss).getEntityClassName()/] [aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/], Pageable pageable); +[/for] +[/for] +[/if] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/serviceImpl.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/serviceImpl.mtl new file mode 100644 index 0000000..444d4bc --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/entity/serviceImpl.mtl @@ -0,0 +1,95 @@ +[comment encoding = UTF-8 /] + +[comment] + +ServiceImpl Java Class Template + +@author Vittorio Niespolo + +[/comment] + +[module serviceImpl('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::serviceImplUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] + + +[template public genServiceImplFile(aClass : Class, aModel : Model, isMs : Boolean) post(writeAndFormat(aClass.getServiceImplFileName()))] +package [getServicePackage(aClass)/]; +[genServiceImplImports(aClass, aModel,isMs)/] +[if(isMs)] +[genServiceImplImportsAsMs(aClass)/] +[/if] +@RequiredArgsConstructor +@Service +@Transactional +public class [getServiceImplClassName(aClass)/] extends BaseServiceImpl implements [getServiceClassName(aClass)/] { + + private final [getRepositoryClassName(aClass)/] [getRepositoryClassName(aClass).toString().toLowerFirst()/]; + private final [getFilterServiceClassName(aClass)/] filterService; + + [if(isInSecurityUserRole(aClass) or aClass.generalizeSecurityUserRole())] + private final PasswordEncoder passwordEncoder; + private final RoleService roleService; + [/if] +[comment] //ENTITY SERVICE TO HANDLE SELF REF + [if(isMs)] + [for(childAss : Association | aClass.getChildAssociations())] + [if(isSelfRelation(childAss))] + private final [getServiceClassName(aClass)/] [getServiceClassName(aClass).toString().toLowerFirst()/]; + [/if] + [/for] + [/if][/comment] + + + // CHILD SERVICES + [genChildServices(aClass)/] + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger([aClass.getServiceImplClassName()/].class); + +[comment] [genConstructor(aClass)/][/comment] + + [genFindAll(aClass)/] + + [genFindAllListed(aClass)/] + + [genFindByCriteriaPaged(aClass)/] + + [genFindByCriteria(aClass)/] + + [genFindById(aClass)/] + + [genExists(aClass, aModel)/] + + [genInsert(aClass, aModel)/] + + [genUpdate(aClass, aModel)/] + + [genDelete(aClass)/] + + [genDeleteById(aClass, aModel)/] + + [genDeleteByIdIn(aClass, aModel)/] + + [genFindByObjectKey(aClass,isMs)/] + + [genFindByParentId(aClass, aModel)/] + + [genCreateSpecification(aClass)/] + + [genPrintPdfReport(aClass, aModel)/] + + [genFindOtherParentByParentServiceImpl(aClass)/] + + [genBulkUpdate(aClass)/] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailController.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailController.mtl new file mode 100644 index 0000000..403fdd5 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailController.mtl @@ -0,0 +1,40 @@ +[module mailController('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] + + +[template public genMailController(aModel: Model) post(writeAndFormat(getMailControllerFileName()))] +package [getControllerPackage()/]; + +import javax.validation.Valid; + +[genMailControllerImports()/] + +@RestController +@RequestMapping(value = "/email", produces = MediaType.APPLICATION_JSON_VALUE) +public class MailController { + + @Autowired + MailManagerService mailManagerService; + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger(MailController.class); + + + @PostMapping("/sendEmailTemplate") + public ResponseEntity sendEmailTemplate(@Valid @RequestBody BaseRequest request) throws BusinessException{ + try { + mailManagerService.getMailManager().sendEmailByTemplate(request.getData().getIdTemplate(),request.getData().getObjectMap(),request.getData().getAllegati()); + return new ResponseEntity<>(null, HttpStatus.OK); + } catch (Exception e) { + e.printStackTrace(); + throw new BusinessException(""); + } + } + +} + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailDto.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailDto.mtl new file mode 100644 index 0000000..6674dbd --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailDto.mtl @@ -0,0 +1,30 @@ +[comment encoding = UTF-8 /] +[module mailDto('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] + +[template public genMailDto(aClass : Class)] +package [getEntityDtoPackage()/]; +package it.micegroup.asd.notification.dto; + +[genMailDtoImports()/] + +@Data +@EqualsAndHashCode(callSuper = false) +public class MailDto { + + @JsonProperty + private String idTemplate; + + @JsonProperty + private Map objectMap; + + @JsonProperty + private Map allegati; + + +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailGeneration.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailGeneration.mtl new file mode 100644 index 0000000..477ed72 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailGeneration.mtl @@ -0,0 +1,21 @@ +[module mailGeneration('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::springjpa::templates::mail::mailManagerService/] +[import it::micegroup::voila2::cartridge::springjpa::templates::mail::mailManagerServiceImpl/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] +[import it::micegroup::voila2::cartridge::springjpa::templates::mail::mailController/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::dataTransfer::mailWriteDto/] + +[template public genMailFiles(aModel: Model)] +[if(isEmailEnabled(aModel) and isNotificationMicroservice())] + [consoleMessage(getInfoSeverity(), 'Email Services Generation') /] + [genServiceMail()/] + [genServiceMailImpl()/] + [genMailController()/] + [genMailWriteDto()/] +[/if] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailManagerService.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailManagerService.mtl new file mode 100644 index 0000000..c897333 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailManagerService.mtl @@ -0,0 +1,30 @@ +[comment encoding = UTF-8 /] +[module mailManagerService('http://www.eclipse.org/uml2/5.0.0/UML')] + +[comment] + +Service Mail File Template + +@author Luca Barone + +[/comment] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] + +[** + * Generete MailManagerService.java + * @author Luca Barone +*/] +[template public genServiceMail(oclAny : OclAny) post(writeAndFormat(getServiceMailName()))] +package [getServicePackage()/]; + +[genMailServiceImports()/] + +public interface MailManagerService extends InitializingBean{ + + public MailManager getMailManager(); +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailManagerServiceImpl.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailManagerServiceImpl.mtl new file mode 100644 index 0000000..1cabe5a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mail/mailManagerServiceImpl.mtl @@ -0,0 +1,59 @@ +[comment encoding = UTF-8 /] +[module mailManagerServiceImpl('http://www.eclipse.org/uml2/5.0.0/UML')] + +[comment] + +ServiceMailImpl File Template + +@author Luca Barone + +[/comment] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::mailManagerServiceImplUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] +[** + * Generate file MailManagerServiceImpl.java + * @author Luca Barone +*/] +[template public genServiceMailImpl(oclAny : OclAny) post(writeAndFormat(getServiceImplMailName()))] +package [getServicePackage()/]; + +[genMailServiceImplImports()/] + +@Service +@DependsOn("liquibase") +public class MailManagerServiceImpl implements MailManagerService{ + + private static final Log LOGGER = LogFactory.getLog(MailManagerServiceImpl.class); + /* + This class is thinked in way to load the mail configuration from db. + If necessary, change the repository. + */ + + @Autowired + private [genMailConfigRepositoryAttribute()/] + + @Autowired + private [genMailTemplateRepositoryAttribute()/] + + @Autowired + private [genMailStyleRepositoryAttribute()/] + + [genMailServiceImplAttributedMap()/] + + + @Override + [genGetMailManagerMail()/] + + @Override + [genAfterPropertiesSetMail()/] + + [genAttributeMailManager()/] + +} +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainClass.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainClass.mtl new file mode 100644 index 0000000..cd3b955 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainClass.mtl @@ -0,0 +1,38 @@ +[comment encoding = UTF-8 /] + +[comment] + +Main Java Class for SpringBoot Template + +@author Vittorio Niespolo + +[/comment] + +[module mainClass('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::runtimeUtils /] +[import it::micegroup::voila2::cartridge::library::properties/] + + +[template public genMainClass(aModel : Model) post (writeAndFormat(getMainClassFileName()))] +package [getGenericPackage()/]; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +@SpringBootApplication +@ComponentScan({ "[getGroupName().concat('.').concat(getRootArtifactId())/]","[getRuntimePackage()/]" }) +public class [getMainClassNameAsMs()/] { + + public static void main(String['['/]] args) { + SpringApplication.run([getMainClassNameAsMs()/].class, args); + } +} +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainSpringJpa.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainSpringJpa.mtl new file mode 100644 index 0000000..85f39a6 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainSpringJpa.mtl @@ -0,0 +1,68 @@ +[comment encoding = UTF-8 /] +[module mainSpringJpa('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::springjpa::templates::mainClass/] + +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] + +[import it::micegroup::voila2::cartridge::springjpa::templates::utilsGeneration/] + +[import it::micegroup::voila2::cartridge::springjpa::templates::settings/] + +[import it::micegroup::voila2::cartridge::springjpa::templates::entity::entityGeneration/] +[import it::micegroup::voila2::cartridge::springjpa::templates::msWeb/] + +[import it::micegroup::voila2::cartridge::springjpa::templates::mainStaticResources/] + +[comment]POM[/comment] +[import it::micegroup::voila2::cartridge::springjpa::templates::pom::pomGeneration/] + +[comment]PROPERTIES[/comment] +[import it::micegroup::voila2::cartridge::springjpa::templates::applicationResources/] + +[comment]MAIL[/comment] +[import it::micegroup::voila2::cartridge::springjpa::templates::mail::mailGeneration/] + +[comment]SECURITY PERMISSIONS[/comment] +[import it::micegroup::voila2::cartridge::springjpa::templates::security::permission/] +[import it::micegroup::voila2::cartridge::springjpa::templates::security::sqlPermissionsScript/] + + +[template public genSpringJpaMain(aModel : Model){isMicroservizio: Boolean = aModel.isMainMs();}] +[comment]MAIN CLASS[/comment] +[consoleMessage(getInfoSeverity(), 'Springboot main class Generation')/] +[genMainClass(aModel)/] + +[comment]settings[/comment] +[consoleMessage(getInfoSeverity(), '.settings Generation')/] +[genMsSettings()/] + +[comment]ENTITY[/comment] +[genEntitySpecificFiles(aModel, isMicroservizio)/] + +[comment]POPOLAMENTO PROJ MS-[/comment] +[comment]MS WEB POC CONTENT GENERATION[/comment] +[genWebModuleContent(aModel)/] + +[comment]POM[/comment] +[consoleMessage(getInfoSeverity(), 'Pom Generation')/] +[genModulesPoms(aModel,isMicroservizio)/] + +[comment]PROPERTIES[/comment] +[consoleMessage(getInfoSeverity(), 'ApplicationResourcesGeneration')/] +[genApplicationResources()/] + +[comment]MAIL[/comment] +[genMailFiles(aModel)/] + +[comment]SECURITY[/comment] +[genPermissionFile(aModel) /] +[genSQLPermissionsScript(aModel)/] + +[comment]Static Resources[/comment] +[genMainStaticResources()/] +[/template] + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainStaticResources.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainStaticResources.mtl new file mode 100644 index 0000000..9bfba1a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/mainStaticResources.mtl @@ -0,0 +1,24 @@ +[comment encoding = UTF-8 /] +[module mainStaticResources('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::mvnWrapper/] +[import it::micegroup::voila2::cartridge::library::h2/] + +[template public genMainStaticResources(oclAny: OclAny)] +[genMvnWrapper()/] +[genH2(antFilterList(), tokenValuePairs())/] +[/template] + + +[template private antFilterList(dummy : OclAny)] +['SpringFoxConfig.java,.h2.server.properties'/] +[/template] + +[template private tokenValuePairs(dummy : OclAny)] +['PACKAGE=package ' + getGenericPackage()/].utilities; +[',APPNAME=' + getArtifact()/] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/msWeb.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/msWeb.mtl new file mode 100644 index 0000000..72b0bb3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/msWeb.mtl @@ -0,0 +1,53 @@ +[module msWeb('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::db::genMsDBScript/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::globalExceptionHandler/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::mapperConfig/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::applicationYML/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::msInterceptor/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::msProperties/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::msConfig/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::liquibaseConfigurationBean/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::customSpringLiquibase/] + +[template public genWebModuleContent(aModel : Model)] +[genAdvicesContent()/] +[genConfigContent(aModel)/] +[genMsWebApplicationYML(aModel)/] +[genMsWebResourcesContent()/] +[genDBScript()/] +[genMsInterceptor(aModel)/] +[genMsConfig(aModel)/] +[genMsProperties()/] +[/template] + +[template public genAdvicesContent(oclAny : OclAny)] + [genGlobalExceptionHandler()/] +[/template] + +[template public genConfigContent(aModel : Model)] + [genMapperConfig(aModel)/] + [genLiquibaseConfigurationBean()/] + [genCustomSpringLiquibase()/] +[comment] [genSecurityConfig(aModel)/][/comment] +[/template] + + +[template public genMsWebResourcesContent(oclany : OclAny)] +[comment]COPY FOLDER PER LA GENERAZIONE DEL CONTENUTO DELLA CARTELLA RESOURCES[/comment] +[copyFolder('/resources/msWebResources', getWebResourceFolderName(), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[/template] + + + + + + + + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomCoreModule.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomCoreModule.mtl new file mode 100644 index 0000000..fae2936 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomCoreModule.mtl @@ -0,0 +1,49 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom Core Module XML Template + +@author Vittorio Niespolo + +[/comment] + + +[module pomCoreModule('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::pomUtils/] + +[template public genPomCoreModule(isMs : Boolean) post(writeAndFormat(getCorePomFileName()))] + + + 4.0.0 + + + [getCoreModuleName()/] + [getCoreModuleNaturalLangName()/] + [getUrl()/] + + + [genParentTag()/] + + jar + + + + [if(isMs)._not()] + [genVoila2RuntimeCoreDependency()/] + [genVoila2RuntimeMailCoreDependency()/] + [genVoila2RuntimeBusinessIntelligenceCoreDependency()/] + [else] + [genJPAModelDependency()/] + [genCoreLibsDependency()/] + [/if] + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomGeneration.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomGeneration.mtl new file mode 100644 index 0000000..6b25534 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomGeneration.mtl @@ -0,0 +1,11 @@ +[module pomGeneration('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::springjpa::templates::pom::pomCoreModule/] +[import it::micegroup::voila2::cartridge::springjpa::templates::pom::pomImplModule/] +[import it::micegroup::voila2::cartridge::springjpa::templates::pom::pomWebModule/] + +[template public genModulesPoms(aModel : Model , isMs : Boolean)] +[genPomCoreModule(isMs)/] +[genPomWebModule(isMs)/] +[genPomImplModule(isMs)/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomImplModule.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomImplModule.mtl new file mode 100644 index 0000000..ee535c2 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomImplModule.mtl @@ -0,0 +1,46 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom Impl Module XML Template + +@author Vittorio Niespolo + +[/comment] + +[module pomImplModule('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] + +[template public genPomImplModule(isMs : Boolean) post(writeAndFormat(getImplPomFileName()))] + + + 4.0.0 + + + [getImplModuleName()/] + [getImplModuleNaturalLangName()/] + [getUrl()/] + + + [genParentTag()/] + + jar + + + + [genCoreDependency()/] + [if(isMs)._not()] + [genVoila2RuntimeImplDependency()/] + [genVoila2RuntimeMailImplDependency()/] + [genVoila2RuntimeBusinessIntelligenceImplDependency()/] + [/if] + [genImplLibsDependency()/] + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomParentModule.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomParentModule.mtl new file mode 100644 index 0000000..3b694c3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomParentModule.mtl @@ -0,0 +1,74 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom Parent Module XML Template + +@author Vittorio Niespolo + +[/comment] + +[module pomParentModule('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] + +[template public genPomParentModule(oclAny : OclAny) post(writeAndFormat(getParentPomFileName()))] + + + 4.0.0 + + + + org.springframework.boot + spring-boot-starter-parent + 2.1.4.RELEASE + + + + + [genParentCompleteInfo()/] + pom + + + + + modules/[getModelModuleName()/] + modules/[getCoreModuleName()/] + modules/[getImplModuleName()/] + modules/[getWebModuleName()/] + + + + + 1.8 + 1.1-SNAPSHOT + true + ISO-8859-1 + + 0.9.1 + 1.8 + 1.8 + 1.0.10.RELEASE + 2.3.5.RELEASE + UTF-8 + UTF-8 + UTF-8 + + + + + + javax.servlet + javax.servlet-api + 4.0.1 + + + + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomWebModule.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomWebModule.mtl new file mode 100644 index 0000000..942ce62 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/pom/pomWebModule.mtl @@ -0,0 +1,118 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom for Web Module XML Template + +@author Vittorio Niespolo + +[/comment] + +[module pomWebModule('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::pomUtils/] + +[template public genPomWebModule(isMs : Boolean) post(writeAndFormat(getWebPomFileName()))] + + + 4.0.0 + + + [getWebModuleName()/] + [getWebModuleNaturalLangName()/] + [getUrl()/] + + + [genParentTag()/] + + [if(isMs)._not()] + war + [/if] + + + + [genImplDependency()/] + [if(isMs)._not()] +[comment] [genVoila2RuntimeAttachmentWebDependency()/] [/comment] + [genTomcatWebDependency()/] + [genJasperReportsFontWebDependency()/] + [else] + [genLibsWebDependency()/] + [genH2Dependency()/] + [genLiquidBaseDependency()/] + [getSpringHateoasDependency()/] + [getSpringActuatorDependency()/] + [getJMXMicrometerDependency()/] + [getPrometheusMicrometerDependency()/] + [/if] + + + + + spring-boot:run + [getArtifact()/] + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.5.RELEASE + + [getGenericPackage()/].[getMainClassNameAsMs()/] + + + + + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 2.6 + + false + + + + + + + + + dev + + true + + + + com.h2database + h2 + + + + + dev + + + + prod + + + prod + + + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/security/permission.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/security/permission.mtl new file mode 100644 index 0000000..895559b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/security/permission.mtl @@ -0,0 +1,40 @@ +[module permission('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] + + +[template public genPermissionFile(aModel: Model) post (writeAndFormat(getPermissionFileName())) ] +package [getSecurityPackage()/]; + +import org.springframework.stereotype.Component; + +@Component("permissionHolder") +public final class Permission { + [for(aClass : Class | aModel.getEntities())] + /// [getEntityClassName(aClass)/] + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_PAGINATED = [getPortNumber()/][i/]00; + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_BY_ID = [getPortNumber()/][i/]01; + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_CREATE = [getPortNumber()/][i/]02; + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_UPDATE = [getPortNumber()/][i/]03; + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_DELETE = [getPortNumber()/][i/]04; + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_PDF_REPORT = [getPortNumber()/][i/]05; + + [genParentPermission(aClass, i, 5)/] + +[comment][for(parentAss: Association | getParentAssociations(aClass))] + public static final int [camelToUnderscore(getEntityClassName(aClass)).toUpperCase()/]_FIND_BY_[camelToUnderscore(aClass.getParentPropertyName(parentAss)).toUpperCase()/] = [getPortNumber()/][i/]05; + [/for][/comment] + [/for] +} + +[/template] + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/security/sqlPermissionsScript.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/security/sqlPermissionsScript.mtl new file mode 100644 index 0000000..bd25a21 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/security/sqlPermissionsScript.mtl @@ -0,0 +1,93 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom Core Module XML Template + +@author Vittorio Niespolo + +[/comment] + + +[module sqlPermissionsScript('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::pomUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] + +[template public genSQLPermissionsScript(aModel: Model) post (writeAndFormat(getPermissionsFileName()))] +-- phpMyAdmin SQL Dump +-- version 5.1.1 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1 +-- Creato il: Lug 26, 2021 alle 11:56 +-- Versione del server: 10.4.19-MariaDB +-- Versione PHP: 8.0.7 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `keycloak` +-- +USE keycloak; +-- -------------------------------------------------------- + +-- +-- Dump dei dati per la tabella `keycloak_role` +-- + +[for(aClass : Class | aModel.getEntities())] +INSERT INTO `keycloak_role` (`ID`, `CLIENT_REALM_CONSTRAINT`, `CLIENT_ROLE`, `DESCRIPTION`, `NAME`, `REALM_ID`, `CLIENT`, `REALM`) VALUES +('[getPortNumber()/][i/]00', '[getRootArtifactId()/]', b'0', NULL, '[getPortNumber()/][i/]00', '[getRootArtifactId()/]', NULL, NULL), +('[getPortNumber()/][i/]01', '[getRootArtifactId()/]', b'0', NULL, '[getPortNumber()/][i/]01', '[getRootArtifactId()/]', NULL, NULL), +('[getPortNumber()/][i/]02', '[getRootArtifactId()/]', b'0', NULL, '[getPortNumber()/][i/]02', '[getRootArtifactId()/]', NULL, NULL), +('[getPortNumber()/][i/]03', '[getRootArtifactId()/]', b'0', NULL, '[getPortNumber()/][i/]03', '[getRootArtifactId()/]', NULL, NULL), +('[getPortNumber()/][i/]04', '[getRootArtifactId()/]', b'0', NULL, '[getPortNumber()/][i/]04', '[getRootArtifactId()/]', NULL, NULL), +('[getPortNumber()/][i/]05', '[getRootArtifactId()/]', b'0', NULL, '[getPortNumber()/][i/]05', '[getRootArtifactId()/]', NULL, NULL); + +INSERT INTO `group_role_mapping` (`ROLE_ID`, `GROUP_ID`) VALUES +('[getPortNumber()/][i/]00', 'a0e054dc-ff85-4c6a-8c09-56c651ce1d2a'), +('[getPortNumber()/][i/]01', 'a0e054dc-ff85-4c6a-8c09-56c651ce1d2a'), +('[getPortNumber()/][i/]02', 'a0e054dc-ff85-4c6a-8c09-56c651ce1d2a'), +('[getPortNumber()/][i/]03', 'a0e054dc-ff85-4c6a-8c09-56c651ce1d2a'), +('[getPortNumber()/][i/]04', 'a0e054dc-ff85-4c6a-8c09-56c651ce1d2a'), +('[getPortNumber()/][i/]05', 'a0e054dc-ff85-4c6a-8c09-56c651ce1d2a'); +[genParentPermission(aClass, i, 5)/] +[/for] + +COMMIT; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +[/template] + +[template public genParentPermission(aClass : Class, index: Integer, offset: Integer)] +[for(parentAss: Association | getParentAssociations(aClass))] +INSERT INTO `keycloak_role` (`ID`, `CLIENT_REALM_CONSTRAINT`, `CLIENT_ROLE`, `DESCRIPTION`, `NAME`, `REALM_ID`, `CLIENT`, `REALM`) VALUES +('[getPortNumber()/][index/]0[offset + i/]', '[getRootArtifactId()/]', b'0', NULL, '[getPortNumber()/][index/]0[offset + i/]', '[getRootArtifactId()/]', NULL, NULL); + +INSERT INTO `group_role_mapping` (`ROLE_ID`, `GROUP_ID`) VALUES ('[getPortNumber()/][index/]0[offset + i/]', 'a0e054dc-ff85-4c6a-8c09-56c651ce1d2a'); + +[/for] +[for(childAss : Association | getChildAssociations(aClass))] +INSERT INTO `keycloak_role` (`ID`, `CLIENT_REALM_CONSTRAINT`, `CLIENT_ROLE`, `DESCRIPTION`, `NAME`, `REALM_ID`, `CLIENT`, `REALM`) VALUES +('[getPortNumber()/][index/]0[offset + aClass.getParentAssociations()->size()+ i/]', '[getRootArtifactId()/]', b'0', NULL, '[getPortNumber()/][index/]0[offset + aClass.getParentAssociations()->size()+ i/]', '[getRootArtifactId()/]', NULL, NULL); + +INSERT INTO `group_role_mapping` (`ROLE_ID`, `GROUP_ID`) VALUES ('[getPortNumber()/][index/]0[offset + aClass.getParentAssociations()->size()+ i/]', 'a0e054dc-ff85-4c6a-8c09-56c651ce1d2a'); + +[/for] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/settings.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/settings.mtl new file mode 100644 index 0000000..0900847 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/settings.mtl @@ -0,0 +1,43 @@ +[module settings('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + + +[template public genMsSettings(oclAny : OclAny)] +[genRootSettings()/] +[genCoreSettings()/] +[genImplSettings()/] +[genWebSettings()/] +[/template] + +[template public genRootSettings(oclAny:OclAny)] +[copyFolder('resources/settings/msSettings/.settings',getRootDotSettingsFolderName(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] +[/template] + +[template public genCoreSettings(oclAny:OclAny)] +[copyFolder('resources/settings/msSettings/.settings',getCoreDotSettingsFolderName(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] +[/template] + +[template public genImplSettings(oclAny:OclAny)] +[copyFolder('resources/settings/msSettings/.settings',getImplDotSettingsFolderName(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] +[/template] + +[template public genWebSettings(oclAny:OclAny)] +[copyFolder('resources/settings/msSettings/.settings',getWebDotSettingsFolderName(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] +[/template] + + + +[template private antFilterList(dummy : OclAny)] +['*.json,*.project,*.properties,*.oaw,*.MF,*.uml,*.notation,*.xml,*.gitignore,*.mtl,*.java,*.classpath'/] +[/template] + +[template private tokenValuePairs(dummy : OclAny)] +['PROJECT_ID=' + getArtifact()/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/utilsGeneration.mtl b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/utilsGeneration.mtl new file mode 100644 index 0000000..b73d785 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springjpa/src/it/micegroup/voila2/cartridge/springjpa/templates/utilsGeneration.mtl @@ -0,0 +1,14 @@ +[module utilsGeneration('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::constants/] +[import it::micegroup::voila2::cartridge::library::springboot::cacheConfig /] +[import it::micegroup::voila2::cartridge::library::springboot::auditable/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] + +[template public genApplicationUtils(aModel: Model)] +[genConstants(false)/] +[genAuditable(false)/] +[if(isCachingEnabled(aModel))] +[genCacheConfig(false)/] +[/if] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/.classpath b/plugin-version/it.micegroup.voila2.cartridge.springmongo/.classpath new file mode 100644 index 0000000..235668a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/.project b/plugin-version/it.micegroup.voila2.cartridge.springmongo/.project new file mode 100644 index 0000000..c467913 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/.project @@ -0,0 +1,50 @@ + + + it.micegroup.voila2.cartridge.springmongo + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.acceleo.ide.ui.acceleoBuilder + + + compilation.kind + compilation.absolute.path + + + compliance + pragmatic + + + resource.kind + xmi + + + trim-position + false + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.acceleo.ide.ui.acceleoNature + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/.settings/org.eclipse.jdt.core.prefs b/plugin-version/it.micegroup.voila2.cartridge.springmongo/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..c05cfdd --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=15 +org.eclipse.jdt.core.compiler.compliance=15 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=15 diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/META-INF/MANIFEST.MF b/plugin-version/it.micegroup.voila2.cartridge.springmongo/META-INF/MANIFEST.MF new file mode 100644 index 0000000..e4606fe --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: SpringBoot-Mongo +Bundle-SymbolicName: it.micegroup.voila2.cartridge.springmongo;singleton:=true +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: it.micegroup.voila2.cartridge.springmongo +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: it.micegroup.voila2.cartridge.springmongo.templates +Require-Bundle: org.eclipse.emf.common;bundle-version="2.22.0", + org.eclipse.emf.transaction;bundle-version="1.9.1", + org.eclipse.uml2.uml;bundle-version="5.5.0", + org.apache.log4j;bundle-version="1.2.15", + org.apache.commons.lang3;bundle-version="3.1.0", + org.apache.commons.io;bundle-version="2.6.0", + org.eclipse.ui;bundle-version="3.118.100", + org.eclipse.ui.console;bundle-version="3.10.0", + org.eclipse.emf.mwe.core;bundle-version="1.6.0", + org.eclipse.jdt.core;bundle-version="3.24.0", + org.eclipse.jface.text;bundle-version="3.16.500", + org.eclipse.uml2.uml;visibility:=reexport, + it.micegroup.voila2.cartridge.library, + org.eclipse.acceleo.engine;bundle-version="3.7.11";visibility:=reexport +Bundle-ActivationPolicy: lazy +Bundle-Activator: it.micegroup.voila2.cartridge.springmongo.Activator diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/build.properties b/plugin-version/it.micegroup.voila2.cartridge.springmongo/build.properties new file mode 100644 index 0000000..34d2e4d --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/Activator.java b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/Activator.java new file mode 100644 index 0000000..faf8834 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/Activator.java @@ -0,0 +1,67 @@ + +/******************************************************************************* + * Copyright (c) 2008, 2011 Obeo. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package it.micegroup.voila2.cartridge.springmongo; + +import org.eclipse.core.runtime.Plugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle. + */ +public class Activator extends Plugin { + + /** + * The plug-in ID. + */ + public static final String PLUGIN_ID = "it.micegroup.voila2.cartridge.springmongo"; + + /** + * The shared instance. + */ + private static Activator plugin; + + /** + * The constructor. + */ + public Activator() { + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance. + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/applicationResources.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/applicationResources.mtl new file mode 100644 index 0000000..e81709c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/applicationResources.mtl @@ -0,0 +1,101 @@ +[comment encoding = UTF-8 /] +[module applicationResources('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] + +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] + +[import it::micegroup::voila2::cartridge::library::properties /] + +[template public genApplicationResources(aModel : Model)] +[genApplicationResourcesContent(aModel, '')/] +[genApplicationResourcesContent(aModel, '_it')/] +[genApplicationResourcesContent(aModel, '_en')/] +[/template] + +[template public genApplicationResourcesContent(aModel : Model, lang : String){classes : Collection(OclAny) = aModel.getEntities();}] +[file(getApplicationResourcesFileName(lang), false, 'UTF-8')] +## Login +login.login=Accedi +login.button=Accedi +login.validation.username=Username è obbligatorio +login.validation.password=La password è obbligatoria +login.label=Effettua l'accesso + +## Pagination +pagination.Showing=Mostra +pagination.ElementsOf=Elementi di +pagination.All=Tutti" + +## Buttons +buttons.new=Nuovo +buttons.save=Salva +buttons.edit=Modifica +buttons.delete=Cancella +buttons.goBack=Indietro +buttons.search=Cerca +buttons.next=Avanti +buttons.export.pdf=Crea PDF + +## Panel +[for(classe : Class | classes)] +[classe.getEntityClassName().toLowerFirst()/].panelTitle.new=Inserisci [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].panelTitle.edit=Modifica [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].panelTitle.view=Dettaglio [splitCamel(classe.getEntityClassName())/] +[classe.getEntityClassName().toLowerFirst()/].panelTitle.delete=Cancella [splitCamel(classe.getEntityClassName())/] +[/for] + +## Detail +[for(classe : Class | classes)] +[classe.getEntityClassName().toLowerFirst()/].label=[classe.getEntityLabel()/] +[classe.getEntityClassName().toLowerFirst()/].tooltip=[classe.getEntityTooltip()/] +[classe.getEntityClassName().toLowerFirst()/].insert=Inserisci [classe.getEntityClassName()/] +[classe.getEntityClassName().toLowerFirst()/].detail=Dettaglio [classe.getEntityClassName()/] +[classe.getEntityClassName().toLowerFirst()/].edit=Modifica [classe.getEntityClassName()/] +[classe.getEntityClassName().toLowerFirst()/].delete=Cancella [classe.getEntityClassName()/] +[classe.getEntityClassName().toLowerFirst()/].objectTitle=[classe.getEntityClassName()/] +[classe.getEntityClassName().toLowerFirst()/].objectKey=ID [classe.getEntityClassName()/] +[classe.getEntityClassName().toLowerFirst()/].jasperReports.title=[classe.getEntityClassName()/] Report +[classe.getEntityClassName().toLowerFirst()/].jasperReports.subTitle=[getProjectName().toUpperFirst()/], v[getVersion()/] +[classe.getEntityClassName().toLowerFirst()/].jasperReports.tableHeader=Dettaglio [classe.getEntityClassName()/] +[for(attributo : Property | classe.getCompleteAttributeList()) separator(',\n')] +[if(attributo.isBoolean())] +[classe.getEntityClassName().toLowerFirst()/].[attributo.name/].true=Si +[classe.getEntityClassName().toLowerFirst()/].[attributo.name/].false=No +[/if] +[classe.getEntityClassName().toLowerFirst()/].[attributo.name/]=[attributo.getAttributeLabel()/] +[classe.getEntityClassName().toLowerFirst()/].tooltip.[attributo.name/]=[attributo.getTooltip()/] +[classe.getEntityClassName().toLowerFirst()/].validation.required.[attributo.name/]=[attributo.getNaturalLanguageName()/] è obbligatorio"[/for][if(classe.hasParents())][/if] +[if(classe.hasParents())] +[for(parentAss: Association | classe.getParentAssociations()) separator(',\n') after ('\n')] +[classe.getEntityClassName().toLowerFirst()/].[classe.getTheParentPropertyName(parentAss)/]=[splitCamel(classe.getParentClass(parentAss).getEntityClassName())/][if(not classe.getParentEnd(parentAss).oclIsUndefined() and not classe.getParentEnd(parentAss).name.oclIsUndefined())] [splitCamel(classe.getParentEnd(parentAss).name)/][/if] +[classe.getEntityClassName().toLowerFirst()/].validation.required.[classe.getTheParentPropertyName(parentAss)/]=[splitCamel(classe.getParentClass(parentAss).getEntityClassName())/] è obbligatorio[/for] +[/if] +[/for] + +## App +[for(classe : Class | classes)] +app.[classe.getEntityClassName().toLowerFirst()/].new=Inserisci [splitCamel(classe.getEntityClassName())/] +app.[classe.getEntityClassName().toLowerFirst()/].list=Lista [splitCamel(classe.getEntityClassName())/] +app.[classe.getEntityClassName().toLowerFirst()/].edit=Modifica [splitCamel(classe.getEntityClassName())/] +app.[classe.getEntityClassName().toLowerFirst()/].view=Dettaglio [splitCamel(classe.getEntityClassName())/] +app.[classe.getEntityClassName().toLowerFirst()/].delete=Cancella [splitCamel(classe.getEntityClassName())/] +[/for] + +## JasperReports +jasperReports.logo=mice.png +jasperReports.date.format=dd/MM/yyyy +jasperReports.datetime.format=dd/MM/yyyy HH:mm:ss +jasperReports.pageNumber.label=Pag. +jasperReports.pageNumber.separator=di +jasperReports.footer.text=Copyright \u00a9 2020 MICE srl. Tutti i diritti riservati. + +[/file] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/cacheConfig.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/cacheConfig.mtl new file mode 100644 index 0000000..327fe67 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/cacheConfig.mtl @@ -0,0 +1,45 @@ +[comment encoding = UTF-8 /] + +[comment] + +Controller Java Class Template + +@author Vittorio Niespolo + +[/comment] + +[module cacheConfig('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] + +[template public genCacheConfig(isMs : Boolean) post(writeAndFormat(isMs.getCacheConfigFileName()))] +[if(isMs)] +package [getLibsUtilitiesPackage()/]; +[else] +package [getUtilitiesPackage() /]; +[/if] +import java.util.Arrays; + +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.concurrent.ConcurrentMapCache; +import org.springframework.cache.support.SimpleCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCaching +public class CacheConfig { + + @Bean + public CacheManager cacheManager() { + SimpleCacheManager cacheManager = new SimpleCacheManager(); + cacheManager.setCaches(Arrays.asList( + new ConcurrentMapCache("PrivilegePerRole") + )); + return cacheManager; + } +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/constants.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/constants.mtl new file mode 100644 index 0000000..bdc3ffb --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/constants.mtl @@ -0,0 +1,57 @@ +[comment encoding = UTF-8 /] + +[comment] + +Controller Java Class Template + +@author Vittorio Niespolo + +[/comment] + +[module constants('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] + +[template public genConstants(isMs : Boolean) post(writeAndFormat(isMs.getConstantsFileName()))] +[if(isMs)] +package [getLibsUtilitiesPackage()/]; + +public class Constants{ + private Constants() { + throw new IllegalStateException("Utility class"); + } + public static final String ROWIDFIELDDELIMITER = "~"; + public static final String CORRELATION_KEY = "X-Correlation-ID"; +} +[else] +package [getUtilitiesPackage() /]; + + +public class Constants{ + private Constants() { + throw new IllegalStateException("Utility class"); + } + + public static final String ROWIDFIELDDELIMITER = "_727_"; + private static final String title1="\n\nVVVVVVVV VVVVVVVV iiii llllll a :: a 222222222222222\n"; + private static final String title2="V::::::V V::::::V i::::i l::::l a :: a 2:::::::::::::::22\n"; + private static final String title3="V::::::V V::::::V iiii l::::l a :: a 2::::::222222:::::2\n"; + private static final String title4="V::::::V V::::::V l::::l 2222222 2:::::2\n"; + private static final String title5=" V:::::V V:::::V ooooooooooo iiiiiii l::::l aaaaaaaaaaaaa 2:::::2\n"; + private static final String title6=" V:::::V V:::::Voo:::::::::::oo i:::::i l::::l a::::::::::::a 2:::::2\n"; + private static final String title7=" V:::::V V:::::Vo:::::::::::::::o i::::i l::::l aaaaaaaaa:::::a 2222::::2\n"; + private static final String title8=" V:::::V V:::::V o:::::ooooo:::::o i::::i l::::l a::::a 22222::::::22\n"; + private static final String title9=" V:::::V V:::::V o::::o o::::o i::::i l::::l aaaaaaa:::::a 22::::::::222\n"; + private static final String title10=" V:::::V V:::::V o::::o o::::o i::::i l::::l aa::::::::::::a 2:::::22222\n"; + private static final String title11=" V:::::V:::::V o::::o o::::o i::::i l::::l a::::aaaa::::::a 2:::::2\n"; + private static final String title12=" V:::::::::V o::::o o::::o i::::i l::::l a::::a a:::::a 2:::::2\n"; + private static final String title13=" V:::::::V o:::::ooooo:::::oi::::::il::::::la::::a a:::::a 2:::::2 222222 M\n"; + private static final String title14=" V:::::V o:::::::::::::::oi::::::il::::::la:::::aaaa::::::a 2::::::2222222:::::2 I\n"; + private static final String title15=" V:::V oo:::::::::::oo i::::::il::::::l a::::::::::aa:::a2::::::::::::::::::2 C\n"; + private static final String title16=" VVV ooooooooooo iiiiiiiillllllll aaaaaaaaaa aaaa22222222222222222222 E\n\n"; + public static final String LOG_TITLE= title1+title2+title3+title4+title5+title6+title7+title8+title9+title10+title11+title12+title13+title14+title15+title16; +} +[/if] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/controller.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/controller.mtl new file mode 100644 index 0000000..eed32dd --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/controller.mtl @@ -0,0 +1,97 @@ +[comment encoding = UTF-8 /] + +[comment] + +Controller Java Class Template + +@author Simone Punzo + +[/comment] + + +[module controller('http://www.eclipse.org/uml2/5.0.0/UML')] + + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] +[import it::micegroup::voila2::cartridge::library::microservice::controllerMsUtils/] +[import it::micegroup::voila2::cartridge::springmongo::templates::utilities::controllerUtilsMongo/] + +[template public genControllerFileMs(aClass : Class, aModel: Model) post(writeAndFormat(aClass.getControllerFileName()))] +package [getControllerPackage(aClass)/]; + +[genControllerImportsAsMs(aClass)/] + +@RestController +@RequestMapping(value = "/[camelToDash(aClass.name)/]", produces = MediaType.APPLICATION_JSON_VALUE) +public class [getControllerClassName(aClass)/] extends BaseController>{ + + /// ENTITY SERVICE + + @Autowired + private [getServiceClassName(aClass)/] [getServiceClassName(aClass).toString().toLowerFirst()/]; + + @Autowired + private [getAssemblerClassName(aClass)/] [getAssemblerClassName(aClass).toString().toLowerFirst()/]; + + @Autowired + private PagedResourcesAssembler<[getEntityClassName(aClass)/]> pagedResourcesAssembler; + + @Autowired + private ModelMapper modelMapper; + + // CONSTRUCTOR + [genConstructor(aClass)/] + + // CHILD SERVICES + [genChildServices(aClass)/] + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger([aClass.getControllerClassName()/].class); + [comment]private static final String ENTITY_NAME = "[aClass.getEntityClassName().toLowerFirst()/]";[/comment] + + // API + + [genGetAllPaginated(aClass, aModel)/] + + [comment][genGetByCriteria(aClass)/][/comment] + + [genGetById(aClass, aModel)/] + + [genUpdate(aClass, aModel)/] + + [genCreate(aClass, aModel)/] + + [genDeleteByID(aClass, aModel)/] + +[comment] [genMassDelete(aClass)/] + + [genMassUpdate(aClass)/] + + [genMassInsert(aClass)/][/comment] + + [genGetByParentId(aClass, aModel)/] + +[comment] [if(isInPrivilegePerRoleRole(aClass))] + [genGetPrivilegesByRoles()/] + [/if][/comment] + + [genPrintPdfReport(aClass, aModel)/] + + [genGetChildByObjectKey(aClass, aModel)/] + +[comment] [genFindOtherParentByParent(aClass)/][/comment] + + [genToResponseEntity(aClass)/] + + [genToResponseEntityPaged(aClass)/] + + [genDtoToEntity(aClass)/] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/criteria.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/criteria.mtl new file mode 100644 index 0000000..bfad84f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/criteria.mtl @@ -0,0 +1,61 @@ +[comment encoding = UTF-8 /] + +[comment] + +Criteria Java File Template + +@author Vittorio Niespolo + +[/comment] + +[module criteria('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::generalUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] + +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::filterUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] + +[template public genCriteriaFile(aClass : Class,isMs : Boolean) post(writeAndFormat(aClass.getCriteriaFileName()))] +package [getCriteriaPackage(aClass)/]; + +[genCriteriaImports(aClass)/] + +public class [getCriteriaClassName(aClass)/][if(aClass.hasGeneralClass())] extends [aClass.getGeneralClass().getCriteriaClassName()/][/if] implements Serializable { + + // SERIAL UID + [genSerialUID(aClass)/] + + // FILTER ATTRIBUTES + [genFilterProperties(aClass)/] + + // FILTER FATHER + [genFilterPropertiesFather(aClass)/] + + [if(isMs)] + //FILTER IMPORTED FATHER + [genFilterPropertiesImportedFather(aClass)/] + [/if] + // GETTER/SETTER + [genFilterGetterSetter(aClass)/] + + // GETTER/SETTER FATHER + [genFilterFatherGetterSetter(aClass)/] + + [if(isMs)] + //GETTER/SETTER IMPORTED FATHER + [genFilterImportedFatherGetterSetter(aClass)/] + [/if] + + // GEN COMPOSITE FILTER + [genFatherCompositeFilter(aClass)/] + +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/entityDto.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/entityDto.mtl new file mode 100644 index 0000000..f241c4f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/entityDto.mtl @@ -0,0 +1,31 @@ +[module entityDto('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::dtoUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] + + +[template public genDtoClassSpecificFile(aClass : Class, aModel : Model) post(writeAndFormat(aClass.getEntityDtoFileName()))] +package [getEntityDtoPackage()/]; + +[genEntityDtoImports(aClass)/] +[genImportsForPropertyDto(aClass)/] +[genBaseDtoImport()/] + +@Data +@EqualsAndHashCode(callSuper = false) +public class [getEntityDtoClassName(aClass)/] extends BaseDto { + + [genSerialUID(aClass)/] + + [genDtoAttributes(aClass)/] + [genAttributesFromParent(aClass)/] + [genChildrenDto(aClass)/] +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/entityWriteDto.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/entityWriteDto.mtl new file mode 100644 index 0000000..8e7b634 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/entityWriteDto.mtl @@ -0,0 +1,23 @@ +[module entityWriteDto('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::dtoUtils/] + +[template public genDtoEntityWriteFile(aClass : Class , aModel : Model) post(writeAndFormat(aClass.getDtoWriteFileName()))] +package [getEntityDtoPackage()/]; + +[genEntityDtoImports()/] +[genImportsForPropertyDto(aClass)/] +[genGenericDtoImport()/] + +@Data +@EqualsAndHashCode(callSuper = false) +public class [getEntityWriteDtoClassName(aClass)/] extends GenericDto{ + + [genWriteDtoAttributes(aClass)/] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/mailWriteDto.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/mailWriteDto.mtl new file mode 100644 index 0000000..b19c423 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/dataTransfer/mailWriteDto.mtl @@ -0,0 +1,40 @@ +[module mailWriteDto('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] + + +[template public genMailWriteDto(aModel : Model) post(writeAndFormat(getMailWriteDtoFileName()))] +package [getEntityDtoPackage()/]; + +[genMailRequestDtoImports()/] + +@Data +@EqualsAndHashCode(callSuper = false) +public class MailRequestDto { + + private static final long serialVersionUID = 260627236L; + + @NotNull + @JsonProperty("template") + private String idTemplate; + + @JsonProperty("objectMap") + private Map objectMap; + + @JsonProperty("allegati") + private Map allegati; + + @Override + public String toString() { + return "MailDto{" + + "idTemplate=" + idTemplate + + ",allegati =" + allegati + + '}'; + } + + +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/entity.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/entity.mtl new file mode 100644 index 0000000..b249084 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/entity.mtl @@ -0,0 +1,148 @@ +[comment encoding = UTF-8 /] + +[comment] + +Entity Java File Template + +@author Vittorio Niespolo + +[/comment] + +[module entity('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] + +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] + +[import it::micegroup::voila2::cartridge::springmongo::templates::utilities::entityUtilsMongo /] +[import it::micegroup::voila2::cartridge::library::springboot::entityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::entityKey/] + + +[template public genEntityFile(aClass : Class, aModel: Model, isMainMs: Boolean) post(writeAndFormat(aClass.getEntityFileName()))] +package [getEntityPackage(aClass)/]; + +[genEntityImports(aClass)/] + +[if(aClass.hasDefinition())] +/** +[getEntityDefinition(aClass)/] +*/ +[/if] +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +[comment]@AllArgsConstructor[/comment] +@Document(collection = "[getPhysicalTableName(aClass)/]") +[if(isClassExtended(aClass))] +@Inheritance(strategy = InheritanceType.JOINED) +[/if] +public class [getEntityClassName(aClass)/] extends +[if(aClass.hasGeneralClass())] [aClass.getGeneralClass().getEntityClassName()/] +[elseif(aClass.isAuditable())] Auditable +[else]BaseEntity +[/if] +implements Serializable{ + + [comment] Generate serial versione uid as Serializable class resquests [/comment] + [genSerialUID(aClass)/] + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger([aClass.getEntityClassName()/].class); + + // ATTRIBUTES + [genAttributesMongo(aClass)/] + + // IMPORTED PARENTS + [genImportedParentProperty(aClass)/] + + // CONSTRUCTORS + [genConstructor(aClass, isMainMs)/] + + // CHILDREN + [genChildCollections(aClass)/] + + // PARENTS + + [if(hasCompositeKey(aClass))._not()] + [genParentProperty(aClass)/] + [/if] + + // GETTER/SETTER + [genGetterSetter(aClass)/] + + [genImportedParentGetterSetter(aClass)/] + + // CHILD GETTER/SETTER + [genChildGetterSetter(aClass)/] + + /// ADD CHILD + [genAddChild(aClass)/] + + // PARENT GETTER/SETTER + [if(hasCompositeKey(aClass))._not()] + [genParentGetterSetter(aClass)/] + [else] + [comment]Se ha CK devi creare questi getter tramite la key[/comment] + [genCKParentGetterSetter(aClass)/] + [/if] + + // PARENT ID GETTER/SETTER + [if(hasCompositeKey(aClass))._not()] + + [genParentIdGetter(aClass)/] + [genParentIdSetter(aClass)/] + [/if] + + // PARENT OBJECT TITLE + + [genParentObjectTitleGetter(aClass)/] + + // PARENT OBJECT KEY + [for(a : Association | aClass.getParentAssociations())] + [genParentObjectKeyGetter(aClass, a, false, false)/] + [/for] + [for(a : Association | aClass.getParentAssociations())] + [genParentObjectKeySetter(aClass, a, false)/] + [/for] + + /// IMPORTED PARENT OBJECT KEY + [genImportedParentObjectKeyGetter(aClass)/] + [genImportedParentObjectKeySetter(aClass)/] + + // OPERATIONS + + [genOperations(aClass)/] + + // OBJECT KEY + + [genGetObjectKey(aClass)/] + [genSetObjectKey(aClass)/] + + // OBJECT TITLE + [genGetObjectTitle(aClass)/] + + [if(hasCompositeKey(aClass))] + + // COMPOSITE PRIMARY KEY + [genCompositeKeyProperty(aClass)/] + + // GETTER/SETTER CK + [genGetterByPropNameNType(getClassIdName(aClass), getClassIdType(aClass))/] + [genSetterByPropNameNType(getClassIdName(aClass), getClassIdType(aClass))/] + + // COMPOSITE KEY CLASS + [genCompositeKeyFile(aClass,aModel)/] + [/if] + + [genPrePersist(aClass, aModel)/] + [genPreUpdate(aClass, aModel)/] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/entityKey.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/entityKey.mtl new file mode 100644 index 0000000..8dd8b72 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/entityKey.mtl @@ -0,0 +1,42 @@ +[module entityKey('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::entityKeyUtils /] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] + + +[template public genCompositeKeyFile(aClass : Class , aModel : Model) post(writeAndFormat(aClass.getEntityCKFileName()))] +package [getEntityPackage(aClass)/]; + +[genEntityKeyImports(aClass)/] + +@Data +@Embeddable +@NoArgsConstructor +public class [getEntityCKClassName(aClass)/] implements Serializable { + + [genSerialUID(aClass)/] + + /// ATTRIBUTES + [genCKAttributes(aClass)/] + + /// GETTER/SETTER + [genCKGetterSetter(aClass)/] + + /// FIELD CONSTRUCTOR + [genCKConstructor(aClass)/] + + /// OF CONSTRUCTOR + [genOFConstructorForCK(aClass)/] + + [genCKEquals(aClass)/] + + [genCKHashCode(aClass)/] + + +} +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/modelAssembler.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/modelAssembler.mtl new file mode 100644 index 0000000..e2de8e2 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/modelAssembler.mtl @@ -0,0 +1,31 @@ +[module modelAssembler('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::modelAssemblerUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] + +[template public genAssemblerFile(aClass : Class) post(writeAndFormat(aClass.getAssemblerFileName()))] +package [getAssemblerPackage()/]; + +[genAssemblerImports(aClass)/] + +@Component +public class [getAssemblerClassName(aClass)/] extends BaseModelAssembler<[getEntityClassName(aClass)/] , [getDtoClassName(aClass)/],[aClass.getControllerClassName()/]> { + + + [genToModel(aClass)/] + + [genToCollectionModel(aClass)/] + + + + } + + +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/repository.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/repository.mtl new file mode 100644 index 0000000..be1a92e --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/repository.mtl @@ -0,0 +1,53 @@ +[comment encoding = UTF-8 /] + +[comment] + +Repository Java FileTemplate + +@author Vittorio Niespolo + +[/comment] + +[module repository('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] +[import it::micegroup::voila2::cartridge::springmongo::templates::utilities::repositoryUtilsMongo/] + +[template public genRepositoryFile(aClass : Class,isMs : Boolean) post(writeAndFormat(aClass.getRepositoryFileName()))] +package [getRepositoryPackage(aClass)/]; + +[genRepositoryImports(aClass)/] + +@Repository +@EnableMongoRepositories(basePackageClasses = [getRepositoryClassName(aClass)/].class) +public interface [getRepositoryClassName(aClass)/] extends MongoRepository<[getEntityClassName(aClass)/], [getClassIdType(aClass)/]>{ + + [genEntityGraph(aClass)/] + Optional<[aClass.getEntityClassName()/]> findBy[aClass.getClassIdName().toUpperFirst()/]([aClass.getClassIdType()/] id); + + [for (a : Association | aClass.getParentAssociations()) separator('\n')] + [genEntityGraph(aClass)/] + [if(aClass.hasCompositeKey())] + Page<[aClass.getEntityClassName()/]> findBy[aClass.getClassIdName().toUpperFirst()/][aClass.getTheParentPropertyName(a).toUpperFirst()/]([aClass.getParentClass(a).getEntityClassName()/] parentEntity, Pageable pageable); + [else] + Page<[aClass.getEntityClassName()/]> findBy[aClass.getTheParentPropertyName(a).toUpperFirst()/]([aClass.getParentClass(a).getEntityClassName()/] parentEntity, Pageable pageable); + [/if] + + [/for] + + void deleteByIdIn(Collection<[aClass.getClassIdType()/]> ids); +} +[/template] + +[template public genEntityGraph(aClass : Class)] +[if(aClass.hasParents())] +@EntityGraph(attributePaths = {[for (a2 : Association | aClass.getParentAssociations()) separator(', ')]"[if(aClass.hasCompositeKey())][aClass.getClassIdType().toLowerFirst()/].[/if][aClass.getTheParentPropertyName(a2)/]"[/for]}, type = EntityGraphType.FETCH) +[/if] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/resource.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/resource.mtl new file mode 100644 index 0000000..eca5c66 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/resource.mtl @@ -0,0 +1,55 @@ +[comment encoding = UTF-8 /] + +[comment] + +Resource for Java Entity File Template + +@author Vittorio Niespolo + +[/comment] + +[module resource('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] + + +[template public genResourceFile(aClass : Class) post(writeAndFormat(aClass.getResourceFileName()))] +package [getResourcePackage(aClass)/]; + +[genResourceImports(aClass)/] + +/** +* Resource class for [aClass.getEntityClassName()/] +*/ + +public class [aClass.getEntityClassName()/]Resource extends Resource<[aClass.getEntityClassName()/]>{ + + public [aClass.getEntityClassName()/]Resource([aClass.getEntityClassName()/] [aClass.getEntityClassName().toLowerFirst()/]) { + + super([aClass.getEntityClassName().toLowerFirst()/]); + + //SELF LINK + add( + [genSelfLink(aClass)/] + ); + [if(aClass.hasChilds())] + //CHILDS LINKS + add( + [genChildLinks(aClass)/] + ); + [/if] + [if(aClass.hasParents())] + //PARENTS LINKS + add( + [genParentLinks(aClass)/] + ); + [/if] + } +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/service.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/service.mtl new file mode 100644 index 0000000..e4923bb --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/service.mtl @@ -0,0 +1,61 @@ +[comment encoding = UTF-8 /] + +[comment] + +Service Java Class Template + +@author Vittorio Niespolo + +[/comment] + +[module service('http://www.eclipse.org/uml2/5.0.0/UML')/] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::common::idUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::common::associationUtils/] +[import it::micegroup::voila2::cartridge::springmongo::templates::utilities::serviceUtilsMongo/] + +[template public genServiceFile(aClass : Class,isMs : Boolean) post(writeAndFormat(aClass.getServiceFileName()))] +package [getServicePackage(aClass)/]; + +[genServiceImports(aClass)/] + + +public interface [aClass.getServiceClassName()/] extends BaseEntityServiceMongo<[aClass.getEntityClassName()/], [aClass.getClassIdType()/]>{ + + //PARENT-SPECIFIC SERVICES +[for(parentAss : Association | aClass.getParentAssociations())] + Page<[aClass.getEntityClassName()/]> findBy[aClass.getTheParentPropertyName(parentAss).toUpperFirst()/]([aClass.getParentClass(parentAss).getEntityClassName()/] parentEntity, Pageable pageable); +[/for] + + public byte['[]'/] printPdfReport(String objectKey) throws BusinessException; + + [genFindOtherParentByParentService(aClass)/] + + [if(isMs)] + [getEntityClassName(aClass)/] bulkUpdate([getEntityClassName(aClass)/] [getEntityClassName(aClass).toLowerFirst()/]); + [/if] + +} +[/template] + +[template public genFindOtherParentByParentService(aClass : Class){parentAssociations : Collection(OclAny) = aClass.getParentAssociations();}] +[if(parentAssociations -> size() > 1)] +[for(parentAss : Association | parentAssociations)] +[for(otherParentAss : Association | aClass.getParentAssociationsExcluding(parentAss))] + /** + * Return a list of [aClass.getParentClass(parentAss).getEntityClassName()/] from all [aClass.getEntityClassName()/] with given [getTheParentPropertyName(aClass, parentAss)/] + * + * @param [aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/] + * @param pageable + * @return list of [aClass.getParentClass(parentAss).getEntityClassName()/] from all [aClass.getEntityClassName()/] with given [getTheParentPropertyName(aClass, parentAss).toUpperFirst()/] + */ + Page<[aClass.getParentClass(parentAss).getEntityClassName()/]> find[aClass.getParentClass(parentAss).getEntityClassName()/]By[getTheParentPropertyName(aClass, otherParentAss).toUpperFirst()/]([aClass.getParentClass(otherParentAss).getEntityClassName()/] [aClass.getParentClass(otherParentAss).getEntityClassName().toLowerFirst()/], Pageable pageable); +[/for] +[/for] +[/if] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/serviceImpl.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/serviceImpl.mtl new file mode 100644 index 0000000..b448169 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entity/serviceImpl.mtl @@ -0,0 +1,96 @@ +[comment encoding = UTF-8 /] + +[comment] + +ServiceImpl Java Class Template + +@author Vittorio Niespolo + +[/comment] + +[module serviceImpl('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::serviceImplUtils/] +[import it::micegroup::voila2::cartridge::springmongo::templates::utilities::serviceImplUtilsMongo /] +[import it::micegroup::voila2::cartridge::library::springboot::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils /] + +[template public genServiceImplFile(aClass : Class, aModel : Model, isMs : Boolean) post(writeAndFormat(aClass.getServiceImplFileName()))] +package [getServicePackage(aClass)/]; + +[genServiceImplImports(aClass, aModel)/] + +@Service +@Transactional +public class [getServiceImplClassName(aClass)/] extends BaseServiceImpl implements [getServiceClassName(aClass)/] { + + @Autowired + [getRepositoryClassName(aClass)/] [getRepositoryClassName(aClass).toString().toLowerFirst()/]; + + @Autowired + [getFilterServiceClassName(aClass)/] filterService; + + [if(isInSecurityUserRole(aClass) or aClass.generalizeSecurityUserRole())] + @Autowired + PasswordEncoder passwordEncoder; + + @Autowired + RoleService roleService; + [/if] + //ENTITY SERVICE TO HANDLE SELF REF + [if(isMs)] + [for(childAss : Association | aClass.getChildAssociations())] + [if(isSelfRelation(childAss))] + @Autowired + [getServiceClassName(aClass)/] [getServiceClassName(aClass).toString().toLowerFirst()/]; + [/if] + [/for] + [/if] + + + // CHILD SERVICES + [genChildServices(aClass)/] + + @SuppressWarnings("unused") + private static final Logger LOGGER = LogManager.getLogger([aClass.getServiceImplClassName()/].class); + +[comment] [genFindAll(aClass)/][/comment] + + [genFindAllListed(aClass)/] + +[comment] [genFindByCriteriaPaged(aClass)/][/comment] + +[comment] [genFindByCriteria(aClass)/][/comment] + + [genFindById(aClass)/] + + [genExists(aClass, aModel)/] + + [genInsert(aClass, aModel)/] + + [genUpdate(aClass, aModel)/] + + [genDelete(aClass)/] + + [genDeleteById(aClass, aModel)/] + + [genDeleteByIdIn(aClass, aModel)/] + + [genFindByObjectKey(aClass,isMs)/] + + [genFindByParentId(aClass, aModel)/] + + [genPrintPdfReport(aClass, aModel)/] + + [genFindOtherParentByParentServiceImpl(aClass)/] + + [genBulkUpdate(aClass)/] +} +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entitySpecificFiles.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entitySpecificFiles.mtl new file mode 100644 index 0000000..7d4500f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/entitySpecificFiles.mtl @@ -0,0 +1,37 @@ +[module entitySpecificFiles('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::entity/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::service/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::serviceImpl/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::controller/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::criteria/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::resource/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::repository/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::modelAssembler/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::dataTransfer::entityDto/] +[import it::micegroup::voila2::cartridge::springmongo::templates::entity::dataTransfer::entityWriteDto/] + +[template public genEntitySpecificFiles(aModel : Model , isMs : Boolean)] +[for(aClass : Class | aModel.getEntities())] + [consoleMessage(getInfoSeverity(), 'Code Generation for the Entity: ' + aClass.name)/] + [if (not aClass.hasDefinition())] + [consoleMessage(getWarnSeverity(), 'Entity ' + aClass.name + ' has no definition')/] + [/if] + [genEntityFile(aClass, aModel,isMs)/] + [genServiceFile(aClass,isMs)/] + [genServiceImplFile(aClass, aModel,isMs)/] + [aClass.genControllerFileMs(aModel)/] + [genAssemblerFile(aClass)/] + [genDtoEntityWriteFile(aClass, aModel)/] + [genCriteriaFile(aClass,isMs)/] + [if(isMs)._not()] + [genResourceFile(aClass)/] + [/if] + [genRepositoryFile(aClass,isMs)/] + [genDtoClassSpecificFile(aClass, aModel)/] +[/for] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/mainClass.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/mainClass.mtl new file mode 100644 index 0000000..e16a40f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/mainClass.mtl @@ -0,0 +1,41 @@ +[comment encoding = UTF-8 /] + +[comment] + +Main Java Class for SpringBoot Template + +@author Vittorio Niespolo + +[/comment] + +[module mainClass('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils /] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::runtimeUtils /] +[import it::micegroup::voila2::cartridge::library::properties/] + + +[template public genMainClass(aModel : Model) post (writeAndFormat(getMainClassFileName()))] +package [getGenericPackage()/]; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +@SpringBootApplication +@ComponentScan({ "[getGroupName().concat('.').concat(getRootArtifactId())/]","[getRuntimePackage()/]" }) +public class [getMainClassNameAsMs()/] { + + public static void main(String['['/]] args) { + SpringApplication.run([getMainClassNameAsMs()/].class, args); + } +} +[/template] + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/mainSpringMongo.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/mainSpringMongo.mtl new file mode 100644 index 0000000..d784535 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/mainSpringMongo.mtl @@ -0,0 +1,71 @@ +[comment encoding = UTF-8 /] +[module mainSpringMongo('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::springmongo::templates::mainClass/] + +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] + +[import it::micegroup::voila2::cartridge::springmongo::templates::utilsGeneration/] + +[import it::micegroup::voila2::cartridge::springmongo::templates::settings/] + +[comment]Generazione file specifici di ogni entità[/comment] +[import it::micegroup::voila2::cartridge::springmongo::templates::entitySpecificFiles/] + +[import it::micegroup::voila2::cartridge::springmongo::templates::ms-web::msWeb/] + +[import it::micegroup::voila2::cartridge::springmongo::templates::staticResources/] + +[comment]POM[/comment] +[import it::micegroup::voila2::cartridge::springmongo::templates::pom::pomGeneration/] + +[comment]PROPERTIES[/comment] +[import it::micegroup::voila2::cartridge::springmongo::templates::applicationResources/] + +[comment]MAIL[/comment] +[comment][import it::mice::voila2::acceleogenerator::core::springboot::mail::mailGeneration/][/comment] + +[comment]SECURITY PERMISSIONS[/comment] +[comment][import it::mice::voila2::acceleogenerator::core::springboot::security::permission/] +[import it::mice::voila2::acceleogenerator::core::springboot::microservice::sqlPermissionsScript/][/comment] + + +[template public genSpringMongoMain(aModel : Model){isMicroservizio: Boolean = aModel.isMainMs();}] +[comment]MAIN CLASS[/comment] +[consoleMessage(getInfoSeverity(), 'SpringMongo main class Generation')/] +[genMainClass(aModel)/] + +[comment]settings[/comment] +[consoleMessage(getInfoSeverity(), '.settings Generation')/] +[genMsSettings()/] + +[comment]Generazione file specifici di ogni entità[/comment] +[genEntitySpecificFiles(aModel,isMicroservizio)/] + +[comment]POPOLAMENTO PROJ MS-[/comment] +[comment]MS WEB POC CONTENT GENERATION[/comment] +[genWebModuleContent(aModel)/] + +[comment]POM[/comment] +[consoleMessage(getInfoSeverity(), 'Pom Generation')/] +[genModulesPoms(aModel,isMicroservizio)/] + +[comment]PROPERTIES[/comment] +[consoleMessage(getInfoSeverity(), 'ApplicationResourcesGeneration')/] +[genApplicationResources()/] + +[comment]MAIL[/comment] +[comment][genMailFiles(aModel,isMicroservizio)/][/comment] + +[comment]SECURITY[/comment] +[comment][genPermissionFile(aModel) /] +[genSQLPermissionsScript(aModel)/][/comment] + +[comment]Static Resources[/comment] +[genstaticResources()/] +[/template] + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/ms-web/applicationYML.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/ms-web/applicationYML.mtl new file mode 100644 index 0000000..c5fc351 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/ms-web/applicationYML.mtl @@ -0,0 +1,73 @@ +[module applicationYML('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::modelUtils/] + +[template public genMsWebApplicationYML(aModel : Model) post(writeAndFormat(getMsWebApplicationYMLName()))] +server: + port: ${PORT:[getPortNumber()/]} + servlet: + context-path: /[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/] + +spring: + application: + name: [getRootArtifactId()/]-[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/]-service + liquibase: + enabled: false + security: + oauth2: + resourceserver: + jwt: + issuer-uri: http://${KK_URL:localhost}:${KK_PORT:8282}/auth/realms/[getRootArtifactId()/] + jwk-set-uri: http://${KK_URL:localhost}:${KK_PORT:8282}/auth/realms/[getRootArtifactId()/]/protocol/openid-connect/certs + +# data: +# rest: +# basePath: /[getArtifact().substituteFirst(getRootArtifactId().concat('-ms-'), '')/] + + data: + mongodb: + user: + password: + uri: + + h2: + console: + enabled: true + path: /h2-console + [if(isSecurityMicroservice())] + datasource: + url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:keycloak}?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false + username: ${USER_NAME:keycloak} + password: ${USER_PASSWORD:keycloak} + [/if] + devtools: + livereload: + port: 35830 + +logging: + level: + root: INFO + org.hibernate.SQL: TRACE + org.springframework: DEBUG + +gateway: +[comment] Scommentare quando il FE sarà in container baseuri: http://[aModel.getGateway().name.toLower()/]:8090[/comment] + baseuri: http://localhost:8090 + +jasperreports: + dir: reports + debug: true + +management: + endpoints: + web: + exposure: + include: "*" + endpoint: + health: + show-details: always +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/ms-web/msWeb.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/ms-web/msWeb.mtl new file mode 100644 index 0000000..f81bf9b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/ms-web/msWeb.mtl @@ -0,0 +1,53 @@ +[module msWeb('http://www.eclipse.org/uml2/5.0.0/UML')] + +[comment]ApplicationYML specifico per mongo[/comment] +[import it::micegroup::voila2::cartridge::springmongo::templates::ms-web::applicationYML/] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::db::genMsDBScript/] +[import it::micegroup::voila2::cartridge::library::microservice::microserviceUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::globalExceptionHandler/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::mapperConfig/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::msInterceptor/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::msProperties/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::msConfig/] +[import it::micegroup::voila2::cartridge::library::springboot::ms-web::liquibaseConfigurationBean/] + +[template public genWebModuleContent(aModel : Model)] +[genAdvicesContent()/] +[genConfigContent(aModel)/] +[genMsWebApplicationYML(aModel)/] +[genMsWebResourcesContent()/] +[genDBScript()/] +[genMsInterceptor(aModel)/] +[genMsConfig(aModel)/] +[genMsProperties()/] +[/template] + +[template public genAdvicesContent(oclAny : OclAny)] + [genGlobalExceptionHandler()/] +[/template] + +[template public genConfigContent(aModel : Model)] + [genMapperConfig(aModel)/] + [genLiquibaseConfigurationBean()/] +[comment] [genSecurityConfig(aModel)/][/comment] +[/template] + + +[template public genMsWebResourcesContent(oclany : OclAny)] +[comment]COPY FOLDER PER LA GENERAZIONE DEL CONTENUTO DELLA CARTELLA RESOURCES[/comment] +[copyFolder('/resources/msWebResources', getWebResourceFolderName(), 'it.mice.voila2.acceleogenerator', null, null, null, null, null, null, null, null)/] +[/template] + + + + + + + + + + diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomCoreModule.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomCoreModule.mtl new file mode 100644 index 0000000..a0fe5ec --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomCoreModule.mtl @@ -0,0 +1,68 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom Core Module XML Template + +@author Vittorio Niespolo + +[/comment] + + +[module pomCoreModule('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::pomUtils/] + +[template public genPomCoreModule(isMs : Boolean) post(writeAndFormat(getCorePomFileName()))] + + + 4.0.0 + + + [getCoreModuleName()/] + [getCoreModuleNaturalLangName()/] + [getUrl()/] + + + [genParentTag()/] + + jar + + + + [if(isMs)._not()] + [genVoila2RuntimeCoreDependency()/] + [genVoila2RuntimeMailCoreDependency()/] + [genVoila2RuntimeBusinessIntelligenceCoreDependency()/] + [else] + [genJPAModelDependency()/] + [genCoreLibsDependency()/] + [/if] + + org.springframework.boot + spring-boot-starter-data-mongodb + + + org.springframework.boot + spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-web + + + + io.jsonwebtoken + jjwt + 0.9.1 + + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomGeneration.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomGeneration.mtl new file mode 100644 index 0000000..5fd98aa --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomGeneration.mtl @@ -0,0 +1,11 @@ +[module pomGeneration('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::springmongo::templates::pom::pomCoreModule/] +[import it::micegroup::voila2::cartridge::springmongo::templates::pom::pomImplModule/] +[import it::micegroup::voila2::cartridge::springmongo::templates::pom::pomWebModule/] + +[template public genModulesPoms(aModel : Model , isMs : Boolean)] +[genPomCoreModule(isMs)/] +[genPomWebModule(isMs)/] +[genPomImplModule(isMs)/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomImplModule.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomImplModule.mtl new file mode 100644 index 0000000..ee535c2 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomImplModule.mtl @@ -0,0 +1,46 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom Impl Module XML Template + +@author Vittorio Niespolo + +[/comment] + +[module pomImplModule('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] + +[template public genPomImplModule(isMs : Boolean) post(writeAndFormat(getImplPomFileName()))] + + + 4.0.0 + + + [getImplModuleName()/] + [getImplModuleNaturalLangName()/] + [getUrl()/] + + + [genParentTag()/] + + jar + + + + [genCoreDependency()/] + [if(isMs)._not()] + [genVoila2RuntimeImplDependency()/] + [genVoila2RuntimeMailImplDependency()/] + [genVoila2RuntimeBusinessIntelligenceImplDependency()/] + [/if] + [genImplLibsDependency()/] + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomParentModule.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomParentModule.mtl new file mode 100644 index 0000000..3b694c3 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomParentModule.mtl @@ -0,0 +1,74 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom Parent Module XML Template + +@author Vittorio Niespolo + +[/comment] + +[module pomParentModule('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] + +[template public genPomParentModule(oclAny : OclAny) post(writeAndFormat(getParentPomFileName()))] + + + 4.0.0 + + + + org.springframework.boot + spring-boot-starter-parent + 2.1.4.RELEASE + + + + + [genParentCompleteInfo()/] + pom + + + + + modules/[getModelModuleName()/] + modules/[getCoreModuleName()/] + modules/[getImplModuleName()/] + modules/[getWebModuleName()/] + + + + + 1.8 + 1.1-SNAPSHOT + true + ISO-8859-1 + + 0.9.1 + 1.8 + 1.8 + 1.0.10.RELEASE + 2.3.5.RELEASE + UTF-8 + UTF-8 + UTF-8 + + + + + + javax.servlet + javax.servlet-api + 4.0.1 + + + + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomWebModule.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomWebModule.mtl new file mode 100644 index 0000000..18bdb6c --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/pom/pomWebModule.mtl @@ -0,0 +1,108 @@ +[comment encoding = UTF-8 /] + +[comment] + +Pom for Web Module XML Template + +@author Vittorio Niespolo + +[/comment] + +[module pomWebModule('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::fileNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::pomUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] +[import it::micegroup::voila2::cartridge::library::microservice::pomUtils/] + +[template public genPomWebModule(oclAny: OclAny) post(writeAndFormat(getWebPomFileName()))] + + + 4.0.0 + + + [getWebModuleName()/] + [getWebModuleNaturalLangName()/] + [getUrl()/] + + + [genParentTag()/] + + + + [genImplDependency()/] + [genLibsWebDependency()/] + [genH2Dependency()/] + [genLiquidBaseDependency()/] + [getSpringHateoasDependency()/] + [getSpringActuatorDependency()/] + [getJMXMicrometerDependency()/] + [getPrometheusMicrometerDependency()/] + + + + + spring-boot:run + [getArtifact()/] + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.5.RELEASE + + [getGenericPackage()/].[getMainClassNameAsMs()/] + + + + + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 2.6 + + false + + + + + + + + + dev + + true + + + + com.h2database + h2 + + + + + dev + + + + prod + + + prod + + + + +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/settings.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/settings.mtl new file mode 100644 index 0000000..0900847 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/settings.mtl @@ -0,0 +1,43 @@ +[module settings('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] + + +[template public genMsSettings(oclAny : OclAny)] +[genRootSettings()/] +[genCoreSettings()/] +[genImplSettings()/] +[genWebSettings()/] +[/template] + +[template public genRootSettings(oclAny:OclAny)] +[copyFolder('resources/settings/msSettings/.settings',getRootDotSettingsFolderName(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] +[/template] + +[template public genCoreSettings(oclAny:OclAny)] +[copyFolder('resources/settings/msSettings/.settings',getCoreDotSettingsFolderName(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] +[/template] + +[template public genImplSettings(oclAny:OclAny)] +[copyFolder('resources/settings/msSettings/.settings',getImplDotSettingsFolderName(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] +[/template] + +[template public genWebSettings(oclAny:OclAny)] +[copyFolder('resources/settings/msSettings/.settings',getWebDotSettingsFolderName(),'it.mice.voila2.acceleogenerator',null,null,null, +antFilterList(),false,tokenValuePairs(), null,null)/] +[/template] + + + +[template private antFilterList(dummy : OclAny)] +['*.json,*.project,*.properties,*.oaw,*.MF,*.uml,*.notation,*.xml,*.gitignore,*.mtl,*.java,*.classpath'/] +[/template] + +[template private tokenValuePairs(dummy : OclAny)] +['PROJECT_ID=' + getArtifact()/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/staticResources.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/staticResources.mtl new file mode 100644 index 0000000..7d2ee69 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/staticResources.mtl @@ -0,0 +1,24 @@ +[comment encoding = UTF-8 /] +[module staticResources('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::copyFolderUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::folderUtils/] +[import it::micegroup::voila2::cartridge::library::properties/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::mvnWrapper/] +[import it::micegroup::voila2::cartridge::library::h2/] + +[template public genstaticResources(oclAny: OclAny)] +[genMvnWrapper()/] +[genH2(antFilterList(), tokenValuePairs())/] +[/template] + + +[template private antFilterList(dummy : OclAny)] +['SpringFoxConfig.java,.h2.server.properties'/] +[/template] + +[template private tokenValuePairs(dummy : OclAny)] +['PACKAGE=package ' + getGenericPackage()/].utilities; +[',APPNAME=' + getArtifact()/] +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/test.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/test.mtl new file mode 100644 index 0000000..e33a8b7 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/test.mtl @@ -0,0 +1,14 @@ +[comment encoding = UTF-8 /] + +[comment] +test +[/comment] + +[module test('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::logger::consoleUtils/] +[import it::micegroup::voila2::cartridge::library::logger::severityLevel/] + +[template public test(oclAny: OclAny)] +[consoleMessage('test')/] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/controllerUtilsMongo.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/controllerUtilsMongo.mtl new file mode 100644 index 0000000..c863d80 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/controllerUtilsMongo.mtl @@ -0,0 +1 @@ +[module controllerUtilsMongo('http://www.eclipse.org/uml2/5.0.0/UML')] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/entityUtilsMongo.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/entityUtilsMongo.mtl new file mode 100644 index 0000000..8764d74 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/entityUtilsMongo.mtl @@ -0,0 +1,192 @@ +[comment encoding = UTF-8 /] + +[comment] + +Entity Utilities Templates + +[/comment] + +[module entityUtilsMongo('http://www.eclipse.org/uml2/5.0.0/UML')] + + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::generalUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::stringUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::typeUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::propertyUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::securityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fullyQualifiedNamesUtils/] + +[import it::micegroup::voila2::cartridge::library::common::associationUtils /] +[import it::micegroup::voila2::cartridge::library::common::idUtils /] + +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils /] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] + +[template public genAddChild(aClass : Class){childAssociations : Collection(OclAny) = aClass.getChildAssociations();}] +[for(childAss : Association | childAssociations)] +public void add[aClass.getChildClass(childAss).name/]([aClass.getChildClass(childAss).name/] [aClass.getChildClass(childAss).name.toLowerFirst()/]){ + [aClass.getTheChildPropertyName(childAss).toLowerFirst()/].add([aClass.getChildClass(childAss).name.toLowerFirst()/]); +} +[/for] +[/template] + +[template public genConstructor(aClass : Class, isMs : Boolean){attributes : Collection(Property) = aClass.attribute;}] +public [aClass.getEntityClassName()/](String objectKey) +{ + super(); + setObjectKey(objectKey); +[comment] [if(aClass.hasGeneralClass())] + set[aClass.getClassIdName().toUpperFirst()/]([aClass.getClassIdName()/]); + [else] + this.[aClass.getClassIdName()/] = [aClass.getClassIdName()/]; + [/if] + [if(aClass.hasExternalPK())] + [for(a : Association | aClass.getParentAssociations())] + this.[aClass.getTheParentPropertyName(a)/] = new [aClass.getParentClass(a).name.toUpperFirst()/](); + [for(parentId:Property | aClass.getParentClass(a).getClassIDs())] + this.[aClass.getTheParentPropertyName(a)/].set[parentId.name.toUpperFirst()/](this.[aClass.getClassIdName()/].get[parentId.name.toUpperFirst()/]()); + [/for] + [/for] + [/if][/comment] +} +[if(aClass.getAttributesWithoutIDs()->size() >= 1 or (aClass.getAttributesWithoutIDs()->size() = 1 and aClass.getStringProperties()->size() = 0))] +public [aClass.getEntityClassName()/]([if(aClass.hasCompositeKey())][aClass.getKeyClassName()/] [aClass.getKeyClassName().toLowerFirst()/], [/if] +[for( p: Property | attributes)separator(', ')] +[p.type.getJavaType()/] [p.name/][/for]) +{ + super(); + [if(aClass.hasCompositeKey())] + this.[aClass.getKeyClassName().toLowerFirst()/] = [aClass.getKeyClassName().toLowerFirst()/]; + [/if] + [for(attribute:Property | attributes)] + this.[attribute.name/] = [attribute.name/]; + [/for] +} +[/if] +[/template] + +[** + * Generate annoted attributes for a Class + * @author: Vittorio Niespolo +*/] +[template public genAttributesMongo(aClass : Class)] +[for ( p: Property | aClass.ownedAttribute)] +[if(getDefinition(p).oclIsUndefined()._not() and getDefinition(p).toString().size() <> 0)] +/** + [getDefinition(p)/] +*/ +[/if] +[genAnnotatedProperty(p, aClass)/] +[/for] +[/template] + +[** + * Generate annoted Properties for a Class + * @author: Vittorio Niespolo +*/] +[template public genAnnotatedProperty(aProperty: Property, aClass : Class) post(trim())] +[genAnnotation(aProperty, aClass)/] +private [aProperty.type.getJavaType()/] [aProperty.name/]; +[/template] + +[** + * Generate annotations for a Property of a Class + * @author: Vittorio Niespolo +*/] +[template public genAnnotation(aProperty : Property, aClass : Class) post(trim()) {definition : String = aProperty.getColumnDefinition(aClass); length : Integer = aProperty.getPhysicalColumnLenght();}] +[if(aProperty.isID and aClass.hasCompositeKey()._not())]@Id +[if(aClass.hasAutogeneratedId())]@GeneratedValue(strategy = GenerationType.IDENTITY)[/if] +[elseif(aProperty.isRequired())]@NotNull +[/if] +[if(aProperty.isID and aClass.hasCompositeKey()._not() and aClass.hasDefinition() and aClass.hasAutogeneratedId())]//WARNING For some RDBMS this syntax may not work. Manually delete COMMENT if you are not using Mysql.[/if] +@Field(value = "[if(aProperty.isID)]_id[else][camelToUnderscore(aProperty.getPhysicalColumnName())/][/if]", targetType=[if(aProperty.isID)]FieldType.OBJECT_ID[else][aProperty.type.getFieldType()/][/if]) +[if(aProperty.isDateTime())]@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss")[/if] +[/template] + +[template public genEntityImports(aClass: Class)] + +import [getLibsEntityPackageAsMs()/].BaseEntity; +import java.io.Serializable; + +[for(imp: String | aClass.getImportsForProperty())] +[imp/] +[/for] +[comment]import javax.persistence.Column;[/comment] +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +[if(aClass.hasCompositeKey())] +import javax.persistence.EmbeddedId; +[if(aClass.isInPrivilegePerRoleRole())] +import javax.persistence.PreRemove; +import org.springframework.cache.annotation.CacheEvict; +[/if] +[else] +[if(isClassExtended(aClass))] +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +[/if] +import javax.persistence.Id; +[if(aClass.hasAutogeneratedId())] +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +[/if] +[/if] + +[if(aClass.hasParents() or (aClass.hasParents()._not() and aClass.hasOneToOneRelation() and aClass.hasNavigableParents()))] +import javax.persistence.JoinColumn; +[/if] +[if(aClass.hasManyToOneRelation() or aClass.hasOneToOneRelation())] +import javax.persistence.FetchType; +[/if] +[if(aClass.hasChilds())] +import java.util.Collection; +import java.util.ArrayList; +import javax.persistence.OneToMany; +import javax.persistence.CascadeType; +import com.fasterxml.jackson.annotation.JsonManagedReference; +[/if] + +[if(aClass.hasParents() or aClass.hasChilds())] +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty.Access; +[/if] + +[if(aClass.hasParents())] +[if(aClass.hasCompositeKey()._not())] +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.annotation.JsonBackReference; +[/if] +[if(aClass.hasOneToOneRelation())] +import javax.persistence.OneToOne; +[/if] +[if(aClass.hasOneToOneRelation() or aClass.hasManyToOneRelation())] +[if(aClass.hasCompositeKey()._not())] +import javax.persistence.ManyToOne; +import javax.validation.constraints.NotNull; +[/if][/if] +[/if] + +import lombok.NoArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +[comment]import lombok.AllArgsConstructor;[/comment] + +import org.apache.commons.lang3.StringUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +[for(aClass : Class | aClass.getParentClasses())] +[if(aClass.hasCompositeKey())] +import [getEntityCKTypeFullyQualified(aClass)/]; +[/if] +[/for] + +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; +import org.springframework.data.mongodb.core.mapping.FieldType; +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/repositoryUtilsMongo.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/repositoryUtilsMongo.mtl new file mode 100644 index 0000000..a7c783f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/repositoryUtilsMongo.mtl @@ -0,0 +1,40 @@ +[comment encoding = UTF-8 /] + +[comment] + +Repository Utility's Templates +This library contains all the methods needed for repositories + +[/comment] +[module repositoryUtilsMongo('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fullyQualifiedNamesUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] + +[template public genRepositoryImports(aClass : Class) post(trim())] +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Collection; + +import org.springframework.data.mongodb.repository.MongoRepository; +import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; +[if(aClass.hasParents())] +import org.springframework.data.jpa.repository.EntityGraph; +import org.springframework.data.jpa.repository.EntityGraph.EntityGraphType; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +[/if] +import [getEntityTypeFullyQualified(aClass)/]; +[if(aClass.hasCompositeKey())] +import [getEntityCKTypeFullyQualified(aClass)/]; +[/if] +[genParentEntityImport(aClass)/] +[for(aClass : Class | aClass.getParentClasses())] +[if(aClass.hasCompositeKey() )] +import [getEntityCKTypeFullyQualified(aClass)/]; +[/if] +[/for] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/serviceImplUtilsMongo.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/serviceImplUtilsMongo.mtl new file mode 100644 index 0000000..773892f --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/serviceImplUtilsMongo.mtl @@ -0,0 +1,97 @@ +[comment encoding = UTF-8 /] + +[comment] +In questo modulo vengono inseriti tutti i templates relativi specificatamente alle utilities per la generazione della classe serviceImpl per SPRING + MONGO +Fare riferimento alla library per tutti gli altri templates condivisi. + +Author: Vittorio Niespolo + +[/comment] +[module serviceImplUtilsMongo('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::fullyQualifiedNamesUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::common::utilities/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::runtimeUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::classNameUtils/] + +[template public genServiceImplImports(aClass : Class, aModel : Model) post(trim())] +import java.util.Map; +import java.util.List; +import java.util.Locale; +import java.util.HashMap; +import java.util.Optional; +import java.util.ArrayList; +import java.util.Collection; +import java.util.ResourceBundle; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; + +[comment]import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable;[/comment] + +import org.springframework.context.i18n.LocaleContextHolder; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperExportManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +[comment][for(type : String | getAttributeJavaTypesNoDuplicates(getParentIdAttributesAsSequence(aClass)))] +import [getRuntimePackage().concat('.filter.')/][type/]; +[/for][/comment] + +import [getEntityTypeFullyQualified(aClass)/]; + +[if(aClass.hasCompositeKey())] +[genCKImports(aClass)/] +[genParentCKImports(aClass)/] +[/if] +[genParentEntityImport(aClass)/] +[comment]import [getEntity_TypeFullyQualified(aClass)/];[/comment] +[comment]import [getCriteriaTypeFullyQualified(aClass)/];[/comment] +import [getRepositoryTypeFullyQualified(aClass)/]; +import [getFilterServiceFullyQualified(aClass)/]; + + +[comment][for(parentAss: Association | getParentAssociations(aClass))] +[if(parentAss.isIdentifying() and aClass.getParentClass(parentAss) <> aClass)] +import [getEntityPackage()/].[aClass.getParentClass(parentAss).name/]_; +[/if] +[/for][/comment] + +[if(getParentClasses(aClass) -> size() > 1)] +import org.springframework.data.domain.PageImpl; +[if(not aClass.hasChilds())] +import java.util.stream.Collectors; +[/if][/if] +import [getServiceLibsPackageAsMs()/].BaseServiceImpl; +[comment][if(aClass.hasCompositeKey())] +import [getEntityPackage()/].[aClass.getClassIdName().toUpperFirst()/]_; +[/if][/comment] + +[if(aClass.hasChilds())] +import java.util.stream.Collectors; +[for(childAss : Association | aClass.getChildAssociations())] +[if(aClass.getChildClass(childAss) <> aClass)] +import [getEntityPackage()/].[getEntityClassName(getChildClass(aClass,childAss))/]; +[/if] +[/for] +import [getRuntimeGenericEntityFullyQualified()/]; +[/if] +import [getRuntimeExceptionPackage()/].BusinessException; +import net.sf.jasperreports.engine.JRException; +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/serviceUtilsMongo.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/serviceUtilsMongo.mtl new file mode 100644 index 0000000..3aafb6a --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilities/serviceUtilsMongo.mtl @@ -0,0 +1,26 @@ +[comment encoding = UTF-8 /] +[module serviceUtilsMongo('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::importUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::associationUtils/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::entityUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::fullyQualifiedNamesUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::packageUtils/] +[import it::micegroup::voila2::cartridge::library::springboot::runtimeUtils/] + +[template public genServiceImports(aClass: Class) post(trim())] +import [getEntityTypeFullyQualified(aClass)/]; +import [getCriteriaTypeFullyQualified(aClass)/]; + +[if(aClass.hasParents())] +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +[/if] +[if(aClass.hasCompositeKey())] +[genCKImports(aClass)/] +[/if] +[genParentEntityImport(aClass)/] +[genParentCKImports(aClass)/] +import [getServiceLibsPackageAsMs()/].BaseEntityServiceMongo; +import [getRuntimeExceptionPackage()/].BusinessException; +[/template] diff --git a/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilsGeneration.mtl b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilsGeneration.mtl new file mode 100644 index 0000000..e25fd74 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.cartridge.springmongo/src/it/micegroup/voila2/cartridge/springmongo/templates/utilsGeneration.mtl @@ -0,0 +1,14 @@ +[module utilsGeneration('http://www.eclipse.org/uml2/5.0.0/UML')] + +[import it::micegroup::voila2::cartridge::library::springboot::constants/] +[import it::micegroup::voila2::cartridge::library::springboot::cacheConfig/] +[import it::micegroup::voila2::cartridge::library::springboot::auditable/] +[import it::micegroup::voila2::cartridge::library::javaservice::wrapper::featureUtils/] + +[template public genApplicationUtils(aModel: Model)] +[genConstants(false)/] +[genAuditable(false)/] +[if(isCachingEnabled(aModel))] +[genCacheConfig(false)/] +[/if] +[/template] \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.toolbox/.classpath b/plugin-version/it.micegroup.voila2.toolbox/.classpath new file mode 100644 index 0000000..042d575 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.toolbox/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugin-version/it.micegroup.voila2.toolbox/.project b/plugin-version/it.micegroup.voila2.toolbox/.project new file mode 100644 index 0000000..a17a321 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.toolbox/.project @@ -0,0 +1,28 @@ + + + it.micegroup.voila2.toolbox + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/plugin-version/it.micegroup.voila2.toolbox/.settings/org.eclipse.jdt.core.prefs b/plugin-version/it.micegroup.voila2.toolbox/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..229876b --- /dev/null +++ b/plugin-version/it.micegroup.voila2.toolbox/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=15 +org.eclipse.jdt.core.compiler.compliance=15 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=15 diff --git a/plugin-version/it.micegroup.voila2.toolbox/META-INF/MANIFEST.MF b/plugin-version/it.micegroup.voila2.toolbox/META-INF/MANIFEST.MF new file mode 100644 index 0000000..2044c64 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.toolbox/META-INF/MANIFEST.MF @@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Toolbox +Bundle-SymbolicName: it.micegroup.voila2.toolbox;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: Micegroup +Require-Bundle: javax.inject, + org.eclipse.osgi, + org.eclipse.jface, + org.eclipse.e4.ui.services, + org.eclipse.e4.core.di.annotations, + org.eclipse.ui, + org.eclipse.core.resources;bundle-version="3.13.900", + org.eclipse.core.runtime;bundle-version="3.20.0", + it.mice.voila2.plugin;bundle-version="1.0.0" +Bundle-RequiredExecutionEnvironment: JavaSE-15 +Import-Package: javax.annotation;version="1.2.0" +Automatic-Module-Name: it.micegroup.voila2.toolbox diff --git a/plugin-version/it.micegroup.voila2.toolbox/build.properties b/plugin-version/it.micegroup.voila2.toolbox/build.properties new file mode 100644 index 0000000..eade967 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.toolbox/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + icons/ \ No newline at end of file diff --git a/plugin-version/it.micegroup.voila2.toolbox/icons/commit.png b/plugin-version/it.micegroup.voila2.toolbox/icons/commit.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d86ea01afb91a4691d006994b07682ffa020fe GIT binary patch literal 2973 zcmV;O3u5$%P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=KFmLs_hMgO@9FCjR9AeY1O9Phx(_XQ(TIaF4= ztJ?k7Ql^5U7$AZ7@PKgZKmXqDU%Z0G-Mgt>U@?)#IW zy^ZGHU*#1m&J~Pb9K(>aPgVhl-%m{C#Mis~a(#Unun`31gt_2gyZUXSi+|@&xo9b+mR3WJ$e6gAtJYF$ZH-M^YS?P5Z%p*iV^3Xr?%GSQy$$Fy(vXpdjxy?K zGt4-V05|j0S!SJW`303$TC(!eRaRYX!?hiE+OqT3U3T5=h1!GaXVktT_s6LD2eoj3 zvUU278q=z8CcMds7-k?Ak_T}$1R!)U%&y{73Wl6vcGVDFj1oAd7&y}#Vj!5753>CW zyLaS%ikl<4zlvM<4moGg{XdX%2Hgkbe#Gq?)Mh(!8xKI1g~SwvjHDlnS}6QcPJZv| zuD@vDA47k)p$$*FG)=p%-Rg*Cx{>!32s>w=YtO`d?u(+Y;$^MnsbO2RFZft@>}3tz zGw*YUG#mEWM{%X~Wh{f%3~F0xOl9%dJ4H%gsS^U~=v(eXaZ_C7I_GQG>*~Hv{OF=!J0%@jI*KhmxpCoW%lWpqy%5Sa z#PYOkDlEbl%@~$s?Yt_+_R408_A_|Aw2^mc+8O-PRdx&$ZLz>3KV<55r|~F3%hmB_ zH?HB^zH|&>zk|l$qxq? z;wJZiGvFRpb;0tz*nmyLVzk?V(IMGB0U}bYoD&2oqO*uCOq~42bPR|^nb<7XoCAEb z1f*#6in>!nod+3+sBKavQU}N#qtKq+gKoKWcln@)?p1-`P2b+r`V zHxTM#P^{!f*E95>wFn8=kdrg5rdfSYoDvnqT2|WS7Pjv4i zMq+dna*&(Mf~|UB8a;v)8CN42C(zH52ll1zdo9RLukM3l z?oouoUo7CO#amI((ZoGsd`Ce7hkl!r^n{&CK+ZueQjy1ragpDVR9q(&!*pFX z;X7zAQ~N(#mTtT%%?!t*Vz^D%U#xkfWj3or=+i+b9|^Z-sSE>->YDWAqhwHmE)8_- zxu4h($-GuLq?hPV!k?5ibsr4H+#-5!ZsmR4;?@}`Y` z9mNgZU@!uhhJg%fy6p@I76?Oqt<{vqJtZnziMq?g*K?&S+*xxJos>3LbGQ+lC0h%) z#igSmW;qc&G~~(ddhPTp9=bob@TA$p!f`yNO(oeN1pDJR`*&ZS&7V6&v{re-CXuuR@u|7c^-|Qd}Gb*Mfr|i&X~~XI&j!1wrrw#Ldk~ z(M3x9Us7lhpF2XskIMF-^u z2@3}sv1BT70007DNklzj5JcxGKJYL1mGVk7zK7Y)dp?|_=MPs*->>K7%T_?OQd=zvOBx%Cd$Sv<3Q!T&AA3oMa7gRBe- z!azNy`^dE-gs%ZYb`Ix83H(OpU5sL#2WIh2IK7b`^7fV&w z&rj5>yvW{F_X1sLp2GPJKy4nFt>0RLyQCH+7*W&Vr*uFPjMjHVBdjP)yp6vbe TC^Qpv00000NkvXXu0mjftk<6| literal 0 HcmV?d00001 diff --git a/plugin-version/it.micegroup.voila2.toolbox/icons/magicHat.png b/plugin-version/it.micegroup.voila2.toolbox/icons/magicHat.png new file mode 100644 index 0000000000000000000000000000000000000000..47decfd36cfeeb3418799f97790cbcdf08575d60 GIT binary patch literal 6452 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 Qr~m)}07*qoM6N<$f|JJHQ2+n{ literal 0 HcmV?d00001 diff --git a/plugin-version/it.micegroup.voila2.toolbox/icons/voila2Icon.png b/plugin-version/it.micegroup.voila2.toolbox/icons/voila2Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0c9b898006125b34d905756fdf7e4e9cce5e2614 GIT binary patch literal 1013 zcmVEX>4Tx04R}tkv&MmKp2MKrfN&6IM|_xLx$>PK~%(1s#pXIrLEAagUO|T(8Q3W zxHt-~1qXi?s}3&Cx;nTDg5VE`o12rOiTk;}{xM~KC87t3ADDuzltMI2L9jq-)O z%L?Z$&T6gB+V|uy3>UTKEZ1obBZ)<%kcJ2ubyQJp78JwIsP=cWO7x( z$T5!%sE`~#_#gc4ty!9!aFfCbp!dbLKSqGSF3@V&_V=-Ew@v{6GjOGK{2NVR=9BbB zM~fW+1KYsGbw`u;fXf{q`lL&SROi$3MT) zHYTlUjnyVy+NK*@vKT=!%4Us(;(&-mg2Y8K$0g!O%)t_K*}>UmCk_td;(&w5!b&Xu zWXpoB)s_DB?(N(6eH@yKMThL-Ie$N&=kR?V`0q3EIVITb%VIx#%Zn|Z%rH3iToSng zF4x~77Z8md=Jv$2+UEumQKgSRDDUu&+(>@;$9*@hl$yrRjL~Q1n zQUEVMeUa!`oKiuf$K~Mi-VU{6a|;;8Pxkd(T83Xt^Dw8QX$y>Yx6&JKt_X0s7{32R zu1wBhWC|eAA8O!2Pp8tgB6r`<%g{_35usdM;Czdh8>bH_vRPDhL!fmF8wYO6tAdV^ zEdt==joY!s%fno09#cs_4W;ed)g37Sh321=mxr0B9YTD^WP~Y zzGCSHw|0lA!ixj|k&ckM==UI&V5@T?WfQZgVWhHHMwye1ZjN^E3jWG05?~ng@9$L2 z3J|c>IWf{X#3-XIi%W;LEA-6N(gMI&?`EjC9jk1DrNFen5=Q#k3AY7*Yt~k)?pUNt zoo%W|nHC}z(e*~#n_Dc^(00000NkvXXu0mjfvQpG1 literal 0 HcmV?d00001 diff --git a/plugin-version/it.micegroup.voila2.toolbox/plugin.xml b/plugin-version/it.micegroup.voila2.toolbox/plugin.xml new file mode 100644 index 0000000..8316c91 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.toolbox/plugin.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugin-version/it.micegroup.voila2.toolbox/src/it/micegroup/voila2/toolbox/handlers/CommitSyncAction.java b/plugin-version/it.micegroup.voila2.toolbox/src/it/micegroup/voila2/toolbox/handlers/CommitSyncAction.java new file mode 100644 index 0000000..3a44844 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.toolbox/src/it/micegroup/voila2/toolbox/handlers/CommitSyncAction.java @@ -0,0 +1,77 @@ +package it.micegroup.voila2.toolbox.handlers; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.resources.FileInfoMatcherDescription; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.handlers.HandlerUtil; + +public class CommitSyncAction implements IRunnableWithProgress { + + private ExecutionEvent event; + + public CommitSyncAction(ExecutionEvent event) { + this.event = event; + } + + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { + addFilters(monitor); + } + + private void addFilters(IProgressMonitor monitor) { +// if (StaticResources.getProjectsToFilter().isEmpty()) { + try { + for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) { +// project.refreshLocal(IResource.DEPTH_INFINITE, monitor); + project.createFilter(26, new FileInfoMatcherDescription("org.eclipse.ui.ide.multiFilter", + "1.0-name-matches-false-false-modules"), IResource.BACKGROUND_REFRESH, monitor); + project.createFilter(26, new FileInfoMatcherDescription("org.eclipse.ui.ide.multiFilter", + "1.0-name-matches-false-false-.syncFolder"), IResource.BACKGROUND_REFRESH, monitor); + project.createFilter(26, new FileInfoMatcherDescription("org.eclipse.ui.ide.multiFilter", + "1.0-name-matches-false-false-.target"), IResource.BACKGROUND_REFRESH, monitor); + } + } catch (CoreException e) { + e.printStackTrace(); + } +// } else { +// for (IProject project : StaticResources.getProjectsToFilter()) { +// try { +// project.refreshLocal(IResource.DEPTH_INFINITE, monitor); +// project.createFilter(26, +// new FileInfoMatcherDescription("org.eclipse.ui.ide.multiFilter", +// "1.0-name-matches-false-false-modules"), +// IResource.BACKGROUND_REFRESH, monitor); +// project.createFilter(26, +// new FileInfoMatcherDescription("org.eclipse.ui.ide.multiFilter", +// "1.0-name-matches-false-false-.syncFolder"), +// IResource.BACKGROUND_REFRESH, monitor); +// project.createFilter(26, +// new FileInfoMatcherDescription("org.eclipse.ui.ide.multiFilter", +// "1.0-name-matches-false-false-.target"), +// IResource.BACKGROUND_REFRESH, monitor); +// } catch (CoreException e) { +// e.printStackTrace(); +// } +// } +// } + try { + IWorkbenchWindow window; + window = HandlerUtil.getActiveWorkbenchWindowChecked(event); + MessageDialog.openInformation(window.getShell(), "Success!", "La sincronizzazione è stata ultimata"); + } catch ( + + ExecutionException e) { + e.printStackTrace(); + } + } +} diff --git a/plugin-version/it.micegroup.voila2.toolbox/src/it/micegroup/voila2/toolbox/handlers/CommitSyncHandler.java b/plugin-version/it.micegroup.voila2.toolbox/src/it/micegroup/voila2/toolbox/handlers/CommitSyncHandler.java new file mode 100644 index 0000000..52ade65 --- /dev/null +++ b/plugin-version/it.micegroup.voila2.toolbox/src/it/micegroup/voila2/toolbox/handlers/CommitSyncHandler.java @@ -0,0 +1,37 @@ +package it.micegroup.voila2.toolbox.handlers; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.handlers.HandlerUtil; +import org.eclipse.ui.progress.IProgressService; + +/** + * Handler che viene attivato dal pulsante che sancisce la fine della + * generazione + * + * @author Vittorio Niespolo + * + */ +public class CommitSyncHandler extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + IWorkbench wb = PlatformUI.getWorkbench(); + IProgressService ps = wb.getProgressService(); + try { + ps.runInUI(new ProgressMonitorDialog(org.eclipse.swt.widgets.Display.getCurrent().getActiveShell()), + new CommitSyncAction(event), null); + } catch (InvocationTargetException | InterruptedException e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/plugin-version/properties/ui/MultipleAttribute.xwt b/plugin-version/properties/ui/MultipleAttribute.xwt new file mode 100644 index 0000000..e79966b --- /dev/null +++ b/plugin-version/properties/ui/MultipleAttribute.xwt @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/plugin-version/properties/ui/MultipleEntity.xwt b/plugin-version/properties/ui/MultipleEntity.xwt new file mode 100644 index 0000000..e29bdbb --- /dev/null +++ b/plugin-version/properties/ui/MultipleEntity.xwt @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/plugin-version/properties/ui/MultipleManyToOneRelation.xwt b/plugin-version/properties/ui/MultipleManyToOneRelation.xwt new file mode 100644 index 0000000..1e962a1 --- /dev/null +++ b/plugin-version/properties/ui/MultipleManyToOneRelation.xwt @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/plugin-version/properties/ui/MultipleNamedElement.xwt b/plugin-version/properties/ui/MultipleNamedElement.xwt new file mode 100644 index 0000000..e29bdbb --- /dev/null +++ b/plugin-version/properties/ui/MultipleNamedElement.xwt @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/plugin-version/properties/ui/SingleAttribute.xwt b/plugin-version/properties/ui/SingleAttribute.xwt new file mode 100644 index 0000000..4468d46 --- /dev/null +++ b/plugin-version/properties/ui/SingleAttribute.xwt @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugin-version/properties/ui/SingleEntity.xwt b/plugin-version/properties/ui/SingleEntity.xwt new file mode 100644 index 0000000..35ea274 --- /dev/null +++ b/plugin-version/properties/ui/SingleEntity.xwt @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugin-version/properties/ui/SingleManyToOneRelation.xwt b/plugin-version/properties/ui/SingleManyToOneRelation.xwt new file mode 100644 index 0000000..6b32d42 --- /dev/null +++ b/plugin-version/properties/ui/SingleManyToOneRelation.xwt @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugin-version/properties/ui/SingleNamedElement.xwt b/plugin-version/properties/ui/SingleNamedElement.xwt new file mode 100644 index 0000000..998a580 --- /dev/null +++ b/plugin-version/properties/ui/SingleNamedElement.xwt @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- GitLab

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